mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-25 14:16:44 +00:00
First pass on adding Polygon 2.0 support
This commit is contained in:
parent
85d8b9cc37
commit
eb156f3e06
37 changed files with 9755 additions and 1 deletions
154
.github/workflows/docker.yml
vendored
Normal file
154
.github/workflows/docker.yml
vendored
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
name: Build, push and release (if tag)
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "*-v*"
|
||||||
|
branches:
|
||||||
|
- "firehose-fh3.0"
|
||||||
|
- "release/*"
|
||||||
|
|
||||||
|
env:
|
||||||
|
REGISTRY: ghcr.io
|
||||||
|
IMAGE_NAME: ${{ github.repository }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- platform: linux/amd64
|
||||||
|
platform_suffix: amd64
|
||||||
|
runner: ubuntu-22.04
|
||||||
|
|
||||||
|
- platform: linux/arm64
|
||||||
|
platform_suffix: arm64
|
||||||
|
runner: ubuntu-22.04-arm
|
||||||
|
|
||||||
|
runs-on: [ "${{ matrix.runner }}" ]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Log in to the Container registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ${{ env.REGISTRY }}
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Generate docker tags/labels from github build context
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
|
tags: |
|
||||||
|
type=ref,event=tag,prefix=
|
||||||
|
type=sha,prefix=
|
||||||
|
type=sha,prefix=,suffix=-${{ matrix.platform_suffix }}
|
||||||
|
type=edge,branch=firehose-fh3.0,priority=1
|
||||||
|
type=edge,branch=release/*,priority=1
|
||||||
|
flavor: |
|
||||||
|
latest=${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, 'beta') && !contains(github.ref, 'rc') }}
|
||||||
|
prefix=geth-,onlatest=true
|
||||||
|
|
||||||
|
- name: Extract version
|
||||||
|
id: extract-version
|
||||||
|
run: |
|
||||||
|
version="edge"
|
||||||
|
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
|
||||||
|
version=${GITHUB_REF#refs/tags/}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "VERSION=${version} (Commit ${GITHUB_SHA::7}, Commit Date $(git show -s --format=%cI))" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Build and push Docker image (${{ matrix.platform }})
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
file: ./Dockerfile
|
||||||
|
platforms: ${{ matrix.platform }}
|
||||||
|
push: true
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
provenance: false
|
||||||
|
build-args: |
|
||||||
|
BUILDNUM=""
|
||||||
|
COMMIT=${{ github.sha }}
|
||||||
|
VERSION=${{ steps.extract-version.outputs.VERSION }}
|
||||||
|
|
||||||
|
push:
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Docker login
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ${{ env.REGISTRY }}
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Generate docker tags/labels from github build context
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
|
tags: |
|
||||||
|
type=ref,event=tag,prefix=
|
||||||
|
type=sha,prefix=
|
||||||
|
type=edge,branch=firehose-fh3.0,priority=1
|
||||||
|
type=edge,branch=release/*,priority=1
|
||||||
|
flavor: |
|
||||||
|
latest=${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, 'beta') && !contains(github.ref, 'rc') }}
|
||||||
|
prefix=geth-,onlatest=true
|
||||||
|
sep-tags: ","
|
||||||
|
|
||||||
|
- name: Extract image
|
||||||
|
id: image
|
||||||
|
run: |
|
||||||
|
echo "ID=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Create and push manifest images
|
||||||
|
uses: Noelware/docker-manifest-action@0.4.3
|
||||||
|
with:
|
||||||
|
inputs: "${{ steps.meta.outputs.tags }}"
|
||||||
|
images: "${{ steps.image.outputs.ID }}-amd64, ${{ steps.image.outputs.ID }}-arm64"
|
||||||
|
push: true
|
||||||
|
|
||||||
|
release:
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Extract image
|
||||||
|
id: image
|
||||||
|
run: |
|
||||||
|
echo "ID=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Extract assets
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
run: |
|
||||||
|
# The --platform are not really needed here, but it removes the warning
|
||||||
|
docker cp $(docker create --platform=linux/amd64 ${{ steps.image.outputs.ID }}-amd64):/usr/local/bin/geth ./geth_linux
|
||||||
|
docker cp $(docker create --platform=linux/arm64 ${{ steps.image.outputs.ID }}-arm64):/usr/local/bin/geth ./geth_linux_arm64
|
||||||
|
|
||||||
|
- name: Release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
prerelease: ${{ contains(github.ref, 'beta') || contains(github.ref, 'rc') }}
|
||||||
|
files: |
|
||||||
|
./geth_linux
|
||||||
|
./geth_linux_arm64
|
||||||
166
README.fh.md
Normal file
166
README.fh.md
Normal file
|
|
@ -0,0 +1,166 @@
|
||||||
|
## StreamingFast Firehose Fork of `Ethereum` (`geth` client)
|
||||||
|
|
||||||
|
This is our Firehose instrumented fork of [ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) repository. In this README, you will find instructions about how to work with this repository.
|
||||||
|
|
||||||
|
### Protocols
|
||||||
|
|
||||||
|
The Firehose instrumentation have a protocol version for the messages exchanges with Firehose on Ethereum binary (`fireeth`). The
|
||||||
|
protocols we currently develop are:
|
||||||
|
|
||||||
|
- Protocol `fh2.4` using the `firehose-fh2.4` branch and `fh2.4` tag(s) suffix
|
||||||
|
- Protocol `fh3.0` using the `firehose-fh3.0` branch and `fh3.0` tag(s) suffix
|
||||||
|
|
||||||
|
Read [Branches & Workflow](#branches-&-workflow) section for more details about how we handle branching model and versions.
|
||||||
|
|
||||||
|
### Initialization
|
||||||
|
|
||||||
|
The tooling and other instructions expect the following project
|
||||||
|
structure, it's easier to work with the Firehose fork when you use
|
||||||
|
the same names and settings.
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ~/work
|
||||||
|
git clone --branch="firehose-fh3.0" git@github.com:streamingfast/go-ethereum.git
|
||||||
|
cd go-ethereum
|
||||||
|
|
||||||
|
git remote rename origin sf
|
||||||
|
|
||||||
|
git checkout firehose-fh3.0
|
||||||
|
|
||||||
|
git remote add origin https://github.com/ethereum/go-ethereum.git
|
||||||
|
git remote add polygon https://github.com/maticnetwork/bor.git
|
||||||
|
git remote add bnb https://github.com/binance-chain/bsc.git
|
||||||
|
# Add other remotes as needed
|
||||||
|
|
||||||
|
git fetch origin
|
||||||
|
git fetch polygon
|
||||||
|
git fetch bnb
|
||||||
|
# Fetch other remotes as needed
|
||||||
|
|
||||||
|
git checkout release/geth-1.x-fh3.0
|
||||||
|
git checkout release/bnb-1.x-fh3.0
|
||||||
|
git checkout release/polygon-1.x-fh2.4
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Assumptions
|
||||||
|
|
||||||
|
For the best result when working with this repository and the scripts it contains:
|
||||||
|
|
||||||
|
- The remote `sf` exists on main module and points to `git@github.com:streamingfast/go-ethereum.git`
|
||||||
|
- The remote `origin` exists on main module and points to https://github.com/ethereum/go-ethereum.git
|
||||||
|
|
||||||
|
### Branches & Workflow
|
||||||
|
|
||||||
|
Dealing with a big repository like Ethereum that have multiple versions for which we need
|
||||||
|
to track multiple forks (`Matic`, `BSC`) pose a branch management challenges.
|
||||||
|
|
||||||
|
Even more that we have our own set of patches to enable deep data extraction
|
||||||
|
for Firehose consumption.
|
||||||
|
|
||||||
|
We use merging of the branches into one another to make that work manageable.
|
||||||
|
The first and foremost important rule is that we always put new development
|
||||||
|
in the `firehose-fh3.0` branch.
|
||||||
|
|
||||||
|
This branch must always be tracking the lowest supported version of all. Indeed,
|
||||||
|
this is our "work" branch for our patches, **new development must go there**. If you
|
||||||
|
perform our work with newer code, the problem that will arise is that this new
|
||||||
|
firehose work will not be mergeable into forks or older release that we still
|
||||||
|
support!
|
||||||
|
|
||||||
|
The lowest supported Geth version today is `1.15.0`.
|
||||||
|
|
||||||
|
We then create `release/<identifier>` branch that tracks the version of interest
|
||||||
|
for us, versions that we will manages and deploy.
|
||||||
|
|
||||||
|
Currently supported forks & version and the release branch
|
||||||
|
|
||||||
|
- `firehose-fh3.0` - Default branch with all Firehose commits in it, based on Geth `1.15.0`.
|
||||||
|
- [release/geth-1.x-fh3.0](https://github.com/streamingfast/go-ethereum/tree/release/geth-1.x-fh3.0) - Ethereum Geth, latest update for this branch is `1.15.3` ([https://github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum)).
|
||||||
|
- [release/polygon-1.x-fh2.4](https://github.com/streamingfast/go-ethereum/tree/release/polygon-1.x-fh2.4) - Polygon fork (a.k.a Matic), based on Geth `1.13.5`, latest update for this branch is `v1.3.0` ([https://github.com/maticnetwork/bor](https://github.com/maticnetwork/bor)).
|
||||||
|
- [release/bnb-1.x-fh3.0](https://github.com/streamingfast/go-ethereum/tree/release/bsc-1.x-fh2.5) - BSC fork (Binance), based on Geth `1.15.2`, latest update for this branch is `v1.5.6` ([https://github.com/binance-chain/bsc](https://github.com/binance-chain/bsc)).
|
||||||
|
|
||||||
|
> **Note** To find on which Geth version a particular fork is, you can do `git merge-base sf/release/geth-1.x-fh3.0 origin/master` where `origin/master` is the `master` branch of the original Geth repository (https://github.com/ethereum/go-ethereum).
|
||||||
|
|
||||||
|
#### Making New Firehose Changes
|
||||||
|
|
||||||
|
Making new changes should be performed on the `firehose-fh3.0` branch. When happy
|
||||||
|
with the changes, simply merge the `firehose-fh3.0` branch in all the release branches we track
|
||||||
|
and support.
|
||||||
|
|
||||||
|
git checkout firehose-fh3.0
|
||||||
|
git pull -p
|
||||||
|
|
||||||
|
# Perform necessary changes, tests and commit(s)
|
||||||
|
|
||||||
|
git checkout release/geth-1.x-fh3.0
|
||||||
|
git pull -p
|
||||||
|
git merge firehose-fh3.0
|
||||||
|
|
||||||
|
git checkout release/polygon-1.x-fh2.4
|
||||||
|
git pull -p
|
||||||
|
git merge firehose-fh2.4
|
||||||
|
|
||||||
|
git checkout release/bnb-1.x-fh3.0
|
||||||
|
git pull -p
|
||||||
|
git merge firehose-fh3.0
|
||||||
|
|
||||||
|
git push sf firehose-fh3.0 release/geth-1.x-fh3.0 release/polygon-1.x-fh3.0 release/bnb-1.x-fh3.0
|
||||||
|
|
||||||
|
### Update to New Upstream Version
|
||||||
|
|
||||||
|
We assume you are in the top directory of the repository when performing the following
|
||||||
|
operations. Here, we outline the rough idea. Extra details and command lines to use
|
||||||
|
will be completed later if missing.
|
||||||
|
|
||||||
|
We are using `v1.15.2` as the example release tag that we want to update to, assuming
|
||||||
|
`v1.15.1` was the previous latest merged tag. Change
|
||||||
|
those with your own values.
|
||||||
|
|
||||||
|
First step is to checkout the release branch of the series you are currently
|
||||||
|
updating to:
|
||||||
|
|
||||||
|
git checkout release/geth-1.x-fh3.0
|
||||||
|
git pull -p
|
||||||
|
|
||||||
|
You first fetch the origin repository new data from Git:
|
||||||
|
|
||||||
|
git fetch origin -p
|
||||||
|
|
||||||
|
Then apply the update
|
||||||
|
|
||||||
|
git merge v1.15.2
|
||||||
|
|
||||||
|
Solve conflicts if any. Once all conflicts have been resolved, commit then
|
||||||
|
create a tag with release
|
||||||
|
|
||||||
|
git tag geth-v1.15.2-fh3.0
|
||||||
|
|
||||||
|
Then push all that to the repository:
|
||||||
|
|
||||||
|
git push sf release/geth-1.x-fh3.0 geth-v1.15.2-fh3.0
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> If you need to issue a Firehose bug fix for an existing version of upstream, for example a Firehose fix on `v1.10.8`, you append `-N` at the end where `N` is 1 then increments further is newer revisions are needed, so you would got tag `geth-v1.15.2-fh3.0-1`
|
||||||
|
|
||||||
|
### Development
|
||||||
|
|
||||||
|
All the *new* development should happen in the `firehose-fh3.0` branch, this is our own branch
|
||||||
|
containing our commits.
|
||||||
|
|
||||||
|
##### Build Locally
|
||||||
|
|
||||||
|
go install ./cmd/geth
|
||||||
|
|
||||||
|
#### Release
|
||||||
|
|
||||||
|
Github actions are automatically created when creating a tag
|
||||||
|
|
||||||
|
### View only our commits
|
||||||
|
|
||||||
|
**Important** To correctly work, you need to use the right base branch, otherwise, it will be screwed up. The `firehose-fh3.0`
|
||||||
|
branch was based on `v1.15.2` at time of writing.
|
||||||
|
|
||||||
|
* From `gitk`: `gitk --first-parent v1.15.2..firehose-fh3.0`
|
||||||
|
* From terminal: `git log --decorate --pretty=oneline --abbrev-commit --first-parent=v1.15.2..firehose-fh3.0`
|
||||||
|
* From `GitHub`: [https://github.com/streamingfast/go-ethereum/compare/v1.15.2...firehose-fh3.0](https://github.com/streamingfast/go-ethereum/compare/v1.15.2...firehose-fh3.0)
|
||||||
|
* Modified files in our fork: `git diff --name-status v1.15.2..firehose-fh3.0 | grep -E "^M" | cut -d $'\t' -f 2`
|
||||||
|
|
@ -57,6 +57,7 @@ import (
|
||||||
"github.com/cespare/cp"
|
"github.com/cespare/cp"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/crypto/signify"
|
"github.com/ethereum/go-ethereum/crypto/signify"
|
||||||
|
"github.com/ethereum/go-ethereum/eth/tracers"
|
||||||
"github.com/ethereum/go-ethereum/internal/build"
|
"github.com/ethereum/go-ethereum/internal/build"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/ethereum/go-ethereum/params"
|
||||||
)
|
)
|
||||||
|
|
@ -664,7 +665,7 @@ func maybeSkipArchive(env build.Environment) {
|
||||||
log.Printf("skipping archive creation because this is a PR build")
|
log.Printf("skipping archive creation because this is a PR build")
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
if env.Branch != "master" && !strings.HasPrefix(env.Tag, "v1.") {
|
if env.Branch != "master" && !strings.HasPrefix(env.Branch, "firehose") && !strings.HasPrefix(env.Tag, "v1.") && !strings.Contains(env.Tag, "fh") {
|
||||||
log.Printf("skipping archive creation because branch %q, tag %q is not on the inclusion list", env.Branch, env.Tag)
|
log.Printf("skipping archive creation because branch %q, tag %q is not on the inclusion list", env.Branch, env.Tag)
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
@ -708,6 +709,10 @@ func doDocker(cmdline []string) {
|
||||||
tags = []string{"latest"}
|
tags = []string{"latest"}
|
||||||
case strings.HasPrefix(env.Tag, "v1."):
|
case strings.HasPrefix(env.Tag, "v1."):
|
||||||
tags = []string{"stable", fmt.Sprintf("release-1.%d", params.VersionMinor), "v" + params.Version}
|
tags = []string{"stable", fmt.Sprintf("release-1.%d", params.VersionMinor), "v" + params.Version}
|
||||||
|
case strings.HasPrefix(env.Branch, "firehose"):
|
||||||
|
tags = []string{"edge-fh" + tracers.FirehoseProtocolVersion}
|
||||||
|
case strings.Contains(env.Tag, "fh"):
|
||||||
|
tags = []string{"stable-fh" + tracers.FirehoseProtocolVersion, "v" + params.Version + "-fh" + tracers.FirehoseProtocolVersion}
|
||||||
}
|
}
|
||||||
// If architecture specific image builds are requested, build and push them
|
// If architecture specific image builds are requested, build and push them
|
||||||
if *image {
|
if *image {
|
||||||
|
|
|
||||||
|
|
@ -1091,6 +1091,10 @@ func (s *StateDB) mvRecordWritten(object *stateObject) *stateObject {
|
||||||
// existing account with the given address, otherwise it will be silently overwritten.
|
// existing account with the given address, otherwise it will be silently overwritten.
|
||||||
func (s *StateDB) createObject(addr common.Address) *stateObject {
|
func (s *StateDB) createObject(addr common.Address) *stateObject {
|
||||||
obj := newObject(s, addr, nil)
|
obj := newObject(s, addr, nil)
|
||||||
|
if s.logger != nil && s.logger.OnNewAccount != nil {
|
||||||
|
s.logger.OnNewAccount(addr)
|
||||||
|
}
|
||||||
|
|
||||||
s.journal.append(createObjectChange{account: &addr})
|
s.journal.append(createObjectChange{account: &addr})
|
||||||
s.setStateObject(obj)
|
s.setStateObject(obj)
|
||||||
MVWrite(s, blockstm.NewAddressKey(addr))
|
MVWrite(s, blockstm.NewAddressKey(addr))
|
||||||
|
|
|
||||||
|
|
@ -193,6 +193,13 @@ type Hooks struct {
|
||||||
OnCodeChange CodeChangeHook
|
OnCodeChange CodeChangeHook
|
||||||
OnStorageChange StorageChangeHook
|
OnStorageChange StorageChangeHook
|
||||||
OnLog LogHook
|
OnLog LogHook
|
||||||
|
|
||||||
|
// Firehose backward compatibility
|
||||||
|
// This hook exist because some current Firehose supported chains requires it
|
||||||
|
// but this field is going to be deprecated and newer chains will not produced
|
||||||
|
// those events anymore. The hook is registered conditionally based on the
|
||||||
|
// tracer configuration.
|
||||||
|
OnNewAccount func(address common.Address)
|
||||||
}
|
}
|
||||||
|
|
||||||
// BalanceChangeReason is used to indicate the reason for a balance change, useful
|
// BalanceChangeReason is used to indicate the reason for a balance change, useful
|
||||||
|
|
|
||||||
|
|
@ -517,7 +517,22 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64,
|
||||||
snapshot := evm.StateDB.Snapshot()
|
snapshot := evm.StateDB.Snapshot()
|
||||||
if !evm.StateDB.Exist(address) {
|
if !evm.StateDB.Exist(address) {
|
||||||
evm.StateDB.CreateAccount(address)
|
evm.StateDB.CreateAccount(address)
|
||||||
|
} else {
|
||||||
|
// Firehose: In previous versions of the EVM, there was no `evm.StateDB.Exist`
|
||||||
|
// above and the `CreateAccount` was always called. This was leading to
|
||||||
|
// always get a `OnNewAccount` event in the tracer as we were not checking
|
||||||
|
// previous existence of the account.
|
||||||
|
//
|
||||||
|
// With the introduction of the `Exist` method, there is now cases where
|
||||||
|
// `CreateAccount` is not called if it was previously existing.
|
||||||
|
//
|
||||||
|
// To keep the same tracing behavior as before, we call the `OnNewAccount`
|
||||||
|
// manually here if the account was previously existing.
|
||||||
|
if evm.Config.Tracer != nil && evm.Config.Tracer.OnNewAccount != nil {
|
||||||
|
evm.Config.Tracer.OnNewAccount(address)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateContract means that regardless of whether the account previously existed
|
// CreateContract means that regardless of whether the account previously existed
|
||||||
// in the state trie or not, it _now_ becomes created as a _contract_ account.
|
// in the state trie or not, it _now_ becomes created as a _contract_ account.
|
||||||
// This is performed _prior_ to executing the initcode, since the initcode
|
// This is performed _prior_ to executing the initcode, since the initcode
|
||||||
|
|
|
||||||
2798
eth/tracers/firehose.go
Normal file
2798
eth/tracers/firehose.go
Normal file
File diff suppressed because it is too large
Load diff
545
eth/tracers/firehose_test.go
Normal file
545
eth/tracers/firehose_test.go
Normal file
|
|
@ -0,0 +1,545 @@
|
||||||
|
package tracers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"math"
|
||||||
|
"math/big"
|
||||||
|
"os"
|
||||||
|
"reflect"
|
||||||
|
"regexp"
|
||||||
|
"slices"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
"github.com/ethereum/go-ethereum/core/tracing"
|
||||||
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
|
"github.com/ethereum/go-ethereum/core/vm"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
pbeth "github.com/streamingfast/firehose-ethereum/types/pb/sf/ethereum/type/v2"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"golang.org/x/exp/maps"
|
||||||
|
"google.golang.org/protobuf/encoding/protojson"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestFirehoseCallStack_Push(t *testing.T) {
|
||||||
|
type actionRunner func(t *testing.T, s *CallStack)
|
||||||
|
|
||||||
|
push := func(call *pbeth.Call) actionRunner { return func(_ *testing.T, s *CallStack) { s.Push(call) } }
|
||||||
|
pop := func() actionRunner { return func(_ *testing.T, s *CallStack) { s.Pop() } }
|
||||||
|
check := func(r actionRunner) actionRunner { return func(t *testing.T, s *CallStack) { r(t, s) } }
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
actions []actionRunner
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
"push/pop emtpy", []actionRunner{
|
||||||
|
push(&pbeth.Call{}),
|
||||||
|
pop(),
|
||||||
|
check(func(t *testing.T, s *CallStack) {
|
||||||
|
require.Len(t, s.stack, 0)
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"push/push/push", []actionRunner{
|
||||||
|
push(&pbeth.Call{}),
|
||||||
|
push(&pbeth.Call{}),
|
||||||
|
push(&pbeth.Call{}),
|
||||||
|
check(func(t *testing.T, s *CallStack) {
|
||||||
|
require.Len(t, s.stack, 3)
|
||||||
|
|
||||||
|
require.Equal(t, 1, int(s.stack[0].Index))
|
||||||
|
require.Equal(t, 0, int(s.stack[0].ParentIndex))
|
||||||
|
|
||||||
|
require.Equal(t, 2, int(s.stack[1].Index))
|
||||||
|
require.Equal(t, 1, int(s.stack[1].ParentIndex))
|
||||||
|
|
||||||
|
require.Equal(t, 3, int(s.stack[2].Index))
|
||||||
|
require.Equal(t, 2, int(s.stack[2].ParentIndex))
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
s := NewCallStack()
|
||||||
|
|
||||||
|
for _, action := range tt.actions {
|
||||||
|
action(t, s)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_validateKnownTransactionTypes(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
txType byte
|
||||||
|
knownType bool
|
||||||
|
want error
|
||||||
|
}{
|
||||||
|
{"legacy", 0, true, nil},
|
||||||
|
{"access_list", 1, true, nil},
|
||||||
|
{"inexistant", 255, false, nil},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
err := validateFirehoseKnownTransactionType(tt.txType, tt.knownType)
|
||||||
|
if tt.want == nil && err != nil {
|
||||||
|
t.Fatalf("Transaction of type %d expected to validate properly but received error %q", tt.txType, err)
|
||||||
|
} else if tt.want != nil && err == nil {
|
||||||
|
t.Fatalf("Transaction of type %d expected to validate improperly but generated no error", tt.txType)
|
||||||
|
} else if tt.want != nil && err != nil && tt.want.Error() != err.Error() {
|
||||||
|
t.Fatalf("Transaction of type %d expected to validate improperly but generated error %q does not match expected error %q", tt.txType, err, tt.want)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var ignorePbFieldNames = map[string]bool{
|
||||||
|
"Hash": true,
|
||||||
|
"TotalDifficulty": true,
|
||||||
|
"state": true,
|
||||||
|
"unknownFields": true,
|
||||||
|
"sizeCache": true,
|
||||||
|
|
||||||
|
// This was a Polygon specific field that existed for a while and has since been
|
||||||
|
// removed. It can be safely ignored in all protocols now.
|
||||||
|
"TxDependency": true,
|
||||||
|
}
|
||||||
|
|
||||||
|
var pbFieldNameToGethMapping = map[string]string{
|
||||||
|
"WithdrawalsRoot": "WithdrawalsHash",
|
||||||
|
"MixHash": "MixDigest",
|
||||||
|
"BaseFeePerGas": "BaseFee",
|
||||||
|
"StateRoot": "Root",
|
||||||
|
"ExtraData": "Extra",
|
||||||
|
"Timestamp": "Time",
|
||||||
|
"ReceiptRoot": "ReceiptHash",
|
||||||
|
"TransactionsRoot": "TxHash",
|
||||||
|
"LogsBloom": "Bloom",
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
pbHeaderType = reflect.TypeFor[pbeth.BlockHeader]()
|
||||||
|
gethHeaderType = reflect.TypeFor[types.Header]()
|
||||||
|
)
|
||||||
|
|
||||||
|
func Test_TypesHeader_AllConsensusFieldsAreKnown(t *testing.T) {
|
||||||
|
// This exact hash varies from protocol to protocol and also sometimes from one version to the other.
|
||||||
|
// When adding support for a new hard-fork that adds new block header fields, it's normal that this value
|
||||||
|
// changes. If you are sure the two struct are the same, then you can update the expected hash below
|
||||||
|
// to the new value.
|
||||||
|
expectedHash := common.HexToHash("4ced4916132bbf6a7819a310bbac4abf354062a00efc980ea4f0bab406546ac5")
|
||||||
|
|
||||||
|
gethHeaderValue := reflect.New(gethHeaderType)
|
||||||
|
fillAllFieldsWithNonEmptyValues(t, gethHeaderValue, reflect.VisibleFields(gethHeaderType))
|
||||||
|
gethHeader := gethHeaderValue.Interface().(*types.Header)
|
||||||
|
|
||||||
|
// If you hit this assertion, it means that the fields `types.Header` of go-ethereum differs now
|
||||||
|
// versus last time this test was edited.
|
||||||
|
//
|
||||||
|
// It's important to understand that in Ethereum Block Header (e.g. `*types.Header`), the `Hash` is
|
||||||
|
// actually a computed value based on the other fields in the struct, so if you change any field,
|
||||||
|
// the hash will change also.
|
||||||
|
//
|
||||||
|
// On hard-fork, it happens that new fields are added, this test serves as a way to "detect" in code
|
||||||
|
// that the expected fields of `types.Header` changed
|
||||||
|
require.Equal(t, expectedHash, gethHeader.Hash(),
|
||||||
|
"Geth Header Hash mismatch, got %q but expecting %q on *types.Header:\n\nGeth Header (from fillNonDefault(new(*types.Header)))\n%s",
|
||||||
|
gethHeader.Hash().Hex(),
|
||||||
|
expectedHash,
|
||||||
|
asIndentedJSON(t, gethHeader),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_FirehoseAndGethHeaderFieldMatches(t *testing.T) {
|
||||||
|
pbFields := filter(reflect.VisibleFields(pbHeaderType), func(f reflect.StructField) bool {
|
||||||
|
return !ignorePbFieldNames[f.Name]
|
||||||
|
})
|
||||||
|
|
||||||
|
gethFields := reflect.VisibleFields(gethHeaderType)
|
||||||
|
|
||||||
|
pbFieldCount := len(pbFields)
|
||||||
|
gethFieldCount := len(gethFields)
|
||||||
|
|
||||||
|
pbFieldNames := extractStructFieldNames(pbFields)
|
||||||
|
gethFieldNames := extractStructFieldNames(gethFields)
|
||||||
|
|
||||||
|
// If you reach this assertion, it means that the fields count in the protobuf and go-ethereum are different.
|
||||||
|
// It is super important that you properly update the mapping from pbeth.BlockHeader to go-ethereum/core/types.Header
|
||||||
|
// that is done in `codecHeaderToGethHeader` function in `executor/provider_statedb.go`.
|
||||||
|
require.Equal(
|
||||||
|
t,
|
||||||
|
pbFieldCount,
|
||||||
|
gethFieldCount,
|
||||||
|
fieldsCountMismatchMessage(t, pbFieldNames, gethFieldNames))
|
||||||
|
|
||||||
|
for pbFieldName := range pbFieldNames {
|
||||||
|
pbFieldRenamedName, found := pbFieldNameToGethMapping[pbFieldName]
|
||||||
|
if !found {
|
||||||
|
pbFieldRenamedName = pbFieldName
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Contains(t, gethFieldNames, pbFieldRenamedName, "pbField.Name=%q (original %q) not found in gethFieldNames", pbFieldRenamedName, pbFieldName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var endsWithUnknownConstant = regexp.MustCompile(`.*\(\d+\)$`)
|
||||||
|
|
||||||
|
func TestFirehose_BalanceChangeAllMappedCorrectly(t *testing.T) {
|
||||||
|
|
||||||
|
for i := 0; i <= math.MaxUint8; i++ {
|
||||||
|
tracingReason := tracing.BalanceChangeReason(i)
|
||||||
|
if tracingReason == tracing.BalanceChangeUnspecified || tracingReason == tracing.BalanceChangeRevert {
|
||||||
|
// Should never happen in Firehose tracer, only if tracer is wrapped with [tracing.WrapWithJournal]
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Here, we leverage the fact that the `tracing.BalanceChangeReason` Stringer will render the String
|
||||||
|
// as `<EnumName>(<indexValue>)` if the index is not mapped to a constant in the enum. If this happens,
|
||||||
|
// we know it's not a defined constant in the Geth tracing package.
|
||||||
|
//
|
||||||
|
// Otherwise, it's defined and we should have some mapping for it in the `balanceChangeReasonFromChain` function.
|
||||||
|
//
|
||||||
|
// There is a loophole of this technique and it's that if the code generator defining the enum Stringer is
|
||||||
|
// not run, we will think it's an undefined constant and will miss it.
|
||||||
|
if !endsWithUnknownConstant.MatchString(tracingReason.String()) {
|
||||||
|
require.NotPanics(t, func() {
|
||||||
|
balanceChangeReasonFromChain(tracingReason)
|
||||||
|
}, "BalanceChangeReason panicked for value %v", tracingReason)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFirehose_GasChangeAllMappedCorrectly(t *testing.T) {
|
||||||
|
for i := 0; i <= math.MaxUint8; i++ {
|
||||||
|
tracingReason := tracing.GasChangeReason(i)
|
||||||
|
|
||||||
|
// Those are ignored and never mapped
|
||||||
|
if tracingReason == tracing.GasChangeUnspecified || tracingReason == tracing.GasChangeCallOpCode || tracingReason == tracing.GasChangeIgnored {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Here, we leverage the fact that the `tracing.GasChangeReason` Stringer will render the String
|
||||||
|
// as `<EnumName>(<indexValue>)` if the index is not mapped to a constant in the enum. If this happens,
|
||||||
|
// we know it's not a defined constant in the Geth tracing package.
|
||||||
|
//
|
||||||
|
// Otherwise, it's defined and we should have some mapping for it in the `gasChangeReasonFromChain` function.
|
||||||
|
//
|
||||||
|
// There is a loophole of this technique and it's that if the code generator defining the enum Stringer is
|
||||||
|
// not run, we will think it's an undefined constant and will miss it.
|
||||||
|
if !endsWithUnknownConstant.MatchString(tracingReason.String()) {
|
||||||
|
require.NotPanics(t, func() {
|
||||||
|
gasChangeReasonFromChain(tracingReason)
|
||||||
|
}, "GasChangeReason panicked for value %v", tracingReason)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func fillAllFieldsWithNonEmptyValues(t *testing.T, structValue reflect.Value, fields []reflect.StructField) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
for _, field := range fields {
|
||||||
|
fieldValue := structValue.Elem().FieldByName(field.Name)
|
||||||
|
require.True(t, fieldValue.IsValid(), "field %q not found", field.Name)
|
||||||
|
|
||||||
|
switch fieldValue.Interface().(type) {
|
||||||
|
case []byte:
|
||||||
|
fieldValue.Set(reflect.ValueOf([]byte{1}))
|
||||||
|
case uint64:
|
||||||
|
fieldValue.Set(reflect.ValueOf(uint64(1)))
|
||||||
|
case *uint64:
|
||||||
|
var mockValue uint64 = 1
|
||||||
|
fieldValue.Set(reflect.ValueOf(&mockValue))
|
||||||
|
case *common.Hash:
|
||||||
|
var mockValue common.Hash = common.HexToHash("0x01")
|
||||||
|
fieldValue.Set(reflect.ValueOf(&mockValue))
|
||||||
|
case common.Hash:
|
||||||
|
fieldValue.Set(reflect.ValueOf(common.HexToHash("0x01")))
|
||||||
|
case common.Address:
|
||||||
|
fieldValue.Set(reflect.ValueOf(common.HexToAddress("0x01")))
|
||||||
|
case types.Bloom:
|
||||||
|
fieldValue.Set(reflect.ValueOf(types.BytesToBloom([]byte{1})))
|
||||||
|
case types.BlockNonce:
|
||||||
|
fieldValue.Set(reflect.ValueOf(types.EncodeNonce(1)))
|
||||||
|
case *big.Int:
|
||||||
|
fieldValue.Set(reflect.ValueOf(big.NewInt(1)))
|
||||||
|
case *pbeth.BigInt:
|
||||||
|
fieldValue.Set(reflect.ValueOf(&pbeth.BigInt{Bytes: []byte{1}}))
|
||||||
|
case *timestamppb.Timestamp:
|
||||||
|
fieldValue.Set(reflect.ValueOf(×tamppb.Timestamp{Seconds: 1}))
|
||||||
|
default:
|
||||||
|
// If you reach this panic in test, simply add a case above with a sane non-default
|
||||||
|
// value for the type in question.
|
||||||
|
t.Fatalf("unsupported type %T", fieldValue.Interface())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func fieldsCountMismatchMessage(t *testing.T, pbFieldNames map[string]bool, gethFieldNames map[string]bool) string {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
pbRemappedFieldNames := make(map[string]bool, len(pbFieldNames))
|
||||||
|
for pbFieldName := range pbFieldNames {
|
||||||
|
pbFieldRenamedName, found := pbFieldNameToGethMapping[pbFieldName]
|
||||||
|
if !found {
|
||||||
|
pbFieldRenamedName = pbFieldName
|
||||||
|
}
|
||||||
|
|
||||||
|
pbRemappedFieldNames[pbFieldRenamedName] = true
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"Field count mistmatch between `pbeth.BlockHeader` (has %d fields) and `*types.Header` (has %d fields)\n\n"+
|
||||||
|
"Fields in `pbeth.Blockheader`:\n%s\n\n"+
|
||||||
|
"Fields in `*types.Header`:\n%s\n\n"+
|
||||||
|
"Missing in `pbeth.BlockHeader`:\n%s\n\n"+
|
||||||
|
"Missing in `*types.Header`:\n%s",
|
||||||
|
len(pbRemappedFieldNames),
|
||||||
|
len(gethFieldNames),
|
||||||
|
asIndentedJSON(t, maps.Keys(pbRemappedFieldNames)),
|
||||||
|
asIndentedJSON(t, maps.Keys(gethFieldNames)),
|
||||||
|
asIndentedJSON(t, missingInSet(gethFieldNames, pbRemappedFieldNames)),
|
||||||
|
asIndentedJSON(t, missingInSet(pbRemappedFieldNames, gethFieldNames)),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func asIndentedJSON(t *testing.T, v any) string {
|
||||||
|
t.Helper()
|
||||||
|
out, err := json.MarshalIndent(v, "", " ")
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
return string(out)
|
||||||
|
}
|
||||||
|
|
||||||
|
func missingInSet(a, b map[string]bool) []string {
|
||||||
|
missing := make([]string, 0)
|
||||||
|
for name := range a {
|
||||||
|
if !b[name] {
|
||||||
|
missing = append(missing, name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return missing
|
||||||
|
}
|
||||||
|
|
||||||
|
func extractStructFieldNames(fields []reflect.StructField) map[string]bool {
|
||||||
|
result := make(map[string]bool, len(fields))
|
||||||
|
for _, field := range fields {
|
||||||
|
result[field.Name] = true
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func filter[S ~[]T, T any](s S, f func(T) bool) (out S) {
|
||||||
|
out = make(S, 0, len(s)/4)
|
||||||
|
for i, v := range s {
|
||||||
|
if f(v) {
|
||||||
|
out = append(out, s[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFirehose_reorderIsolatedTransactionsAndOrdinals(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
populate func(t *Firehose)
|
||||||
|
expectedBlockFile string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "empty",
|
||||||
|
populate: func(t *Firehose) {
|
||||||
|
t.OnBlockStart(blockEvent(1))
|
||||||
|
|
||||||
|
// Simulated GetTxTracer being called
|
||||||
|
t.blockReorderOrdinalOnce.Do(func() {
|
||||||
|
t.blockReorderOrdinal = true
|
||||||
|
t.blockReorderOrdinalSnapshot = t.blockOrdinal.value
|
||||||
|
})
|
||||||
|
|
||||||
|
t.blockOrdinal.Reset()
|
||||||
|
t.onTxStart(txEvent(), hex2Hash("CC"), from, to)
|
||||||
|
t.OnCallEnter(0, byte(vm.CALL), from, to, nil, 0, nil)
|
||||||
|
t.OnBalanceChange(empty, b(1), b(2), 0)
|
||||||
|
t.OnCallExit(0, nil, 0, nil, false)
|
||||||
|
t.OnTxEnd(txReceiptEvent(2), nil)
|
||||||
|
|
||||||
|
t.blockOrdinal.Reset()
|
||||||
|
t.onTxStart(txEvent(), hex2Hash("AA"), from, to)
|
||||||
|
t.OnCallEnter(0, byte(vm.CALL), from, to, nil, 0, nil)
|
||||||
|
t.OnBalanceChange(empty, b(1), b(2), 0)
|
||||||
|
t.OnCallExit(0, nil, 0, nil, false)
|
||||||
|
t.OnTxEnd(txReceiptEvent(0), nil)
|
||||||
|
|
||||||
|
t.blockOrdinal.Reset()
|
||||||
|
t.onTxStart(txEvent(), hex2Hash("BB"), from, to)
|
||||||
|
t.OnCallEnter(0, byte(vm.CALL), from, to, nil, 0, nil)
|
||||||
|
t.OnBalanceChange(empty, b(1), b(2), 0)
|
||||||
|
t.OnCallExit(0, nil, 0, nil, false)
|
||||||
|
t.OnTxEnd(txReceiptEvent(1), nil)
|
||||||
|
},
|
||||||
|
expectedBlockFile: "testdata/firehose/reorder-ordinals-empty.golden.json",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
f := NewFirehose(&FirehoseConfig{
|
||||||
|
ApplyBackwardCompatibility: ptr(false),
|
||||||
|
})
|
||||||
|
f.OnBlockchainInit(params.AllEthashProtocolChanges)
|
||||||
|
|
||||||
|
tt.populate(f)
|
||||||
|
|
||||||
|
f.reorderIsolatedTransactionsAndOrdinals()
|
||||||
|
|
||||||
|
goldenUpdate := os.Getenv("GOLDEN_UPDATE") == "true"
|
||||||
|
goldenPath := tt.expectedBlockFile
|
||||||
|
|
||||||
|
if !goldenUpdate && !fileExits(t, goldenPath) {
|
||||||
|
t.Fatalf("the golden file %q does not exist, re-run with 'GOLDEN_UPDATE=true go test ./... -run %q' to generate the intial version", goldenPath, t.Name())
|
||||||
|
}
|
||||||
|
|
||||||
|
content, err := protojson.MarshalOptions{Indent: " "}.Marshal(f.block)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
if goldenUpdate {
|
||||||
|
require.NoError(t, os.WriteFile(goldenPath, content, os.ModePerm))
|
||||||
|
}
|
||||||
|
|
||||||
|
expected, err := os.ReadFile(goldenPath)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
expectedBlock := &pbeth.Block{}
|
||||||
|
protojson.Unmarshal(expected, expectedBlock)
|
||||||
|
|
||||||
|
if !proto.Equal(expectedBlock, f.block) {
|
||||||
|
assert.Equal(t, expectedBlock, f.block, "Run 'GOLDEN_UPDATE=true go test ./... -run %q' to update golden file", t.Name())
|
||||||
|
}
|
||||||
|
|
||||||
|
seenOrdinals := make(map[uint64]int)
|
||||||
|
|
||||||
|
walkChanges(f.block.BalanceChanges, seenOrdinals)
|
||||||
|
walkChanges(f.block.CodeChanges, seenOrdinals)
|
||||||
|
walkCalls(f.block.SystemCalls, seenOrdinals)
|
||||||
|
|
||||||
|
for _, trx := range f.block.TransactionTraces {
|
||||||
|
seenOrdinals[trx.BeginOrdinal] = seenOrdinals[trx.BeginOrdinal] + 1
|
||||||
|
seenOrdinals[trx.EndOrdinal] = seenOrdinals[trx.EndOrdinal] + 1
|
||||||
|
walkCalls(trx.Calls, seenOrdinals)
|
||||||
|
}
|
||||||
|
|
||||||
|
// No ordinal should be seen more than once
|
||||||
|
for ordinal, count := range seenOrdinals {
|
||||||
|
assert.Equal(t, 1, count, "Ordinal %d seen %d times", ordinal, count)
|
||||||
|
}
|
||||||
|
|
||||||
|
ordinals := maps.Keys(seenOrdinals)
|
||||||
|
slices.Sort(ordinals)
|
||||||
|
|
||||||
|
// All ordinals should be in strictly increasing order
|
||||||
|
prev := -1
|
||||||
|
for _, ordinal := range ordinals {
|
||||||
|
if prev != -1 {
|
||||||
|
assert.Equal(t, prev+1, int(ordinal), "Ordinal %d is not in sequence", ordinal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func walkCalls(calls []*pbeth.Call, ordinals map[uint64]int) {
|
||||||
|
for _, call := range calls {
|
||||||
|
walkCall(call, ordinals)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func walkCall(call *pbeth.Call, ordinals map[uint64]int) {
|
||||||
|
ordinals[call.BeginOrdinal] = ordinals[call.BeginOrdinal] + 1
|
||||||
|
ordinals[call.EndOrdinal] = ordinals[call.EndOrdinal] + 1
|
||||||
|
|
||||||
|
walkChanges(call.BalanceChanges, ordinals)
|
||||||
|
walkChanges(call.CodeChanges, ordinals)
|
||||||
|
walkChanges(call.Logs, ordinals)
|
||||||
|
walkChanges(call.StorageChanges, ordinals)
|
||||||
|
walkChanges(call.NonceChanges, ordinals)
|
||||||
|
walkChanges(call.GasChanges, ordinals)
|
||||||
|
}
|
||||||
|
|
||||||
|
func walkChanges[T any](changes []T, ordinals map[uint64]int) {
|
||||||
|
for _, change := range changes {
|
||||||
|
var x any = change
|
||||||
|
if v, ok := x.(interface{ GetOrdinal() uint64 }); ok {
|
||||||
|
ordinals[v.GetOrdinal()] = ordinals[v.GetOrdinal()] + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var b = big.NewInt
|
||||||
|
var empty, from, to = common.HexToAddress("00"), common.HexToAddress("01"), common.HexToAddress("02")
|
||||||
|
var hex2Hash = common.HexToHash
|
||||||
|
|
||||||
|
func fileExits(t *testing.T, path string) bool {
|
||||||
|
t.Helper()
|
||||||
|
stat, err := os.Stat(path)
|
||||||
|
return err == nil && !stat.IsDir()
|
||||||
|
}
|
||||||
|
|
||||||
|
func txEvent() *types.Transaction {
|
||||||
|
return types.NewTx(&types.LegacyTx{
|
||||||
|
Nonce: 0,
|
||||||
|
GasPrice: big.NewInt(1),
|
||||||
|
Gas: 1,
|
||||||
|
To: &to,
|
||||||
|
Value: big.NewInt(1),
|
||||||
|
Data: nil,
|
||||||
|
V: big.NewInt(1),
|
||||||
|
R: big.NewInt(1),
|
||||||
|
S: big.NewInt(1),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func txReceiptEvent(txIndex uint) *types.Receipt {
|
||||||
|
return &types.Receipt{
|
||||||
|
Status: 1,
|
||||||
|
TransactionIndex: txIndex,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func blockEvent(height uint64) tracing.BlockEvent {
|
||||||
|
return tracing.BlockEvent{
|
||||||
|
Block: types.NewBlock(&types.Header{
|
||||||
|
Number: big.NewInt(int64(height)),
|
||||||
|
}, nil, nil, nil),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemory_GetPtr(t *testing.T) {
|
||||||
|
type args struct {
|
||||||
|
offset int64
|
||||||
|
size int64
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
m Memory
|
||||||
|
args args
|
||||||
|
want []byte
|
||||||
|
}{
|
||||||
|
{"memory is just a bit too small", Memory([]byte{1, 2, 3}), args{0, 4}, []byte{1, 2, 3, 0}},
|
||||||
|
{"memory is flushed with request", Memory([]byte{1, 2, 3, 4}), args{0, 4}, []byte{1, 2, 3, 4}},
|
||||||
|
{"memory is just a bit too big", Memory([]byte{1, 2, 3, 4, 5}), args{0, 4}, []byte{1, 2, 3, 4}},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
assert.Equal(t, tt.want, tt.m.GetPtr(tt.args.offset, tt.args.size))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
97
eth/tracers/internal/tracetest/firehose/blockchain_test.go
Normal file
97
eth/tracers/internal/tracetest/firehose/blockchain_test.go
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
package firehose_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
"github.com/ethereum/go-ethereum/core"
|
||||||
|
"github.com/ethereum/go-ethereum/core/rawdb"
|
||||||
|
"github.com/ethereum/go-ethereum/core/state"
|
||||||
|
"github.com/ethereum/go-ethereum/core/tracing"
|
||||||
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
|
"github.com/ethereum/go-ethereum/core/vm"
|
||||||
|
"github.com/ethereum/go-ethereum/rlp"
|
||||||
|
"github.com/ethereum/go-ethereum/tests"
|
||||||
|
"github.com/ethereum/go-ethereum/trie"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func runPrestateBlock(t *testing.T, prestatePath string, hooks *tracing.Hooks) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
prestate := readPrestateData(t, prestatePath)
|
||||||
|
|
||||||
|
tx := new(types.Transaction)
|
||||||
|
require.NoError(t, rlp.DecodeBytes(common.FromHex(prestate.Input), tx))
|
||||||
|
|
||||||
|
context := prestate.Context.toBlockContext(prestate.Genesis)
|
||||||
|
|
||||||
|
testState := tests.MakePreState(rawdb.NewMemoryDatabase(), prestate.Genesis.Alloc, false, rawdb.HashScheme)
|
||||||
|
defer testState.Close()
|
||||||
|
|
||||||
|
state.NewHookedState(testState.StateDB, hooks)
|
||||||
|
|
||||||
|
// testState.StateDB.SetLogger(hooks)
|
||||||
|
testState.StateDB.SetTxContext(tx.Hash(), 0)
|
||||||
|
|
||||||
|
block := types.NewBlock(&types.Header{
|
||||||
|
ParentHash: prestate.Genesis.ToBlock().Hash(),
|
||||||
|
Number: context.BlockNumber,
|
||||||
|
Difficulty: context.Difficulty,
|
||||||
|
Coinbase: context.Coinbase,
|
||||||
|
Time: context.Time,
|
||||||
|
GasLimit: context.GasLimit,
|
||||||
|
BaseFee: context.BaseFee,
|
||||||
|
ParentBeaconRoot: ptr(common.Hash{}),
|
||||||
|
}, &types.Body{
|
||||||
|
Transactions: []*types.Transaction{tx},
|
||||||
|
}, nil, trie.NewStackTrie(nil))
|
||||||
|
|
||||||
|
if hooks.OnBlockchainInit != nil {
|
||||||
|
hooks.OnBlockchainInit(prestate.Genesis.Config)
|
||||||
|
}
|
||||||
|
|
||||||
|
if hooks.OnBlockStart != nil {
|
||||||
|
hooks.OnBlockStart(tracing.BlockEvent{
|
||||||
|
Block: block,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
header := block.Header()
|
||||||
|
msg, err := core.TransactionToMessage(tx, types.MakeSigner(prestate.Genesis.Config, header.Number, header.Time), header.BaseFee)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
blockContext := core.NewEVMBlockContext(block.Header(), prestate, &context.Coinbase)
|
||||||
|
vmenv := vm.NewEVM(blockContext, state.NewHookedState(testState.StateDB, hooks), prestate.Genesis.Config, vm.Config{Tracer: hooks})
|
||||||
|
|
||||||
|
usedGas := uint64(0)
|
||||||
|
_, err = core.ApplyTransactionWithEVM(
|
||||||
|
msg,
|
||||||
|
new(core.GasPool).AddGas(block.GasLimit()),
|
||||||
|
testState.StateDB,
|
||||||
|
header.Number,
|
||||||
|
header.Hash(),
|
||||||
|
tx,
|
||||||
|
&usedGas,
|
||||||
|
vmenv,
|
||||||
|
)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
if hooks.OnBlockEnd != nil {
|
||||||
|
hooks.OnBlockEnd(nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ core.Validator = (*ignoreValidateStateValidator)(nil)
|
||||||
|
|
||||||
|
type ignoreValidateStateValidator struct {
|
||||||
|
core.Validator
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v ignoreValidateStateValidator) ValidateBody(block *types.Block) error {
|
||||||
|
return v.Validator.ValidateBody(block)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v ignoreValidateStateValidator) ValidateState(block *types.Block, state *state.StateDB, res *core.ProcessResult, stateless bool) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
209
eth/tracers/internal/tracetest/firehose/firehose_test.go
Normal file
209
eth/tracers/internal/tracetest/firehose/firehose_test.go
Normal file
|
|
@ -0,0 +1,209 @@
|
||||||
|
package firehose_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"math/big"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
"github.com/ethereum/go-ethereum/consensus"
|
||||||
|
"github.com/ethereum/go-ethereum/consensus/beacon"
|
||||||
|
"github.com/ethereum/go-ethereum/consensus/ethash"
|
||||||
|
"github.com/ethereum/go-ethereum/core"
|
||||||
|
"github.com/ethereum/go-ethereum/core/rawdb"
|
||||||
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
|
"github.com/ethereum/go-ethereum/core/vm"
|
||||||
|
"github.com/ethereum/go-ethereum/core/vm/program"
|
||||||
|
"github.com/ethereum/go-ethereum/crypto"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
"github.com/holiman/uint256"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
type tracingModel string
|
||||||
|
|
||||||
|
const (
|
||||||
|
tracingModelFirehose2_3 tracingModel = "fh2.3"
|
||||||
|
tracingModelFirehose3_0 tracingModel = "fh3.0"
|
||||||
|
)
|
||||||
|
|
||||||
|
var tracingModels = []tracingModel{tracingModelFirehose2_3, tracingModelFirehose3_0}
|
||||||
|
|
||||||
|
func TestFirehosePrestate(t *testing.T) {
|
||||||
|
testFolders := []string{
|
||||||
|
"./testdata/TestFirehosePrestate/keccak256_too_few_memory_bytes_get_padded",
|
||||||
|
"./testdata/TestFirehosePrestate/keccak256_wrong_diff",
|
||||||
|
"./testdata/TestFirehosePrestate/suicide_double_withdraw",
|
||||||
|
"./testdata/TestFirehosePrestate/extra_account_creations",
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, folder := range testFolders {
|
||||||
|
name := filepath.Base(folder)
|
||||||
|
|
||||||
|
for _, model := range tracingModels {
|
||||||
|
t.Run(string(model)+"/"+name, func(t *testing.T) {
|
||||||
|
tracer, tracingHooks, onClose := newFirehoseTestTracer(t, model)
|
||||||
|
defer onClose()
|
||||||
|
|
||||||
|
runPrestateBlock(t, filepath.Join(folder, "prestate.json"), tracingHooks)
|
||||||
|
|
||||||
|
genesisLine, blockLines, unknownLines := readTracerFirehoseLines(t, tracer)
|
||||||
|
require.Len(t, unknownLines, 0, "Lines:\n%s", strings.Join(slicesMap(unknownLines, func(l unknownLine) string { return "- '" + string(l) + "'" }), "\n"))
|
||||||
|
require.NotNil(t, genesisLine)
|
||||||
|
blockLines.assertOnlyBlockEquals(t, filepath.Join(folder, string(model)), 1)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
func TestFirehose_EIP7702(t *testing.T) {
|
||||||
|
// Copied from ./core/blockchain_test.go#L4180 (TestEIP7702)
|
||||||
|
|
||||||
|
var (
|
||||||
|
config = *params.MergedTestChainConfig
|
||||||
|
signer = types.LatestSigner(&config)
|
||||||
|
engine = beacon.New(ethash.NewFaker())
|
||||||
|
key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
||||||
|
key2, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a")
|
||||||
|
addr1 = crypto.PubkeyToAddress(key1.PublicKey)
|
||||||
|
addr2 = crypto.PubkeyToAddress(key2.PublicKey)
|
||||||
|
aa = common.HexToAddress("0x000000000000000000000000000000000000aaaa")
|
||||||
|
bb = common.HexToAddress("0x000000000000000000000000000000000000bbbb")
|
||||||
|
cc = common.HexToAddress("0x000000000000000000000000000000000000cccc")
|
||||||
|
funds = new(big.Int).Mul(common.Big1, big.NewInt(params.Ether))
|
||||||
|
)
|
||||||
|
|
||||||
|
gspec := &core.Genesis{
|
||||||
|
Config: &config,
|
||||||
|
Alloc: types.GenesisAlloc{
|
||||||
|
addr1: {Balance: funds},
|
||||||
|
addr2: {Balance: funds},
|
||||||
|
aa: { // The address 0xAAAA calls into addr2
|
||||||
|
Code: program.New().Call(nil, addr2, 1, 0, 0, 0, 0).Bytes(),
|
||||||
|
Nonce: 0,
|
||||||
|
Balance: big.NewInt(0),
|
||||||
|
},
|
||||||
|
bb: { // The address 0xBBBB sstores 42 into slot 42.
|
||||||
|
Code: program.New().Sstore(0x42, 0x42).Bytes(),
|
||||||
|
Nonce: 0,
|
||||||
|
Balance: big.NewInt(0),
|
||||||
|
},
|
||||||
|
cc: { // The address 0xCCCC sstores 42 into slot 42.
|
||||||
|
Code: program.New().Sstore(0x42, 0x42).Bytes(),
|
||||||
|
Nonce: 0,
|
||||||
|
Balance: big.NewInt(0),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sign authorization tuples.
|
||||||
|
// The way the auths are combined, it becomes
|
||||||
|
// 1. tx -> addr1 which is delegated to 0xaaaa
|
||||||
|
// 2. addr1:0xaaaa calls into addr2:0xbbbb
|
||||||
|
// 3. addr2:0xbbbb writes to storage
|
||||||
|
auth1, _ := types.SignSetCode(key1, types.SetCodeAuthorization{
|
||||||
|
ChainID: *uint256.MustFromBig(gspec.Config.ChainID),
|
||||||
|
Address: aa,
|
||||||
|
Nonce: 1,
|
||||||
|
})
|
||||||
|
auth2OverwrittenLaterInList, _ := types.SignSetCode(key2, types.SetCodeAuthorization{
|
||||||
|
Address: cc,
|
||||||
|
Nonce: 0,
|
||||||
|
})
|
||||||
|
auth3InvalidAuthority := auth2OverwrittenLaterInList
|
||||||
|
auth3InvalidAuthority.V = 4
|
||||||
|
auth4, _ := types.SignSetCode(key2, types.SetCodeAuthorization{
|
||||||
|
Address: bb,
|
||||||
|
Nonce: 1,
|
||||||
|
})
|
||||||
|
auth5InvalidNonce, _ := types.SignSetCode(key2, types.SetCodeAuthorization{
|
||||||
|
Address: bb,
|
||||||
|
Nonce: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
auth1Reset, _ := types.SignSetCode(key1, types.SetCodeAuthorization{
|
||||||
|
ChainID: *uint256.MustFromBig(gspec.Config.ChainID),
|
||||||
|
Address: common.Address{},
|
||||||
|
Nonce: 4,
|
||||||
|
})
|
||||||
|
|
||||||
|
_, blocks, _ := core.GenerateChainWithGenesis(gspec, engine, 3, func(i int, b *core.BlockGen) {
|
||||||
|
b.SetCoinbase(aa)
|
||||||
|
|
||||||
|
if i == 0 {
|
||||||
|
txdata := &types.SetCodeTx{
|
||||||
|
ChainID: uint256.MustFromBig(gspec.Config.ChainID),
|
||||||
|
Nonce: 0,
|
||||||
|
To: addr1,
|
||||||
|
Gas: 500000,
|
||||||
|
GasFeeCap: uint256.MustFromBig(newGwei(5)),
|
||||||
|
GasTipCap: uint256.NewInt(2),
|
||||||
|
AuthList: []types.SetCodeAuthorization{auth1, auth2OverwrittenLaterInList, auth3InvalidAuthority, auth4, auth5InvalidNonce},
|
||||||
|
}
|
||||||
|
tx := types.MustSignNewTx(key1, signer, txdata)
|
||||||
|
b.AddTx(tx)
|
||||||
|
} else if i == 1 {
|
||||||
|
txdata := &types.LegacyTx{
|
||||||
|
Nonce: 2,
|
||||||
|
To: &addr1,
|
||||||
|
Value: big.NewInt(0),
|
||||||
|
Gas: 500000,
|
||||||
|
GasPrice: newGwei(500),
|
||||||
|
}
|
||||||
|
tx := types.MustSignNewTx(key1, signer, txdata)
|
||||||
|
b.AddTx(tx)
|
||||||
|
} else if i == 2 {
|
||||||
|
txdata := &types.SetCodeTx{
|
||||||
|
ChainID: uint256.MustFromBig(gspec.Config.ChainID),
|
||||||
|
Nonce: 3,
|
||||||
|
To: addr1,
|
||||||
|
Gas: 500000,
|
||||||
|
GasFeeCap: uint256.MustFromBig(newGwei(5)),
|
||||||
|
GasTipCap: uint256.NewInt(2),
|
||||||
|
AuthList: []types.SetCodeAuthorization{auth1Reset},
|
||||||
|
}
|
||||||
|
tx := types.MustSignNewTx(key1, signer, txdata)
|
||||||
|
b.AddTx(tx)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
testBlockTracesCorrectly(t, gspec, engine, blocks, "TestEIP7702")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFirehose_SystemCalls(t *testing.T) {
|
||||||
|
gspec := &core.Genesis{
|
||||||
|
Config: params.MergedTestChainConfig,
|
||||||
|
}
|
||||||
|
|
||||||
|
engine := beacon.New(ethash.NewFaker())
|
||||||
|
_, blocks, _ := core.GenerateChainWithGenesis(gspec, engine, 1, func(i int, b *core.BlockGen) {})
|
||||||
|
|
||||||
|
testBlockTracesCorrectly(t, gspec, engine, blocks, "TestSystemCalls")
|
||||||
|
}
|
||||||
|
|
||||||
|
func testBlockTracesCorrectly(t *testing.T, genesisSpec *core.Genesis, engine consensus.Engine, blocks []*types.Block, goldenDir string) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
for _, model := range tracingModels {
|
||||||
|
t.Run(string(model), func(t *testing.T) {
|
||||||
|
tracer, tracingHooks, onClose := newFirehoseTestTracer(t, model)
|
||||||
|
defer onClose()
|
||||||
|
|
||||||
|
chain, err := core.NewBlockChain(rawdb.NewMemoryDatabase(), nil, genesisSpec, nil, engine, vm.Config{Tracer: tracingHooks}, nil)
|
||||||
|
require.NoError(t, err, "failed to create tester chain")
|
||||||
|
|
||||||
|
chain.SetBlockValidatorAndProcessorForTesting(
|
||||||
|
ignoreValidateStateValidator{core.NewBlockValidator(genesisSpec.Config, chain)},
|
||||||
|
core.NewStateProcessor(genesisSpec.Config, chain.HeaderChain()),
|
||||||
|
)
|
||||||
|
|
||||||
|
defer chain.Stop()
|
||||||
|
n, err := chain.InsertChain(blocks)
|
||||||
|
require.NoError(t, err, "failed to insert chain block %d", n)
|
||||||
|
|
||||||
|
assertBlockEquals(t, tracer, filepath.Join("testdata", goldenDir, string(model)), len(blocks))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,261 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"encoding/hex"
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"math/big"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum"
|
||||||
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
"github.com/ethereum/go-ethereum/common/math"
|
||||||
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
"github.com/ethereum/go-ethereum/rlp"
|
||||||
|
"github.com/ethereum/go-ethereum/rpc"
|
||||||
|
"golang.org/x/exp/maps"
|
||||||
|
)
|
||||||
|
|
||||||
|
var configByName = map[string]*params.ChainConfig{
|
||||||
|
"mainnet": params.MainnetChainConfig,
|
||||||
|
"sepolia": params.SepoliaChainConfig,
|
||||||
|
"holesky": params.HoleskyChainConfig,
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ensure(len(os.Args) == 3, "Usage: generate-prestate <network> <tx-hash>")
|
||||||
|
|
||||||
|
config, found := configByName[os.Args[1]]
|
||||||
|
ensure(found, "Unknown network %q, valid networks are %q", os.Args[1], strings.Join(maps.Keys(configByName), ", "))
|
||||||
|
|
||||||
|
endpoint := os.Getenv("ARCHIVE_ENDPOINT")
|
||||||
|
ensure(endpoint != "", "ARCHIVE_ENDPOINT environment variable is not set")
|
||||||
|
|
||||||
|
txHash := common.HexToHash(os.Args[2])
|
||||||
|
ensure(txHash.Big().Sign() != 0, "Argument %q is not a valid transaction hash", os.Args[1])
|
||||||
|
|
||||||
|
client, err := rpc.DialOptions(context.Background(), endpoint)
|
||||||
|
noError(err, "Failed to connect to RPC server")
|
||||||
|
|
||||||
|
log("Fetching transaction %q...", txHash.Hex())
|
||||||
|
tx, blockHash, err := transactionByHash(context.Background(), client, txHash)
|
||||||
|
noError(err, "Failed to get transaction %q by hash", txHash)
|
||||||
|
|
||||||
|
log("Fetching block %q...", txHash.Hex())
|
||||||
|
block, err := blockByHash(context.Background(), client, blockHash)
|
||||||
|
noError(err, "Failed to get block %q by hash", blockHash)
|
||||||
|
|
||||||
|
log("Fetching parent block %q...", txHash.Hex())
|
||||||
|
parentBlock, err := blockByHash(context.Background(), client, block.ParentHash())
|
||||||
|
noError(err, "Failed to get parent block %q by hash", block.ParentHash())
|
||||||
|
|
||||||
|
log("Collecting transaction prestate trace...")
|
||||||
|
var prestateTrace types.GenesisAlloc
|
||||||
|
err = client.Call(&prestateTrace, "debug_traceTransaction", txHash, map[string]interface{}{
|
||||||
|
"tracer": "prestateTracer",
|
||||||
|
})
|
||||||
|
noError(err, "Failed to trace transaction %q with prestateTracer", txHash)
|
||||||
|
|
||||||
|
prestateTest := &PrestateTest{
|
||||||
|
// Our genesis block is the parent block
|
||||||
|
Genesis: parentBlock,
|
||||||
|
Block: block,
|
||||||
|
Alloc: prestateTrace,
|
||||||
|
Config: config,
|
||||||
|
Tx: tx,
|
||||||
|
}
|
||||||
|
|
||||||
|
output, err := json.MarshalIndent(prestateTest, "", " ")
|
||||||
|
noError(err, "Failed to marshal prestate test to JSON")
|
||||||
|
|
||||||
|
fmt.Println(string(output))
|
||||||
|
}
|
||||||
|
|
||||||
|
type PrestateTest struct {
|
||||||
|
Genesis *rpcBlock
|
||||||
|
Block *rpcBlock
|
||||||
|
Alloc types.GenesisAlloc
|
||||||
|
Config *params.ChainConfig
|
||||||
|
Tx *types.Transaction
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *PrestateTest) MarshalJSON() ([]byte, error) {
|
||||||
|
genesis := b.Genesis.Fields
|
||||||
|
|
||||||
|
for k, v := range genesis {
|
||||||
|
if v == nil {
|
||||||
|
delete(genesis, k)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
delete(genesis, "gasUsed")
|
||||||
|
delete(genesis, "logsBloom")
|
||||||
|
delete(genesis, "parentHash")
|
||||||
|
delete(genesis, "receiptsRoot")
|
||||||
|
delete(genesis, "sha3Uncles")
|
||||||
|
delete(genesis, "size")
|
||||||
|
delete(genesis, "transactions")
|
||||||
|
delete(genesis, "transactionsRoot")
|
||||||
|
delete(genesis, "uncles")
|
||||||
|
|
||||||
|
genesis["gasLimit"] = hexToIntegerString(genesis["gasLimit"].(string))
|
||||||
|
genesis["number"] = hexToIntegerString(genesis["number"].(string))
|
||||||
|
genesis["timestamp"] = hexToIntegerString(genesis["timestamp"].(string))
|
||||||
|
genesis["difficulty"] = hexToIntegerString(genesis["difficulty"].(string))
|
||||||
|
if genesis["totalDifficulty"] != nil {
|
||||||
|
genesis["totalDifficulty"] = hexToIntegerString(genesis["totalDifficulty"].(string))
|
||||||
|
} else {
|
||||||
|
// Total Difficulty has been nuked from the codebase, so we might not have it anymore
|
||||||
|
genesis["totalDifficulty"] = "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
if found := genesis["baseFeePerGas"]; found != nil {
|
||||||
|
genesis["baseFeePerGas"] = hexToIntegerString(genesis["baseFeePerGas"].(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
marshaledAlloc, err := json.Marshal(b.Alloc)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var allocOut map[string]any
|
||||||
|
if err = json.Unmarshal(marshaledAlloc, &allocOut); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, account := range allocOut {
|
||||||
|
details := account.(map[string]any)
|
||||||
|
for k, v := range details {
|
||||||
|
if k == "nonce" {
|
||||||
|
details["nonce"] = hexToIntegerString(v.(string))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
genesis["alloc"] = allocOut
|
||||||
|
genesis["config"] = b.Config
|
||||||
|
|
||||||
|
context := map[string]any{
|
||||||
|
"number": hexToIntegerString(b.Block.Fields["number"].(string)),
|
||||||
|
"difficulty": hexToIntegerString(b.Block.Fields["difficulty"].(string)),
|
||||||
|
"timestamp": hexToIntegerString(b.Block.Fields["timestamp"].(string)),
|
||||||
|
"gasLimit": hexToIntegerString(b.Block.Fields["gasLimit"].(string)),
|
||||||
|
"miner": b.Block.Fields["miner"],
|
||||||
|
}
|
||||||
|
|
||||||
|
if found := b.Block.Fields["baseFeePerGas"]; found != nil {
|
||||||
|
context["baseFeePerGas"] = hexToIntegerString(b.Block.Fields["baseFeePerGas"].(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
txBuffer := bytes.NewBuffer(nil)
|
||||||
|
rlp.Encode(txBuffer, b.Tx)
|
||||||
|
|
||||||
|
out := map[string]any{}
|
||||||
|
out["genesis"] = genesis
|
||||||
|
out["context"] = context
|
||||||
|
out["input"] = "0x" + hex.EncodeToString(txBuffer.Bytes())
|
||||||
|
|
||||||
|
return json.Marshal(out)
|
||||||
|
}
|
||||||
|
|
||||||
|
func hexToIntegerString(in string) string {
|
||||||
|
value := math.HexOrDecimal256{}
|
||||||
|
noError(value.UnmarshalText([]byte(in)), "Failed to parse hex value %q", in)
|
||||||
|
|
||||||
|
return (*big.Int)(&value).String()
|
||||||
|
}
|
||||||
|
|
||||||
|
type CallTrace struct {
|
||||||
|
From string `json:"from"`
|
||||||
|
Gas string `json:"gas"`
|
||||||
|
GasUsed string `json:"gasUsed"`
|
||||||
|
To string `json:"to"`
|
||||||
|
Input string `json:"input"`
|
||||||
|
Value string `json:"value"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
Output string `json:"output,omitempty"`
|
||||||
|
|
||||||
|
Calls []CallTrace `json:"calls"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func blockByHash(ctx context.Context, ec *rpc.Client, hash common.Hash) (*rpcBlock, error) {
|
||||||
|
var out rpcBlock
|
||||||
|
err := ec.CallContext(ctx, &out.Fields, "eth_getBlockByHash", hash, false)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
} else if out.Fields == nil {
|
||||||
|
return nil, ethereum.NotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
return &out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type rpcBlock struct {
|
||||||
|
Fields map[string]any
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *rpcBlock) ParentHash() common.Hash {
|
||||||
|
return common.HexToHash(b.Fields["parentHash"].(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
func transactionByHash(ctx context.Context, ec *rpc.Client, hash common.Hash) (tx *types.Transaction, blockHash common.Hash, err error) {
|
||||||
|
var json *rpcTransaction
|
||||||
|
err = ec.CallContext(ctx, &json, "eth_getTransactionByHash", hash)
|
||||||
|
if err != nil {
|
||||||
|
return nil, common.Hash{}, err
|
||||||
|
} else if json == nil {
|
||||||
|
return nil, common.Hash{}, ethereum.NotFound
|
||||||
|
} else if _, r, _ := json.tx.RawSignatureValues(); r == nil {
|
||||||
|
return nil, common.Hash{}, errors.New("server returned transaction without signature")
|
||||||
|
}
|
||||||
|
|
||||||
|
if json.BlockHash == nil {
|
||||||
|
return nil, common.Hash{}, errors.New("server returned transaction without block hash")
|
||||||
|
}
|
||||||
|
|
||||||
|
return json.tx, *json.BlockHash, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type rpcTransaction struct {
|
||||||
|
tx *types.Transaction
|
||||||
|
txExtraInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
type txExtraInfo struct {
|
||||||
|
BlockNumber *string `json:"blockNumber,omitempty"`
|
||||||
|
BlockHash *common.Hash `json:"blockHash,omitempty"`
|
||||||
|
From *common.Address `json:"from,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tx *rpcTransaction) UnmarshalJSON(msg []byte) error {
|
||||||
|
if err := json.Unmarshal(msg, &tx.tx); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return json.Unmarshal(msg, &tx.txExtraInfo)
|
||||||
|
}
|
||||||
|
|
||||||
|
func log(message string, args ...interface{}) {
|
||||||
|
fmt.Fprintf(os.Stderr, message+"\n", args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ensure(condition bool, message string, args ...interface{}) {
|
||||||
|
if !condition {
|
||||||
|
quit(message, args...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func noError(err error, message string, args ...interface{}) {
|
||||||
|
if err != nil {
|
||||||
|
quit(message+": "+err.Error(), args...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func quit(message string, args ...interface{}) {
|
||||||
|
fmt.Printf(message+"\n", args...)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
213
eth/tracers/internal/tracetest/firehose/helpers_test.go
Normal file
213
eth/tracers/internal/tracetest/firehose/helpers_test.go
Normal file
|
|
@ -0,0 +1,213 @@
|
||||||
|
package firehose_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/base64"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"math/big"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/core/tracing"
|
||||||
|
"github.com/ethereum/go-ethereum/eth/tracers"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
pbeth "github.com/streamingfast/firehose-ethereum/types/pb/sf/ethereum/type/v2"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"google.golang.org/protobuf/encoding/protojson"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
type firehoseInitLine struct {
|
||||||
|
ProtocolVersion string
|
||||||
|
NodeName string
|
||||||
|
NodeVersion string
|
||||||
|
}
|
||||||
|
|
||||||
|
type firehoseBlockLines []firehoseBlockLine
|
||||||
|
|
||||||
|
func newFirehoseTestTracer(t *testing.T, model tracingModel) (*tracers.Firehose, *tracing.Hooks, func()) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
tracer, err := tracers.NewFirehoseFromRawJSON([]byte(fmt.Sprintf(`{
|
||||||
|
"_private": {
|
||||||
|
"flushToTestBuffer": true,
|
||||||
|
"ignoreGenesisBlock": true,
|
||||||
|
"forcedBackwardCompatibility": %t
|
||||||
|
}
|
||||||
|
}`, model == tracingModelFirehose2_3)))
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
hooks := tracers.NewTracingHooksFromFirehose(tracer)
|
||||||
|
|
||||||
|
return tracer, hooks, func() {
|
||||||
|
if hooks.OnClose != nil {
|
||||||
|
hooks.OnClose()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (lines firehoseBlockLines) assertEquals(t *testing.T, goldenDir string, expected ...firehoseBlockLineParams) {
|
||||||
|
actualParams := slicesMap(lines, func(l firehoseBlockLine) firehoseBlockLineParams { return l.Params })
|
||||||
|
require.Equal(t, expected, actualParams, "Actual lines block params do not match expected lines block params")
|
||||||
|
|
||||||
|
lines.assertOnlyBlockEquals(t, goldenDir, len(expected))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (lines firehoseBlockLines) assertOnlyBlockEquals(t *testing.T, goldenDir string, expectedBlockCount int) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
require.Len(t, lines, expectedBlockCount, "Expected %d blocks, got %d", expectedBlockCount, len(lines))
|
||||||
|
goldenUpdate := os.Getenv("GOLDEN_UPDATE") == "true"
|
||||||
|
|
||||||
|
for _, line := range lines {
|
||||||
|
goldenPath := filepath.Join(goldenDir, fmt.Sprintf("block.%d.golden.json", line.Block.Header.Number))
|
||||||
|
if !goldenUpdate && !fileExists(t, goldenPath) {
|
||||||
|
t.Fatalf("the golden file %q does not exist, re-run with 'GOLDEN_UPDATE=true go test ./... -run %q' to generate the intial version", goldenPath, t.Name())
|
||||||
|
}
|
||||||
|
|
||||||
|
unnormalizedContent, err := protojson.MarshalOptions{Indent: " "}.Marshal(line.Block)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
if goldenUpdate {
|
||||||
|
content := normalizedJSON(t, unnormalizedContent)
|
||||||
|
|
||||||
|
require.NoError(t, os.MkdirAll(filepath.Dir(goldenPath), 0755))
|
||||||
|
require.NoError(t, os.WriteFile(goldenPath, content, 0644))
|
||||||
|
}
|
||||||
|
|
||||||
|
expected, err := os.ReadFile(goldenPath)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
expectedBlock := &pbeth.Block{}
|
||||||
|
require.NoError(t, protojson.Unmarshal(expected, expectedBlock))
|
||||||
|
|
||||||
|
if !proto.Equal(expectedBlock, line.Block) {
|
||||||
|
assert.EqualExportedValues(t, expectedBlock, line.Block, "Run 'GOLDEN_UPDATE=true go test ./... -run %q' to update golden file", t.Name())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func fileExists(t *testing.T, path string) bool {
|
||||||
|
t.Helper()
|
||||||
|
stat, err := os.Stat(path)
|
||||||
|
if err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return !stat.IsDir()
|
||||||
|
}
|
||||||
|
|
||||||
|
func slicesMap[T any, U any](s []T, f func(T) U) []U {
|
||||||
|
result := make([]U, len(s))
|
||||||
|
for i, v := range s {
|
||||||
|
result[i] = f(v)
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
type firehoseBlockLine struct {
|
||||||
|
// We split params and block to make it easier to compare stuff
|
||||||
|
Params firehoseBlockLineParams
|
||||||
|
Block *pbeth.Block
|
||||||
|
}
|
||||||
|
|
||||||
|
type firehoseBlockLineParams struct {
|
||||||
|
Number string
|
||||||
|
Hash string
|
||||||
|
PreviousNum string
|
||||||
|
PreviousHash string
|
||||||
|
LibNum string
|
||||||
|
Time string
|
||||||
|
}
|
||||||
|
|
||||||
|
type unknownLine string
|
||||||
|
|
||||||
|
// assertBlockEquals reads the tracer output and compares it to the golden files in the given directory.
|
||||||
|
func assertBlockEquals(t *testing.T, tracer *tracers.Firehose, goldenDir string, expectedBlockCount int) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
genesisLine, blockLines, unknownLines := readTracerFirehoseLines(t, tracer)
|
||||||
|
require.Len(t, unknownLines, 0, "Lines:\n%s", strings.Join(slicesMap(unknownLines, func(l unknownLine) string { return "- '" + string(l) + "'" }), "\n"))
|
||||||
|
require.NotNil(t, genesisLine)
|
||||||
|
blockLines.assertOnlyBlockEquals(t, goldenDir, expectedBlockCount)
|
||||||
|
}
|
||||||
|
|
||||||
|
func readTracerFirehoseLines(t *testing.T, tracer *tracers.Firehose) (genesisLine *firehoseInitLine, blockLines firehoseBlockLines, unknownLines []unknownLine) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
lines := bytes.Split(tracer.InternalTestingBuffer().Bytes(), []byte{'\n'})
|
||||||
|
for _, line := range lines {
|
||||||
|
if len(line) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
parts := bytes.Split(line, []byte{' '})
|
||||||
|
if len(parts) == 0 || string(parts[0]) != "FIRE" {
|
||||||
|
unknownLines = append(unknownLines, unknownLine(line))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
action := string(parts[1])
|
||||||
|
fireParts := parts[2:]
|
||||||
|
switch action {
|
||||||
|
case "INIT":
|
||||||
|
genesisLine = &firehoseInitLine{
|
||||||
|
ProtocolVersion: string(fireParts[0]),
|
||||||
|
NodeName: string(fireParts[1]),
|
||||||
|
NodeVersion: string(fireParts[2]),
|
||||||
|
}
|
||||||
|
|
||||||
|
case "BLOCK":
|
||||||
|
protoBytes, err := base64.StdEncoding.DecodeString(string(fireParts[6]))
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
block := &pbeth.Block{}
|
||||||
|
require.NoError(t, proto.Unmarshal(protoBytes, block))
|
||||||
|
|
||||||
|
blockLines = append(blockLines, firehoseBlockLine{
|
||||||
|
Params: firehoseBlockLineParams{
|
||||||
|
Number: string(fireParts[0]),
|
||||||
|
Hash: string(fireParts[1]),
|
||||||
|
PreviousNum: string(fireParts[2]),
|
||||||
|
PreviousHash: string(fireParts[3]),
|
||||||
|
LibNum: string(fireParts[4]),
|
||||||
|
Time: string(fireParts[5]),
|
||||||
|
},
|
||||||
|
Block: block,
|
||||||
|
})
|
||||||
|
|
||||||
|
default:
|
||||||
|
unknownLines = append(unknownLines, unknownLine(line))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func ptr[T any](v T) *T {
|
||||||
|
return &v
|
||||||
|
}
|
||||||
|
|
||||||
|
func newGwei(n int64) *big.Int {
|
||||||
|
return new(big.Int).Mul(big.NewInt(n), big.NewInt(params.GWei))
|
||||||
|
}
|
||||||
|
|
||||||
|
func normalizedJSON(t *testing.T, data []byte) []byte {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
var obj map[string]any
|
||||||
|
require.NoError(t, json.Unmarshal(data, &obj))
|
||||||
|
|
||||||
|
normalized, err := json.MarshalIndent(obj, "", " ")
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
return normalized
|
||||||
|
}
|
||||||
121
eth/tracers/internal/tracetest/firehose/prestate_test.go
Normal file
121
eth/tracers/internal/tracetest/firehose/prestate_test.go
Normal file
|
|
@ -0,0 +1,121 @@
|
||||||
|
package firehose_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"math/big"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
"github.com/ethereum/go-ethereum/common/math"
|
||||||
|
"github.com/ethereum/go-ethereum/consensus"
|
||||||
|
"github.com/ethereum/go-ethereum/consensus/ethash"
|
||||||
|
"github.com/ethereum/go-ethereum/consensus/misc/eip4844"
|
||||||
|
"github.com/ethereum/go-ethereum/core"
|
||||||
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
|
"github.com/ethereum/go-ethereum/core/vm"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func readPrestateData(t *testing.T, path string) *prestateData {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
// Call tracer test found, read if from disk
|
||||||
|
blob, err := os.ReadFile(path)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
test := new(prestateData)
|
||||||
|
require.NoError(t, json.Unmarshal(blob, test))
|
||||||
|
|
||||||
|
var genesisWithTD struct {
|
||||||
|
Genesis struct {
|
||||||
|
TotalDifficulty *math.HexOrDecimal256 `json:"totalDifficulty"`
|
||||||
|
} `json:"genesis"`
|
||||||
|
}
|
||||||
|
if err := json.Unmarshal(blob, &genesisWithTD); err == nil {
|
||||||
|
test.TotalDifficulty = (*big.Int)(genesisWithTD.Genesis.TotalDifficulty)
|
||||||
|
}
|
||||||
|
|
||||||
|
return test
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ core.ChainContext = (*prestateData)(nil)
|
||||||
|
|
||||||
|
type prestateData struct {
|
||||||
|
Genesis *core.Genesis `json:"genesis"`
|
||||||
|
Context *callContext `json:"context"`
|
||||||
|
Input string `json:"input"`
|
||||||
|
TotalDifficulty *big.Int `json:"-"`
|
||||||
|
TracerConfig json.RawMessage `json:"tracerConfig"`
|
||||||
|
|
||||||
|
// Populated after loading
|
||||||
|
genesisBlock *types.Block
|
||||||
|
}
|
||||||
|
|
||||||
|
// Config implements core.ChainContext.
|
||||||
|
func (p *prestateData) Config() *params.ChainConfig {
|
||||||
|
return p.Genesis.Config
|
||||||
|
}
|
||||||
|
|
||||||
|
// Engine implements core.ChainContext.
|
||||||
|
func (p *prestateData) Engine() consensus.Engine {
|
||||||
|
return ethash.NewFullFaker()
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetHeader implements core.ChainContext.
|
||||||
|
func (p *prestateData) GetHeader(hash common.Hash, number uint64) *types.Header {
|
||||||
|
if p.Genesis == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if p.genesisBlock == nil {
|
||||||
|
p.genesisBlock = p.Genesis.ToBlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
if hash == p.genesisBlock.Hash() {
|
||||||
|
return p.genesisBlock.Header()
|
||||||
|
}
|
||||||
|
|
||||||
|
if number == p.genesisBlock.NumberU64() {
|
||||||
|
return p.genesisBlock.Header()
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type callContext struct {
|
||||||
|
Number math.HexOrDecimal64 `json:"number"`
|
||||||
|
Difficulty *math.HexOrDecimal256 `json:"difficulty"`
|
||||||
|
Time math.HexOrDecimal64 `json:"timestamp"`
|
||||||
|
GasLimit math.HexOrDecimal64 `json:"gasLimit"`
|
||||||
|
Miner common.Address `json:"miner"`
|
||||||
|
BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *callContext) toBlockContext(genesis *core.Genesis) vm.BlockContext {
|
||||||
|
context := vm.BlockContext{
|
||||||
|
CanTransfer: core.CanTransfer,
|
||||||
|
Transfer: core.Transfer,
|
||||||
|
Coinbase: c.Miner,
|
||||||
|
BlockNumber: new(big.Int).SetUint64(uint64(c.Number)),
|
||||||
|
Time: uint64(c.Time),
|
||||||
|
Difficulty: (*big.Int)(c.Difficulty),
|
||||||
|
GasLimit: uint64(c.GasLimit),
|
||||||
|
}
|
||||||
|
if genesis.Config.IsLondon(context.BlockNumber) {
|
||||||
|
context.BaseFee = (*big.Int)(c.BaseFee)
|
||||||
|
}
|
||||||
|
|
||||||
|
if genesis.Config.TerminalTotalDifficulty != nil && genesis.Config.TerminalTotalDifficulty.Sign() == 0 {
|
||||||
|
context.Random = &genesis.Mixhash
|
||||||
|
}
|
||||||
|
|
||||||
|
if genesis.ExcessBlobGas != nil && genesis.BlobGasUsed != nil {
|
||||||
|
header := &types.Header{Number: genesis.Config.LondonBlock, Time: *genesis.Config.CancunTime}
|
||||||
|
excess := eip4844.CalcExcessBlobGas(genesis.Config, header, genesis.Timestamp)
|
||||||
|
header.ExcessBlobGas = &excess
|
||||||
|
context.BlobBaseFee = eip4844.CalcBlobFee(genesis.Config, header)
|
||||||
|
}
|
||||||
|
return context
|
||||||
|
}
|
||||||
301
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh2.3/block.1.golden.json
vendored
Normal file
301
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh2.3/block.1.golden.json
vendored
Normal file
|
|
@ -0,0 +1,301 @@
|
||||||
|
{
|
||||||
|
"hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "NCdwwA=="
|
||||||
|
},
|
||||||
|
"blobGasUsed": "0",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"excessBlobGas": "0",
|
||||||
|
"gasLimit": "4712388",
|
||||||
|
"gasUsed": "142021",
|
||||||
|
"hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "1",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=",
|
||||||
|
"receiptRoot": "6LQ+xgZZXKAlBStw088D6A2kWiz7g+TtQlAALnPMSi4=",
|
||||||
|
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
||||||
|
"stateRoot": "wFieFJlWOhntuAXVWTxqg5Uur7kaXrFRERwFB8+qscc=",
|
||||||
|
"timestamp": "1970-01-01T00:00:10Z",
|
||||||
|
"transactionsRoot": "L6HG4v+Zoguv352C8ZdQGQ4tE5BJdzCJVbfWBHMquN0=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE="
|
||||||
|
},
|
||||||
|
"number": "1",
|
||||||
|
"size": "1190",
|
||||||
|
"systemCalls": [
|
||||||
|
{
|
||||||
|
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "2",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
|
||||||
|
"beginOrdinal": "3",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
|
||||||
|
"beginOrdinal": "24",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "25",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
|
||||||
|
"beginOrdinal": "26",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "27",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "Dd8ozD895cA="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DeC2s6dkAAA="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DeBFrisGZrU="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "Dd8ozD895b8="
|
||||||
|
},
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "BFWK"
|
||||||
|
},
|
||||||
|
"ordinal": "22",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"codeChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"newHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=",
|
||||||
|
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"ordinal": "6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=",
|
||||||
|
"newHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=",
|
||||||
|
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"ordinal": "8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAu7s=",
|
||||||
|
"newHash": "0mhxQ0BYDv3haWHrT7NIuLWUSlfUHjFwuLM/8Jt1SXA=",
|
||||||
|
"oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=",
|
||||||
|
"oldHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=",
|
||||||
|
"ordinal": "10"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "20",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "354000",
|
||||||
|
"oldValue": "500000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "351280",
|
||||||
|
"oldValue": "353880",
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "5348",
|
||||||
|
"oldValue": "353980",
|
||||||
|
"ordinal": "13",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "322474",
|
||||||
|
"oldValue": "5348",
|
||||||
|
"ordinal": "19",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "31526",
|
||||||
|
"gasLimit": "354000",
|
||||||
|
"index": 1,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "2",
|
||||||
|
"oldValue": "1",
|
||||||
|
"ordinal": "5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newValue": "2",
|
||||||
|
"oldValue": "1",
|
||||||
|
"ordinal": "9"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "Dd8ozD895b8="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "Dd8ozD895cA="
|
||||||
|
},
|
||||||
|
"ordinal": "15",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DeC2s6dkAAE="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DeC2s6dkAAA="
|
||||||
|
},
|
||||||
|
"ordinal": "16",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "14",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "18",
|
||||||
|
"gasConsumed": "22106",
|
||||||
|
"gasLimit": "339232",
|
||||||
|
"index": 2,
|
||||||
|
"parentIndex": 1,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "17"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "23",
|
||||||
|
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"gasLimit": "500000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "NCdwwg=="
|
||||||
|
},
|
||||||
|
"gasUsed": "142021",
|
||||||
|
"hash": "alLg5Yk4t0M/5q97S3ye+D/U/jP60tAc1kNI8q4G+G0=",
|
||||||
|
"maxFeePerGas": {
|
||||||
|
"bytes": "ASoF8gA="
|
||||||
|
},
|
||||||
|
"maxPriorityFeePerGas": {
|
||||||
|
"bytes": "Ag=="
|
||||||
|
},
|
||||||
|
"r": "E2l+Qpz16QzQhLJM+8gu8vd/lpMS1JAC0/hIlSNzFeg=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "142021",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "N9pmx9wBwi0vXsT283fImtj6D4zPzYK3ZFXwBhYmbBA=",
|
||||||
|
"setCodeAuthorizations": [
|
||||||
|
{
|
||||||
|
"authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"chainId": "AQ==",
|
||||||
|
"nonce": "1",
|
||||||
|
"r": "9+Pll/wJfnHtbCaxSyXlOVvIUQ1YuRNq9DnhJxXy1yE=",
|
||||||
|
"s": "bPfD15Ob/beENz7/wOuwvXVJaRpRPzlePNq/hgJySYc=",
|
||||||
|
"v": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=",
|
||||||
|
"s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"discarded": true,
|
||||||
|
"r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=",
|
||||||
|
"s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=",
|
||||||
|
"v": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"nonce": "1",
|
||||||
|
"r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=",
|
||||||
|
"s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"discarded": true,
|
||||||
|
"nonce": "1",
|
||||||
|
"r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=",
|
||||||
|
"s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"type": "TRX_TYPE_SET_CODE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
222
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh2.3/block.2.golden.json
vendored
Normal file
222
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh2.3/block.2.golden.json
vendored
Normal file
|
|
@ -0,0 +1,222 @@
|
||||||
|
{
|
||||||
|
"hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "LgcbLA=="
|
||||||
|
},
|
||||||
|
"blobGasUsed": "0",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"excessBlobGas": "0",
|
||||||
|
"gasLimit": "4712388",
|
||||||
|
"gasUsed": "35126",
|
||||||
|
"hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "2",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
|
||||||
|
"receiptRoot": "TaaZwIwiwzd65OYkLzazOIYrFN0/DnyXzNqaA/dY3pQ=",
|
||||||
|
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
||||||
|
"stateRoot": "C/zDETYPAXEFuq3RDENkXppoaNjfcWKHhIQqZGC0D5c=",
|
||||||
|
"timestamp": "1970-01-01T00:00:20Z",
|
||||||
|
"transactionsRoot": "5SXnkgZs4gKgt8t4GTnSeoV1i17zHn3xbZXSln9fd2E=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE="
|
||||||
|
},
|
||||||
|
"number": "2",
|
||||||
|
"size": "717",
|
||||||
|
"systemCalls": [
|
||||||
|
{
|
||||||
|
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "2",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
|
||||||
|
"beginOrdinal": "3",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
|
||||||
|
"beginOrdinal": "18",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "19",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
|
||||||
|
"beginOrdinal": "20",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "21",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "CmgYAUEtZrU="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DeBFrisGZrU="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DaHgOZLVtrQ="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "CmgYAUEtZrQ="
|
||||||
|
},
|
||||||
|
"ordinal": "15",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "PkzJFSq+Qg=="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "BFWK"
|
||||||
|
},
|
||||||
|
"ordinal": "16",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"endOrdinal": "14",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "479000",
|
||||||
|
"oldValue": "500000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "476380",
|
||||||
|
"oldValue": "478880",
|
||||||
|
"ordinal": "6",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "473780",
|
||||||
|
"oldValue": "476380",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "7262",
|
||||||
|
"oldValue": "478980",
|
||||||
|
"ordinal": "8",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "464874",
|
||||||
|
"oldValue": "7262",
|
||||||
|
"ordinal": "13",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "14126",
|
||||||
|
"gasLimit": "479000",
|
||||||
|
"index": 1,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "3",
|
||||||
|
"oldValue": "2",
|
||||||
|
"ordinal": "4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "CmgYAUEtZrQ="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "CmgYAUEtZrU="
|
||||||
|
},
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DeC2s6dkAAI="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DeC2s6dkAAE="
|
||||||
|
},
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "9",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "12",
|
||||||
|
"gasConsumed": "2206",
|
||||||
|
"gasLimit": "459818",
|
||||||
|
"index": 2,
|
||||||
|
"parentIndex": 1,
|
||||||
|
"value": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "17",
|
||||||
|
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"gasLimit": "500000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "dGpSiAA="
|
||||||
|
},
|
||||||
|
"gasUsed": "35126",
|
||||||
|
"hash": "TNmQOfjPE0jeas0eba+xGMaitDgyCOKmvNIBapciCiE=",
|
||||||
|
"nonce": "2",
|
||||||
|
"r": "llnySTXnLA5URm+RriiJTQ4gvkdUifLtVOIyBCpDFTw=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "35126",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "SsqOfVDTp1cpwvz0g4nLhIzrWRGwh0Jgz4l9GK/UHbE=",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"v": "JQ=="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
186
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh2.3/block.3.golden.json
vendored
Normal file
186
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh2.3/block.3.golden.json
vendored
Normal file
|
|
@ -0,0 +1,186 @@
|
||||||
|
{
|
||||||
|
"hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "KFws9Q=="
|
||||||
|
},
|
||||||
|
"blobGasUsed": "0",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"excessBlobGas": "0",
|
||||||
|
"gasLimit": "4712388",
|
||||||
|
"gasUsed": "36800",
|
||||||
|
"hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "3",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
|
||||||
|
"receiptRoot": "A2x9IEIO284ktQYhSLzoBWO0j9RTL7HAaLLJalMRcBk=",
|
||||||
|
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
||||||
|
"stateRoot": "vWvMYC8Hck2r4d77C3bO7nRWmEtpytSHv092DGpMjeI=",
|
||||||
|
"timestamp": "1970-01-01T00:00:30Z",
|
||||||
|
"transactionsRoot": "Bpo3ARUhIUuu9hH3yrkUNF2s22VFnHRDwdWxzM0pb5U=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE="
|
||||||
|
},
|
||||||
|
"number": "3",
|
||||||
|
"size": "817",
|
||||||
|
"systemCalls": [
|
||||||
|
{
|
||||||
|
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "2",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
|
||||||
|
"beginOrdinal": "3",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
|
||||||
|
"beginOrdinal": "12",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "13",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
|
||||||
|
"beginOrdinal": "14",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "15",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DaCsTVRHwNQ="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DaHgOZLVtrQ="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DaHJj9CWBHQ="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DaCsTVRHwNQ="
|
||||||
|
},
|
||||||
|
"ordinal": "9",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "PkzJFSvdwg=="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "PkzJFSq+Qg=="
|
||||||
|
},
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"codeChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"oldHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=",
|
||||||
|
"ordinal": "6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "8",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "454000",
|
||||||
|
"oldValue": "500000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "454000",
|
||||||
|
"index": 1,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "4",
|
||||||
|
"oldValue": "3",
|
||||||
|
"ordinal": "4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "5",
|
||||||
|
"oldValue": "4",
|
||||||
|
"ordinal": "5"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "11",
|
||||||
|
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"gasLimit": "500000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "KFws9w=="
|
||||||
|
},
|
||||||
|
"gasUsed": "36800",
|
||||||
|
"hash": "vj4lUeVR72WjVf2OYUmz3Um0SH4d6qCao7cZRbBiaCI=",
|
||||||
|
"maxFeePerGas": {
|
||||||
|
"bytes": "ASoF8gA="
|
||||||
|
},
|
||||||
|
"maxPriorityFeePerGas": {
|
||||||
|
"bytes": "Ag=="
|
||||||
|
},
|
||||||
|
"nonce": "3",
|
||||||
|
"r": "3+bIOst9jVy0xdYLs7dP1KfP1XrtsXepmpY0W3XBKII=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "36800",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "UGXb+KJ8dparEBn0Wb2lX5fh1gB2+AiHfowzzmJWOkE=",
|
||||||
|
"setCodeAuthorizations": [
|
||||||
|
{
|
||||||
|
"authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"chainId": "AQ==",
|
||||||
|
"nonce": "4",
|
||||||
|
"r": "8RpcvObxuhW9b2SyJDTKMBtrqfyaAJlzS37bOLPTKIo=",
|
||||||
|
"s": "NMkyzSai5xkwNV4ttrTli9jZHXeB7hUwej28frcnTDw="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"type": "TRX_TYPE_SET_CODE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
390
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh3.0/block.1.golden.json
vendored
Normal file
390
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh3.0/block.1.golden.json
vendored
Normal file
|
|
@ -0,0 +1,390 @@
|
||||||
|
{
|
||||||
|
"hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "NCdwwA=="
|
||||||
|
},
|
||||||
|
"blobGasUsed": "0",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"excessBlobGas": "0",
|
||||||
|
"gasLimit": "4712388",
|
||||||
|
"gasUsed": "142021",
|
||||||
|
"hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "1",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=",
|
||||||
|
"receiptRoot": "6LQ+xgZZXKAlBStw088D6A2kWiz7g+TtQlAALnPMSi4=",
|
||||||
|
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
||||||
|
"stateRoot": "wFieFJlWOhntuAXVWTxqg5Uur7kaXrFRERwFB8+qscc=",
|
||||||
|
"timestamp": "1970-01-01T00:00:10Z",
|
||||||
|
"transactionsRoot": "L6HG4v+Zoguv352C8ZdQGQ4tE5BJdzCJVbfWBHMquN0=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE="
|
||||||
|
},
|
||||||
|
"number": "1",
|
||||||
|
"size": "1190",
|
||||||
|
"systemCalls": [
|
||||||
|
{
|
||||||
|
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
|
||||||
|
"beginOrdinal": "5",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "8",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "6",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
|
||||||
|
"beginOrdinal": "39",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "42",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "40",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "41",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
|
||||||
|
"beginOrdinal": "43",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "46",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "44",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "45",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "9",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "Dd8ozD895cA="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DeC2s6dkAAA="
|
||||||
|
},
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DeBFrisGZrU="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "Dd8ozD895b8="
|
||||||
|
},
|
||||||
|
"ordinal": "35",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "BFWK"
|
||||||
|
},
|
||||||
|
"ordinal": "37",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "20",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"codeChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"newHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=",
|
||||||
|
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"ordinal": "15"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=",
|
||||||
|
"newHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=",
|
||||||
|
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"ordinal": "17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAu7s=",
|
||||||
|
"newHash": "0mhxQ0BYDv3haWHrT7NIuLWUSlfUHjFwuLM/8Jt1SXA=",
|
||||||
|
"oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=",
|
||||||
|
"oldHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=",
|
||||||
|
"ordinal": "19"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "33",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "500000",
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_TX_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "354000",
|
||||||
|
"oldValue": "500000",
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "354000",
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "351280",
|
||||||
|
"oldValue": "353880",
|
||||||
|
"ordinal": "22",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "5348",
|
||||||
|
"oldValue": "353980",
|
||||||
|
"ordinal": "23",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "322474",
|
||||||
|
"oldValue": "5348",
|
||||||
|
"ordinal": "31",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "322474",
|
||||||
|
"ordinal": "32",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "357979",
|
||||||
|
"oldValue": "322474",
|
||||||
|
"ordinal": "34",
|
||||||
|
"reason": "REASON_TX_REFUNDS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "357979",
|
||||||
|
"ordinal": "36",
|
||||||
|
"reason": "REASON_TX_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "31526",
|
||||||
|
"gasLimit": "354000",
|
||||||
|
"index": 1,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "2",
|
||||||
|
"oldValue": "1",
|
||||||
|
"ordinal": "14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newValue": "2",
|
||||||
|
"oldValue": "1",
|
||||||
|
"ordinal": "18"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "Dd8ozD895b8="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "Dd8ozD895cA="
|
||||||
|
},
|
||||||
|
"ordinal": "26",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DeC2s6dkAAE="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DeC2s6dkAAA="
|
||||||
|
},
|
||||||
|
"ordinal": "27",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "24",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "30",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "339232",
|
||||||
|
"ordinal": "25",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "317126",
|
||||||
|
"ordinal": "29",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "22106",
|
||||||
|
"gasLimit": "339232",
|
||||||
|
"index": 2,
|
||||||
|
"parentIndex": 1,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "28"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "38",
|
||||||
|
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"gasLimit": "500000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "NCdwwg=="
|
||||||
|
},
|
||||||
|
"gasUsed": "142021",
|
||||||
|
"hash": "alLg5Yk4t0M/5q97S3ye+D/U/jP60tAc1kNI8q4G+G0=",
|
||||||
|
"maxFeePerGas": {
|
||||||
|
"bytes": "ASoF8gA="
|
||||||
|
},
|
||||||
|
"maxPriorityFeePerGas": {
|
||||||
|
"bytes": "Ag=="
|
||||||
|
},
|
||||||
|
"r": "E2l+Qpz16QzQhLJM+8gu8vd/lpMS1JAC0/hIlSNzFeg=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "142021",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "N9pmx9wBwi0vXsT283fImtj6D4zPzYK3ZFXwBhYmbBA=",
|
||||||
|
"setCodeAuthorizations": [
|
||||||
|
{
|
||||||
|
"authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"chainId": "AQ==",
|
||||||
|
"nonce": "1",
|
||||||
|
"r": "9+Pll/wJfnHtbCaxSyXlOVvIUQ1YuRNq9DnhJxXy1yE=",
|
||||||
|
"s": "bPfD15Ob/beENz7/wOuwvXVJaRpRPzlePNq/hgJySYc=",
|
||||||
|
"v": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=",
|
||||||
|
"s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"discarded": true,
|
||||||
|
"r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=",
|
||||||
|
"s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=",
|
||||||
|
"v": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"nonce": "1",
|
||||||
|
"r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=",
|
||||||
|
"s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"discarded": true,
|
||||||
|
"nonce": "1",
|
||||||
|
"r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=",
|
||||||
|
"s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"type": "TRX_TYPE_SET_CODE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 4
|
||||||
|
}
|
||||||
305
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh3.0/block.2.golden.json
vendored
Normal file
305
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh3.0/block.2.golden.json
vendored
Normal file
|
|
@ -0,0 +1,305 @@
|
||||||
|
{
|
||||||
|
"hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "LgcbLA=="
|
||||||
|
},
|
||||||
|
"blobGasUsed": "0",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"excessBlobGas": "0",
|
||||||
|
"gasLimit": "4712388",
|
||||||
|
"gasUsed": "35126",
|
||||||
|
"hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "2",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
|
||||||
|
"receiptRoot": "TaaZwIwiwzd65OYkLzazOIYrFN0/DnyXzNqaA/dY3pQ=",
|
||||||
|
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
||||||
|
"stateRoot": "C/zDETYPAXEFuq3RDENkXppoaNjfcWKHhIQqZGC0D5c=",
|
||||||
|
"timestamp": "1970-01-01T00:00:20Z",
|
||||||
|
"transactionsRoot": "5SXnkgZs4gKgt8t4GTnSeoV1i17zHn3xbZXSln9fd2E=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE="
|
||||||
|
},
|
||||||
|
"number": "2",
|
||||||
|
"size": "717",
|
||||||
|
"systemCalls": [
|
||||||
|
{
|
||||||
|
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
|
||||||
|
"beginOrdinal": "5",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "8",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "6",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
|
||||||
|
"beginOrdinal": "32",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "35",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "33",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "34",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
|
||||||
|
"beginOrdinal": "36",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "39",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "37",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "38",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "9",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "CmgYAUEtZrU="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DeBFrisGZrU="
|
||||||
|
},
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DaHgOZLVtrQ="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "CmgYAUEtZrQ="
|
||||||
|
},
|
||||||
|
"ordinal": "28",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "PkzJFSq+Qg=="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "BFWK"
|
||||||
|
},
|
||||||
|
"ordinal": "30",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "14",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"endOrdinal": "27",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "500000",
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_TX_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "479000",
|
||||||
|
"oldValue": "500000",
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "479000",
|
||||||
|
"ordinal": "15",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "476380",
|
||||||
|
"oldValue": "478880",
|
||||||
|
"ordinal": "16",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "473780",
|
||||||
|
"oldValue": "476380",
|
||||||
|
"ordinal": "17",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "7262",
|
||||||
|
"oldValue": "478980",
|
||||||
|
"ordinal": "18",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "464874",
|
||||||
|
"oldValue": "7262",
|
||||||
|
"ordinal": "25",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "464874",
|
||||||
|
"ordinal": "26",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "464874",
|
||||||
|
"ordinal": "29",
|
||||||
|
"reason": "REASON_TX_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "14126",
|
||||||
|
"gasLimit": "479000",
|
||||||
|
"index": 1,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "3",
|
||||||
|
"oldValue": "2",
|
||||||
|
"ordinal": "13"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "CmgYAUEtZrQ="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "CmgYAUEtZrU="
|
||||||
|
},
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DeC2s6dkAAI="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DeC2s6dkAAE="
|
||||||
|
},
|
||||||
|
"ordinal": "22",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "19",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "24",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "459818",
|
||||||
|
"ordinal": "20",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "457612",
|
||||||
|
"ordinal": "23",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "2206",
|
||||||
|
"gasLimit": "459818",
|
||||||
|
"index": 2,
|
||||||
|
"parentIndex": 1,
|
||||||
|
"value": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "31",
|
||||||
|
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"gasLimit": "500000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "dGpSiAA="
|
||||||
|
},
|
||||||
|
"gasUsed": "35126",
|
||||||
|
"hash": "TNmQOfjPE0jeas0eba+xGMaitDgyCOKmvNIBapciCiE=",
|
||||||
|
"nonce": "2",
|
||||||
|
"r": "llnySTXnLA5URm+RriiJTQ4gvkdUifLtVOIyBCpDFTw=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "35126",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "SsqOfVDTp1cpwvz0g4nLhIzrWRGwh0Jgz4l9GK/UHbE=",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"v": "JQ=="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 4
|
||||||
|
}
|
||||||
261
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh3.0/block.3.golden.json
vendored
Normal file
261
eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/fh3.0/block.3.golden.json
vendored
Normal file
|
|
@ -0,0 +1,261 @@
|
||||||
|
{
|
||||||
|
"hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "KFws9Q=="
|
||||||
|
},
|
||||||
|
"blobGasUsed": "0",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"excessBlobGas": "0",
|
||||||
|
"gasLimit": "4712388",
|
||||||
|
"gasUsed": "36800",
|
||||||
|
"hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "3",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
|
||||||
|
"receiptRoot": "A2x9IEIO284ktQYhSLzoBWO0j9RTL7HAaLLJalMRcBk=",
|
||||||
|
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
||||||
|
"stateRoot": "vWvMYC8Hck2r4d77C3bO7nRWmEtpytSHv092DGpMjeI=",
|
||||||
|
"timestamp": "1970-01-01T00:00:30Z",
|
||||||
|
"transactionsRoot": "Bpo3ARUhIUuu9hH3yrkUNF2s22VFnHRDwdWxzM0pb5U=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE="
|
||||||
|
},
|
||||||
|
"number": "3",
|
||||||
|
"size": "817",
|
||||||
|
"systemCalls": [
|
||||||
|
{
|
||||||
|
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
|
||||||
|
"beginOrdinal": "5",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "8",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "6",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
|
||||||
|
"beginOrdinal": "25",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "28",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "26",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "27",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
|
||||||
|
"beginOrdinal": "29",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "32",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "30",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "31",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "9",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DaCsTVRHwNQ="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DaHgOZLVtrQ="
|
||||||
|
},
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DaHJj9CWBHQ="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DaCsTVRHwNQ="
|
||||||
|
},
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "PkzJFSvdwg=="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "PkzJFSq+Qg=="
|
||||||
|
},
|
||||||
|
"ordinal": "23",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "16",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"codeChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=",
|
||||||
|
"oldHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=",
|
||||||
|
"ordinal": "15"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "19",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "500000",
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_TX_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "454000",
|
||||||
|
"oldValue": "500000",
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "454000",
|
||||||
|
"ordinal": "17",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "454000",
|
||||||
|
"ordinal": "18",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "463200",
|
||||||
|
"oldValue": "454000",
|
||||||
|
"ordinal": "20",
|
||||||
|
"reason": "REASON_TX_REFUNDS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "463200",
|
||||||
|
"ordinal": "22",
|
||||||
|
"reason": "REASON_TX_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "454000",
|
||||||
|
"index": 1,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "4",
|
||||||
|
"oldValue": "3",
|
||||||
|
"ordinal": "13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"newValue": "5",
|
||||||
|
"oldValue": "4",
|
||||||
|
"ordinal": "14"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "24",
|
||||||
|
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"gasLimit": "500000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "KFws9w=="
|
||||||
|
},
|
||||||
|
"gasUsed": "36800",
|
||||||
|
"hash": "vj4lUeVR72WjVf2OYUmz3Um0SH4d6qCao7cZRbBiaCI=",
|
||||||
|
"maxFeePerGas": {
|
||||||
|
"bytes": "ASoF8gA="
|
||||||
|
},
|
||||||
|
"maxPriorityFeePerGas": {
|
||||||
|
"bytes": "Ag=="
|
||||||
|
},
|
||||||
|
"nonce": "3",
|
||||||
|
"r": "3+bIOst9jVy0xdYLs7dP1KfP1XrtsXepmpY0W3XBKII=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "36800",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "UGXb+KJ8dparEBn0Wb2lX5fh1gB2+AiHfowzzmJWOkE=",
|
||||||
|
"setCodeAuthorizations": [
|
||||||
|
{
|
||||||
|
"authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"chainId": "AQ==",
|
||||||
|
"nonce": "4",
|
||||||
|
"r": "8RpcvObxuhW9b2SyJDTKMBtrqfyaAJlzS37bOLPTKIo=",
|
||||||
|
"s": "NMkyzSai5xkwNV4ttrTli9jZHXeB7hUwej28frcnTDw="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
|
||||||
|
"type": "TRX_TYPE_SET_CODE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 4
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,450 @@
|
||||||
|
{
|
||||||
|
"hash": "pmFJOXlO1smEJbK4oUBqjZ0iFBpYsTq50dyNbEiZ+Mw=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "Bw=="
|
||||||
|
},
|
||||||
|
"coinbase": "RV5aoYRpvGzO9JWUZFZmxYejpxs=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "pmFJOXlO1smEJbK4oUBqjZ0iFBpYsTq50dyNbEiZ+Mw=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "207938",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "nHyKL2uLMm9sBbmXgBbS0IWWvNldDJ8aquJBacj/BYg=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"timestamp": "2023-10-29T10:11:12Z",
|
||||||
|
"transactionsRoot": "0yEw5Z71BzpX25P3pM6JtJzwwAKrFMgJGulCMo+tLw8=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c="
|
||||||
|
},
|
||||||
|
"number": "207938",
|
||||||
|
"size": "2807",
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "X/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "BBz5LMZCX1A="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "BCJNar1sH1A="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "BB7HvUaRnVA="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "BBz5LMZCX1A="
|
||||||
|
},
|
||||||
|
"ordinal": "52",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "RV5aoYRpvGzO9JWUZFZmxYejpxs=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "0c8D1KMdnac="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "0ct+JyxYSWY="
|
||||||
|
},
|
||||||
|
"ordinal": "53",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"endOrdinal": "51",
|
||||||
|
"executedCode": true,
|
||||||
|
"failureReason": "execution reverted",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "263880",
|
||||||
|
"oldValue": "300000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "255906",
|
||||||
|
"oldValue": "255927",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "255616",
|
||||||
|
"oldValue": "255659",
|
||||||
|
"ordinal": "8",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "255327",
|
||||||
|
"oldValue": "255336",
|
||||||
|
"ordinal": "9",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "251104",
|
||||||
|
"oldValue": "251122",
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "248417",
|
||||||
|
"oldValue": "250917",
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "98417",
|
||||||
|
"oldValue": "251017",
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "102178",
|
||||||
|
"oldValue": "98417",
|
||||||
|
"ordinal": "50",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "162161",
|
||||||
|
"gasLimit": "263880",
|
||||||
|
"index": 1,
|
||||||
|
"input": "H62UjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAdiuuNYBn2VTD1f0iIcjfhQt9LeoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAAAAAAAAAAAAAAACO4OBgTp9mNlz73DP47b9PrWvjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuaygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiUBsxhhaNGkGKWhAdGEloORJdkVF+/uc8AAAAAAAAAAAAAAAB2K641gGfZVMPV/SIhyN+FC30t6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LYdJ/YAAAAAAAAAAAAAAAB9dzrz0pdDRC3JkcFoxDTZmDanIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAlep7MAAAAAAAAAAAAAAAC5jLHaT5vWQIefC7yzClQchBY0Bv//////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKLmMsdpPm9ZAh58LvLMKVByEFjQGfXc689KXQ0QtyZHBaMQ02Zg2pyMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWPbbHRb92GQN0A5BcCRplGg0yKGn1EwMQ93f/0H+09pWGuA5GRL1aXDgP2qgF5V+4i3OkM10yvL+4eJ8UgTtYIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI7g4GBOn2Y2XPvcM/jtv0+ta+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5rKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWJQGzGGFo0aQYpaEB0YSWg5El2RUX7+5zwAAAAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkth0n9gAAAAAAAAAAAAAAAH13OvPSl0NELcmRwWjENNmYNqcjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEqQWcuwAAAAAAAAAAAAAAAAI7g4GBOn2Y2XPvcM/jtv0+ta+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeC2s6dkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAouYyx2k+b1kCHnwu8swpUHIQWNAZ9dzrz0pdDRC3JkcFoxDTZmDanIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBdXr7NNBzY7d7FR1EcG8QFoP7byo4jlRHObr95zrDf6gLFDbbZsjtIMqWubWmj4oVtRCklUggA3RTcOHI3aTRixsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"28d9e8e57be8527d0679250d50e4fae027ae189be41776c0a4a2a0a42c2218da": "a16ebae5813bd19aa03287aa905d783611ff8b419ce30428f2da9457d9aa27630000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d27890000000000000000000000000000000000000000000000000000000000004268",
|
||||||
|
"58ce8202536a0e9871f92a2e42a02c92ee563a7817d29ae23b734f34e7ddda6c": "b98cb1da4f9bd640879f0bbcb30a541c841634067d773af3d29743442dc991c168c434d99836a723",
|
||||||
|
"a16ebae5813bd19aa03287aa905d783611ff8b419ce30428f2da9457d9aa2763": "000000000000000000000000023b8381813a7d98d973ef70cfe3b6fd3eb5af8f0000000000000000000000000000000000000000000000000000000000000000fe7e16dbeb61a0da1615b2a5b44efb2dc9288a102d97b83968a814c67dcb8b08d525d4a8e0332b956f801a3fc3094f9edf480fcda1a4ea641e7c51240fd0b2da000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000249f000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b9aca0058ce8202536a0e9871f92a2e42a02c92ee563a7817d29ae23b734f34e7ddda6c",
|
||||||
|
"d525d4a8e0332b956f801a3fc3094f9edf480fcda1a4ea641e7c51240fd0b2da": "b61d27f60000000000000000000000007d773af3d29743442dc991c168c434d99836a723000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000b98cb1da4f9bd640879f0bbcb30a541c84163406ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000",
|
||||||
|
"fe7e16dbeb61a0da1615b2a5b44efb2dc9288a102d97b83968a814c67dcb8b08": "9406cc6185a346906296840746125a0e449764545fbfb9cf000000000000000000000000762bae358067d954c3d5fd2221c8df850b7d2dea0000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
},
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"newValue": "5",
|
||||||
|
"oldValue": "4",
|
||||||
|
"ordinal": "4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"returnData": "IgJmtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG0FBMTMgaW5pdENvZGUgZmFpbGVkIG9yIE9PRwAAAAAA",
|
||||||
|
"stateReverted": true,
|
||||||
|
"statusFailed": true,
|
||||||
|
"statusReverted": true,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "X/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"ordinal": "6"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "f8mEMOrtu2Bws1s515hyUEkIg0g=",
|
||||||
|
"beginOrdinal": "13",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "X/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "49",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "149459",
|
||||||
|
"oldValue": "149480",
|
||||||
|
"ordinal": "14",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "146827",
|
||||||
|
"oldValue": "149327",
|
||||||
|
"ordinal": "15",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "2294",
|
||||||
|
"oldValue": "149427",
|
||||||
|
"ordinal": "16",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "3867",
|
||||||
|
"oldValue": "2294",
|
||||||
|
"ordinal": "48",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "146239",
|
||||||
|
"gasLimit": "150000",
|
||||||
|
"index": 2,
|
||||||
|
"input": "Vw4aNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiUBsxhhaNGkGKWhAdGEloORJdkVF+/uc8AAAAAAAAAAAAAAAB2K641gGfZVMPV/SIhyN+FC30t6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentIndex": 1,
|
||||||
|
"returnData": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"stateReverted": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "lAbMYYWjRpBiloQHRhJaDkSXZFQ=",
|
||||||
|
"beginOrdinal": "17",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "f8mEMOrtu2Bws1s515hyUEkIg0g=",
|
||||||
|
"depth": 2,
|
||||||
|
"endOrdinal": "47",
|
||||||
|
"executedCode": true,
|
||||||
|
"failureReason": "execution reverted",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "143783",
|
||||||
|
"oldValue": "144179",
|
||||||
|
"ordinal": "18",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "136634",
|
||||||
|
"oldValue": "137052",
|
||||||
|
"ordinal": "19",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "103642",
|
||||||
|
"oldValue": "136186",
|
||||||
|
"ordinal": "20",
|
||||||
|
"reason": "REASON_CONTRACT_CREATION2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "1619",
|
||||||
|
"oldValue": "103642",
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_CONTRACT_CREATION2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "1578",
|
||||||
|
"oldValue": "1581",
|
||||||
|
"ordinal": "46",
|
||||||
|
"reason": "REASON_RETURN_DATA_COPY"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "142960",
|
||||||
|
"gasLimit": "144533",
|
||||||
|
"index": 3,
|
||||||
|
"input": "X7+5zwAAAAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"b20e9a365b254be6244c7505a127ea9cd797608e023ebff1d696fef26de7ed6c": "60806040526040516107c13803806107c183398101604081905261002291610321565b61002e82826000610035565b505061043e565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d0838360405180606001604052806027815260200161079a602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103ef565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b8152600401610148919061040b565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b838111156100645750506000910152565b6000806040838503121561033457600080fd5b82516001600160a01b038116811461034b57600080fd5b60208401519092506001600160401b038082111561036857600080fd5b818501915085601f83011261037c57600080fd5b81518181111561038e5761038e6102df565b604051601f8201601f19908116603f011681019083821181831017156103b6576103b66102df565b816040528281528860208487010111156103cf57600080fd5b6103e08360208301602088016102f5565b80955050505050509250929050565b600082516104018184602087016102f5565b9190910192915050565b602081526000825180602084015261042a8160408501602087016102f5565b601f01601f19169190910160400192915050565b61034d8061044d6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102f1602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101079190610283565b600060405180830381855af49150503d8060008114610142576040519150601f19603f3d011682016040523d82523d6000602084013e610147565b606091505b509150915061015886838387610162565b9695505050505050565b606083156101fd5782516000036101f65773ffffffffffffffffffffffffffffffffffffffff85163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610207565b610207838361020f565b949350505050565b81511561021f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed919061029f565b60005b8381101561026e578181015183820152602001610256565b8381111561027d576000848401525b50505050565b60008251610295818460208701610253565b9190910192915050565b60208152600082518060208401526102be816040850160208701610253565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cd78ab6a31213989661cff2d7d05fc9b9c38b1a848e8249e2e398659a9eb7e364736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000008abb13360b87be5eeb1b98647a016add927a136c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000762bae358067d954c3d5fd2221c8df850b7d2dea00000000000000000000000000000000000000000000000000000000",
|
||||||
|
"c295fa357a42b337dcef09d6023b8381813a7d98d973ef70cfe3b6fd3eb5af8f": "ff9406cc6185a346906296840746125a0e449764540000000000000000000000000000000000000000000000000000000000000000b20e9a365b254be6244c7505a127ea9cd797608e023ebff1d696fef26de7ed6c"
|
||||||
|
},
|
||||||
|
"parentIndex": 2,
|
||||||
|
"stateReverted": true,
|
||||||
|
"statusFailed": true,
|
||||||
|
"statusReverted": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accountCreations": [
|
||||||
|
{
|
||||||
|
"account": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"ordinal": "24"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"beginOrdinal": "22",
|
||||||
|
"callType": "CREATE",
|
||||||
|
"caller": "lAbMYYWjRpBiloQHRhJaDkSXZFQ=",
|
||||||
|
"depth": 3,
|
||||||
|
"endOrdinal": "45",
|
||||||
|
"failureReason": "contract creation code storage out of gas",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "101946",
|
||||||
|
"oldValue": "101982",
|
||||||
|
"ordinal": "26",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "75098",
|
||||||
|
"oldValue": "76223",
|
||||||
|
"ordinal": "28",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "74928",
|
||||||
|
"oldValue": "74943",
|
||||||
|
"ordinal": "30",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "1163",
|
||||||
|
"oldValue": "74537",
|
||||||
|
"ordinal": "31",
|
||||||
|
"reason": "REASON_DELEGATE_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "48323",
|
||||||
|
"oldValue": "1163",
|
||||||
|
"ordinal": "42",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "47809",
|
||||||
|
"oldValue": "47921",
|
||||||
|
"ordinal": "43",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "47806",
|
||||||
|
"ordinal": "44",
|
||||||
|
"reason": "REASON_FAILED_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "102023",
|
||||||
|
"gasLimit": "102023",
|
||||||
|
"index": 4,
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"ordinal": "29",
|
||||||
|
"topics": [
|
||||||
|
"vHzXWiDuJ/2a3rqzIEH3VSFNvGv/qQzAIls52i5cLTs=",
|
||||||
|
"AAAAAAAAAAAAAAAAirsTNguHvl7rG5hkegFq3ZJ6E2w="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "lAbMYYWjRpBiloQHRhJaDkSXZFQ=",
|
||||||
|
"newValue": "3",
|
||||||
|
"oldValue": "2",
|
||||||
|
"ordinal": "23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "25"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentIndex": 3,
|
||||||
|
"stateReverted": true,
|
||||||
|
"statusFailed": true,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "NgiUoTuhoyEGZ8goSS25jco+IHbMNzWpIKPKUF04K7w=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAirsTNguHvl7rG5hkegFq3ZJ6E2w=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "27"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "irsTNguHvl7rG5hkegFq3ZJ6E2w=",
|
||||||
|
"beginOrdinal": "32",
|
||||||
|
"callType": "DELEGATE",
|
||||||
|
"caller": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"depth": 4,
|
||||||
|
"endOrdinal": "41",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "48475",
|
||||||
|
"oldValue": "49975",
|
||||||
|
"ordinal": "36",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "47173",
|
||||||
|
"oldValue": "48179",
|
||||||
|
"ordinal": "39",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "26114",
|
||||||
|
"gasLimit": "73274",
|
||||||
|
"index": 5,
|
||||||
|
"input": "xNZt6AAAAAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3q",
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"index": 1,
|
||||||
|
"ordinal": "37",
|
||||||
|
"topics": [
|
||||||
|
"R+Vcduem8f2JlqHagAjB6ilpnMo157zQV/LewxO25d4=",
|
||||||
|
"AAAAAAAAAAAAAAAAX/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"AAAAAAAAAAAAAAAAdiuuNYBn2VTD1f0iIcjfhQt9Leo="
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"index": 2,
|
||||||
|
"ordinal": "40",
|
||||||
|
"topics": [
|
||||||
|
"fya4P/luHytqaC8TOFL2eYoJxGXalZIUYM77OEdAJJg="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentIndex": 4,
|
||||||
|
"stateReverted": true,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "33"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQE=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"ordinal": "34"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAQE=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQE=",
|
||||||
|
"ordinal": "35"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAAE=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAQE=",
|
||||||
|
"ordinal": "38"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "54",
|
||||||
|
"from": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"gasLimit": "300000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "ASoF8gA="
|
||||||
|
},
|
||||||
|
"gasUsed": "198281",
|
||||||
|
"hash": "4t4kgzDQkJ+jBDUJgCn1J0QkxepFeDbojFN7R4lupdY=",
|
||||||
|
"input": "H62UjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAdiuuNYBn2VTD1f0iIcjfhQt9LeoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAAAAAAAAAAAAAAACO4OBgTp9mNlz73DP47b9PrWvjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuaygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiUBsxhhaNGkGKWhAdGEloORJdkVF+/uc8AAAAAAAAAAAAAAAB2K641gGfZVMPV/SIhyN+FC30t6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LYdJ/YAAAAAAAAAAAAAAAB9dzrz0pdDRC3JkcFoxDTZmDanIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAlep7MAAAAAAAAAAAAAAAC5jLHaT5vWQIefC7yzClQchBY0Bv//////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKLmMsdpPm9ZAh58LvLMKVByEFjQGfXc689KXQ0QtyZHBaMQ02Zg2pyMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWPbbHRb92GQN0A5BcCRplGg0yKGn1EwMQ93f/0H+09pWGuA5GRL1aXDgP2qgF5V+4i3OkM10yvL+4eJ8UgTtYIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI7g4GBOn2Y2XPvcM/jtv0+ta+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5rKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWJQGzGGFo0aQYpaEB0YSWg5El2RUX7+5zwAAAAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkth0n9gAAAAAAAAAAAAAAAH13OvPSl0NELcmRwWjENNmYNqcjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEqQWcuwAAAAAAAAAAAAAAAAI7g4GBOn2Y2XPvcM/jtv0+ta+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeC2s6dkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAouYyx2k+b1kCHnwu8swpUHIQWNAZ9dzrz0pdDRC3JkcFoxDTZmDanIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBdXr7NNBzY7d7FR1EcG8QFoP7byo4jlRHObr95zrDf6gLFDbbZsjtIMqWubWmj4oVtRCklUggA3RTcOHI3aTRixsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||||
|
"nonce": "4",
|
||||||
|
"r": "SDMAY2eUIzuof42iuJbp7ICVqnBmYRZTwaymE2ozrcA=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "198281",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "bk+EAD3UiLUfxRzH3Bbv5y8N7rhKESSMRwXu3bqryaQ=",
|
||||||
|
"status": "REVERTED",
|
||||||
|
"to": "X/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"v": "hPM="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,450 @@
|
||||||
|
{
|
||||||
|
"hash": "pmFJOXlO1smEJbK4oUBqjZ0iFBpYsTq50dyNbEiZ+Mw=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "Bw=="
|
||||||
|
},
|
||||||
|
"coinbase": "RV5aoYRpvGzO9JWUZFZmxYejpxs=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "pmFJOXlO1smEJbK4oUBqjZ0iFBpYsTq50dyNbEiZ+Mw=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "207938",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "nHyKL2uLMm9sBbmXgBbS0IWWvNldDJ8aquJBacj/BYg=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"timestamp": "2023-10-29T10:11:12Z",
|
||||||
|
"transactionsRoot": "0yEw5Z71BzpX25P3pM6JtJzwwAKrFMgJGulCMo+tLw8=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c="
|
||||||
|
},
|
||||||
|
"number": "207938",
|
||||||
|
"size": "2807",
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "X/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "BBz5LMZCX1A="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "BCJNar1sH1A="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "BB7HvUaRnVA="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "BBz5LMZCX1A="
|
||||||
|
},
|
||||||
|
"ordinal": "52",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "RV5aoYRpvGzO9JWUZFZmxYejpxs=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "0c8D1KMdnac="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "0ct+JyxYSWY="
|
||||||
|
},
|
||||||
|
"ordinal": "53",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"endOrdinal": "51",
|
||||||
|
"executedCode": true,
|
||||||
|
"failureReason": "execution reverted",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "263880",
|
||||||
|
"oldValue": "300000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "255906",
|
||||||
|
"oldValue": "255927",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "255616",
|
||||||
|
"oldValue": "255659",
|
||||||
|
"ordinal": "8",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "255327",
|
||||||
|
"oldValue": "255336",
|
||||||
|
"ordinal": "9",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "251104",
|
||||||
|
"oldValue": "251122",
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "248417",
|
||||||
|
"oldValue": "250917",
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "98417",
|
||||||
|
"oldValue": "251017",
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "102178",
|
||||||
|
"oldValue": "98417",
|
||||||
|
"ordinal": "50",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "162161",
|
||||||
|
"gasLimit": "263880",
|
||||||
|
"index": 1,
|
||||||
|
"input": "H62UjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAdiuuNYBn2VTD1f0iIcjfhQt9LeoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAAAAAAAAAAAAAAACO4OBgTp9mNlz73DP47b9PrWvjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuaygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiUBsxhhaNGkGKWhAdGEloORJdkVF+/uc8AAAAAAAAAAAAAAAB2K641gGfZVMPV/SIhyN+FC30t6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LYdJ/YAAAAAAAAAAAAAAAB9dzrz0pdDRC3JkcFoxDTZmDanIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAlep7MAAAAAAAAAAAAAAAC5jLHaT5vWQIefC7yzClQchBY0Bv//////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKLmMsdpPm9ZAh58LvLMKVByEFjQGfXc689KXQ0QtyZHBaMQ02Zg2pyMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWPbbHRb92GQN0A5BcCRplGg0yKGn1EwMQ93f/0H+09pWGuA5GRL1aXDgP2qgF5V+4i3OkM10yvL+4eJ8UgTtYIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI7g4GBOn2Y2XPvcM/jtv0+ta+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5rKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWJQGzGGFo0aQYpaEB0YSWg5El2RUX7+5zwAAAAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkth0n9gAAAAAAAAAAAAAAAH13OvPSl0NELcmRwWjENNmYNqcjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEqQWcuwAAAAAAAAAAAAAAAAI7g4GBOn2Y2XPvcM/jtv0+ta+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeC2s6dkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAouYyx2k+b1kCHnwu8swpUHIQWNAZ9dzrz0pdDRC3JkcFoxDTZmDanIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBdXr7NNBzY7d7FR1EcG8QFoP7byo4jlRHObr95zrDf6gLFDbbZsjtIMqWubWmj4oVtRCklUggA3RTcOHI3aTRixsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"28d9e8e57be8527d0679250d50e4fae027ae189be41776c0a4a2a0a42c2218da": "a16ebae5813bd19aa03287aa905d783611ff8b419ce30428f2da9457d9aa27630000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d27890000000000000000000000000000000000000000000000000000000000004268",
|
||||||
|
"58ce8202536a0e9871f92a2e42a02c92ee563a7817d29ae23b734f34e7ddda6c": "b98cb1da4f9bd640879f0bbcb30a541c841634067d773af3d29743442dc991c168c434d99836a723",
|
||||||
|
"a16ebae5813bd19aa03287aa905d783611ff8b419ce30428f2da9457d9aa2763": "000000000000000000000000023b8381813a7d98d973ef70cfe3b6fd3eb5af8f0000000000000000000000000000000000000000000000000000000000000000fe7e16dbeb61a0da1615b2a5b44efb2dc9288a102d97b83968a814c67dcb8b08d525d4a8e0332b956f801a3fc3094f9edf480fcda1a4ea641e7c51240fd0b2da000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000249f000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b9aca0058ce8202536a0e9871f92a2e42a02c92ee563a7817d29ae23b734f34e7ddda6c",
|
||||||
|
"d525d4a8e0332b956f801a3fc3094f9edf480fcda1a4ea641e7c51240fd0b2da": "b61d27f60000000000000000000000007d773af3d29743442dc991c168c434d99836a723000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000b98cb1da4f9bd640879f0bbcb30a541c84163406ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000",
|
||||||
|
"fe7e16dbeb61a0da1615b2a5b44efb2dc9288a102d97b83968a814c67dcb8b08": "9406cc6185a346906296840746125a0e449764545fbfb9cf000000000000000000000000762bae358067d954c3d5fd2221c8df850b7d2dea0000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
},
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"newValue": "5",
|
||||||
|
"oldValue": "4",
|
||||||
|
"ordinal": "4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"returnData": "IgJmtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG0FBMTMgaW5pdENvZGUgZmFpbGVkIG9yIE9PRwAAAAAA",
|
||||||
|
"stateReverted": true,
|
||||||
|
"statusFailed": true,
|
||||||
|
"statusReverted": true,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "X/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"ordinal": "6"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "f8mEMOrtu2Bws1s515hyUEkIg0g=",
|
||||||
|
"beginOrdinal": "13",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "X/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "49",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "149459",
|
||||||
|
"oldValue": "149480",
|
||||||
|
"ordinal": "14",
|
||||||
|
"reason": "REASON_CALL_DATA_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "146827",
|
||||||
|
"oldValue": "149327",
|
||||||
|
"ordinal": "15",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "2294",
|
||||||
|
"oldValue": "149427",
|
||||||
|
"ordinal": "16",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "3867",
|
||||||
|
"oldValue": "2294",
|
||||||
|
"ordinal": "48",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "146239",
|
||||||
|
"gasLimit": "150000",
|
||||||
|
"index": 2,
|
||||||
|
"input": "Vw4aNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiUBsxhhaNGkGKWhAdGEloORJdkVF+/uc8AAAAAAAAAAAAAAAB2K641gGfZVMPV/SIhyN+FC30t6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentIndex": 1,
|
||||||
|
"returnData": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"stateReverted": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "lAbMYYWjRpBiloQHRhJaDkSXZFQ=",
|
||||||
|
"beginOrdinal": "17",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "f8mEMOrtu2Bws1s515hyUEkIg0g=",
|
||||||
|
"depth": 2,
|
||||||
|
"endOrdinal": "47",
|
||||||
|
"executedCode": true,
|
||||||
|
"failureReason": "execution reverted",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "143783",
|
||||||
|
"oldValue": "144179",
|
||||||
|
"ordinal": "18",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "136634",
|
||||||
|
"oldValue": "137052",
|
||||||
|
"ordinal": "19",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "103642",
|
||||||
|
"oldValue": "136186",
|
||||||
|
"ordinal": "20",
|
||||||
|
"reason": "REASON_CONTRACT_CREATION2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "1619",
|
||||||
|
"oldValue": "103642",
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_CONTRACT_CREATION2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "1578",
|
||||||
|
"oldValue": "1581",
|
||||||
|
"ordinal": "46",
|
||||||
|
"reason": "REASON_RETURN_DATA_COPY"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "142960",
|
||||||
|
"gasLimit": "144533",
|
||||||
|
"index": 3,
|
||||||
|
"input": "X7+5zwAAAAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"b20e9a365b254be6244c7505a127ea9cd797608e023ebff1d696fef26de7ed6c": "60806040526040516107c13803806107c183398101604081905261002291610321565b61002e82826000610035565b505061043e565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d0838360405180606001604052806027815260200161079a602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103ef565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b8152600401610148919061040b565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b838111156100645750506000910152565b6000806040838503121561033457600080fd5b82516001600160a01b038116811461034b57600080fd5b60208401519092506001600160401b038082111561036857600080fd5b818501915085601f83011261037c57600080fd5b81518181111561038e5761038e6102df565b604051601f8201601f19908116603f011681019083821181831017156103b6576103b66102df565b816040528281528860208487010111156103cf57600080fd5b6103e08360208301602088016102f5565b80955050505050509250929050565b600082516104018184602087016102f5565b9190910192915050565b602081526000825180602084015261042a8160408501602087016102f5565b601f01601f19169190910160400192915050565b61034d8061044d6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102f1602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101079190610283565b600060405180830381855af49150503d8060008114610142576040519150601f19603f3d011682016040523d82523d6000602084013e610147565b606091505b509150915061015886838387610162565b9695505050505050565b606083156101fd5782516000036101f65773ffffffffffffffffffffffffffffffffffffffff85163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610207565b610207838361020f565b949350505050565b81511561021f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed919061029f565b60005b8381101561026e578181015183820152602001610256565b8381111561027d576000848401525b50505050565b60008251610295818460208701610253565b9190910192915050565b60208152600082518060208401526102be816040850160208701610253565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cd78ab6a31213989661cff2d7d05fc9b9c38b1a848e8249e2e398659a9eb7e364736f6c634300080f0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000008abb13360b87be5eeb1b98647a016add927a136c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000762bae358067d954c3d5fd2221c8df850b7d2dea00000000000000000000000000000000000000000000000000000000",
|
||||||
|
"c295fa357a42b337dcef09d6023b8381813a7d98d973ef70cfe3b6fd3eb5af8f": "ff9406cc6185a346906296840746125a0e449764540000000000000000000000000000000000000000000000000000000000000000b20e9a365b254be6244c7505a127ea9cd797608e023ebff1d696fef26de7ed6c"
|
||||||
|
},
|
||||||
|
"parentIndex": 2,
|
||||||
|
"stateReverted": true,
|
||||||
|
"statusFailed": true,
|
||||||
|
"statusReverted": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accountCreations": [
|
||||||
|
{
|
||||||
|
"account": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"ordinal": "24"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"beginOrdinal": "22",
|
||||||
|
"callType": "CREATE",
|
||||||
|
"caller": "lAbMYYWjRpBiloQHRhJaDkSXZFQ=",
|
||||||
|
"depth": 3,
|
||||||
|
"endOrdinal": "45",
|
||||||
|
"failureReason": "contract creation code storage out of gas",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "101946",
|
||||||
|
"oldValue": "101982",
|
||||||
|
"ordinal": "26",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "75098",
|
||||||
|
"oldValue": "76223",
|
||||||
|
"ordinal": "28",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "74928",
|
||||||
|
"oldValue": "74943",
|
||||||
|
"ordinal": "30",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "1163",
|
||||||
|
"oldValue": "74537",
|
||||||
|
"ordinal": "31",
|
||||||
|
"reason": "REASON_DELEGATE_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "48323",
|
||||||
|
"oldValue": "1163",
|
||||||
|
"ordinal": "42",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "47809",
|
||||||
|
"oldValue": "47921",
|
||||||
|
"ordinal": "43",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "47806",
|
||||||
|
"ordinal": "44",
|
||||||
|
"reason": "REASON_FAILED_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "102023",
|
||||||
|
"gasLimit": "102023",
|
||||||
|
"index": 4,
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"ordinal": "29",
|
||||||
|
"topics": [
|
||||||
|
"vHzXWiDuJ/2a3rqzIEH3VSFNvGv/qQzAIls52i5cLTs=",
|
||||||
|
"AAAAAAAAAAAAAAAAirsTNguHvl7rG5hkegFq3ZJ6E2w="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "lAbMYYWjRpBiloQHRhJaDkSXZFQ=",
|
||||||
|
"newValue": "3",
|
||||||
|
"oldValue": "2",
|
||||||
|
"ordinal": "23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "25"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentIndex": 3,
|
||||||
|
"stateReverted": true,
|
||||||
|
"statusFailed": true,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "NgiUoTuhoyEGZ8goSS25jco+IHbMNzWpIKPKUF04K7w=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAirsTNguHvl7rG5hkegFq3ZJ6E2w=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "27"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "irsTNguHvl7rG5hkegFq3ZJ6E2w=",
|
||||||
|
"beginOrdinal": "32",
|
||||||
|
"callType": "DELEGATE",
|
||||||
|
"caller": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"depth": 4,
|
||||||
|
"endOrdinal": "41",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "48475",
|
||||||
|
"oldValue": "49975",
|
||||||
|
"ordinal": "36",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "47173",
|
||||||
|
"oldValue": "48179",
|
||||||
|
"ordinal": "39",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "26114",
|
||||||
|
"gasLimit": "73274",
|
||||||
|
"index": 5,
|
||||||
|
"input": "xNZt6AAAAAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3q",
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"index": 1,
|
||||||
|
"ordinal": "37",
|
||||||
|
"topics": [
|
||||||
|
"R+Vcduem8f2JlqHagAjB6ilpnMo157zQV/LewxO25d4=",
|
||||||
|
"AAAAAAAAAAAAAAAAX/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"AAAAAAAAAAAAAAAAdiuuNYBn2VTD1f0iIcjfhQt9Leo="
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"index": 2,
|
||||||
|
"ordinal": "40",
|
||||||
|
"topics": [
|
||||||
|
"fya4P/luHytqaC8TOFL2eYoJxGXalZIUYM77OEdAJJg="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentIndex": 4,
|
||||||
|
"stateReverted": true,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "33"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQE=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"ordinal": "34"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAQE=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQE=",
|
||||||
|
"ordinal": "35"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AjuDgYE6fZjZc+9wz+O2/T61r48=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAAE=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAQE=",
|
||||||
|
"ordinal": "38"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "54",
|
||||||
|
"from": "diuuNYBn2VTD1f0iIcjfhQt9Leo=",
|
||||||
|
"gasLimit": "300000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "ASoF8gA="
|
||||||
|
},
|
||||||
|
"gasUsed": "198281",
|
||||||
|
"hash": "4t4kgzDQkJ+jBDUJgCn1J0QkxepFeDbojFN7R4lupdY=",
|
||||||
|
"input": "H62UjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAdiuuNYBn2VTD1f0iIcjfhQt9LeoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAAAAAAAAAAAAAAACO4OBgTp9mNlz73DP47b9PrWvjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuaygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiUBsxhhaNGkGKWhAdGEloORJdkVF+/uc8AAAAAAAAAAAAAAAB2K641gGfZVMPV/SIhyN+FC30t6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LYdJ/YAAAAAAAAAAAAAAAB9dzrz0pdDRC3JkcFoxDTZmDanIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAlep7MAAAAAAAAAAAAAAAC5jLHaT5vWQIefC7yzClQchBY0Bv//////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKLmMsdpPm9ZAh58LvLMKVByEFjQGfXc689KXQ0QtyZHBaMQ02Zg2pyMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWPbbHRb92GQN0A5BcCRplGg0yKGn1EwMQ93f/0H+09pWGuA5GRL1aXDgP2qgF5V+4i3OkM10yvL+4eJ8UgTtYIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI7g4GBOn2Y2XPvcM/jtv0+ta+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJJ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO5rKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWJQGzGGFo0aQYpaEB0YSWg5El2RUX7+5zwAAAAAAAAAAAAAAAHYrrjWAZ9lUw9X9IiHI34ULfS3qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkth0n9gAAAAAAAAAAAAAAAH13OvPSl0NELcmRwWjENNmYNqcjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEqQWcuwAAAAAAAAAAAAAAAAI7g4GBOn2Y2XPvcM/jtv0+ta+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeC2s6dkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAouYyx2k+b1kCHnwu8swpUHIQWNAZ9dzrz0pdDRC3JkcFoxDTZmDanIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBdXr7NNBzY7d7FR1EcG8QFoP7byo4jlRHObr95zrDf6gLFDbbZsjtIMqWubWmj4oVtRCklUggA3RTcOHI3aTRixsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||||
|
"nonce": "4",
|
||||||
|
"r": "SDMAY2eUIzuof42iuJbp7ICVqnBmYRZTwaymE2ozrcA=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "198281",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "bk+EAD3UiLUfxRzH3Bbv5y8N7rhKESSMRwXu3bqryaQ=",
|
||||||
|
"status": "REVERTED",
|
||||||
|
"to": "X/E31LD9zUncowx89X5XigJtJ4k=",
|
||||||
|
"v": "hPM="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,164 @@
|
||||||
|
{
|
||||||
|
"hash": "SKLPDUOjSrOGLDSmQ92rvI79Tx7rbpi+MnMdw1ta0jQ=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "DQ=="
|
||||||
|
},
|
||||||
|
"coinbase": "AAAAaRaoe4IzP0JFBGYjsjeUxlw=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "SKLPDUOjSrOGLDSmQ92rvI79Tx7rbpi+MnMdw1ta0jQ=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "3727495",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "aYf8zdg87hj7kTMGYReWUn8vvkT0i92fQ04NAsNDcDc=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"timestamp": "2023-06-19T23:23:48Z",
|
||||||
|
"transactionsRoot": "bDCtoar4SKuDMt3K7Ay0vDV8FJj/S9YTAtfuy7yJYL0=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c="
|
||||||
|
},
|
||||||
|
"number": "3727495",
|
||||||
|
"size": "723",
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "B5sluWAKJ10="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "B5sluWe3fF0="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "B5sluWUI8jk="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "B5sluWAKJ10="
|
||||||
|
},
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAaRaoe4IzP0JFBGYjsjeUxlw=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "AecopRVH6f5hufY="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "AecopRVH6fvBC6c="
|
||||||
|
},
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"endOrdinal": "10",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "178428",
|
||||||
|
"oldValue": "200000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "130141",
|
||||||
|
"oldValue": "131897",
|
||||||
|
"ordinal": "8",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "48293",
|
||||||
|
"gasLimit": "178428",
|
||||||
|
"index": 1,
|
||||||
|
"input": "QMEPGQAAAAAAAAAAAAAAAOs9PWFvPkPp7TYe3S0OZE0Y0Xm3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"bb65ff7a03b11b79143b011da0de7c67f6d9bb8f57df2381d88d503cdb07b0b6": "000000000000000000000000eb3d3d616f3e43e9ed361edd2d0e644d18d179b70000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
},
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"ordinal": "9",
|
||||||
|
"topics": [
|
||||||
|
"3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8=",
|
||||||
|
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"AAAAAAAAAAAAAAAA6z09YW8+Q+ntNh7dLQ5kTRjRebc="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": "6",
|
||||||
|
"oldValue": "5",
|
||||||
|
"ordinal": "4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"key": "u2X/egOxG3kUOwEdoN58Z/bZu49X3yOB2I1QPNsHsLY=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "7"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "13",
|
||||||
|
"from": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"gasLimit": "200000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "AoQ="
|
||||||
|
},
|
||||||
|
"gasUsed": "69865",
|
||||||
|
"hash": "tF3PNXHZNWA+icLD8DyDTxT8x76iGVd8sDejy7wEQx8=",
|
||||||
|
"input": "QMEPGQAAAAAAAAAAAAAAAOs9PWFvPkPp7TYe3S0OZE0Y0Xm3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"nonce": "5",
|
||||||
|
"r": "Xww4NKZlcXSDEHF8P5UnXU9PLqL6aBoOU5VFipWpVaM=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "69865",
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"ordinal": "9",
|
||||||
|
"topics": [
|
||||||
|
"3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8=",
|
||||||
|
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"AAAAAAAAAAAAAAAA6z09YW8+Q+ntNh7dLQ5kTRjRebc="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAIAAAAAAAAAAAAIAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "BOdJVNNAB7fPBAA48slaL2uQd1vOwb423lDacpucotM=",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"v": "AVRtcg=="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,164 @@
|
||||||
|
{
|
||||||
|
"hash": "SKLPDUOjSrOGLDSmQ92rvI79Tx7rbpi+MnMdw1ta0jQ=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "DQ=="
|
||||||
|
},
|
||||||
|
"coinbase": "AAAAaRaoe4IzP0JFBGYjsjeUxlw=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "SKLPDUOjSrOGLDSmQ92rvI79Tx7rbpi+MnMdw1ta0jQ=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "3727495",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "aYf8zdg87hj7kTMGYReWUn8vvkT0i92fQ04NAsNDcDc=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"timestamp": "2023-06-19T23:23:48Z",
|
||||||
|
"transactionsRoot": "bDCtoar4SKuDMt3K7Ay0vDV8FJj/S9YTAtfuy7yJYL0=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c="
|
||||||
|
},
|
||||||
|
"number": "3727495",
|
||||||
|
"size": "723",
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "B5sluWAKJ10="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "B5sluWe3fF0="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "B5sluWUI8jk="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "B5sluWAKJ10="
|
||||||
|
},
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAaRaoe4IzP0JFBGYjsjeUxlw=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "AecopRVH6f5hufY="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "AecopRVH6fvBC6c="
|
||||||
|
},
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"endOrdinal": "10",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "178428",
|
||||||
|
"oldValue": "200000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "130141",
|
||||||
|
"oldValue": "131897",
|
||||||
|
"ordinal": "8",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "48293",
|
||||||
|
"gasLimit": "178428",
|
||||||
|
"index": 1,
|
||||||
|
"input": "QMEPGQAAAAAAAAAAAAAAAOs9PWFvPkPp7TYe3S0OZE0Y0Xm3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"bb65ff7a03b11b79143b011da0de7c67f6d9bb8f57df2381d88d503cdb07b0b6": "000000000000000000000000eb3d3d616f3e43e9ed361edd2d0e644d18d179b70000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
},
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"ordinal": "9",
|
||||||
|
"topics": [
|
||||||
|
"3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8=",
|
||||||
|
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"AAAAAAAAAAAAAAAA6z09YW8+Q+ntNh7dLQ5kTRjRebc="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": "6",
|
||||||
|
"oldValue": "5",
|
||||||
|
"ordinal": "4"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"key": "u2X/egOxG3kUOwEdoN58Z/bZu49X3yOB2I1QPNsHsLY=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "7"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "13",
|
||||||
|
"from": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"gasLimit": "200000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "AoQ="
|
||||||
|
},
|
||||||
|
"gasUsed": "69865",
|
||||||
|
"hash": "tF3PNXHZNWA+icLD8DyDTxT8x76iGVd8sDejy7wEQx8=",
|
||||||
|
"input": "QMEPGQAAAAAAAAAAAAAAAOs9PWFvPkPp7TYe3S0OZE0Y0Xm3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"nonce": "5",
|
||||||
|
"r": "Xww4NKZlcXSDEHF8P5UnXU9PLqL6aBoOU5VFipWpVaM=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "69865",
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPo=",
|
||||||
|
"ordinal": "9",
|
||||||
|
"topics": [
|
||||||
|
"3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8=",
|
||||||
|
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"AAAAAAAAAAAAAAAA6z09YW8+Q+ntNh7dLQ5kTRjRebc="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAIAAAAAAAAAAAAIAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "BOdJVNNAB7fPBAA48slaL2uQd1vOwb423lDacpucotM=",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "3Z+V4sEFOnYIm1AXgpuyMwy2rkc=",
|
||||||
|
"v": "AVRtcg=="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,165 @@
|
||||||
|
{
|
||||||
|
"context": {
|
||||||
|
"baseFeePerGas": "13",
|
||||||
|
"difficulty": "0",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"miner": "0x0000006916a87b82333f4245046623b23794c65c",
|
||||||
|
"number": "3727495",
|
||||||
|
"timestamp": "1687217028"
|
||||||
|
},
|
||||||
|
"genesis": {
|
||||||
|
"alloc": {
|
||||||
|
"0x0000006916a87b82333f4245046623b23794c65c": {
|
||||||
|
"balance": "0x1e728a51547e9fbc10ba7",
|
||||||
|
"nonce": "5"
|
||||||
|
},
|
||||||
|
"0xdd9f95e2c1053a76089b5017829bb2330cb6ae47": {
|
||||||
|
"balance": "0x0",
|
||||||
|
"code": "0x60003560e01c8063095ea7b31461005c57806340c10f1914610062578063a9059cbb146100d957806323b872dd146100df57806318160ddd1461015d57806370a082311461016e5763dd62ed3e1461018e573461018e5760006000f35b60006000f35b60043573ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000602435856000526040600020805482018083119155600254820180831190600255600154331415171761018e57600052a360006000f35b60006000f35b60043573ffffffffffffffffffffffffffffffffffffffff16337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000602435856000526040600020805482018083119155336000526040600020805483900380841091553417176101535760006000fd5b600052a360206000f35b3461018e5760025460005260206000f35b3461018e5760043560005260406000205460005260206000f35b60006000f35b60006000fd",
|
||||||
|
"nonce": "1",
|
||||||
|
"storage": {
|
||||||
|
"0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000eb3d3d616f3e43e9ed361edd2d0e644d18d179b7",
|
||||||
|
"0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"0xbb65ff7a03b11b79143b011da0de7c67f6d9bb8f57df2381d88d503cdb07b0b6": "0x0000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0xeb3d3d616f3e43e9ed361edd2d0e644d18d179b7": {
|
||||||
|
"balance": "0x79b25b967b77c5d",
|
||||||
|
"nonce": "5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"baseFeePerGas": "14",
|
||||||
|
"config": {
|
||||||
|
"berlinBlock": 0,
|
||||||
|
"byzantiumBlock": 0,
|
||||||
|
"cancunTime": 1706655072,
|
||||||
|
"chainId": 11155111,
|
||||||
|
"constantinopleBlock": 0,
|
||||||
|
"daoForkSupport": true,
|
||||||
|
"eip150Block": 0,
|
||||||
|
"eip155Block": 0,
|
||||||
|
"eip158Block": 0,
|
||||||
|
"ethash": {},
|
||||||
|
"homesteadBlock": 0,
|
||||||
|
"istanbulBlock": 0,
|
||||||
|
"londonBlock": 0,
|
||||||
|
"mergeNetsplitBlock": 1735371,
|
||||||
|
"muirGlacierBlock": 0,
|
||||||
|
"petersburgBlock": 0,
|
||||||
|
"shanghaiTime": 1677557088,
|
||||||
|
"terminalTotalDifficulty": 17000000000000000,
|
||||||
|
"terminalTotalDifficultyPassed": true
|
||||||
|
},
|
||||||
|
"difficulty": "0",
|
||||||
|
"extraData": "0x6769756c696f207761732068657265",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "0xff41623ef4e84cea4e957676a0b7e5868f1480e343ad533914133c448157764c",
|
||||||
|
"miner": "0x008b3b2f992c0e14edaa6e2c662bec549caa8df1",
|
||||||
|
"mixHash": "0xf04431d1d4ccb65f5d1b2e88ec010737ae82d68426b287a7158b9b16aa45a0bc",
|
||||||
|
"nonce": "0x0000000000000000",
|
||||||
|
"number": "3727494",
|
||||||
|
"stateRoot": "0xe3f9e4ff1577f21330eded302784f548f6fed4d4ca7a1f6884dde9ad38743279",
|
||||||
|
"timestamp": "1687217016",
|
||||||
|
"totalDifficulty": "17000018015853232",
|
||||||
|
"withdrawals": [
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x244a5",
|
||||||
|
"index": "0xb3bf91",
|
||||||
|
"validatorIndex": "0x38b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf92",
|
||||||
|
"validatorIndex": "0x38c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf93",
|
||||||
|
"validatorIndex": "0x38d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf94",
|
||||||
|
"validatorIndex": "0x38e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf95",
|
||||||
|
"validatorIndex": "0x38f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf96",
|
||||||
|
"validatorIndex": "0x390"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x244a5",
|
||||||
|
"index": "0xb3bf97",
|
||||||
|
"validatorIndex": "0x391"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf98",
|
||||||
|
"validatorIndex": "0x392"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x25b2b",
|
||||||
|
"index": "0xb3bf99",
|
||||||
|
"validatorIndex": "0x393"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x244a5",
|
||||||
|
"index": "0xb3bf9a",
|
||||||
|
"validatorIndex": "0x394"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf9b",
|
||||||
|
"validatorIndex": "0x395"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x244a5",
|
||||||
|
"index": "0xb3bf9c",
|
||||||
|
"validatorIndex": "0x396"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x244a5",
|
||||||
|
"index": "0xb3bf9d",
|
||||||
|
"validatorIndex": "0x397"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf9e",
|
||||||
|
"validatorIndex": "0x398"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2d66a",
|
||||||
|
"index": "0xb3bf9f",
|
||||||
|
"validatorIndex": "0x399"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ecf0",
|
||||||
|
"index": "0xb3bfa0",
|
||||||
|
"validatorIndex": "0x39a"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"withdrawalsRoot": "0xceabf2dc1561db0f29da25b6282082e5353c2f594942cfdcdccfeb176542411c"
|
||||||
|
},
|
||||||
|
"input": "0xf8ab0582028483030d4094dd9f95e2c1053a76089b5017829bb2330cb6ae4780b84440c10f19000000000000000000000000eb3d3d616f3e43e9ed361edd2d0e644d18d179b700000000000000000000000000000000000000000000000000000000000000fa8401546d72a05f0c3834a66571748310717c3f95275d4f4f2ea2fa681a0e5395458a95a955a3a004e74954d34007b7cf040038f2c95a2f6b90775bcec1be36de50da729b9ca2d3"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,229 @@
|
||||||
|
{
|
||||||
|
"hash": "IPNVZgyygE0HzwAtWVr0ghv9lxf+N0C45NHNCWv5Oyg=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "Cqc="
|
||||||
|
},
|
||||||
|
"coinbase": "AAAAaRaoe4IzP0JFBGYjsjeUxlw=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "IPNVZgyygE0HzwAtWVr0ghv9lxf+N0C45NHNCWv5Oyg=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "3733424",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "f7pk/8VV6aRiIPz5tngJXJEAkJokLyPKgV4W7ujmnP8=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"timestamp": "2023-06-20T21:02:36Z",
|
||||||
|
"transactionsRoot": "qGt8M+EeGIjvA3CmiVt41zk8Ap6NokQ0xxIVjv/5oCY=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c="
|
||||||
|
},
|
||||||
|
"number": "3733424",
|
||||||
|
"size": "673",
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "VJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "B5sluJ/kW34="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "B5sluMJIrb4="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "B5sluLmEBFg="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "B5sluJ/kW34="
|
||||||
|
},
|
||||||
|
"ordinal": "20",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAaRaoe4IzP0JFBGYjsjeUxlw=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "Aecpt9WGjDRS35o="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "Aecpt9WGjDPX8TY="
|
||||||
|
},
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"endOrdinal": "19",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "178664",
|
||||||
|
"oldValue": "200000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "175937",
|
||||||
|
"oldValue": "178437",
|
||||||
|
"ordinal": "6",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "2748",
|
||||||
|
"oldValue": "178537",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "173596",
|
||||||
|
"oldValue": "2748",
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "2677",
|
||||||
|
"oldValue": "171474",
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "144210",
|
||||||
|
"oldValue": "2677",
|
||||||
|
"ordinal": "18",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "34454",
|
||||||
|
"gasLimit": "178664",
|
||||||
|
"index": 1,
|
||||||
|
"input": "ASy2ctjBKKzAgl3Lr2HkOik6WlJ2",
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": "28",
|
||||||
|
"oldValue": "27",
|
||||||
|
"ordinal": "4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"beginOrdinal": "8",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "VJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "9",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasConsumed": "2338",
|
||||||
|
"gasLimit": "173186",
|
||||||
|
"index": 2,
|
||||||
|
"input": "cKCCMQAAAAAAAAAAAAAAAFSaMtV8NdNoEd5qRiWWlwyD6psj",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"dfecc5e296fad583cf3240a878ef92ffb0955f284f0216e1670f60c2279e53ba": "000000000000000000000000549a32d57c35d36811de6a462596970c83ea9b230000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
},
|
||||||
|
"parentIndex": 1,
|
||||||
|
"returnData": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"beginOrdinal": "12",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "VJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "17",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "141533",
|
||||||
|
"oldValue": "143289",
|
||||||
|
"ordinal": "15",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "27164",
|
||||||
|
"gasLimit": "168697",
|
||||||
|
"index": 3,
|
||||||
|
"input": "qQWcuwAAAAAAAAAAAAAAAOs9PWFvPkPp7TYe3S0OZE0Y0Xm3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"bb65ff7a03b11b79143b011da0de7c67f6d9bb8f57df2381d88d503cdb07b0b6": "000000000000000000000000eb3d3d616f3e43e9ed361edd2d0e644d18d179b70000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"dfecc5e296fad583cf3240a878ef92ffb0955f284f0216e1670f60c2279e53ba": "000000000000000000000000549a32d57c35d36811de6a462596970c83ea9b230000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
},
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"ordinal": "16",
|
||||||
|
"topics": [
|
||||||
|
"3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8=",
|
||||||
|
"AAAAAAAAAAAAAAAAVJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"AAAAAAAAAAAAAAAA6z09YW8+Q+ntNh7dLQ5kTRjRebc="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentIndex": 1,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"key": "u2X/egOxG3kUOwEdoN58Z/bZu49X3yOB2I1QPNsHsLY=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"key": "3+zF4pb61YPPMkCoeO+S/7CVXyhPAhbhZw9gwieeU7o=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"ordinal": "14"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "22",
|
||||||
|
"from": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"gasLimit": "200000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "C0U="
|
||||||
|
},
|
||||||
|
"gasUsed": "50990",
|
||||||
|
"hash": "E2euJ14Brg/hLbsRFBismbxzpqbwfKtvvBhA1ZB2cD8=",
|
||||||
|
"input": "ASy2ctjBKKzAgl3Lr2HkOik6WlJ2",
|
||||||
|
"nonce": "27",
|
||||||
|
"r": "/n8N4OD9KzN9vfG0/fl6FERX+FAklxcusTRKtuJaaAY=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "50990",
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"ordinal": "16",
|
||||||
|
"topics": [
|
||||||
|
"3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8=",
|
||||||
|
"AAAAAAAAAAAAAAAAVJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"AAAAAAAAAAAAAAAA6z09YW8+Q+ntNh7dLQ5kTRjRebc="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAIAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "C4wVifsU3LuR1ToPisse4e3pAciXSe4Vv+hsa+7HBS4=",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "VJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"v": "Gw=="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,229 @@
|
||||||
|
{
|
||||||
|
"hash": "IPNVZgyygE0HzwAtWVr0ghv9lxf+N0C45NHNCWv5Oyg=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "Cqc="
|
||||||
|
},
|
||||||
|
"coinbase": "AAAAaRaoe4IzP0JFBGYjsjeUxlw=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "IPNVZgyygE0HzwAtWVr0ghv9lxf+N0C45NHNCWv5Oyg=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "3733424",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "f7pk/8VV6aRiIPz5tngJXJEAkJokLyPKgV4W7ujmnP8=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"timestamp": "2023-06-20T21:02:36Z",
|
||||||
|
"transactionsRoot": "qGt8M+EeGIjvA3CmiVt41zk8Ap6NokQ0xxIVjv/5oCY=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c="
|
||||||
|
},
|
||||||
|
"number": "3733424",
|
||||||
|
"size": "673",
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"address": "VJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "B5sluJ/kW34="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "B5sluMJIrb4="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "B5sluLmEBFg="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "B5sluJ/kW34="
|
||||||
|
},
|
||||||
|
"ordinal": "20",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAAaRaoe4IzP0JFBGYjsjeUxlw=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "Aecpt9WGjDRS35o="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "Aecpt9WGjDPX8TY="
|
||||||
|
},
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"endOrdinal": "19",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "178664",
|
||||||
|
"oldValue": "200000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "175937",
|
||||||
|
"oldValue": "178437",
|
||||||
|
"ordinal": "6",
|
||||||
|
"reason": "REASON_STATE_COLD_ACCESS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "2748",
|
||||||
|
"oldValue": "178537",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "173596",
|
||||||
|
"oldValue": "2748",
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "2677",
|
||||||
|
"oldValue": "171474",
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "144210",
|
||||||
|
"oldValue": "2677",
|
||||||
|
"ordinal": "18",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "34454",
|
||||||
|
"gasLimit": "178664",
|
||||||
|
"index": 1,
|
||||||
|
"input": "ASy2ctjBKKzAgl3Lr2HkOik6WlJ2",
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"newValue": "28",
|
||||||
|
"oldValue": "27",
|
||||||
|
"ordinal": "4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"beginOrdinal": "8",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "VJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "9",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasConsumed": "2338",
|
||||||
|
"gasLimit": "173186",
|
||||||
|
"index": 2,
|
||||||
|
"input": "cKCCMQAAAAAAAAAAAAAAAFSaMtV8NdNoEd5qRiWWlwyD6psj",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"dfecc5e296fad583cf3240a878ef92ffb0955f284f0216e1670f60c2279e53ba": "000000000000000000000000549a32d57c35d36811de6a462596970c83ea9b230000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
},
|
||||||
|
"parentIndex": 1,
|
||||||
|
"returnData": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"beginOrdinal": "12",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "VJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "17",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "141533",
|
||||||
|
"oldValue": "143289",
|
||||||
|
"ordinal": "15",
|
||||||
|
"reason": "REASON_EVENT_LOG"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "27164",
|
||||||
|
"gasLimit": "168697",
|
||||||
|
"index": 3,
|
||||||
|
"input": "qQWcuwAAAAAAAAAAAAAAAOs9PWFvPkPp7TYe3S0OZE0Y0Xm3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"keccakPreimages": {
|
||||||
|
"bb65ff7a03b11b79143b011da0de7c67f6d9bb8f57df2381d88d503cdb07b0b6": "000000000000000000000000eb3d3d616f3e43e9ed361edd2d0e644d18d179b70000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"dfecc5e296fad583cf3240a878ef92ffb0955f284f0216e1670f60c2279e53ba": "000000000000000000000000549a32d57c35d36811de6a462596970c83ea9b230000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
},
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"ordinal": "16",
|
||||||
|
"topics": [
|
||||||
|
"3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8=",
|
||||||
|
"AAAAAAAAAAAAAAAAVJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"AAAAAAAAAAAAAAAA6z09YW8+Q+ntNh7dLQ5kTRjRebc="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentIndex": 1,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"key": "u2X/egOxG3kUOwEdoN58Z/bZu49X3yOB2I1QPNsHsLY=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"key": "3+zF4pb61YPPMkCoeO+S/7CVXyhPAhbhZw9gwieeU7o=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"ordinal": "14"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "22",
|
||||||
|
"from": "6z09YW8+Q+ntNh7dLQ5kTRjRebc=",
|
||||||
|
"gasLimit": "200000",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "C0U="
|
||||||
|
},
|
||||||
|
"gasUsed": "50990",
|
||||||
|
"hash": "E2euJ14Brg/hLbsRFBismbxzpqbwfKtvvBhA1ZB2cD8=",
|
||||||
|
"input": "ASy2ctjBKKzAgl3Lr2HkOik6WlJ2",
|
||||||
|
"nonce": "27",
|
||||||
|
"r": "/n8N4OD9KzN9vfG0/fl6FERX+FAklxcusTRKtuJaaAY=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "50990",
|
||||||
|
"logs": [
|
||||||
|
{
|
||||||
|
"address": "LLZy2MEorMCCXcuvYeQ6KTpaUnY=",
|
||||||
|
"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJY=",
|
||||||
|
"ordinal": "16",
|
||||||
|
"topics": [
|
||||||
|
"3fJSrRviyJtpwrBo/DeNqpUrp/FjxKEWKPVaTfUjs+8=",
|
||||||
|
"AAAAAAAAAAAAAAAAVJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"AAAAAAAAAAAAAAAA6z09YW8+Q+ntNh7dLQ5kTRjRebc="
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAIAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "C4wVifsU3LuR1ToPisse4e3pAciXSe4Vv+hsa+7HBS4=",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "VJoy1Xw102gR3mpGJZaXDIPqmyM=",
|
||||||
|
"v": "Gw=="
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,179 @@
|
||||||
|
{
|
||||||
|
"genesis": {
|
||||||
|
"baseFeePerGas": "2935",
|
||||||
|
"difficulty": "0",
|
||||||
|
"extraData": "0x6769756c696f207761732068657265",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "0xb606f9eea389beb86ad7b90f716ab8b2145b09806e3cae6d866cc406176ff953",
|
||||||
|
"miner": "0x008b3b2f992c0e14edaa6e2c662bec549caa8df1",
|
||||||
|
"mixHash": "0x0fbfbdea994592940443188d440d955b4a24241fd297fe6dc51842ed481c46da",
|
||||||
|
"nonce": "0x0000000000000000",
|
||||||
|
"number": "3733423",
|
||||||
|
"stateRoot": "0x6ade0dc69a4852c342f189cf0f98fd0c4eb3357ce1fcb19e039b95d4780148dc",
|
||||||
|
"timestamp": "1687294944",
|
||||||
|
"totalDifficulty": "17000018015853232",
|
||||||
|
"withdrawals": [
|
||||||
|
{
|
||||||
|
"index": "0xb53221",
|
||||||
|
"validatorIndex": "0x3d4",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53222",
|
||||||
|
"validatorIndex": "0x3d5",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53223",
|
||||||
|
"validatorIndex": "0x3d6",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53224",
|
||||||
|
"validatorIndex": "0x3d7",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2fc09"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53225",
|
||||||
|
"validatorIndex": "0x3d8",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53226",
|
||||||
|
"validatorIndex": "0x3d9",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x247dd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53227",
|
||||||
|
"validatorIndex": "0x3da",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53228",
|
||||||
|
"validatorIndex": "0x3db",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2fc09"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53229",
|
||||||
|
"validatorIndex": "0x3dc",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb5322a",
|
||||||
|
"validatorIndex": "0x3dd",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb5322b",
|
||||||
|
"validatorIndex": "0x3de",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb5322c",
|
||||||
|
"validatorIndex": "0x3df",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb5322d",
|
||||||
|
"validatorIndex": "0x3e0",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb5322e",
|
||||||
|
"validatorIndex": "0x3e1",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb5322f",
|
||||||
|
"validatorIndex": "0x3e2",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x238d9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"index": "0xb53230",
|
||||||
|
"validatorIndex": "0x3e3",
|
||||||
|
"address": "0xe276bc378a527a8792b353cdca5b5e53263dfb9e",
|
||||||
|
"amount": "0x2ed05"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"withdrawalsRoot": "0x3cb455e987780d127dae999ae7a1666b3314a2207953019902fd7f8f30a3c367",
|
||||||
|
"alloc": {
|
||||||
|
"0x0000006916a87b82333f4245046623b23794c65c": {
|
||||||
|
"balance": "0x1e729b7d5868c33d7f136",
|
||||||
|
"nonce": "5"
|
||||||
|
},
|
||||||
|
"0x2cb672d8c128acc0825dcbaf61e43a293a5a5276": {
|
||||||
|
"balance": "0x0",
|
||||||
|
"code": "0x60003560e01c8063095ea7b31461005c57806340c10f1914610062578063a9059cbb146100d957806323b872dd1461015657806318160ddd1461015857806370a08231146101695763dd62ed3e1461018957346101895760006000f35b60006000f35b60043573ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000602435856000526040600020805482018083119155600254820180831190600255600154331415171761018957600052a360006000f35b60043573ffffffffffffffffffffffffffffffffffffffff16337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000602435856000526040600020805482018083119155813360005260406000208054828103809111915590503417176101505760006000fd5b600052a3005b005b346101895760025460005260206000f35b346101895760043560005260406000205460005260206000f35b60006000f35b60006000fd",
|
||||||
|
"nonce": "1",
|
||||||
|
"storage": {
|
||||||
|
"0xbb65ff7a03b11b79143b011da0de7c67f6d9bb8f57df2381d88d503cdb07b0b6": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"0xdfecc5e296fad583cf3240a878ef92ffb0955f284f0216e1670f60c2279e53ba": "0x0000000000000000000000000000000000000000000000000000000000000096"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0x549a32d57c35d36811de6a462596970c83ea9b23": {
|
||||||
|
"balance": "0x0",
|
||||||
|
"code": "0x60003560f81c806000146100985780600114610022576002146100965760006000fd5b6000600060446000600060013560601c60206024602460006000857f70a0823100000000000000000000000000000000000000000000000000000000600052306004525af1507fa9059cbb000000000000000000000000000000000000000000000000000000006000526000546004525af1005b005b00",
|
||||||
|
"nonce": "1",
|
||||||
|
"storage": {
|
||||||
|
"0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000eb3d3d616f3e43e9ed361edd2d0e644d18d179b7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"0xeb3d3d616f3e43e9ed361edd2d0e644d18d179b7": {
|
||||||
|
"balance": "0x79b25b8c248adbe",
|
||||||
|
"nonce": "27"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"chainId": 11155111,
|
||||||
|
"homesteadBlock": 0,
|
||||||
|
"daoForkSupport": true,
|
||||||
|
"eip150Block": 0,
|
||||||
|
"eip155Block": 0,
|
||||||
|
"eip158Block": 0,
|
||||||
|
"byzantiumBlock": 0,
|
||||||
|
"constantinopleBlock": 0,
|
||||||
|
"petersburgBlock": 0,
|
||||||
|
"istanbulBlock": 0,
|
||||||
|
"muirGlacierBlock": 0,
|
||||||
|
"berlinBlock": 0,
|
||||||
|
"londonBlock": 0,
|
||||||
|
"mergeNetsplitBlock": 1735371,
|
||||||
|
"shanghaiTime": 1677557088,
|
||||||
|
"cancunTime": 1706655072,
|
||||||
|
"terminalTotalDifficulty": 17000000000000000,
|
||||||
|
"terminalTotalDifficultyPassed": true,
|
||||||
|
"ethash": {},
|
||||||
|
"blobSchedule": {
|
||||||
|
"cancun": {
|
||||||
|
"target": 3,
|
||||||
|
"max": 6,
|
||||||
|
"baseFeeUpdateFraction": 3338477
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"context": {
|
||||||
|
"number": "3733424",
|
||||||
|
"difficulty": "0",
|
||||||
|
"timestamp": "1687294956",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"miner": "0x0000006916a87b82333f4245046623b23794c65c",
|
||||||
|
"baseFeePerGas": "2727"
|
||||||
|
},
|
||||||
|
"input": "0xf8771b820b4583030d4094549a32d57c35d36811de6a462596970c83ea9b238095012cb672d8c128acc0825dcbaf61e43a293a5a52761ba0fe7f0de0e0fd2b337dbdf1b4fdf97a144457f8502497172eb1344ab6e25a6806a00b8c1589fb14dcbb91d53a0f8acb1ee1ede901c89749ee15bfe86c6beec7052e"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,391 @@
|
||||||
|
{
|
||||||
|
"hash": "ycVHQ3rBt3mfRIpHGewnuEXRq5LmU9/i+qoNZkx0qew=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "kwcfxw=="
|
||||||
|
},
|
||||||
|
"coinbase": "Kx2Hm14QLmAWYgLeeVN7SOLxikI=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "ycVHQ3rBt3mfRIpHGewnuEXRq5LmU9/i+qoNZkx0qew=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "1550267",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "Lqnb2KULZPqYeoP7inwY5jwKzNhQQaD6YS01a/i6ZrA=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"timestamp": "2024-05-15T17:12:36Z",
|
||||||
|
"transactionsRoot": "UGovRwB9IOw9P7ACFl+hfCxFwgTa3lRZNqwqrJ0NJ20=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c="
|
||||||
|
},
|
||||||
|
"number": "1550267",
|
||||||
|
"size": "4196",
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"accountCreations": [
|
||||||
|
{
|
||||||
|
"account": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"ordinal": "6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DbTWtv/L76k="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "Dbv1zrT3nx0="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DbTWtoh1IQk="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DbTWtv/L76k="
|
||||||
|
},
|
||||||
|
"ordinal": "8",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "9",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DbTnxxILzrM="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DbTWtoh1IQk="
|
||||||
|
},
|
||||||
|
"ordinal": "44",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "Kx2Hm14QLmAWYgLeeVN7SOLxikI=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "3mbuD6C1qntp"
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "3mbtxTnosse6"
|
||||||
|
},
|
||||||
|
"ordinal": "45",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CREATE",
|
||||||
|
"caller": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"codeChanges": [
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"newCode": "YIBgQFJgBDYQYQBzV181YOAcgGNN9+PQEWEATVeAY03349AUYQDcV4BjdHf3ABRhAQZXgGN7HYKcFGEBMFeAY886IX4UYQFaV2EAelZbgGMLYc1/FGEAfleAYw2+Zx8UYQCIV4BjHWPiTRRhALJXYQB6Vls2YQB6VwBbX4D9W2EAhmEBcFZbAFs0gBVhAJNXX4D9W1BhAJxhAylWW2BAUWEAqZGQYQSaVltgQFGAkQOQ81s0gBVhAL1XX4D9W1BhAMZhA0xWW2BAUWEA05GQYQTLVltgQFGAkQOQ81s0gBVhAOdXX4D9W1BhAPBhA1JWW2BAUWEA/ZGQYQSaVltgQFGAkQOQ81s0gBVhARFXX4D9W1BhARphA3dWW2BAUWEBJ5GQYQTLVltgQFGAkQOQ81s0gBVhATtXX4D9W1BhAURhA31WW2BAUWEBUZGQYQTLVltgQFGAkQOQ81s0gBVhAWVXX4D9W1BhAW5hA4NWWwBbX3+cIv9fIfC4GxE+Y/fbbalP7e8RshGbQIi4lmT7mjy2WJBQgGBAUWEBoZBhBBNWW4GQYEBRgJEDkF/1kFCAFYAVYQG+Vz1fgD49X/1bUF+AYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQX4BUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WNGBAUWECQJBhBRFWW19gQFGAgwOBhYda8ZJQUFA9gF+BFGECeldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQJ/VltgYJFQW1BQUF+AVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmMPrxAhX4BUkGEBAAqQBHP//////////////////////////xZgQFGCY/////8WYOAbgVJgBAFhAvmRkGEFRVZbX2BAUYCDA4Ffh4A7FYAVYQMQV1+A/VtQWvEVgBVhAyJXPV+APj1f/VtQUFBQUFZbX4BUkGEBAAqQBHP//////////////////////////xaBVltgBVSBVltgAV+QVJBhAQAKkARz//////////////////////////8WgVZbYARUgVZbYAZUgVZbX3+cIv9fIfC4GxE+Y/fbbalP7e8RshGbQIi4lmT7mjy2WJBQgGBAUWEDtJBhBBNWW4GQYEBRgJEDkF/1kFCAFYAVYQPRVz1fgD49X/1bUF+AYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQUFZbYQKKgGEFX4M5AZBWW19z//////////////////////////+CFpBQkZBQVltfgZBQkZBQVltfYQRiYQRdYQRYhGEEIFZbYQQ/VlthBCBWW5BQkZBQVltfYQRzgmEESFZbkFCRkFBWW19hBISCYQRpVluQUJGQUFZbYQSUgWEEelZbglJQUFZbX2AgggGQUGEErV+DAYRhBItWW5KRUFBWW1+BkFCRkFBWW2EExYFhBLNWW4JSUFBWW19gIIIBkFBhBN5fgwGEYQS8VluSkVBQVltfgZBQkpFQUFZbUFZbX2EE/F+DYQTkVluRUGEFB4JhBO5WW1+CAZBQkZBQVltfYQUbgmEE8VZbkVCBkFCRkFBWW19hBS+CYQQgVluQUJGQUFZbYQU/gWEFJVZbglJQUFZbX2AgggGQUGEFWF+DAYRhBTZWW5KRUFBW/mCAYEBSc0MAAAAAAAAAAAAAAAAAAAAAAAAAX4BhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBzeiOPKY1V+NsnuGDv8eAtFSixZYVgAV9hAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVA0gBVgtVdfgP1bUGEBx4BhAMNfOV/z/mCAYEBSYAQ2EGEAN1dfNWDgHIBjD68QIRRhAEJXgGMdY+JNFGEAXleAY3R39wAUYQCIV2EAPlZbNmEAPlcAW1+A/VthAFxgBIA2A4EBkGEAV5GQYQE1VlthALJWWwBbNIAVYQBpV1+A/VtQYQByYQDLVltgQFFhAH+RkGEBeFZbYEBRgJEDkPNbNIAVYQCTV1+A/VtQYQCcYQDRVltgQFFhAKmRkGEBeFZbYEBRgJEDkPNbgHP//////////////////////////xb/W2ADVIFWW2ACVIFWW1+A/Vtfc///////////////////////////ghaQUJGQUFZbX2EBBIJhANtWW5BQkZBQVlthARSBYQD6VluBFGEBHldfgP1bUFZbX4E1kFBhAS+BYQELVluSkVBQVltfYCCChAMSFWEBSldhAUlhANdWW1tfYQFXhIKFAWEBIVZbkVBQkpFQUFZbX4GQUJGQUFZbYQFygWEBYFZbglJQUFZbX2AgggGQUGEBi1+DAYRhAWlWW5KRUFBW/qJkaXBmc1giEiB4nf69TDoE8FAm15HxiG0PzBM9wtshFgRZSoALW9IyMGRzb2xjQwAIGQAzomRpcGZzWCISIL9Ul2tC0esNcimyvdSOilHtvOnMDOEu4+006a2DuQEVZHNvbGNDAAgZADM=",
|
||||||
|
"newHash": "SCiyEasTfEh/c8vA9xQ/UVY7EnPvfmQlXKBqXUD/TxU=",
|
||||||
|
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"ordinal": "42"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "43",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "671148",
|
||||||
|
"oldValue": "779146",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "626589",
|
||||||
|
"oldValue": "626722",
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "594380",
|
||||||
|
"oldValue": "626548",
|
||||||
|
"ordinal": "13",
|
||||||
|
"reason": "REASON_CONTRACT_CREATION2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "9287",
|
||||||
|
"oldValue": "594380",
|
||||||
|
"ordinal": "14",
|
||||||
|
"reason": "REASON_CONTRACT_CREATION2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "458909",
|
||||||
|
"oldValue": "9287",
|
||||||
|
"ordinal": "25",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "6675",
|
||||||
|
"oldValue": "436353",
|
||||||
|
"ordinal": "27",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "429498",
|
||||||
|
"oldValue": "6675",
|
||||||
|
"ordinal": "32",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "6698",
|
||||||
|
"oldValue": "428786",
|
||||||
|
"ordinal": "33",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "423285",
|
||||||
|
"oldValue": "6698",
|
||||||
|
"ordinal": "39",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "422895",
|
||||||
|
"oldValue": "423220",
|
||||||
|
"ordinal": "40",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "7293",
|
||||||
|
"oldValue": "422893",
|
||||||
|
"ordinal": "41",
|
||||||
|
"reason": "REASON_CODE_STORAGE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "663855",
|
||||||
|
"gasLimit": "671148",
|
||||||
|
"index": 1,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"newValue": "9",
|
||||||
|
"oldValue": "8",
|
||||||
|
"ordinal": "5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "7"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAQwAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAeiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAVmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "26"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accountCreations": [
|
||||||
|
{
|
||||||
|
"account": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"ordinal": "17"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"beginOrdinal": "15",
|
||||||
|
"callType": "CREATE",
|
||||||
|
"caller": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"codeChanges": [
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"newCode": "YIBgQFJgBDYQYQA3V181YOAcgGMPrxAhFGEAQleAYx1j4k0UYQBeV4BjdHf3ABRhAIhXYQA+Vls2YQA+VwBbX4D9W2EAXGAEgDYDgQGQYQBXkZBhATVWW2EAslZbAFs0gBVhAGlXX4D9W1BhAHJhAMtWW2BAUWEAf5GQYQF4VltgQFGAkQOQ81s0gBVhAJNXX4D9W1BhAJxhANFWW2BAUWEAqZGQYQF4VltgQFGAkQOQ81uAc///////////////////////////Fv9bYANUgVZbYAJUgVZbX4D9W19z//////////////////////////+CFpBQkZBQVltfYQEEgmEA21ZbkFCRkFBWW2EBFIFhAPpWW4EUYQEeV1+A/VtQVltfgTWQUGEBL4FhAQtWW5KRUFBWW19gIIKEAxIVYQFKV2EBSWEA11ZbW19hAVeEgoUBYQEhVluRUFCSkVBQVltfgZBQkZBQVlthAXKBYQFgVluCUlBQVltfYCCCAZBQYQGLX4MBhGEBaVZbkpFQUFb+omRpcGZzWCISIHid/r1MOgTwUCbXkfGIbQ/MEz3C2yEWBFlKgAtb0jIwZHNvbGNDAAgZADM=",
|
||||||
|
"newHash": "6CUXyeRMWXwdWTThEgzSUhJR2IxY3DiiPnUZpa1qPpY=",
|
||||||
|
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"ordinal": "23"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "24",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "540624",
|
||||||
|
"oldValue": "540708",
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "449622",
|
||||||
|
"oldValue": "540622",
|
||||||
|
"ordinal": "22",
|
||||||
|
"reason": "REASON_CODE_STORAGE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "135471",
|
||||||
|
"gasLimit": "585093",
|
||||||
|
"index": 2,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"newValue": "2",
|
||||||
|
"oldValue": "1",
|
||||||
|
"ordinal": "16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "18"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentIndex": 1,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAQwAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "19"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAeiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "20"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "29",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "30",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "28",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "31",
|
||||||
|
"gasConsumed": "55",
|
||||||
|
"gasLimit": "422878",
|
||||||
|
"index": 3,
|
||||||
|
"parentIndex": 1,
|
||||||
|
"value": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "36",
|
||||||
|
"reason": "REASON_SUICIDE_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "37",
|
||||||
|
"reason": "REASON_SUICIDE_WITHDRAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "34",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "38",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "416587",
|
||||||
|
"oldValue": "421587",
|
||||||
|
"ordinal": "35",
|
||||||
|
"reason": "REASON_SELF_DESTRUCT"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "5401",
|
||||||
|
"gasLimit": "421988",
|
||||||
|
"index": 4,
|
||||||
|
"input": "D68QIQAAAAAAAAAAAAAAAFZrAi1XlLxMZW9DZZAA0ws7skVr",
|
||||||
|
"parentIndex": 1,
|
||||||
|
"suicide": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "46",
|
||||||
|
"from": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"gasLimit": "779146",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "mVhWcg=="
|
||||||
|
},
|
||||||
|
"gasUsed": "771853",
|
||||||
|
"hash": "5gTFisgmyZvp3w4jvWMAn6e93CFPnMRbzXnM9NcV2lg=",
|
||||||
|
"input": "YIBgQFJzQwAAAAAAAAAAAAAAAAAAAAAAAABgAl9hAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBzeiOPKY1V+NsnuGDv8eAtFSixZYVgA19hAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBhALphAL9gIBtgIBxWW2EDHlZbX3+cIv9fIfC4GxE+Y/fbbalP7e8RshGbQIi4lmT7mjy2WJBQgGBAUWEA8JBhAnhWW4GQYEBRgJEDkF/1kFCAFYAVYQENVz1fgD49X/1bUF+AYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQX4BUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WNGBAUWEBj5BhArJWW19gQFGAgwOBhYda8ZJQUFA9gF+BFGEByVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQHOVltgYJFQW1BQUF+AVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmMPrxAhX4BUkGEBAAqQBHP//////////////////////////xZgQFGCY/////8WYOAbgVJgBAFhAkiRkGEDBVZbX2BAUYCDA4Ffh4A7FYAVYQJfV1+A/VtQWvEVgBVhAnFXPV+APj1f/VtQUFBQUFZbYQKKgGELSYM5AZBWW1+BkFCSkVBQVltQVltfYQKdX4NhAoVWW5FQYQKogmECj1ZbX4IBkFCRkFBWW19hAryCYQKSVluRUIGQUJGQUFZbX3P//////////////////////////4IWkFCRkFBWW19hAu+CYQLGVluQUJGQUFZbYQL/gWEC5VZbglJQUFZbX2AgggGQUGEDGF+DAYRhAvZWW5KRUFBWW2EIHoBhAytfOV/z/mCAYEBSYAQ2EGEAc1dfNWDgHIBjTffj0BFhAE1XgGNN9+PQFGEA3FeAY3R39wAUYQEGV4Bjex2CnBRhATBXgGPPOiF+FGEBWldhAHpWW4BjC2HNfxRhAH5XgGMNvmcfFGEAiFeAYx1j4k0UYQCyV2EAelZbNmEAelcAW1+A/VthAIZhAXBWWwBbNIAVYQCTV1+A/VtQYQCcYQMpVltgQFFhAKmRkGEEmlZbYEBRgJEDkPNbNIAVYQC9V1+A/VtQYQDGYQNMVltgQFFhANORkGEEy1ZbYEBRgJEDkPNbNIAVYQDnV1+A/VtQYQDwYQNSVltgQFFhAP2RkGEEmlZbYEBRgJEDkPNbNIAVYQERV1+A/VtQYQEaYQN3VltgQFFhASeRkGEEy1ZbYEBRgJEDkPNbNIAVYQE7V1+A/VtQYQFEYQN9VltgQFFhAVGRkGEEy1ZbYEBRgJEDkPNbNIAVYQFlV1+A/VtQYQFuYQODVlsAW19/nCL/XyHwuBsRPmP3222pT+3vEbIRm0CIuJZk+5o8tliQUIBgQFFhAaGQYQQTVluBkGBAUYCRA5Bf9ZBQgBWAFWEBvlc9X4A+PV/9W1BfgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUF+AVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FjRgQFFhAkCQYQURVltfYEBRgIMDgYWHWvGSUFBQPYBfgRRhAnpXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmECf1ZbYGCRUFtQUFBfgFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjD68QIV+AVJBhAQAKkARz//////////////////////////8WYEBRgmP/////FmDgG4FSYAQBYQL5kZBhBUVWW19gQFGAgwOBX4eAOxWAFWEDEFdfgP1bUFrxFYAVYQMiVz1fgD49X/1bUFBQUFBWW1+AVJBhAQAKkARz//////////////////////////8WgVZbYAVUgVZbYAFfkFSQYQEACpAEc///////////////////////////FoFWW2AEVIFWW2AGVIFWW19/nCL/XyHwuBsRPmP3222pT+3vEbIRm0CIuJZk+5o8tliQUIBgQFFhA7SQYQQTVluBkGBAUYCRA5Bf9ZBQgBWAFWED0Vc9X4A+PV/9W1BfgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUFBWW2ECioBhBV+DOQGQVltfc///////////////////////////ghaQUJGQUFZbX4GQUJGQUFZbX2EEYmEEXWEEWIRhBCBWW2EEP1ZbYQQgVluQUJGQUFZbX2EEc4JhBEhWW5BQkZBQVltfYQSEgmEEaVZbkFCRkFBWW2EElIFhBHpWW4JSUFBWW19gIIIBkFBhBK1fgwGEYQSLVluSkVBQVltfgZBQkZBQVlthBMWBYQSzVluCUlBQVltfYCCCAZBQYQTeX4MBhGEEvFZbkpFQUFZbX4GQUJKRUFBWW1BWW19hBPxfg2EE5FZbkVBhBQeCYQTuVltfggGQUJGQUFZbX2EFG4JhBPFWW5FQgZBQkZBQVltfYQUvgmEEIFZbkFCRkFBWW2EFP4FhBSVWW4JSUFBWW19gIIIBkFBhBVhfgwGEYQU2VluSkVBQVv5ggGBAUnNDAAAAAAAAAAAAAAAAAAAAAAAAAF+AYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQc3ojjymNVfjbJ7hg7/HgLRUosWWFYAFfYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQNIAVYLVXX4D9W1BhAceAYQDDXzlf8/5ggGBAUmAENhBhADdXXzVg4ByAYw+vECEUYQBCV4BjHWPiTRRhAF5XgGN0d/cAFGEAiFdhAD5WWzZhAD5XAFtfgP1bYQBcYASANgOBAZBhAFeRkGEBNVZbYQCyVlsAWzSAFWEAaVdfgP1bUGEAcmEAy1ZbYEBRYQB/kZBhAXhWW2BAUYCRA5DzWzSAFWEAk1dfgP1bUGEAnGEA0VZbYEBRYQCpkZBhAXhWW2BAUYCRA5DzW4Bz//////////////////////////8W/1tgA1SBVltgAlSBVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAQSCYQDbVluQUJGQUFZbYQEUgWEA+lZbgRRhAR5XX4D9W1BWW1+BNZBQYQEvgWEBC1ZbkpFQUFZbX2AggoQDEhVhAUpXYQFJYQDXVltbX2EBV4SChQFhASFWW5FQUJKRUFBWW1+BkFCRkFBWW2EBcoFhAWBWW4JSUFBWW19gIIIBkFBhAYtfgwGEYQFpVluSkVBQVv6iZGlwZnNYIhIgeJ3+vUw6BPBQJteR8YhtD8wTPcLbIRYEWUqAC1vSMjBkc29sY0MACBkAM6JkaXBmc1giEiC/VJdrQtHrDXIpsr3UjopR7bzpzAzhLuPtNOmtg7kBFWRzb2xjQwAIGQAzYIBgQFJzQwAAAAAAAAAAAAAAAAAAAAAAAABfgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUHN6I48pjVX42ye4YO/x4C0VKLFlhWABX2EBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUDSAFWC1V1+A/VtQYQHHgGEAw185X/P+YIBgQFJgBDYQYQA3V181YOAcgGMPrxAhFGEAQleAYx1j4k0UYQBeV4BjdHf3ABRhAIhXYQA+Vls2YQA+VwBbX4D9W2EAXGAEgDYDgQGQYQBXkZBhATVWW2EAslZbAFs0gBVhAGlXX4D9W1BhAHJhAMtWW2BAUWEAf5GQYQF4VltgQFGAkQOQ81s0gBVhAJNXX4D9W1BhAJxhANFWW2BAUWEAqZGQYQF4VltgQFGAkQOQ81uAc///////////////////////////Fv9bYANUgVZbYAJUgVZbX4D9W19z//////////////////////////+CFpBQkZBQVltfYQEEgmEA21ZbkFCRkFBWW2EBFIFhAPpWW4EUYQEeV1+A/VtQVltfgTWQUGEBL4FhAQtWW5KRUFBWW19gIIKEAxIVYQFKV2EBSWEA11ZbW19hAVeEgoUBYQEhVluRUFCSkVBQVltfgZBQkZBQVlthAXKBYQFgVluCUlBQVltfYCCCAZBQYQGLX4MBhGEBaVZbkpFQUFb+omRpcGZzWCISIHid/r1MOgTwUCbXkfGIbQ/MEz3C2yEWBFlKgAtb0jIwZHNvbGNDAAgZADM=",
|
||||||
|
"maxFeePerGas": {
|
||||||
|
"bytes": "yOKYzA=="
|
||||||
|
},
|
||||||
|
"maxPriorityFeePerGas": {
|
||||||
|
"bytes": "BlE2qw=="
|
||||||
|
},
|
||||||
|
"nonce": "8",
|
||||||
|
"r": "uEHvjD26MNMUOogGHEac8h8Gyz2aw+Nbzc+mi2kmRS8=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "771853",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "E8IkJGk6TjnE8pl+DO4Ty/WfNsTFicVgSpPI2ayGblU=",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"type": "TRX_TYPE_DYNAMIC_FEE",
|
||||||
|
"value": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,391 @@
|
||||||
|
{
|
||||||
|
"hash": "ycVHQ3rBt3mfRIpHGewnuEXRq5LmU9/i+qoNZkx0qew=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "kwcfxw=="
|
||||||
|
},
|
||||||
|
"coinbase": "Kx2Hm14QLmAWYgLeeVN7SOLxikI=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"hash": "ycVHQ3rBt3mfRIpHGewnuEXRq5LmU9/i+qoNZkx0qew=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "1550267",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "Lqnb2KULZPqYeoP7inwY5jwKzNhQQaD6YS01a/i6ZrA=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"timestamp": "2024-05-15T17:12:36Z",
|
||||||
|
"transactionsRoot": "UGovRwB9IOw9P7ACFl+hfCxFwgTa3lRZNqwqrJ0NJ20=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c="
|
||||||
|
},
|
||||||
|
"number": "1550267",
|
||||||
|
"size": "4196",
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"accountCreations": [
|
||||||
|
{
|
||||||
|
"account": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"ordinal": "6"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DbTWtv/L76k="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "Dbv1zrT3nx0="
|
||||||
|
},
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_GAS_BUY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DbTWtoh1IQk="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DbTWtv/L76k="
|
||||||
|
},
|
||||||
|
"ordinal": "8",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "9",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "DbTnxxILzrM="
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "DbTWtoh1IQk="
|
||||||
|
},
|
||||||
|
"ordinal": "44",
|
||||||
|
"reason": "REASON_GAS_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "Kx2Hm14QLmAWYgLeeVN7SOLxikI=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "3mbuD6C1qntp"
|
||||||
|
},
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "3mbtxTnosse6"
|
||||||
|
},
|
||||||
|
"ordinal": "45",
|
||||||
|
"reason": "REASON_REWARD_TRANSACTION_FEE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callType": "CREATE",
|
||||||
|
"caller": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"codeChanges": [
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"newCode": "YIBgQFJgBDYQYQBzV181YOAcgGNN9+PQEWEATVeAY03349AUYQDcV4BjdHf3ABRhAQZXgGN7HYKcFGEBMFeAY886IX4UYQFaV2EAelZbgGMLYc1/FGEAfleAYw2+Zx8UYQCIV4BjHWPiTRRhALJXYQB6Vls2YQB6VwBbX4D9W2EAhmEBcFZbAFs0gBVhAJNXX4D9W1BhAJxhAylWW2BAUWEAqZGQYQSaVltgQFGAkQOQ81s0gBVhAL1XX4D9W1BhAMZhA0xWW2BAUWEA05GQYQTLVltgQFGAkQOQ81s0gBVhAOdXX4D9W1BhAPBhA1JWW2BAUWEA/ZGQYQSaVltgQFGAkQOQ81s0gBVhARFXX4D9W1BhARphA3dWW2BAUWEBJ5GQYQTLVltgQFGAkQOQ81s0gBVhATtXX4D9W1BhAURhA31WW2BAUWEBUZGQYQTLVltgQFGAkQOQ81s0gBVhAWVXX4D9W1BhAW5hA4NWWwBbX3+cIv9fIfC4GxE+Y/fbbalP7e8RshGbQIi4lmT7mjy2WJBQgGBAUWEBoZBhBBNWW4GQYEBRgJEDkF/1kFCAFYAVYQG+Vz1fgD49X/1bUF+AYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQX4BUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WNGBAUWECQJBhBRFWW19gQFGAgwOBhYda8ZJQUFA9gF+BFGECeldgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQJ/VltgYJFQW1BQUF+AVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmMPrxAhX4BUkGEBAAqQBHP//////////////////////////xZgQFGCY/////8WYOAbgVJgBAFhAvmRkGEFRVZbX2BAUYCDA4Ffh4A7FYAVYQMQV1+A/VtQWvEVgBVhAyJXPV+APj1f/VtQUFBQUFZbX4BUkGEBAAqQBHP//////////////////////////xaBVltgBVSBVltgAV+QVJBhAQAKkARz//////////////////////////8WgVZbYARUgVZbYAZUgVZbX3+cIv9fIfC4GxE+Y/fbbalP7e8RshGbQIi4lmT7mjy2WJBQgGBAUWEDtJBhBBNWW4GQYEBRgJEDkF/1kFCAFYAVYQPRVz1fgD49X/1bUF+AYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQUFZbYQKKgGEFX4M5AZBWW19z//////////////////////////+CFpBQkZBQVltfgZBQkZBQVltfYQRiYQRdYQRYhGEEIFZbYQQ/VlthBCBWW5BQkZBQVltfYQRzgmEESFZbkFCRkFBWW19hBISCYQRpVluQUJGQUFZbYQSUgWEEelZbglJQUFZbX2AgggGQUGEErV+DAYRhBItWW5KRUFBWW1+BkFCRkFBWW2EExYFhBLNWW4JSUFBWW19gIIIBkFBhBN5fgwGEYQS8VluSkVBQVltfgZBQkpFQUFZbUFZbX2EE/F+DYQTkVluRUGEFB4JhBO5WW1+CAZBQkZBQVltfYQUbgmEE8VZbkVCBkFCRkFBWW19hBS+CYQQgVluQUJGQUFZbYQU/gWEFJVZbglJQUFZbX2AgggGQUGEFWF+DAYRhBTZWW5KRUFBW/mCAYEBSc0MAAAAAAAAAAAAAAAAAAAAAAAAAX4BhAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBzeiOPKY1V+NsnuGDv8eAtFSixZYVgAV9hAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVA0gBVgtVdfgP1bUGEBx4BhAMNfOV/z/mCAYEBSYAQ2EGEAN1dfNWDgHIBjD68QIRRhAEJXgGMdY+JNFGEAXleAY3R39wAUYQCIV2EAPlZbNmEAPlcAW1+A/VthAFxgBIA2A4EBkGEAV5GQYQE1VlthALJWWwBbNIAVYQBpV1+A/VtQYQByYQDLVltgQFFhAH+RkGEBeFZbYEBRgJEDkPNbNIAVYQCTV1+A/VtQYQCcYQDRVltgQFFhAKmRkGEBeFZbYEBRgJEDkPNbgHP//////////////////////////xb/W2ADVIFWW2ACVIFWW1+A/Vtfc///////////////////////////ghaQUJGQUFZbX2EBBIJhANtWW5BQkZBQVlthARSBYQD6VluBFGEBHldfgP1bUFZbX4E1kFBhAS+BYQELVluSkVBQVltfYCCChAMSFWEBSldhAUlhANdWW1tfYQFXhIKFAWEBIVZbkVBQkpFQUFZbX4GQUJGQUFZbYQFygWEBYFZbglJQUFZbX2AgggGQUGEBi1+DAYRhAWlWW5KRUFBW/qJkaXBmc1giEiB4nf69TDoE8FAm15HxiG0PzBM9wtshFgRZSoALW9IyMGRzb2xjQwAIGQAzomRpcGZzWCISIL9Ul2tC0esNcimyvdSOilHtvOnMDOEu4+006a2DuQEVZHNvbGNDAAgZADM=",
|
||||||
|
"newHash": "SCiyEasTfEh/c8vA9xQ/UVY7EnPvfmQlXKBqXUD/TxU=",
|
||||||
|
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"ordinal": "42"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "43",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "671148",
|
||||||
|
"oldValue": "779146",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_INTRINSIC_GAS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "626589",
|
||||||
|
"oldValue": "626722",
|
||||||
|
"ordinal": "12",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "594380",
|
||||||
|
"oldValue": "626548",
|
||||||
|
"ordinal": "13",
|
||||||
|
"reason": "REASON_CONTRACT_CREATION2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "9287",
|
||||||
|
"oldValue": "594380",
|
||||||
|
"ordinal": "14",
|
||||||
|
"reason": "REASON_CONTRACT_CREATION2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "458909",
|
||||||
|
"oldValue": "9287",
|
||||||
|
"ordinal": "25",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "6675",
|
||||||
|
"oldValue": "436353",
|
||||||
|
"ordinal": "27",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "429498",
|
||||||
|
"oldValue": "6675",
|
||||||
|
"ordinal": "32",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "6698",
|
||||||
|
"oldValue": "428786",
|
||||||
|
"ordinal": "33",
|
||||||
|
"reason": "REASON_CALL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "423285",
|
||||||
|
"oldValue": "6698",
|
||||||
|
"ordinal": "39",
|
||||||
|
"reason": "REASON_REFUND_AFTER_EXECUTION"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "422895",
|
||||||
|
"oldValue": "423220",
|
||||||
|
"ordinal": "40",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "7293",
|
||||||
|
"oldValue": "422893",
|
||||||
|
"ordinal": "41",
|
||||||
|
"reason": "REASON_CODE_STORAGE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "663855",
|
||||||
|
"gasLimit": "671148",
|
||||||
|
"index": 1,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"newValue": "9",
|
||||||
|
"oldValue": "8",
|
||||||
|
"ordinal": "5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "7"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAQwAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAeiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "11"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAVmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "26"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"value": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accountCreations": [
|
||||||
|
{
|
||||||
|
"account": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"ordinal": "17"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"beginOrdinal": "15",
|
||||||
|
"callType": "CREATE",
|
||||||
|
"caller": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"codeChanges": [
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"newCode": "YIBgQFJgBDYQYQA3V181YOAcgGMPrxAhFGEAQleAYx1j4k0UYQBeV4BjdHf3ABRhAIhXYQA+Vls2YQA+VwBbX4D9W2EAXGAEgDYDgQGQYQBXkZBhATVWW2EAslZbAFs0gBVhAGlXX4D9W1BhAHJhAMtWW2BAUWEAf5GQYQF4VltgQFGAkQOQ81s0gBVhAJNXX4D9W1BhAJxhANFWW2BAUWEAqZGQYQF4VltgQFGAkQOQ81uAc///////////////////////////Fv9bYANUgVZbYAJUgVZbX4D9W19z//////////////////////////+CFpBQkZBQVltfYQEEgmEA21ZbkFCRkFBWW2EBFIFhAPpWW4EUYQEeV1+A/VtQVltfgTWQUGEBL4FhAQtWW5KRUFBWW19gIIKEAxIVYQFKV2EBSWEA11ZbW19hAVeEgoUBYQEhVluRUFCSkVBQVltfgZBQkZBQVlthAXKBYQFgVluCUlBQVltfYCCCAZBQYQGLX4MBhGEBaVZbkpFQUFb+omRpcGZzWCISIHid/r1MOgTwUCbXkfGIbQ/MEz3C2yEWBFlKgAtb0jIwZHNvbGNDAAgZADM=",
|
||||||
|
"newHash": "6CUXyeRMWXwdWTThEgzSUhJR2IxY3DiiPnUZpa1qPpY=",
|
||||||
|
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
|
||||||
|
"ordinal": "23"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "24",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "540624",
|
||||||
|
"oldValue": "540708",
|
||||||
|
"ordinal": "21",
|
||||||
|
"reason": "REASON_CODE_COPY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"newValue": "449622",
|
||||||
|
"oldValue": "540622",
|
||||||
|
"ordinal": "22",
|
||||||
|
"reason": "REASON_CODE_STORAGE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "135471",
|
||||||
|
"gasLimit": "585093",
|
||||||
|
"index": 2,
|
||||||
|
"nonceChanges": [
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"newValue": "2",
|
||||||
|
"oldValue": "1",
|
||||||
|
"ordinal": "16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"newValue": "1",
|
||||||
|
"ordinal": "18"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"parentIndex": 1,
|
||||||
|
"storageChanges": [
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAQwAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "19"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"newValue": "AAAAAAAAAAAAAAAAeiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"ordinal": "20"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "29",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "30",
|
||||||
|
"reason": "REASON_TRANSFER"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "28",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "31",
|
||||||
|
"gasConsumed": "55",
|
||||||
|
"gasLimit": "422878",
|
||||||
|
"index": 3,
|
||||||
|
"parentIndex": 1,
|
||||||
|
"value": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"balanceChanges": [
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"newValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "36",
|
||||||
|
"reason": "REASON_SUICIDE_REFUND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "VmsCLVeUvExlb0NlkADTCzuyRWs=",
|
||||||
|
"oldValue": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
},
|
||||||
|
"ordinal": "37",
|
||||||
|
"reason": "REASON_SUICIDE_WITHDRAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"beginOrdinal": "34",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"depth": 1,
|
||||||
|
"endOrdinal": "38",
|
||||||
|
"executedCode": true,
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "416587",
|
||||||
|
"oldValue": "421587",
|
||||||
|
"ordinal": "35",
|
||||||
|
"reason": "REASON_SELF_DESTRUCT"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasConsumed": "5401",
|
||||||
|
"gasLimit": "421988",
|
||||||
|
"index": 4,
|
||||||
|
"input": "D68QIQAAAAAAAAAAAAAAAFZrAi1XlLxMZW9DZZAA0ws7skVr",
|
||||||
|
"parentIndex": 1,
|
||||||
|
"suicide": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"endOrdinal": "46",
|
||||||
|
"from": "eiOPKY1V+NsnuGDv8eAtFSixZYU=",
|
||||||
|
"gasLimit": "779146",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "mVhWcg=="
|
||||||
|
},
|
||||||
|
"gasUsed": "771853",
|
||||||
|
"hash": "5gTFisgmyZvp3w4jvWMAn6e93CFPnMRbzXnM9NcV2lg=",
|
||||||
|
"input": "YIBgQFJzQwAAAAAAAAAAAAAAAAAAAAAAAABgAl9hAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBzeiOPKY1V+NsnuGDv8eAtFSixZYVgA19hAQAKgVSBc///////////////////////////AhkWkINz//////////////////////////8WAheQVVBhALphAL9gIBtgIBxWW2EDHlZbX3+cIv9fIfC4GxE+Y/fbbalP7e8RshGbQIi4lmT7mjy2WJBQgGBAUWEA8JBhAnhWW4GQYEBRgJEDkF/1kFCAFYAVYQENVz1fgD49X/1bUF+AYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQX4BUkGEBAAqQBHP//////////////////////////xZz//////////////////////////8WNGBAUWEBj5BhArJWW19gQFGAgwOBhYda8ZJQUFA9gF+BFGEByVdgQFGRUGAfGWA/PQEWggFgQFI9glI9X2AghAE+YQHOVltgYJFQW1BQUF+AVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FmMPrxAhX4BUkGEBAAqQBHP//////////////////////////xZgQFGCY/////8WYOAbgVJgBAFhAkiRkGEDBVZbX2BAUYCDA4Ffh4A7FYAVYQJfV1+A/VtQWvEVgBVhAnFXPV+APj1f/VtQUFBQUFZbYQKKgGELSYM5AZBWW1+BkFCSkVBQVltQVltfYQKdX4NhAoVWW5FQYQKogmECj1ZbX4IBkFCRkFBWW19hAryCYQKSVluRUIGQUJGQUFZbX3P//////////////////////////4IWkFCRkFBWW19hAu+CYQLGVluQUJGQUFZbYQL/gWEC5VZbglJQUFZbX2AgggGQUGEDGF+DAYRhAvZWW5KRUFBWW2EIHoBhAytfOV/z/mCAYEBSYAQ2EGEAc1dfNWDgHIBjTffj0BFhAE1XgGNN9+PQFGEA3FeAY3R39wAUYQEGV4Bjex2CnBRhATBXgGPPOiF+FGEBWldhAHpWW4BjC2HNfxRhAH5XgGMNvmcfFGEAiFeAYx1j4k0UYQCyV2EAelZbNmEAelcAW1+A/VthAIZhAXBWWwBbNIAVYQCTV1+A/VtQYQCcYQMpVltgQFFhAKmRkGEEmlZbYEBRgJEDkPNbNIAVYQC9V1+A/VtQYQDGYQNMVltgQFFhANORkGEEy1ZbYEBRgJEDkPNbNIAVYQDnV1+A/VtQYQDwYQNSVltgQFFhAP2RkGEEmlZbYEBRgJEDkPNbNIAVYQERV1+A/VtQYQEaYQN3VltgQFFhASeRkGEEy1ZbYEBRgJEDkPNbNIAVYQE7V1+A/VtQYQFEYQN9VltgQFFhAVGRkGEEy1ZbYEBRgJEDkPNbNIAVYQFlV1+A/VtQYQFuYQODVlsAW19/nCL/XyHwuBsRPmP3222pT+3vEbIRm0CIuJZk+5o8tliQUIBgQFFhAaGQYQQTVluBkGBAUYCRA5Bf9ZBQgBWAFWEBvlc9X4A+PV/9W1BfgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUF+AVJBhAQAKkARz//////////////////////////8Wc///////////////////////////FjRgQFFhAkCQYQURVltfYEBRgIMDgYWHWvGSUFBQPYBfgRRhAnpXYEBRkVBgHxlgPz0BFoIBYEBSPYJSPV9gIIQBPmECf1ZbYGCRUFtQUFBfgFSQYQEACpAEc///////////////////////////FnP//////////////////////////xZjD68QIV+AVJBhAQAKkARz//////////////////////////8WYEBRgmP/////FmDgG4FSYAQBYQL5kZBhBUVWW19gQFGAgwOBX4eAOxWAFWEDEFdfgP1bUFrxFYAVYQMiVz1fgD49X/1bUFBQUFBWW1+AVJBhAQAKkARz//////////////////////////8WgVZbYAVUgVZbYAFfkFSQYQEACpAEc///////////////////////////FoFWW2AEVIFWW2AGVIFWW19/nCL/XyHwuBsRPmP3222pT+3vEbIRm0CIuJZk+5o8tliQUIBgQFFhA7SQYQQTVluBkGBAUYCRA5Bf9ZBQgBWAFWED0Vc9X4A+PV/9W1BfgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUFBWW2ECioBhBV+DOQGQVltfc///////////////////////////ghaQUJGQUFZbX4GQUJGQUFZbX2EEYmEEXWEEWIRhBCBWW2EEP1ZbYQQgVluQUJGQUFZbX2EEc4JhBEhWW5BQkZBQVltfYQSEgmEEaVZbkFCRkFBWW2EElIFhBHpWW4JSUFBWW19gIIIBkFBhBK1fgwGEYQSLVluSkVBQVltfgZBQkZBQVlthBMWBYQSzVluCUlBQVltfYCCCAZBQYQTeX4MBhGEEvFZbkpFQUFZbX4GQUJKRUFBWW1BWW19hBPxfg2EE5FZbkVBhBQeCYQTuVltfggGQUJGQUFZbX2EFG4JhBPFWW5FQgZBQkZBQVltfYQUvgmEEIFZbkFCRkFBWW2EFP4FhBSVWW4JSUFBWW19gIIIBkFBhBVhfgwGEYQU2VluSkVBQVv5ggGBAUnNDAAAAAAAAAAAAAAAAAAAAAAAAAF+AYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQc3ojjymNVfjbJ7hg7/HgLRUosWWFYAFfYQEACoFUgXP//////////////////////////wIZFpCDc///////////////////////////FgIXkFVQNIAVYLVXX4D9W1BhAceAYQDDXzlf8/5ggGBAUmAENhBhADdXXzVg4ByAYw+vECEUYQBCV4BjHWPiTRRhAF5XgGN0d/cAFGEAiFdhAD5WWzZhAD5XAFtfgP1bYQBcYASANgOBAZBhAFeRkGEBNVZbYQCyVlsAWzSAFWEAaVdfgP1bUGEAcmEAy1ZbYEBRYQB/kZBhAXhWW2BAUYCRA5DzWzSAFWEAk1dfgP1bUGEAnGEA0VZbYEBRYQCpkZBhAXhWW2BAUYCRA5DzW4Bz//////////////////////////8W/1tgA1SBVltgAlSBVltfgP1bX3P//////////////////////////4IWkFCRkFBWW19hAQSCYQDbVluQUJGQUFZbYQEUgWEA+lZbgRRhAR5XX4D9W1BWW1+BNZBQYQEvgWEBC1ZbkpFQUFZbX2AggoQDEhVhAUpXYQFJYQDXVltbX2EBV4SChQFhASFWW5FQUJKRUFBWW1+BkFCRkFBWW2EBcoFhAWBWW4JSUFBWW19gIIIBkFBhAYtfgwGEYQFpVluSkVBQVv6iZGlwZnNYIhIgeJ3+vUw6BPBQJteR8YhtD8wTPcLbIRYEWUqAC1vSMjBkc29sY0MACBkAM6JkaXBmc1giEiC/VJdrQtHrDXIpsr3UjopR7bzpzAzhLuPtNOmtg7kBFWRzb2xjQwAIGQAzYIBgQFJzQwAAAAAAAAAAAAAAAAAAAAAAAABfgGEBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUHN6I48pjVX42ye4YO/x4C0VKLFlhWABX2EBAAqBVIFz//////////////////////////8CGRaQg3P//////////////////////////xYCF5BVUDSAFWC1V1+A/VtQYQHHgGEAw185X/P+YIBgQFJgBDYQYQA3V181YOAcgGMPrxAhFGEAQleAYx1j4k0UYQBeV4BjdHf3ABRhAIhXYQA+Vls2YQA+VwBbX4D9W2EAXGAEgDYDgQGQYQBXkZBhATVWW2EAslZbAFs0gBVhAGlXX4D9W1BhAHJhAMtWW2BAUWEAf5GQYQF4VltgQFGAkQOQ81s0gBVhAJNXX4D9W1BhAJxhANFWW2BAUWEAqZGQYQF4VltgQFGAkQOQ81uAc///////////////////////////Fv9bYANUgVZbYAJUgVZbX4D9W19z//////////////////////////+CFpBQkZBQVltfYQEEgmEA21ZbkFCRkFBWW2EBFIFhAPpWW4EUYQEeV1+A/VtQVltfgTWQUGEBL4FhAQtWW5KRUFBWW19gIIKEAxIVYQFKV2EBSWEA11ZbW19hAVeEgoUBYQEhVluRUFCSkVBQVltfgZBQkZBQVlthAXKBYQFgVluCUlBQVltfYCCCAZBQYQGLX4MBhGEBaVZbkpFQUFb+omRpcGZzWCISIHid/r1MOgTwUCbXkfGIbQ/MEz3C2yEWBFlKgAtb0jIwZHNvbGNDAAgZADM=",
|
||||||
|
"maxFeePerGas": {
|
||||||
|
"bytes": "yOKYzA=="
|
||||||
|
},
|
||||||
|
"maxPriorityFeePerGas": {
|
||||||
|
"bytes": "BlE2qw=="
|
||||||
|
},
|
||||||
|
"nonce": "8",
|
||||||
|
"r": "uEHvjD26MNMUOogGHEac8h8Gyz2aw+Nbzc+mi2kmRS8=",
|
||||||
|
"receipt": {
|
||||||
|
"cumulativeGasUsed": "771853",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"s": "E8IkJGk6TjnE8pl+DO4Ty/WfNsTFicVgSpPI2ayGblU=",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"to": "tmHJ8wNCN1AUM716ZYd4S3AgslQ=",
|
||||||
|
"type": "TRX_TYPE_DYNAMIC_FEE",
|
||||||
|
"value": {
|
||||||
|
"bytes": "d1bOoA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
71
eth/tracers/internal/tracetest/firehose/testdata/TestSystemCalls/fh2.3/block.1.golden.json
vendored
Normal file
71
eth/tracers/internal/tracetest/firehose/testdata/TestSystemCalls/fh2.3/block.1.golden.json
vendored
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
{
|
||||||
|
"hash": "N6zSvR8q4sVWyJKo2vdOcc1KsrHinU95Ki/q4tjYQoc=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "NCdwwA=="
|
||||||
|
},
|
||||||
|
"blobGasUsed": "0",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"excessBlobGas": "0",
|
||||||
|
"gasLimit": "4712388",
|
||||||
|
"hash": "N6zSvR8q4sVWyJKo2vdOcc1KsrHinU95Ki/q4tjYQoc=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "1",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "MFX8J9a0oI6wcDOg0e51WkspiAhvKKYYnqwbUHUl7rE=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
||||||
|
"stateRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"timestamp": "1970-01-01T00:00:10Z",
|
||||||
|
"transactionsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE="
|
||||||
|
},
|
||||||
|
"number": "1",
|
||||||
|
"size": "611",
|
||||||
|
"systemCalls": [
|
||||||
|
{
|
||||||
|
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "2",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
|
||||||
|
"beginOrdinal": "3",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "MFX8J9a0oI6wcDOg0e51WkspiAhvKKYYnqwbUHUl7rE="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
|
||||||
|
"beginOrdinal": "5",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "6",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
|
||||||
|
"beginOrdinal": "7",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "8",
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 3
|
||||||
|
}
|
||||||
119
eth/tracers/internal/tracetest/firehose/testdata/TestSystemCalls/fh3.0/block.1.golden.json
vendored
Normal file
119
eth/tracers/internal/tracetest/firehose/testdata/TestSystemCalls/fh3.0/block.1.golden.json
vendored
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
{
|
||||||
|
"hash": "N6zSvR8q4sVWyJKo2vdOcc1KsrHinU95Ki/q4tjYQoc=",
|
||||||
|
"header": {
|
||||||
|
"baseFeePerGas": {
|
||||||
|
"bytes": "NCdwwA=="
|
||||||
|
},
|
||||||
|
"blobGasUsed": "0",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"excessBlobGas": "0",
|
||||||
|
"gasLimit": "4712388",
|
||||||
|
"hash": "N6zSvR8q4sVWyJKo2vdOcc1KsrHinU95Ki/q4tjYQoc=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"number": "1",
|
||||||
|
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"parentHash": "MFX8J9a0oI6wcDOg0e51WkspiAhvKKYYnqwbUHUl7rE=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
||||||
|
"stateRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"timestamp": "1970-01-01T00:00:10Z",
|
||||||
|
"transactionsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE="
|
||||||
|
},
|
||||||
|
"number": "1",
|
||||||
|
"size": "611",
|
||||||
|
"systemCalls": [
|
||||||
|
{
|
||||||
|
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "2",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "3",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
|
||||||
|
"beginOrdinal": "5",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "8",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "6",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "7",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1,
|
||||||
|
"input": "MFX8J9a0oI6wcDOg0e51WkspiAhvKKYYnqwbUHUl7rE="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
|
||||||
|
"beginOrdinal": "9",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "12",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "10",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "11",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
|
||||||
|
"beginOrdinal": "13",
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "//////////////////////////4=",
|
||||||
|
"endOrdinal": "16",
|
||||||
|
"gasChanges": [
|
||||||
|
{
|
||||||
|
"newValue": "30000000",
|
||||||
|
"ordinal": "14",
|
||||||
|
"reason": "REASON_CALL_INITIAL_BALANCE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"oldValue": "30000000",
|
||||||
|
"ordinal": "15",
|
||||||
|
"reason": "REASON_CALL_LEFT_OVER_RETURNED"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gasLimit": "30000000",
|
||||||
|
"index": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 4
|
||||||
|
}
|
||||||
119
eth/tracers/testdata/firehose/reorder-ordinals-empty.golden.json
vendored
Executable file
119
eth/tracers/testdata/firehose/reorder-ordinals-empty.golden.json
vendored
Executable file
|
|
@ -0,0 +1,119 @@
|
||||||
|
{
|
||||||
|
"hash": "sr0uqeYWyrLV1vijvIG6fe+0mu8LRG6FLMHv5UmUxK8=",
|
||||||
|
"number": "1",
|
||||||
|
"size": "501",
|
||||||
|
"header": {
|
||||||
|
"parentHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
|
||||||
|
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"transactionsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||||
|
"difficulty": {
|
||||||
|
"bytes": "AA=="
|
||||||
|
},
|
||||||
|
"number": "1",
|
||||||
|
"timestamp": "1970-01-01T00:00:00Z",
|
||||||
|
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
|
||||||
|
"hash": "sr0uqeYWyrLV1vijvIG6fe+0mu8LRG6FLMHv5UmUxK8="
|
||||||
|
},
|
||||||
|
"transactionTraces": [
|
||||||
|
{
|
||||||
|
"to": "AAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
},
|
||||||
|
"gasLimit": "1",
|
||||||
|
"value": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
},
|
||||||
|
"v": "AQ==",
|
||||||
|
"r": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"s": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"hash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKo=",
|
||||||
|
"from": "AAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"beginOrdinal": "1",
|
||||||
|
"endOrdinal": "4",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"receipt": {
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "AAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"beginOrdinal": "2",
|
||||||
|
"endOrdinal": "3"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"to": "AAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
},
|
||||||
|
"gasLimit": "1",
|
||||||
|
"value": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
},
|
||||||
|
"v": "AQ==",
|
||||||
|
"r": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"s": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"index": 1,
|
||||||
|
"hash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALs=",
|
||||||
|
"from": "AAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"beginOrdinal": "5",
|
||||||
|
"endOrdinal": "8",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"receipt": {
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "AAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"beginOrdinal": "6",
|
||||||
|
"endOrdinal": "7"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"to": "AAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"gasPrice": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
},
|
||||||
|
"gasLimit": "1",
|
||||||
|
"value": {
|
||||||
|
"bytes": "AQ=="
|
||||||
|
},
|
||||||
|
"v": "AQ==",
|
||||||
|
"r": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"s": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"index": 2,
|
||||||
|
"hash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMw=",
|
||||||
|
"from": "AAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"beginOrdinal": "9",
|
||||||
|
"endOrdinal": "12",
|
||||||
|
"status": "SUCCEEDED",
|
||||||
|
"receipt": {
|
||||||
|
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
||||||
|
},
|
||||||
|
"calls": [
|
||||||
|
{
|
||||||
|
"index": 1,
|
||||||
|
"callType": "CALL",
|
||||||
|
"caller": "AAAAAAAAAAAAAAAAAAAAAAAAAAE=",
|
||||||
|
"address": "AAAAAAAAAAAAAAAAAAAAAAAAAAI=",
|
||||||
|
"beginOrdinal": "10",
|
||||||
|
"endOrdinal": "11"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ver": 4
|
||||||
|
}
|
||||||
1
go.mod
1
go.mod
|
|
@ -251,6 +251,7 @@ require (
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/spf13/viper v1.18.2 // indirect
|
github.com/spf13/viper v1.18.2 // indirect
|
||||||
github.com/streadway/amqp v1.1.0 // indirect
|
github.com/streadway/amqp v1.1.0 // indirect
|
||||||
|
github.com/streamingfast/firehose-ethereum/types v0.0.0-20250228213600-8981db4edefa // indirect
|
||||||
github.com/stumble/gorocksdb v0.0.3 // indirect
|
github.com/stumble/gorocksdb v0.0.3 // indirect
|
||||||
github.com/tendermint/btcd v0.1.1 // indirect
|
github.com/tendermint/btcd v0.1.1 // indirect
|
||||||
github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect
|
github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect
|
||||||
|
|
|
||||||
2
go.sum
2
go.sum
|
|
@ -2681,6 +2681,8 @@ github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1Sd
|
||||||
github.com/streadway/amqp v1.1.0 h1:py12iX8XSyI7aN/3dUT8DFIDJazNJsVJdxNVEpnQTZM=
|
github.com/streadway/amqp v1.1.0 h1:py12iX8XSyI7aN/3dUT8DFIDJazNJsVJdxNVEpnQTZM=
|
||||||
github.com/streadway/amqp v1.1.0/go.mod h1:WYSrTEYHOXHd0nwFeUXAe2G2hRnQT+deZJJf88uS9Bg=
|
github.com/streadway/amqp v1.1.0/go.mod h1:WYSrTEYHOXHd0nwFeUXAe2G2hRnQT+deZJJf88uS9Bg=
|
||||||
github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
|
github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
|
||||||
|
github.com/streamingfast/firehose-ethereum/types v0.0.0-20250228213600-8981db4edefa h1:QhMsEDwwfYCxfNdqmzHlT+4JlY7HXEvVubj0oyYyWOA=
|
||||||
|
github.com/streamingfast/firehose-ethereum/types v0.0.0-20250228213600-8981db4edefa/go.mod h1:CG22ObinxSbKIP19bAj0uro0a290kzZTiBbjL8VR0SE=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
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.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.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,12 @@ type Config struct {
|
||||||
// Record information useful for VM and contract debugging
|
// Record information useful for VM and contract debugging
|
||||||
EnablePreimageRecording bool `hcl:"vmdebug,optional" toml:"vmdebug,optional"`
|
EnablePreimageRecording bool `hcl:"vmdebug,optional" toml:"vmdebug,optional"`
|
||||||
|
|
||||||
|
// Name of tracer which should record internal VM operations (costly)
|
||||||
|
VMTrace string `hcl:"vmtrace,optional" toml:"vmtrace,optional"`
|
||||||
|
|
||||||
|
// Tracer configuration (JSON)
|
||||||
|
VMTraceJSONConfig string `hcl:"vmtrace.jsonconfig,optional" toml:"vmtrace,optional"`
|
||||||
|
|
||||||
// DataDir is the directory to store the state in
|
// DataDir is the directory to store the state in
|
||||||
DataDir string `hcl:"datadir,optional" toml:"datadir,optional"`
|
DataDir string `hcl:"datadir,optional" toml:"datadir,optional"`
|
||||||
|
|
||||||
|
|
@ -609,6 +615,8 @@ func DefaultConfig() *Config {
|
||||||
Verbosity: 3,
|
Verbosity: 3,
|
||||||
LogLevel: "",
|
LogLevel: "",
|
||||||
EnablePreimageRecording: false,
|
EnablePreimageRecording: false,
|
||||||
|
VMTrace: "",
|
||||||
|
VMTraceJSONConfig: "",
|
||||||
DataDir: DefaultDataDir(),
|
DataDir: DefaultDataDir(),
|
||||||
Ancient: "",
|
Ancient: "",
|
||||||
DBEngine: "pebble",
|
DBEngine: "pebble",
|
||||||
|
|
@ -953,6 +961,8 @@ func (c *Config) buildEth(stack *node.Node, accountManager *accounts.Manager) (*
|
||||||
}
|
}
|
||||||
|
|
||||||
n.EnablePreimageRecording = c.EnablePreimageRecording
|
n.EnablePreimageRecording = c.EnablePreimageRecording
|
||||||
|
n.VMTrace = c.VMTrace
|
||||||
|
n.VMTraceJsonConfig = c.VMTraceJSONConfig
|
||||||
|
|
||||||
// txpool options
|
// txpool options
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue