diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dfa6d7fbd..f3101ca5c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,7 +2,12 @@ name: release on: push: + workflow_dispatch: +permissions: + contents: write + packages: write + jobs: goreleaser: runs-on: ubuntu-latest @@ -16,4 +21,29 @@ jobs: go-version: 1.20.4 check-latest: true - name: release dry run - run: make release-dry-run \ No newline at end of file + run: make release-dry-run + + + +# .github/workflows/nightly.yml +name: goreleaser-nightly + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-go@v2 + with: + go-version: 1.19 + - uses: goreleaser/goreleaser-action@v3 + with: + distribution: goreleaser-pro + version: latest + args: release --clean --nightly + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Your GoReleaser Pro key: + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 4d05bf117..480e2ae7a 100644 --- a/.gitignore +++ b/.gitignore @@ -215,3 +215,7 @@ node_modules next-env.d.ts .env out + +dist/ + +dist/ diff --git a/.goreleaser.yml b/.goreleaser.yml deleted file mode 100644 index d34ef1b29..000000000 --- a/.goreleaser.yml +++ /dev/null @@ -1,103 +0,0 @@ -before: - hooks: - - go mod download - -builds: - - id: "polard-darwin" - main: ./cosmos/cmd/polard - binary: bin/polard - env: - - CGO_ENABLED=1 - - CC=o64-clang - - CXX=o64-clang++ - goos: - - darwin - goarch: - - amd64 - flags: - - -tags=cgo - ldflags: - - -s -w -X github.com/cosmos/cosmos-sdk/version.Name=polaris -X github.com/cosmos/cosmos-sdk/version.AppName=polard -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}} - - id: "polard-darwin-arm64" - main: ./cosmos/cmd/polard - binary: bin/polard - env: - - CGO_ENABLED=1 - - CC=oa64-clang - - CXX=oa64-clang++ - goos: - - darwin - goarch: - - arm64 - flags: - - -tags=cgo - ldflags: - - -s -w -X github.com/cosmos/cosmos-sdk/version.Name=polaris -X github.com/cosmos/cosmos-sdk/version.AppName=polard -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}} - - id: "polard-linux" - main: ./cosmos/cmd/polard - binary: bin/polard - env: - - CGO_ENABLED=1 - - CC=gcc - - CXX=g++ - goos: - - linux - goarch: - - amd64 - flags: - - -tags=cgo - ldflags: - - -s -w -X github.com/cosmos/cosmos-sdk/version.Name=polaris -X github.com/cosmos/cosmos-sdk/version.AppName=polard -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}} - - id: "polard-linux-arm64" - main: ./cosmos/cmd/polard - binary: bin/polard - env: - - CGO_ENABLED=1 - - CC=aarch64-linux-gnu-gcc - - CXX=aarch64-linux-gnu-g++ - goos: - - linux - goarch: - - arm64 - flags: - - -tags=cgo - ldflags: - - -s -w -X github.com/cosmos/cosmos-sdk/version.Name=polaris -X github.com/cosmos/cosmos-sdk/version.AppName=polard -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}} - - id: "polard-windows" - main: ./cosmos/cmd/polard - binary: bin/polard - env: - - CGO_ENABLED=1 - - CC=x86_64-w64-mingw32-gcc - - CXX=x86_64-w64-mingw32-g++ - goos: - - windows - goarch: - - amd64 - flags: - - -tags=cgo - - -buildmode=exe - ldflags: - - -s -w -X github.com/cosmos/cosmos-sdk/version.Name=polaris -X github.com/cosmos/cosmos-sdk/version.AppName=polard -X github.com/cosmos/cosmos-sdk/version.Version={{.Version}} -X github.com/cosmos/cosmos-sdk/version.Commit={{.Commit}} - -archives: - - name_template: "{{ .ProjectName }}_{{ .Version }}_{{- title .Os }}_{{ .Arch }}" - format_overrides: - - goos: windows - format: zip - builds: - - polard-darwin - - polard-darwin-arm64 - - polard-windows - - polard-linux - - polard-linux-arm64 - -checksum: - name_template: "checksums.txt" -changelog: - sort: asc - filters: - exclude: - - "^docs:" -snapshot: - name_template: "{{ .Tag }}-next" diff --git a/Makefile b/Makefile index 2430b8de3..2a67bf48b 100644 --- a/Makefile +++ b/Makefile @@ -24,11 +24,12 @@ release-dry-run: --rm \ --privileged \ -e CGO_ENABLED=1 \ + -e GORELEASER_KEY=$(GORELEASER_KEY) \ -v /var/run/docker.sock:/var/run/docker.sock \ -v `pwd`:/go/src/$(PACKAGE_NAME) \ -v ${GOPATH}/pkg:/go/pkg \ -w /go/src/$(PACKAGE_NAME) \ ghcr.io/goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \ - --clean --skip-validate --skip-publish --snapshot + --clean --snapshot -f ./cosmos/.goreleaser.yaml .PHONY: release-dry-run release \ No newline at end of file diff --git a/contracts/foundry.toml b/contracts/foundry.toml index 79822072d..141f3a8ad 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -14,4 +14,4 @@ remappings = [ ] [profile.ci] -fuzz_runs = 8192 \ No newline at end of file +fuzz_runs = 8192 diff --git a/cosmos/cmd/polard/main.go b/cosmos/cmd/polard/main.go index 9b80d6984..f2ecadb11 100644 --- a/cosmos/cmd/polard/main.go +++ b/cosmos/cmd/polard/main.go @@ -28,12 +28,14 @@ import ( svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" "pkg.berachain.dev/polaris/cosmos/cmd/polard/cmd" - simapp "pkg.berachain.dev/polaris/cosmos/runtime" + runtime "pkg.berachain.dev/polaris/cosmos/runtime" + runtimeconfig "pkg.berachain.dev/polaris/cosmos/runtime/config" ) func main() { + runtimeconfig.SetupCosmosConfig() rootCmd := cmd.NewRootCmd() - if err := svrcmd.Execute(rootCmd, "", simapp.DefaultNodeHome); err != nil { + if err := svrcmd.Execute(rootCmd, "", runtime.DefaultNodeHome); err != nil { log.NewLogger(rootCmd.OutOrStderr()).Error("failure when running app", "err", err) os.Exit(1) } diff --git a/cosmos/runtime/localnode/Dockerfile b/cosmos/docker/base.Dockerfile similarity index 58% rename from cosmos/runtime/localnode/Dockerfile rename to cosmos/docker/base.Dockerfile index fedbe37e8..7b5dbc350 100644 --- a/cosmos/runtime/localnode/Dockerfile +++ b/cosmos/docker/base.Dockerfile @@ -1,5 +1,5 @@ - # syntax=docker/dockerfile:1 +# # Copyright (C) 2022, Berachain Foundation. All rights reserved. # See the file LICENSE for licensing terms. # @@ -14,26 +14,34 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -ARG GO_VERSION +####################################################### +### Stage 0 - Build Arguments ### +####################################################### + +ARG GO_VERSION=1.20.4 ARG GOARCH=arm64 -ARG GOOS=darwin +ARG GOOS=linux +ARG NAME=polaris-cosmos +ARG APP_NAME=polard +ARG DB_BACKEND=pebbledb +ARG CMD_PATH=./cosmos/cmd/polard +ARG FOUNDRY_DIR=./contracts ####################################################### -### Stage 1 - Build Smart Contracts ### +### Stage 1 - Build Solidity Bindings ### ####################################################### # Use the latest foundry image FROM ghcr.io/foundry-rs/foundry as foundry -WORKDIR /polaris +WORKDIR /workdir -# Build and test the source code -ARG PRECOMPILE_CONTRACTS_DIR -COPY ${PRECOMPILE_CONTRACTS_DIR} ${PRECOMPILE_CONTRACTS_DIR} -WORKDIR /polaris/${PRECOMPILE_CONTRACTS_DIR} - -RUN forge build +# Copy over all the solidity code. +ARG FOUNDRY_DIR +COPY ${FOUNDRY_DIR} ${FOUNDRY_DIR} +WORKDIR /workdir/${FOUNDRY_DIR} +RUN forge build --extra-output-files bin --extra-output-files abi # #############################dock########################## # ### Stage 2 - Build the Application ### @@ -41,49 +49,48 @@ RUN forge build FROM golang:${GO_VERSION}-alpine as builder +# Setup some alpine stuff that nobody really knows how or why it works. +# Like if ur reading this and u dunno just ask the devops guy or something. +RUN set -eux; \ + apk add git linux-headers ca-certificates build-base + # Copy our source code into the container -WORKDIR /polaris +WORKDIR /workdir COPY . . -# Setup some alpine stuff that nobody really knows why we need other -# than docker geeks cause let's be real, everyone else just googles this stuff -# or asks that one really smart guy on their devops team to fio. -RUN set -eux; apk add --no-cache ca-certificates build-base; -RUN apk add git - - - -# Needed by github.com/zondax/hid -RUN apk add linux-headers - # Copy the forge output -ARG PRECOMPILE_CONTRACTS_DIR -COPY --from=foundry /polaris/${PRECOMPILE_CONTRACTS_DIR}/out /polaris/${PRECOMPILE_CONTRACTS_DIR}/out - -# # Copy the go mod and sum files -# COPY go.mod ./ -# COPY go.sum ./ - - -# Build berad binary +ARG FOUNDRY_DIR +COPY --from=foundry /workdir/${FOUNDRY_DIR}/out /workdir/${FOUNDRY_DIR}/out + +# Build args +ARG NAME +ARG GOARCH +ARG GOOS +ARG APP_NAME +ARG DB_BACKEND +ARG CMD_PATH + +# Build Executable RUN --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/root/go/pkg/mod \ VERSION=$(echo $(git describe --tags) | sed 's/^v//') && \ COMMIT=$(git log -1 --format='%H') && \ env GOOS=${GOOS} GOARCH=${GOARCH} && \ + env NAME=${NAME} DB_BACKEND=${DB_BACKEND} && \ + env APP_NAME=${APP_NAME} && \ go build \ -mod=readonly \ -tags "netgo,ledger,muslc" \ - -ldflags "-X github.com/cosmos/cosmos-sdk/version.Name="berachain" \ - -X github.com/cosmos/cosmos-sdk/version.AppName="berad" \ + -ldflags "-X github.com/cosmos/cosmos-sdk/version.Name=$NAME \ + -X github.com/cosmos/cosmos-sdk/version.AppName=$APP_NAME \ -X github.com/cosmos/cosmos-sdk/version.Version=$VERSION \ -X github.com/cosmos/cosmos-sdk/version.Commit=$COMMIT \ -X github.com/cosmos/cosmos-sdk/version.BuildTags='netgo,ledger,muslc' \ - -X github.com/cosmos/cosmos-sdk/types.DBBackend="pebbledb" \ + -X github.com/cosmos/cosmos-sdk/types.DBBackend=$DB_BACKEND \ -w -s -linkmode=external -extldflags '-Wl,-z,muldefs -static'" \ -trimpath \ - -o /polaris/bin/ \ - ./cosmos/cmd/polard + -o /workdir/bin/ \ + ${CMD_PATH} ####################################################### ### Stage 3 - Prepare the Final Image ### @@ -91,23 +98,8 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ FROM golang:${GO_VERSION}-alpine -RUN apk add --no-cache bash -RUN apk add --no-cache jq - -WORKDIR /polaris - -COPY --from=builder /polaris/bin/polard /bin/ -COPY --from=builder /polaris/cosmos/runtime/localnode/docker-init.sh /polaris/docker-init.sh -COPY --from=builder /polaris/cosmos/runtime/localnode/config /polaris/config - -ENV HOME /polaris -WORKDIR $HOME - -# Expose the berad port -EXPOSE 8545 -EXPOSE 8546 -EXPOSE 26656 -EXPOSE 26657 -EXPOSE 1317 +# Build args +ARG APP_NAME -CMD ["bash", "docker-init.sh"] \ No newline at end of file +# Copy over built executable into a fresh container. +COPY --from=builder /workdir/bin/${APP_NAME} /bin/ \ No newline at end of file diff --git a/cosmos/docker/local/Dockerfile b/cosmos/docker/local/Dockerfile new file mode 100644 index 000000000..b67c093b0 --- /dev/null +++ b/cosmos/docker/local/Dockerfile @@ -0,0 +1,41 @@ + +# syntax=docker/dockerfile:1 +# Copyright (C) 2022, Berachain Foundation. All rights reserved. +# See the file LICENSE for licensing terms. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +ARG GO_VERSION +ARG GOARCH=arm64 +ARG GOOS=darwin +ARG POLARD_VERSION=v0.0.0 + +####################################################### +### Stage 1 - Build Smart Contracts ### +####################################################### + +# Use the latest foundry image +FROM polard-base:${POLARD_VERSION} as localpolard + +RUN apk add --no-cache bash jq + +WORKDIR / + +# Copy over the local information +COPY ./cosmos/docker/local/docker-init.sh /docker-init.sh +COPY ./cosmos/docker/local/config /config + +# Set the hom directory +ENV HOME / +WORKDIR $HOME + +CMD ["bash", "docker-init.sh"] \ No newline at end of file diff --git a/cosmos/runtime/localnode/config/app.toml b/cosmos/docker/local/config/app.toml similarity index 100% rename from cosmos/runtime/localnode/config/app.toml rename to cosmos/docker/local/config/app.toml diff --git a/cosmos/runtime/localnode/config/config.toml b/cosmos/docker/local/config/config.toml similarity index 100% rename from cosmos/runtime/localnode/config/config.toml rename to cosmos/docker/local/config/config.toml diff --git a/cosmos/runtime/localnode/config/polaris.toml b/cosmos/docker/local/config/polaris.toml similarity index 100% rename from cosmos/runtime/localnode/config/polaris.toml rename to cosmos/docker/local/config/polaris.toml diff --git a/cosmos/runtime/localnode/docker-compose.yaml b/cosmos/docker/local/docker-compose.yaml similarity index 100% rename from cosmos/runtime/localnode/docker-compose.yaml rename to cosmos/docker/local/docker-compose.yaml diff --git a/cosmos/runtime/localnode/docker-init.sh b/cosmos/docker/local/docker-init.sh similarity index 99% rename from cosmos/runtime/localnode/docker-init.sh rename to cosmos/docker/local/docker-init.sh index 35102efb3..b75400777 100644 --- a/cosmos/runtime/localnode/docker-init.sh +++ b/cosmos/docker/local/docker-init.sh @@ -32,7 +32,7 @@ KEYRING="test" KEYALGO="eth_secp256k1" LOGLEVEL="info" # Set dedicated home directory for the ./bin/polard instance -HOMEDIR="/polaris" +HOMEDIR="/" # to trace evm #TRACE="--trace" TRACE="" diff --git a/cosmos/docker/rpc/Dockerfile b/cosmos/docker/rpc/Dockerfile new file mode 100644 index 000000000..b0a527782 --- /dev/null +++ b/cosmos/docker/rpc/Dockerfile @@ -0,0 +1,23 @@ + +# syntax=docker/dockerfile:1 +# Copyright (C) 2022, Berachain Foundation. All rights reserved. +# See the file LICENSE for licensing terms. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +ARG GO_VERSION +ARG GOARCH=arm64 +ARG GOOS=darwin +ARG POLARD_VERSION=v0.0.0 + +# Use the latest foundry image +FROM polard-base:${POLARD_VERSION} as rpcpolard \ No newline at end of file diff --git a/cosmos/docker/sentry/Dockerfile b/cosmos/docker/sentry/Dockerfile new file mode 100644 index 000000000..fb39b61fe --- /dev/null +++ b/cosmos/docker/sentry/Dockerfile @@ -0,0 +1,23 @@ + +# syntax=docker/dockerfile:1 +# Copyright (C) 2022, Berachain Foundation. All rights reserved. +# See the file LICENSE for licensing terms. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +ARG GO_VERSION +ARG GOARCH=arm64 +ARG GOOS=darwin +ARG POLARD_VERSION=v0.0.0 + +# Use the latest foundry image +FROM polard-base:${POLARD_VERSION} as sentrypolard \ No newline at end of file diff --git a/cosmos/docker/validator/Dockerfile b/cosmos/docker/validator/Dockerfile new file mode 100644 index 000000000..cbc061dee --- /dev/null +++ b/cosmos/docker/validator/Dockerfile @@ -0,0 +1,23 @@ + +# syntax=docker/dockerfile:1 +# Copyright (C) 2022, Berachain Foundation. All rights reserved. +# See the file LICENSE for licensing terms. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +ARG GO_VERSION +ARG GOARCH=arm64 +ARG GOOS=darwin +ARG POLARD_VERSION=v0.0.0 + +# Use the latest foundry image +FROM polard-base:${POLARD_VERSION} as valpolard \ No newline at end of file diff --git a/cosmos/go.mod b/cosmos/go.mod index 3ba8aa2a4..bfb379831 100644 --- a/cosmos/go.mod +++ b/cosmos/go.mod @@ -8,7 +8,7 @@ replace ( github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230423204932-f0018246f107 // Required for stateful precompiles and supporting the Ethereum JSON-RPC API. - github.com/ethereum/go-ethereum => github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b + github.com/ethereum/go-ethereum => github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 ) @@ -50,9 +50,9 @@ require ( google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 google.golang.org/grpc v1.54.0 google.golang.org/protobuf v1.30.0 - pkg.berachain.dev/polaris/contracts v0.0.0-20230512040135-5e51785e361a - pkg.berachain.dev/polaris/eth v0.0.0-20230512040135-5e51785e361a - pkg.berachain.dev/polaris/lib v0.0.0-20230512040135-5e51785e361a + pkg.berachain.dev/polaris/contracts v0.0.0-20230516224826-185dd722aa87 + pkg.berachain.dev/polaris/eth v0.0.0-20230516224826-185dd722aa87 + pkg.berachain.dev/polaris/lib v0.0.0-20230516224826-185dd722aa87 ) require ( @@ -102,6 +102,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/deckarep/golang-set/v2 v2.2.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/deepmap/oapi-codegen v1.8.2 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect @@ -143,6 +144,7 @@ require ( github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect + github.com/graph-gophers/graphql-go v1.3.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gtank/merlin v0.1.1 // indirect @@ -165,6 +167,9 @@ require ( github.com/iancoleman/strcase v0.2.0 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/influxdata/influxdb v1.8.3 // indirect + github.com/influxdata/influxdb-client-go/v2 v2.4.0 // indirect + github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect @@ -190,7 +195,9 @@ require ( github.com/oklog/run v1.1.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/onsi/ginkgo v1.16.5 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pelletier/go-toml/v2 v2.0.7 // indirect + github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 // indirect github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect @@ -237,6 +244,7 @@ require ( golang.org/x/sys v0.7.0 // indirect golang.org/x/term v0.7.0 // indirect golang.org/x/text v0.9.0 // indirect + golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.114.0 // indirect diff --git a/cosmos/go.sum b/cosmos/go.sum index 895fe926e..d8d16bf72 100644 --- a/cosmos/go.sum +++ b/cosmos/go.sum @@ -1,12 +1,14 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= @@ -57,6 +59,7 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= @@ -188,6 +191,7 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= cosmossdk.io/api v0.4.1-0.20230423204932-f0018246f107 h1:S1rjKqH6vh2AyaVtkhQBitpnPjv2hU6INTp/rLGNkus= cosmossdk.io/api v0.4.1-0.20230423204932-f0018246f107/go.mod h1:jR7k5ok90LxW2lFUXvd8Vpo/dr4PpiyVegxdm7b1ZdE= cosmossdk.io/client/v2 v2.0.0-20230309163709-87da587416ba h1:LuPHCncU2KLMNPItFECs709uo46I9wSu2fAWYVCx+/U= @@ -232,6 +236,7 @@ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= @@ -252,6 +257,7 @@ github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -260,7 +266,9 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= @@ -282,8 +290,8 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b h1:jGti3GQATWhZBb8REtC03+bYeIIk3RZpLofWpScABFc= -github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= +github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320 h1:s7dRDDkpxtfc8FFXUI5ccAoZfjHzRDXwtYAEz4W+BM4= +github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= @@ -291,6 +299,8 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.6.0 h1:FVfaUsleKAUTJnaN9Fd1YFFi1S8vAX5xeXnXHFYOojM= github.com/bits-and-blooms/bitset v1.6.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= +github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.23.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= @@ -319,6 +329,7 @@ github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46f github.com/bufbuild/protocompile v0.5.1 h1:mixz5lJX4Hiz4FpqFREJHIXLfaLBntfaJv1h+/jS+Qg= github.com/bufbuild/protocompile v0.5.1/go.mod h1:G5iLmavmF4NsYtpZFvE3B/zFch2GIY8+wjsYLR/lc40= github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= +github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -424,8 +435,10 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= +github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= +github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -438,6 +451,9 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeC github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= +github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= +github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= @@ -447,9 +463,11 @@ github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KP github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -461,6 +479,7 @@ github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= @@ -491,6 +510,7 @@ github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fjl/memsize v0.0.1 h1:+zhkb+dhUgx0/e+M8sF0QqiouvMQUiKR+QYvdxIOKcQ= github.com/fjl/memsize v0.0.1/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= @@ -502,6 +522,8 @@ github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbS github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= +github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= github.com/getsentry/sentry-go v0.20.0 h1:bwXW98iMRIWxn+4FgPW7vMrjmbym6HblXALmhjHmQaQ= github.com/getsentry/sentry-go v0.20.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= @@ -513,7 +535,10 @@ github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/ github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= @@ -537,6 +562,8 @@ github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -545,6 +572,7 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= @@ -566,6 +594,7 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= @@ -583,6 +612,8 @@ github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= @@ -626,11 +657,13 @@ github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8l github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -711,6 +744,8 @@ github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= +github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= @@ -797,7 +832,21 @@ github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPt github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= +github.com/influxdata/influxdb v1.8.3 h1:WEypI1BQFTT4teLM+1qkEcvUi0dAvopAI/ir0vAiBg8= +github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= +github.com/influxdata/influxdb-client-go/v2 v2.4.0 h1:HGBfZYStlx3Kqvsv1h2pJixbCl/jhnFtxpKFAv9Tu5k= +github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= +github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 h1:vilfsDSy7TDxedi9gyBkMvAirat/oRcL0lFdJBf6tdM= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= +github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= @@ -826,9 +875,13 @@ github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= @@ -840,6 +893,7 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= @@ -848,9 +902,12 @@ github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8 github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.1 h1:vJi+O/nMdFt0vqm8NZBI6wzALWdA2X+egi0ogNyrC/w= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -864,10 +921,12 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= @@ -880,10 +939,14 @@ github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0Q github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= +github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -901,10 +964,13 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -940,6 +1006,7 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -986,7 +1053,10 @@ github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= @@ -996,14 +1066,19 @@ github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIw github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml/v2 v2.0.7 h1:muncTPStnKRos5dpVKULv2FVd4bMOhNePj9CjgDb8Us= github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= +github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM= +github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= @@ -1015,6 +1090,7 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= @@ -1036,6 +1112,7 @@ github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvq github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= @@ -1054,6 +1131,7 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= +github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -1081,6 +1159,8 @@ github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71e github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= @@ -1127,6 +1207,7 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -1155,6 +1236,7 @@ github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= @@ -1183,10 +1265,12 @@ github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBn github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= @@ -1231,6 +1315,7 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= @@ -1248,13 +1333,18 @@ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= @@ -1267,6 +1357,7 @@ golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMk golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1436,6 +1527,7 @@ golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1455,6 +1547,7 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1463,6 +1556,7 @@ golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1513,6 +1607,7 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1535,13 +1630,17 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1568,6 +1667,7 @@ golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1613,6 +1713,12 @@ golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNq golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1681,6 +1787,7 @@ google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1688,6 +1795,7 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= @@ -1898,13 +2006,14 @@ nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= -pkg.berachain.dev/polaris/contracts v0.0.0-20230512040135-5e51785e361a h1:AFH7PFj7Vor/suRC3qb2gyxfdzVWni4+TrXcLP9AMyQ= -pkg.berachain.dev/polaris/contracts v0.0.0-20230512040135-5e51785e361a/go.mod h1:pM2moF7smjXhv6Zt3H0yYXlkvld8rKy7pd49LoEMQy0= -pkg.berachain.dev/polaris/eth v0.0.0-20230512040135-5e51785e361a h1:5e6OIA/sMXARpA3lhoAZcMYnQ7DGOXbSJNjNh+idL84= -pkg.berachain.dev/polaris/eth v0.0.0-20230512040135-5e51785e361a/go.mod h1:KOccSuzOWQljdvVIwksXUuWBh/dgFd4pu3T4iEW0HNs= -pkg.berachain.dev/polaris/lib v0.0.0-20230512040135-5e51785e361a h1:Q30W2RrpajAeI8WgNwPTWjyvuT9rMERhIODnp0lFrVU= -pkg.berachain.dev/polaris/lib v0.0.0-20230512040135-5e51785e361a/go.mod h1:FkkRflGw8X1Cr06uXHZH0zzP29N5rXCrR2VYsrJO2ao= +pkg.berachain.dev/polaris/contracts v0.0.0-20230516224826-185dd722aa87 h1:dRU/M2ObKFtix3pPUOzvXZZ/pF5N0xTFQmqTu7M8NjA= +pkg.berachain.dev/polaris/contracts v0.0.0-20230516224826-185dd722aa87/go.mod h1:pM2moF7smjXhv6Zt3H0yYXlkvld8rKy7pd49LoEMQy0= +pkg.berachain.dev/polaris/eth v0.0.0-20230516224826-185dd722aa87 h1:p7x13/7PbgX5R8yUhE6GwPf/KAMAD9yCpH+jwpCkslQ= +pkg.berachain.dev/polaris/eth v0.0.0-20230516224826-185dd722aa87/go.mod h1:NATdxJVrmz2RiOpZBLQBUGz58iiqGXL93G285FrzniI= +pkg.berachain.dev/polaris/lib v0.0.0-20230516224826-185dd722aa87 h1:Op1jLJJsX1s5oPMtOlXbxI/VPU0Y8kpad7cEE1TZ6SU= +pkg.berachain.dev/polaris/lib v0.0.0-20230516224826-185dd722aa87/go.mod h1:cc/0mOK7KM8AQsRuui39VYKUd77/fiFQ/xqIa3sdMZQ= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/cosmos/runtime/localnode/init.sh b/cosmos/init.sh similarity index 96% rename from cosmos/runtime/localnode/init.sh rename to cosmos/init.sh index 6fb25080c..79c101822 100755 --- a/cosmos/runtime/localnode/init.sh +++ b/cosmos/init.sh @@ -68,9 +68,9 @@ if [[ $overwrite == "y" || $overwrite == "Y" ]]; then # Set moniker and chain-id (Moniker can be anything, chain-id must be an integer) ./bin/polard init $MONIKER -o --chain-id $CHAINID --home "$HOMEDIR" - cp ./cosmos/runtime/localnode/config/app.toml "$APP_TOML" - cp ./cosmos/runtime/localnode/config/config.toml "$CONFIG_TOML" - cp ./cosmos/runtime/localnode/config/polaris.toml "$POLARIS_TOML" + cp ./cosmos/docker/local/config/app.toml "$APP_TOML" + cp ./cosmos/docker/local/config/config.toml "$CONFIG_TOML" + cp ./cosmos/docker/local/config/polaris.toml "$POLARIS_TOML" # Set client config ./bin/polard config set client keyring-backend $KEYRING --home "$HOMEDIR" diff --git a/cosmos/runtime/app.go b/cosmos/runtime/app.go index 31ab8f8aa..dbacbe04c 100644 --- a/cosmos/runtime/app.go +++ b/cosmos/runtime/app.go @@ -93,8 +93,6 @@ func init() { } DefaultNodeHome = filepath.Join(userHomeDir, ".polard") - - simappconfig.SetupCosmosConfig() } // NewPolarisApp returns a reference to an initialized PolarisApp. diff --git a/cosmos/testing/integration/fixture.go b/cosmos/testing/integration/fixture.go index 99f1cee87..917a4ee7f 100644 --- a/cosmos/testing/integration/fixture.go +++ b/cosmos/testing/integration/fixture.go @@ -21,9 +21,13 @@ package integration import ( + "bytes" "context" "crypto/ecdsa" + "encoding/json" + "io" "math/big" + "net/http" "strings" "time" @@ -37,22 +41,25 @@ import ( ) // defaultTimeout is the default timeout for the test fixture. -const defaultTimeout = 10 * time.Second - -const defaultNumberOfAccounts = 3 +const ( + fiveHundredError = 500 + defaultTimeout = 10 * time.Second + defaultNumberOfAccounts = 3 +) var defaultAccountNames = []string{"alice", "bob", "charlie"} // TestFixture is a testing fixture that can be used to test the // Ethereum JSON-RPC API. type TestFixture struct { - t network.TestingT - Network *network.Network - EthClient *ethclient.Client - EthWsClient *ethclient.Client - HTTPAddr string - WsAddr string - keysMap map[string]*ethsecp256k1.PrivKey + t network.TestingT + Network *network.Network + EthClient *ethclient.Client + EthWsClient *ethclient.Client + EthGraphQLClient *http.Client + HTTPAddr string + WsAddr string + keysMap map[string]*ethsecp256k1.PrivKey } // NewTestFixture creates a new TestFixture. @@ -82,15 +89,18 @@ func NewTestFixture(t network.TestingT) *TestFixture { wsaddr := "ws:" + apiAddr + ":8546" wsClient, _ := ethclient.DialContext(ctx, wsaddr) + graphQLClient := &http.Client{} + // Build and return the Test Fixture. return &TestFixture{ - t: t, - Network: net, - EthClient: client, - EthWsClient: wsClient, - HTTPAddr: httpAddr, - WsAddr: wsaddr, - keysMap: keysMap, + t: t, + Network: net, + EthClient: client, + EthWsClient: wsClient, + EthGraphQLClient: graphQLClient, + HTTPAddr: httpAddr, + WsAddr: wsaddr, + keysMap: keysMap, } } @@ -132,6 +142,36 @@ func (tf *TestFixture) CreateKeyWithName(name string) { tf.keysMap[name] = newKey } +func (tf *TestFixture) SendGraphQLRequest(query string) (string, int, error) { + url := tf.HTTPAddr + "/graphql" + requestBody, err := json.Marshal(map[string]string{ + "query": query, + }) + if err != nil { + return "", fiveHundredError, err + } + + req, err := http.NewRequestWithContext(context.Background(), http.MethodPost, url, bytes.NewBuffer(requestBody)) + if err != nil { + return "", fiveHundredError, err + } + req.Header.Set("Content-Type", "application/json") + + resp, err := tf.EthGraphQLClient.Do(req) + if err != nil { + return "", fiveHundredError, err + } + defer resp.Body.Close() //#nosec:G307 // only used in testing. + + responseBody, err := io.ReadAll(resp.Body) + responseStatusCode := resp.StatusCode + if err != nil { + return "", fiveHundredError, err + } + + return string(responseBody), responseStatusCode, nil +} + func setupTestAccounts(keysMap map[string]*ethsecp256k1.PrivKey) { for i := 0; i < defaultNumberOfAccounts; i++ { newKey, _ := ethsecp256k1.GenPrivKey() diff --git a/cosmos/testing/integration/graphql/graphql_test.go b/cosmos/testing/integration/graphql/graphql_test.go index 441a6210e..311173ca1 100644 --- a/cosmos/testing/integration/graphql/graphql_test.go +++ b/cosmos/testing/integration/graphql/graphql_test.go @@ -20,12 +20,8 @@ package graphql import ( - "bytes" - "encoding/json" "fmt" - "io" "math/big" - "net/http" "strconv" "testing" @@ -61,7 +57,7 @@ var _ = SynchronizedBeforeSuite(func() []byte { var _ = Describe("GraphQL", func() { It("should support eth_blockNumber", func() { - response, status, err := sendGraphQLRequest(` + response, status, err := tf.SendGraphQLRequest(` query { block { number @@ -89,14 +85,14 @@ var _ = Describe("GraphQL", func() { } } }`, addr.String(), calldata) - _, status, err := sendGraphQLRequest(query) + _, status, err := tf.SendGraphQLRequest(query) Expect(status).To(Equal(200)) Expect(err).ToNot(HaveOccurred()) }) It("should support eth_estimateGas", func() { alice := tf.Address("alice") - response, status, err := sendGraphQLRequest(fmt.Sprintf( + response, status, err := tf.SendGraphQLRequest(fmt.Sprintf( `query { block(number: "1") { estimateGas( data: { to: "%s" }) @@ -109,7 +105,7 @@ var _ = Describe("GraphQL", func() { Expect(err).ToNot(HaveOccurred()) }) It("should support eth_gasPrice", func() { - response, status, err := sendGraphQLRequest(` + response, status, err := tf.SendGraphQLRequest(` query { gasPrice } @@ -151,7 +147,7 @@ var _ = Describe("GraphQL", func() { } } }`, mostRecentBlockHash) - response, status, err := sendGraphQLRequest(query) + response, status, err := tf.SendGraphQLRequest(query) transactionCount := gjson.Get(response, "data.block.transactionCount").Int() ommerCount := gjson.Get(response, "data.block.ommerCount").Int() Expect(status).To((BeEquivalentTo(200))) @@ -162,7 +158,7 @@ var _ = Describe("GraphQL", func() { It(`should support eth_getBlockByNumber, eth_getBlockTransactionCountByNumber, eth_getUncleCountByBlockNumber, eth_getUncleByBlockNumberAndIndex`, func() { - response, status, err := sendGraphQLRequest(` + response, status, err := tf.SendGraphQLRequest(` query { block(number: 0) { transactionCount @@ -202,7 +198,7 @@ var _ = Describe("GraphQL", func() { }) It("should support eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount", func() { - response, status, err := sendGraphQLRequest(` + response, status, err := tf.SendGraphQLRequest(` { block { account(address: "0x0000000000000000000000000000000000000000") { @@ -255,7 +251,7 @@ var _ = Describe("GraphQL", func() { } } }`, mostRecentBlockHash) - response, status, err := sendGraphQLRequest(query) + response, status, err := tf.SendGraphQLRequest(query) transactionAt := gjson.Get(response, "data.block.transactionAt").Exists() Expect(status).To(BeEquivalentTo(200)) @@ -263,7 +259,7 @@ var _ = Describe("GraphQL", func() { Expect(transactionAt).To(BeTrue()) }) It("should support eth_getTransactionByBlockNumberAndIndex", func() { - response, status, err := sendGraphQLRequest(` + response, status, err := tf.SendGraphQLRequest(` { block(number: 0) { transactionAt(index: 0) { @@ -290,7 +286,7 @@ var _ = Describe("GraphQL", func() { Expect(transactionAt).To(BeTrue()) }) It("should support eth_getTransactionByHash and eth_getTransactionReceipt", func() { - response, status, err := sendGraphQLRequest(` + response, status, err := tf.SendGraphQLRequest(` { transaction(hash:"0x0000000000000000000000000000000000000000000000000000000000000000") { index @@ -313,7 +309,7 @@ var _ = Describe("GraphQL", func() { }) It("should support eth_getLogs", func() { - response, status, err := sendGraphQLRequest(`query { + response, status, err := tf.SendGraphQLRequest(`query { logs(filter: { topics: [] }) { @@ -349,13 +345,13 @@ var _ = Describe("GraphQL", func() { rlpEncoded, err := rlp.EncodeToBytes(signed) Expect(err).ToNot(HaveOccurred()) data := fmt.Sprintf("mutation { sendRawTransaction(data: \"0x%x\") }", rlpEncoded) - _, status, err := sendGraphQLRequest(data) + _, status, err := tf.SendGraphQLRequest(data) Expect(err).ToNot(HaveOccurred()) Expect(status).Should(Equal(200)) }) It("should support eth_syncing", func() { - response, status, err := sendGraphQLRequest(` + response, status, err := tf.SendGraphQLRequest(` query { syncing { startingBlock @@ -368,7 +364,7 @@ var _ = Describe("GraphQL", func() { Expect(syncing).To(BeNil()) }) It("should fail on a malformatted query", func() { - response, status, _ := sendGraphQLRequest(` + response, status, _ := tf.SendGraphQLRequest(` query { ooga booga @@ -380,7 +376,7 @@ var _ = Describe("GraphQL", func() { }) It("should fail on a malformatted mutation", func() { - response, status, _ := sendGraphQLRequest(` + response, status, _ := tf.SendGraphQLRequest(` mutation { ooga booga @@ -395,7 +391,7 @@ var _ = Describe("GraphQL", func() { func getMostRecentBlockHash() (string, error) { err := tf.Network.WaitForNextBlock() Expect(err).ToNot(HaveOccurred()) - mostRecentBlockHashQueryResponse, _, err := sendGraphQLRequest(` + mostRecentBlockHashQueryResponse, _, err := tf.SendGraphQLRequest(` query { block { hash @@ -409,35 +405,3 @@ func getMostRecentBlockHash() (string, error) { return mostRecentBlockHash, err } - -func sendGraphQLRequest(query string) (string, int, error) { - url := "http://localhost:8545/graphql" - requestBody, err := json.Marshal(map[string]string{ - "query": query, - }) - if err != nil { - return "", 500, err - } - - client := &http.Client{} - - req, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(requestBody)) - if err != nil { - return "", 500, err - } - req.Header.Set("Content-Type", "application/json") - - resp, err := client.Do(req) - if err != nil { - return "", 500, err - } - defer resp.Body.Close() - - responseBody, err := io.ReadAll(resp.Body) - responseStatusCode := resp.StatusCode - if err != nil { - return "", 500, err - } - - return string(responseBody), responseStatusCode, nil -} diff --git a/cosmos/testing/integration/utils/utils.go b/cosmos/testing/integration/utils/utils.go index d63db46c8..cad0745b6 100644 --- a/cosmos/testing/integration/utils/utils.go +++ b/cosmos/testing/integration/utils/utils.go @@ -116,7 +116,7 @@ func DeployERC20( Expect(err).ToNot(HaveOccurred()) // Wait for the transaction to be mined. - ctx, cancel := context.WithTimeout(context.Background(), DefaultTimeout) + ctx, cancel := context.WithTimeout(context.Background(), TxTimeout) defer cancel() _, err = bind.WaitDeployed(ctx, client, tx) Expect(err).ToNot(HaveOccurred()) diff --git a/cosmos/testing/network/network.go b/cosmos/testing/network/network.go index 56a7d3115..0a4ced897 100644 --- a/cosmos/testing/network/network.go +++ b/cosmos/testing/network/network.go @@ -52,6 +52,11 @@ type ( Config = network.Config ) +//nolint:gochecknoinits // i hate cosmos. +func init() { + config.SetupCosmosConfig() +} + const ( two = 2 thousand = 1000 diff --git a/eth/core/chain_helpers.go b/eth/core/chain_helpers.go new file mode 100644 index 000000000..5420398a0 --- /dev/null +++ b/eth/core/chain_helpers.go @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2023, Berachain Foundation. All rights reserved. +// Use of this software is govered by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + +package core + +import ( + "pkg.berachain.dev/polaris/eth/common" + "pkg.berachain.dev/polaris/eth/core/types" +) + +// deriveReceipts derives the receipts from the block. +func (bc *blockchain) deriveReceipts(receipts types.Receipts, blockHash common.Hash) (types.Receipts, error) { + // get the block to derive the receipts + block, err := bc.GetBlockByHash(blockHash) + if err != nil { + return nil, ErrBlockNotFound + } + + // Derive receipts from block. + if err = receipts.DeriveFields( + bc.ChainConfig(), block.Hash(), block.Number().Uint64(), block.BaseFee(), block.Transactions(), + ); err != nil { + return nil, err + } + return receipts, nil +} diff --git a/eth/core/chain_reader.go b/eth/core/chain_reader.go index ee8926c95..3a91eeff9 100644 --- a/eth/core/chain_reader.go +++ b/eth/core/chain_reader.go @@ -85,16 +85,27 @@ func (bc *blockchain) CurrentBlock() (*types.Block, error) { // CurrentReceipts returns the current receipts of the blockchain. func (bc *blockchain) CurrentBlockAndReceipts() (*types.Block, types.Receipts, error) { - cb, err := bc.CurrentBlock() + // Get current block. + block, err := bc.CurrentBlock() if err != nil { return nil, nil, err } - cr, ok := utils.GetAs[types.Receipts](bc.currentReceipts.Load()) - if cb == nil || !ok { + + // Get receipts from cache. + receipts, ok := utils.GetAs[types.Receipts](bc.currentReceipts.Load()) + if receipts == nil || !ok { return nil, nil, ErrReceiptsNotFound } - bc.receiptsCache.Add(cb.Hash(), cr) - return cb, cr, nil + + // Derive receipts from block. + receipts, err = bc.deriveReceipts(receipts, block.Hash()) + if err != nil { + return nil, nil, err + } + + // Add to cache. + bc.receiptsCache.Add(block.Hash(), receipts) + return block, receipts, nil } // FinalizedBlock returns the last finalized block of the blockchain. @@ -113,7 +124,7 @@ func (bc *blockchain) FinalizedBlock() (*types.Block, error) { func (bc *blockchain) GetReceipts(blockHash common.Hash) (types.Receipts, error) { // check the cache if receipts, ok := bc.receiptsCache.Get(blockHash); ok { - return receipts, nil + return bc.deriveReceipts(receipts, blockHash) } // check if historical plugin is supported by host chain @@ -130,7 +141,7 @@ func (bc *blockchain) GetReceipts(blockHash common.Hash) (types.Receipts, error) // cache the found receipts for next time and return bc.receiptsCache.Add(blockHash, receipts) - return receipts, nil + return bc.deriveReceipts(receipts, blockHash) } // GetTransaction gets a transaction by hash. It also returns the block hash of the diff --git a/eth/core/chain_writer.go b/eth/core/chain_writer.go index 10725904a..6871ad35d 100644 --- a/eth/core/chain_writer.go +++ b/eth/core/chain_writer.go @@ -89,7 +89,6 @@ func (bc *blockchain) Prepare(ctx context.Context, height int64) { // Prepare the State Processor, StateDB and the EVM for the block. bc.processor.Prepare( - ctx, bc.GetEVM(ctx, vm.TxContext{}, bc.statedb, header, bc.vmConfig), header, ) diff --git a/eth/core/imported.go b/eth/core/imported.go index e131f3ff0..e58c38e6f 100644 --- a/eth/core/imported.go +++ b/eth/core/imported.go @@ -56,6 +56,9 @@ var ( GetHashFn = core.GetHashFn // TransactionToMessage converts a transaction to a message. TransactionToMessage = core.TransactionToMessage + + Transfer = core.Transfer + CanTransfer = core.CanTransfer ) var ( diff --git a/eth/core/mock/host.go b/eth/core/mock/host.go index 95947f1c5..0f82892cf 100644 --- a/eth/core/mock/host.go +++ b/eth/core/mock/host.go @@ -24,26 +24,39 @@ import "pkg.berachain.dev/polaris/eth/core" //go:generate moq -out ./host.mock.go -pkg mock ../ PolarisHostChain -func NewMockHost() *PolarisHostChainMock { +func NewMockHostAndPlugins() ( + *PolarisHostChainMock, *BlockPluginMock, *ConfigurationPluginMock, *GasPluginMock, + *HistoricalPluginMock, *PrecompilePluginMock, *StatePluginMock, *TxPoolPluginMock, +) { + bp := NewBlockPluginMock() + cp := NewConfigurationPluginMock() + gp := NewGasPluginMock() + hp := NewHistoricalPluginMock() + pp := NewPrecompilePluginMock() + sp := NewStatePluginMock() + tp := &TxPoolPluginMock{} mockedPolarisHostChain := &PolarisHostChainMock{ GetBlockPluginFunc: func() core.BlockPlugin { - return NewBlockPluginMock() + return bp }, GetConfigurationPluginFunc: func() core.ConfigurationPlugin { - return NewConfigurationPluginMock() + return cp }, GetGasPluginFunc: func() core.GasPlugin { - return NewGasPluginMock() + return gp }, GetHistoricalPluginFunc: func() core.HistoricalPlugin { - return NewHistoricalPluginMock() + return hp }, GetPrecompilePluginFunc: func() core.PrecompilePlugin { - return NewPrecompilePluginMock() + return pp }, GetStatePluginFunc: func() core.StatePlugin { - return &StatePluginMock{} + return sp + }, + GetTxPoolPluginFunc: func() core.TxPoolPlugin { + return tp }, } - return mockedPolarisHostChain + return mockedPolarisHostChain, bp, cp, gp, hp, pp, sp, tp } diff --git a/eth/core/mock/precompile_plugin.go b/eth/core/mock/precompile_plugin.go index e4ec21cf8..7c417e688 100644 --- a/eth/core/mock/precompile_plugin.go +++ b/eth/core/mock/precompile_plugin.go @@ -23,7 +23,9 @@ package mock import ( "github.com/ethereum/go-ethereum/params" + "pkg.berachain.dev/polaris/eth/common" "pkg.berachain.dev/polaris/eth/core/precompile" + "pkg.berachain.dev/polaris/eth/core/vm" ) //go:generate moq -out ./precompile_plugin.mock.go -pkg mock ../ PrecompilePlugin @@ -33,5 +35,11 @@ func NewPrecompilePluginMock() *PrecompilePluginMock { GetPrecompilesFunc: func(_ *params.Rules) []precompile.Registrable { return nil }, + GetActiveFunc: func(_ *params.Rules) []common.Address { + return nil + }, + RegisterFunc: func(pc vm.PrecompileContainer) error { + return nil + }, } } diff --git a/eth/core/mock/state_plugin.go b/eth/core/mock/state_plugin.go index dc4533955..f07d9fea9 100644 --- a/eth/core/mock/state_plugin.go +++ b/eth/core/mock/state_plugin.go @@ -21,3 +21,7 @@ package mock //go:generate moq -out ./state_plugin.mock.go -pkg mock ../ StatePlugin + +func NewStatePluginMock() *StatePluginMock { + return &StatePluginMock{} +} diff --git a/eth/core/mock/txpool_plugin.go b/eth/core/mock/txpool_plugin.go new file mode 100644 index 000000000..6d4f07874 --- /dev/null +++ b/eth/core/mock/txpool_plugin.go @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: BUSL-1.1 +// +// Copyright (C) 2023, Berachain Foundation. All rights reserved. +// Use of this software is govered by the Business Source License included +// in the LICENSE file of this repository and at www.mariadb.com/bsl11. +// +// ANY USE OF THE LICENSED WORK IN VIOLATION OF THIS LICENSE WILL AUTOMATICALLY +// TERMINATE YOUR RIGHTS UNDER THIS LICENSE FOR THE CURRENT AND ALL OTHER +// VERSIONS OF THE LICENSED WORK. +// +// THIS LICENSE DOES NOT GRANT YOU ANY RIGHT IN ANY TRADEMARK OR LOGO OF +// LICENSOR OR ITS AFFILIATES (PROVIDED THAT YOU MAY USE A TRADEMARK OR LOGO OF +// LICENSOR AS EXPRESSLY REQUIRED BY THIS LICENSE). +// +// TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +// AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +// EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +// TITLE. + +package mock + +//go:generate moq -out ./txpool_plugin.mock.go -pkg mock ../ TxPoolPlugin diff --git a/eth/core/mock/txpool_plugin.mock.go b/eth/core/mock/txpool_plugin.mock.go new file mode 100644 index 000000000..dc35e7deb --- /dev/null +++ b/eth/core/mock/txpool_plugin.mock.go @@ -0,0 +1,373 @@ +// Code generated by moq; DO NOT EDIT. +// github.com/matryer/moq + +package mock + +import ( + "github.com/ethereum/go-ethereum/common" + ethereumcore "github.com/ethereum/go-ethereum/core" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" + ethcore "pkg.berachain.dev/polaris/eth/core" + "sync" +) + +// Ensure, that TxPoolPluginMock does implement ethcore.TxPoolPlugin. +// If this is not the case, regenerate this file with moq. +var _ ethcore.TxPoolPlugin = &TxPoolPluginMock{} + +// TxPoolPluginMock is a mock implementation of ethcore.TxPoolPlugin. +// +// func TestSomethingThatUsesTxPoolPlugin(t *testing.T) { +// +// // make and configure a mocked ethcore.TxPoolPlugin +// mockedTxPoolPlugin := &TxPoolPluginMock{ +// ContentFunc: func() (map[common.Address]types.Transactions, map[common.Address]types.Transactions) { +// panic("mock out the Content method") +// }, +// ContentFromFunc: func(addr common.Address) (types.Transactions, types.Transactions) { +// panic("mock out the ContentFrom method") +// }, +// GetFunc: func(hash common.Hash) *types.Transaction { +// panic("mock out the Get method") +// }, +// NonceFunc: func(address common.Address) uint64 { +// panic("mock out the Nonce method") +// }, +// PendingFunc: func(b bool) map[common.Address]types.Transactions { +// panic("mock out the Pending method") +// }, +// SendTxFunc: func(tx *types.Transaction) error { +// panic("mock out the SendTx method") +// }, +// StatsFunc: func() (int, int) { +// panic("mock out the Stats method") +// }, +// SubscribeNewTxsEventFunc: func(ch chan<- ethereumcore.NewTxsEvent) event.Subscription { +// panic("mock out the SubscribeNewTxsEvent method") +// }, +// } +// +// // use mockedTxPoolPlugin in code that requires ethcore.TxPoolPlugin +// // and then make assertions. +// +// } +type TxPoolPluginMock struct { + // ContentFunc mocks the Content method. + ContentFunc func() (map[common.Address]types.Transactions, map[common.Address]types.Transactions) + + // ContentFromFunc mocks the ContentFrom method. + ContentFromFunc func(addr common.Address) (types.Transactions, types.Transactions) + + // GetFunc mocks the Get method. + GetFunc func(hash common.Hash) *types.Transaction + + // NonceFunc mocks the Nonce method. + NonceFunc func(address common.Address) uint64 + + // PendingFunc mocks the Pending method. + PendingFunc func(b bool) map[common.Address]types.Transactions + + // SendTxFunc mocks the SendTx method. + SendTxFunc func(tx *types.Transaction) error + + // StatsFunc mocks the Stats method. + StatsFunc func() (int, int) + + // SubscribeNewTxsEventFunc mocks the SubscribeNewTxsEvent method. + SubscribeNewTxsEventFunc func(ch chan<- ethereumcore.NewTxsEvent) event.Subscription + + // calls tracks calls to the methods. + calls struct { + // Content holds details about calls to the Content method. + Content []struct { + } + // ContentFrom holds details about calls to the ContentFrom method. + ContentFrom []struct { + // Addr is the addr argument value. + Addr common.Address + } + // Get holds details about calls to the Get method. + Get []struct { + // Hash is the hash argument value. + Hash common.Hash + } + // Nonce holds details about calls to the Nonce method. + Nonce []struct { + // Address is the address argument value. + Address common.Address + } + // Pending holds details about calls to the Pending method. + Pending []struct { + // B is the b argument value. + B bool + } + // SendTx holds details about calls to the SendTx method. + SendTx []struct { + // Tx is the tx argument value. + Tx *types.Transaction + } + // Stats holds details about calls to the Stats method. + Stats []struct { + } + // SubscribeNewTxsEvent holds details about calls to the SubscribeNewTxsEvent method. + SubscribeNewTxsEvent []struct { + // Ch is the ch argument value. + Ch chan<- ethereumcore.NewTxsEvent + } + } + lockContent sync.RWMutex + lockContentFrom sync.RWMutex + lockGet sync.RWMutex + lockNonce sync.RWMutex + lockPending sync.RWMutex + lockSendTx sync.RWMutex + lockStats sync.RWMutex + lockSubscribeNewTxsEvent sync.RWMutex +} + +// Content calls ContentFunc. +func (mock *TxPoolPluginMock) Content() (map[common.Address]types.Transactions, map[common.Address]types.Transactions) { + if mock.ContentFunc == nil { + panic("TxPoolPluginMock.ContentFunc: method is nil but TxPoolPlugin.Content was just called") + } + callInfo := struct { + }{} + mock.lockContent.Lock() + mock.calls.Content = append(mock.calls.Content, callInfo) + mock.lockContent.Unlock() + return mock.ContentFunc() +} + +// ContentCalls gets all the calls that were made to Content. +// Check the length with: +// +// len(mockedTxPoolPlugin.ContentCalls()) +func (mock *TxPoolPluginMock) ContentCalls() []struct { +} { + var calls []struct { + } + mock.lockContent.RLock() + calls = mock.calls.Content + mock.lockContent.RUnlock() + return calls +} + +// ContentFrom calls ContentFromFunc. +func (mock *TxPoolPluginMock) ContentFrom(addr common.Address) (types.Transactions, types.Transactions) { + if mock.ContentFromFunc == nil { + panic("TxPoolPluginMock.ContentFromFunc: method is nil but TxPoolPlugin.ContentFrom was just called") + } + callInfo := struct { + Addr common.Address + }{ + Addr: addr, + } + mock.lockContentFrom.Lock() + mock.calls.ContentFrom = append(mock.calls.ContentFrom, callInfo) + mock.lockContentFrom.Unlock() + return mock.ContentFromFunc(addr) +} + +// ContentFromCalls gets all the calls that were made to ContentFrom. +// Check the length with: +// +// len(mockedTxPoolPlugin.ContentFromCalls()) +func (mock *TxPoolPluginMock) ContentFromCalls() []struct { + Addr common.Address +} { + var calls []struct { + Addr common.Address + } + mock.lockContentFrom.RLock() + calls = mock.calls.ContentFrom + mock.lockContentFrom.RUnlock() + return calls +} + +// Get calls GetFunc. +func (mock *TxPoolPluginMock) Get(hash common.Hash) *types.Transaction { + if mock.GetFunc == nil { + panic("TxPoolPluginMock.GetFunc: method is nil but TxPoolPlugin.Get was just called") + } + callInfo := struct { + Hash common.Hash + }{ + Hash: hash, + } + mock.lockGet.Lock() + mock.calls.Get = append(mock.calls.Get, callInfo) + mock.lockGet.Unlock() + return mock.GetFunc(hash) +} + +// GetCalls gets all the calls that were made to Get. +// Check the length with: +// +// len(mockedTxPoolPlugin.GetCalls()) +func (mock *TxPoolPluginMock) GetCalls() []struct { + Hash common.Hash +} { + var calls []struct { + Hash common.Hash + } + mock.lockGet.RLock() + calls = mock.calls.Get + mock.lockGet.RUnlock() + return calls +} + +// Nonce calls NonceFunc. +func (mock *TxPoolPluginMock) Nonce(address common.Address) uint64 { + if mock.NonceFunc == nil { + panic("TxPoolPluginMock.NonceFunc: method is nil but TxPoolPlugin.Nonce was just called") + } + callInfo := struct { + Address common.Address + }{ + Address: address, + } + mock.lockNonce.Lock() + mock.calls.Nonce = append(mock.calls.Nonce, callInfo) + mock.lockNonce.Unlock() + return mock.NonceFunc(address) +} + +// NonceCalls gets all the calls that were made to Nonce. +// Check the length with: +// +// len(mockedTxPoolPlugin.NonceCalls()) +func (mock *TxPoolPluginMock) NonceCalls() []struct { + Address common.Address +} { + var calls []struct { + Address common.Address + } + mock.lockNonce.RLock() + calls = mock.calls.Nonce + mock.lockNonce.RUnlock() + return calls +} + +// Pending calls PendingFunc. +func (mock *TxPoolPluginMock) Pending(b bool) map[common.Address]types.Transactions { + if mock.PendingFunc == nil { + panic("TxPoolPluginMock.PendingFunc: method is nil but TxPoolPlugin.Pending was just called") + } + callInfo := struct { + B bool + }{ + B: b, + } + mock.lockPending.Lock() + mock.calls.Pending = append(mock.calls.Pending, callInfo) + mock.lockPending.Unlock() + return mock.PendingFunc(b) +} + +// PendingCalls gets all the calls that were made to Pending. +// Check the length with: +// +// len(mockedTxPoolPlugin.PendingCalls()) +func (mock *TxPoolPluginMock) PendingCalls() []struct { + B bool +} { + var calls []struct { + B bool + } + mock.lockPending.RLock() + calls = mock.calls.Pending + mock.lockPending.RUnlock() + return calls +} + +// SendTx calls SendTxFunc. +func (mock *TxPoolPluginMock) SendTx(tx *types.Transaction) error { + if mock.SendTxFunc == nil { + panic("TxPoolPluginMock.SendTxFunc: method is nil but TxPoolPlugin.SendTx was just called") + } + callInfo := struct { + Tx *types.Transaction + }{ + Tx: tx, + } + mock.lockSendTx.Lock() + mock.calls.SendTx = append(mock.calls.SendTx, callInfo) + mock.lockSendTx.Unlock() + return mock.SendTxFunc(tx) +} + +// SendTxCalls gets all the calls that were made to SendTx. +// Check the length with: +// +// len(mockedTxPoolPlugin.SendTxCalls()) +func (mock *TxPoolPluginMock) SendTxCalls() []struct { + Tx *types.Transaction +} { + var calls []struct { + Tx *types.Transaction + } + mock.lockSendTx.RLock() + calls = mock.calls.SendTx + mock.lockSendTx.RUnlock() + return calls +} + +// Stats calls StatsFunc. +func (mock *TxPoolPluginMock) Stats() (int, int) { + if mock.StatsFunc == nil { + panic("TxPoolPluginMock.StatsFunc: method is nil but TxPoolPlugin.Stats was just called") + } + callInfo := struct { + }{} + mock.lockStats.Lock() + mock.calls.Stats = append(mock.calls.Stats, callInfo) + mock.lockStats.Unlock() + return mock.StatsFunc() +} + +// StatsCalls gets all the calls that were made to Stats. +// Check the length with: +// +// len(mockedTxPoolPlugin.StatsCalls()) +func (mock *TxPoolPluginMock) StatsCalls() []struct { +} { + var calls []struct { + } + mock.lockStats.RLock() + calls = mock.calls.Stats + mock.lockStats.RUnlock() + return calls +} + +// SubscribeNewTxsEvent calls SubscribeNewTxsEventFunc. +func (mock *TxPoolPluginMock) SubscribeNewTxsEvent(ch chan<- ethereumcore.NewTxsEvent) event.Subscription { + if mock.SubscribeNewTxsEventFunc == nil { + panic("TxPoolPluginMock.SubscribeNewTxsEventFunc: method is nil but TxPoolPlugin.SubscribeNewTxsEvent was just called") + } + callInfo := struct { + Ch chan<- ethereumcore.NewTxsEvent + }{ + Ch: ch, + } + mock.lockSubscribeNewTxsEvent.Lock() + mock.calls.SubscribeNewTxsEvent = append(mock.calls.SubscribeNewTxsEvent, callInfo) + mock.lockSubscribeNewTxsEvent.Unlock() + return mock.SubscribeNewTxsEventFunc(ch) +} + +// SubscribeNewTxsEventCalls gets all the calls that were made to SubscribeNewTxsEvent. +// Check the length with: +// +// len(mockedTxPoolPlugin.SubscribeNewTxsEventCalls()) +func (mock *TxPoolPluginMock) SubscribeNewTxsEventCalls() []struct { + Ch chan<- ethereumcore.NewTxsEvent +} { + var calls []struct { + Ch chan<- ethereumcore.NewTxsEvent + } + mock.lockSubscribeNewTxsEvent.RLock() + calls = mock.calls.SubscribeNewTxsEvent + mock.lockSubscribeNewTxsEvent.RUnlock() + return calls +} diff --git a/eth/core/processor.go b/eth/core/processor.go index 64d600408..fe06ed1d5 100644 --- a/eth/core/processor.go +++ b/eth/core/processor.go @@ -27,6 +27,7 @@ import ( "github.com/ethereum/go-ethereum/trie" + "pkg.berachain.dev/polaris/eth/common" "pkg.berachain.dev/polaris/eth/core/precompile" "pkg.berachain.dev/polaris/eth/core/types" "pkg.berachain.dev/polaris/eth/core/vm" @@ -70,6 +71,7 @@ type StateProcessor struct { header *types.Header txs types.Transactions receipts types.Receipts + logIndex uint } // NewStateProcessor creates a new state processor with the given host, statedb, vmConfig, and @@ -104,13 +106,14 @@ func NewStateProcessor( // ============================================================================== // Prepare prepares the state processor for processing a block. -func (sp *StateProcessor) Prepare(ctx context.Context, evm *vm.GethEVM, header *types.Header) { +func (sp *StateProcessor) Prepare(evm *vm.GethEVM, header *types.Header) { // We lock the state processor as a safety measure to ensure that Prepare is not called again // before finalize. sp.mtx.Lock() // Build a header object so we can track that status of the block as we process it. sp.header = header + sp.logIndex = 0 sp.txs = make(types.Transactions, 0, initialTxsCapacity) sp.receipts = make(types.Receipts, 0, initialTxsCapacity) @@ -161,53 +164,70 @@ func (sp *StateProcessor) ProcessTransaction( return nil, errors.Wrapf(err, "could not apply message %d [%s]", len(sp.txs), txHash.Hex()) } - // If we used more gas than we had remaining on the gas plugin, we treat it as an out of gas error, - // while still ensuring that we consume all the gas. + // Update the state with pending changes. + if sp.cp.ChainConfig().IsByzantium(sp.header.Number) { + // Finalize the statedb to ensure that any state changes that are required are propogated. + // We have to do this irrespective of whether the transaction failed or not, in order to + // ensure that the sender's nonce increases as well as the transaction fees are paid. + // The snapshotting within the EVM ensures that any reverted state changes are not reflected + // in the finalized state. + sp.statedb.Finalize() // TODO: mirror the correct sig from geth. + } else { + panic("in Polaris we assume we are past EIP-658") + } + + // If we used more gas than we had remaining on the gas plugin, we treat it as an out of gas + // error, while still ensuring that we consume all the gas. if result.UsedGas > sp.gp.GasRemaining() { result.UsedGas = sp.gp.GasRemaining() result.Err = vm.ErrOutOfGas } - // Consume the gas used by the state transition. In both the out of block gas as well as out of gas on - // the plugin cases, the line below will consume the remaining gas for the block and transaction respectively. + // Consume the gas used by the state transition. In both the out of block gas as well as out of + // gas on the plugin cases, the line below will consume the remaining gas for the block and + // transaction respectively. if err = sp.gp.ConsumeGas(result.UsedGas); err != nil { return nil, errors.Wrapf(err, "could not consume gas used %d [%s]", len(sp.txs), txHash.Hex()) } - // Create a new receipt for the transaction. + // Create a new receipt for the transaction, storing the intermediate root and gas used + // by the tx. receipt := &types.Receipt{ Type: tx.Type(), + PostState: nil, // in Polaris we assume we are past EIP-658. CumulativeGasUsed: sp.gp.BlockGasConsumed() + sp.gp.GasConsumed(), - TxHash: txHash, - GasUsed: result.UsedGas, - Logs: sp.statedb.Logs(), } + if result.Failed() { + receipt.Status = types.ReceiptStatusFailed + } else { + receipt.Status = types.ReceiptStatusSuccessful + } + receipt.TxHash = txHash + receipt.GasUsed = result.UsedGas // If the transaction created a contract, store the creation address in the receipt. if msg.To == nil { receipt.ContractAddress = crypto.CreateAddress(txContext.Origin, tx.Nonce()) } - // Set the receipt status based on the execution result status. - if result.Failed() { - receipt.Status = types.ReceiptStatusFailed - } else { - receipt.Status = types.ReceiptStatusSuccessful + // Add the logs, with block metadata, to the receipt; the block hash has not been computed + // since the block is not complete at this point. + receipt.Logs = sp.statedb.GetLogs(receipt.TxHash, sp.header.Number.Uint64(), common.Hash{}) + for _, log := range receipt.Logs { + log.Index = sp.logIndex + sp.logIndex++ } - - // Finalize the statedb to ensure that any state changes that are required are propogated. - // We have to do this irrespective of whether the transaction failed or not, in order to - // ensure that the sender's nonce increases as well as the transaction fees are paid. - // The snapshotting within the EVM ensures that any reverted state changes are not reflected - // in the finalized state. - sp.statedb.Finalize() + // Add the bloom filter to the receipt. + receipt.Bloom = types.CreateBloom(types.Receipts{receipt}) + receipt.TransactionIndex = uint(len(sp.txs)) + receipt.BlockNumber = sp.header.Number // Update the block information. sp.txs = append(sp.txs, tx) sp.receipts = append(sp.receipts, receipt) // Return the execution result to the caller. - return result, nil + return result, err } // Finalize finalizes the block in the state processor and returns the receipts and bloom filter. @@ -220,30 +240,18 @@ func (sp *StateProcessor) Finalize( // Now that we are done processing the block, we update the header with the consumed gas. sp.header.GasUsed = sp.gp.BlockGasConsumed() - // Finalize the block with the txs and receipts (sets the TxHash, ReceiptHash, and Bloom) and - // reset the header for the next block. + // Finalize the block with the txs and receipts (sets the TxHash, ReceiptHash, and Bloom). block := types.NewBlock(sp.header, sp.txs, nil, sp.receipts, trie.NewStackTrie(nil)) - sp.header = nil + blockHash := block.Hash() - // We iterate over all of the receipts/transactions in the block and update the receipt to - // have the correct values. We must do this AFTER all the transactions have been processed - // to ensure that the block hash, logs and bloom filter have the correct information. - blockHash, blockNumber, blockBloom := block.Hash(), block.NumberU64(), block.Bloom() - var logIndex uint + // Set hashes on the receipts and logs. var logs []*types.Log - for txIndex, receipt := range sp.receipts { - // Edit the receipts to include the block hash and bloom filter. + for _, receipt := range sp.receipts { + receipt.BlockHash = blockHash for _, log := range receipt.Logs { - log.BlockNumber = blockNumber log.BlockHash = blockHash - log.Index = logIndex - logIndex++ - logs = append(logs, log) } - receipt.Bloom = blockBloom - receipt.BlockHash = blockHash - receipt.BlockNumber = block.Number() - receipt.TransactionIndex = uint(txIndex) + logs = append(logs, receipt.Logs...) } // We return a new block with the updated header and the receipts to the `blockchain`. diff --git a/eth/core/processor_test.go b/eth/core/processor_test.go index d8130897d..8ab13e442 100644 --- a/eth/core/processor_test.go +++ b/eth/core/processor_test.go @@ -44,73 +44,52 @@ var ( signer = types.LatestSignerForChainID(params.DefaultChainConfig.ChainID) _ = key _ = signer + blockGasLimit = 10000000 dummyHeader = &types.Header{ Number: big.NewInt(1), - GasLimit: 1000000, + BaseFee: big.NewInt(1), + GasLimit: uint64(blockGasLimit), } legacyTxData = &types.LegacyTx{ Nonce: 0, To: &dummyContract, - Gas: 100000, - GasPrice: big.NewInt(2), + Gas: 1000000, + GasPrice: big.NewInt(1), Data: []byte("abcdef"), } ) var _ = Describe("StateProcessor", func() { var ( - sdb *vmmock.PolarisStateDBMock - host *mock.PolarisHostChainMock - bp *mock.BlockPluginMock - gp *mock.GasPluginMock - cp *mock.ConfigurationPluginMock - pp *mock.PrecompilePluginMock - sp *core.StateProcessor - blockGasLimit uint64 + sdb *vmmock.PolarisStateDBMock + bp *mock.BlockPluginMock + gp *mock.GasPluginMock + cp *mock.ConfigurationPluginMock + pp *mock.PrecompilePluginMock + sp *core.StateProcessor + evm *vm.GethEVM ) BeforeEach(func() { sdb = vmmock.NewEmptyStateDB() - host = mock.NewMockHost() - bp = mock.NewBlockPluginMock() - gp = mock.NewGasPluginMock() - cp = mock.NewConfigurationPluginMock() - pp = mock.NewPrecompilePluginMock() - host.GetBlockPluginFunc = func() core.BlockPlugin { - return bp - } - host.GetGasPluginFunc = func() core.GasPlugin { - return gp - } - host.GetConfigurationPluginFunc = func() core.ConfigurationPlugin { - return cp - } - host.GetPrecompilePluginFunc = func() core.PrecompilePlugin { - return pp - } - pp.RegisterFunc = func(pc vm.PrecompileContainer) error { - return nil - } - sp = core.NewStateProcessor(cp, gp, pp, sdb, &vm.Config{}) - Expect(sp).ToNot(BeNil()) - blockGasLimit = 1000000 - + _, bp, cp, gp, _, pp, _, _ = mock.NewMockHostAndPlugins() bp.GetNewBlockMetadataFunc = func(n int64) (common.Address, uint64) { return common.BytesToAddress([]byte{2}), uint64(3) } pp.HasFunc = func(addr common.Address) bool { return false } + gp.SetBlockGasLimit(uint64(blockGasLimit)) - sdb.PrepareFunc = func(rules params.Rules, sender common.Address, - coinbase common.Address, dest *common.Address, - precompiles []common.Address, txAccesses types.AccessList, - ) { - // no-op - } - - gp.SetBlockGasLimit(blockGasLimit) - sp.Prepare(context.Background(), nil, dummyHeader) + sp = core.NewStateProcessor(cp, gp, pp, sdb, &vm.Config{}) + Expect(sp).ToNot(BeNil()) + evm = vm.NewGethEVMWithPrecompiles( + vm.BlockContext{ + Transfer: core.Transfer, + CanTransfer: core.CanTransfer, + }, vm.TxContext{}, sdb, cp.ChainConfig(), vm.Config{}, pp, + ) + sp.Prepare(evm, dummyHeader) }) Context("Empty block", func() { @@ -128,10 +107,11 @@ var _ = Describe("StateProcessor", func() { _, _, _, err := sp.Finalize(context.Background()) Expect(err).ToNot(HaveOccurred()) - sp.Prepare(context.Background(), nil, dummyHeader) + sp.Prepare(evm, dummyHeader) }) It("should error on an unsigned transaction", func() { + Expect(gp.SetTxGasLimit(1000002)).ToNot(HaveOccurred()) receipt, err := sp.ProcessTransaction(context.Background(), types.NewTx(legacyTxData)) Expect(err).To(HaveOccurred()) Expect(receipt).To(BeNil()) @@ -143,24 +123,26 @@ var _ = Describe("StateProcessor", func() { }) It("should not error on a signed transaction", func() { - // signedTx := types.MustSignNewTx(key, signer, legacyTxData) - // sdb.GetBalanceFunc = func(addr common.Address) *big.Int { - // return big.NewInt(200000) - // } - // result, err := sp.ProcessTransaction(context.Background(), signedTx) - // Expect(err).ToNot(HaveOccurred()) - // Expect(result).ToNot(BeNil()) - // Expect(result.Err).ToNot(HaveOccurred()) - // Expect(result.UsedGas).ToNot(BeZero()) - // block, receipts, err := sp.Finalize(context.Background()) - // Expect(err).ToNot(HaveOccurred()) - // Expect(block).ToNot(BeNil()) - // Expect(len(receipts)).To(Equal(1)) + signedTx := types.MustSignNewTx(key, signer, legacyTxData) + sdb.GetBalanceFunc = func(addr common.Address) *big.Int { + return big.NewInt(1000001) + } + Expect(gp.SetTxGasLimit(1000002)).ToNot(HaveOccurred()) + result, err := sp.ProcessTransaction(context.Background(), signedTx) + Expect(err).ToNot(HaveOccurred()) + Expect(result).ToNot(BeNil()) + Expect(result.Err).ToNot(HaveOccurred()) + Expect(result.UsedGas).ToNot(BeZero()) + block, receipts, logs, err := sp.Finalize(context.Background()) + Expect(err).ToNot(HaveOccurred()) + Expect(block).ToNot(BeNil()) + Expect(receipts).To(HaveLen(1)) + Expect(logs).To(BeEmpty()) }) It("should handle", func() { sdb.GetBalanceFunc = func(addr common.Address) *big.Int { - return big.NewInt(200000) + return big.NewInt(1000001) } sdb.GetCodeFunc = func(addr common.Address) []byte { if addr != dummyContract { @@ -177,55 +159,43 @@ var _ = Describe("StateProcessor", func() { sdb.ExistFunc = func(addr common.Address) bool { return addr == dummyContract } - // legacyTxData.To = nil - // legacyTxData.Value = big.NewInt(0) - // signedTx := types.MustSignNewTx(key, signer, legacyTxData) - // result, err := sp.ProcessTransaction(context.Background(), signedTx) - // Expect(err).ToNot(HaveOccurred()) - // Expect(result).ToNot(BeNil()) - // Expect(result.Err).ToNot(HaveOccurred()) - // block, receipts, err := sp.Finalize(context.Background()) - // Expect(err).ToNot(HaveOccurred()) - // Expect(block).ToNot(BeNil()) - // Expect(len(receipts)).To(Equal(1)) - - // // Now try calling the contract - // legacyTxData.To = &dummyContract - // signedTx = types.MustSignNewTx(key, signer, legacyTxData) - // result, err = sp.ProcessTransaction(context.Background(), signedTx) - // Expect(err).ToNot(HaveOccurred()) - // Expect(result).ToNot(BeNil()) - // Expect(result.Err).ToNot(HaveOccurred()) + legacyTxData.To = nil + legacyTxData.Value = big.NewInt(0) + signedTx := types.MustSignNewTx(key, signer, legacyTxData) + Expect(gp.SetTxGasLimit(1000002)).ToNot(HaveOccurred()) + result, err := sp.ProcessTransaction(context.Background(), signedTx) + Expect(err).ToNot(HaveOccurred()) + Expect(result).ToNot(BeNil()) + Expect(result.Err).ToNot(HaveOccurred()) + + // Now try calling the contract + legacyTxData.To = &dummyContract + signedTx = types.MustSignNewTx(key, signer, legacyTxData) + Expect(gp.SetTxGasLimit(1000002)).ToNot(HaveOccurred()) + result, err = sp.ProcessTransaction(context.Background(), signedTx) + Expect(err).ToNot(HaveOccurred()) + Expect(result).ToNot(BeNil()) + Expect(result.Err).ToNot(HaveOccurred()) + block, receipts, logs, err := sp.Finalize(context.Background()) + Expect(err).ToNot(HaveOccurred()) + Expect(block).ToNot(BeNil()) + Expect(receipts).To(HaveLen(2)) + Expect(logs).To(BeEmpty()) }) }) }) var _ = Describe("No precompile plugin provided", func() { It("should use the default plugin if none is provided", func() { - host := mock.NewMockHost() - cp := mock.NewConfigurationPluginMock() - bp := mock.NewBlockPluginMock() - gp := mock.NewGasPluginMock() - gp.SetBlockGasLimit(1000000) + _, bp, cp, gp, _, _, _, _ := mock.NewMockHostAndPlugins() + gp.SetBlockGasLimit(uint64(blockGasLimit)) bp.GetNewBlockMetadataFunc = func(n int64) (common.Address, uint64) { return common.BytesToAddress([]byte{2}), uint64(3) } - host.GetBlockPluginFunc = func() core.BlockPlugin { - return bp - } - host.GetGasPluginFunc = func() core.GasPlugin { - return gp - } - host.GetConfigurationPluginFunc = func() core.ConfigurationPlugin { - return cp - } - host.GetPrecompilePluginFunc = func() core.PrecompilePlugin { - return nil - } sp := core.NewStateProcessor(cp, gp, nil, vmmock.NewEmptyStateDB(), &vm.Config{}) Expect(func() { - sp.Prepare(context.Background(), nil, &types.Header{ - GasLimit: 1000000, + sp.Prepare(nil, &types.Header{ + GasLimit: uint64(blockGasLimit), }) }).ToNot(Panic()) }) diff --git a/eth/core/state/journal/logs.go b/eth/core/state/journal/logs.go index b66d90767..fc8ddf103 100644 --- a/eth/core/state/journal/logs.go +++ b/eth/core/state/journal/logs.go @@ -81,7 +81,7 @@ func (l *logs) Logs() []*coretypes.Log { func (l *logs) GetLogs(_ common.Hash, blockNumber uint64, blockHash common.Hash) []*coretypes.Log { size := l.Size() buf := make([]*coretypes.Log, size) - for i := size - 1; i >= 0; i-- { + for i := 0; i < size; i++ { buf[i] = l.PeekAt(i) buf[i].BlockHash = blockHash buf[i].BlockNumber = blockNumber diff --git a/eth/core/state/statedb.go b/eth/core/state/statedb.go index cba21cf33..766378f33 100644 --- a/eth/core/state/statedb.go +++ b/eth/core/state/statedb.go @@ -21,6 +21,8 @@ package state import ( + "sync" + "pkg.berachain.dev/polaris/eth/common" "pkg.berachain.dev/polaris/eth/core/state/journal" coretypes "pkg.berachain.dev/polaris/eth/core/types" @@ -44,9 +46,13 @@ type stateDB struct { // ctrl is used to manage snapshots and reverts across plugins and journals. ctrl libtypes.Controller[string, libtypes.Controllable[string]] + + // mtx is used to make sure we don't try to reset the statedb for a new transaction before + // finalizing the current transaction. + mtx sync.Mutex } -// NewStateDB returns a `vm.PolarisStateDB` with the given `StatePlugin`. +// NewStateDB returns a vm.PolarisStateDB with the given StatePlugin. func NewStateDB(sp Plugin) vm.PolarisStateDB { // Build the journals required for the stateDB lj := journal.NewLogs() @@ -79,12 +85,12 @@ func NewStateDB(sp Plugin) vm.PolarisStateDB { // Snapshot // ============================================================================= -// Snapshot implements `stateDB`. +// Snapshot implements vm.PolarisStateDB. func (sdb *stateDB) Snapshot() int { return sdb.ctrl.Snapshot() } -// RevertToSnapshot implements `stateDB`. +// RevertToSnapshot implements vm.PolarisStateDB. func (sdb *stateDB) RevertToSnapshot(id int) { sdb.ctrl.RevertToSnapshot(id) } @@ -93,20 +99,19 @@ func (sdb *stateDB) RevertToSnapshot(id int) { // Clean state // ============================================================================= -// Reset sets the TxContext for the current transaction and also manually clears any state from the -// previous tx in the journals, in case the previous tx reverted (Finalize was not called). +// Reset sets the TxContext for the current transaction, blocking until finalize is called for the +// previous transaction. func (sdb *stateDB) Reset(txHash common.Hash, txIndex int) { - sdb.LogsJournal.Finalize() - sdb.RefundJournal.Finalize() - sdb.AccessListJournal.Finalize() - sdb.TransientStorageJournal.Finalize() - sdb.SuicidesJournal.Finalize() + sdb.mtx.Lock() sdb.LogsJournal.SetTxContext(txHash, txIndex) } -// Finalize deletes the suicided accounts and finalizes all plugins. +// Finalize deletes the suicided accounts and finalizes all plugins, preparing the statedb for the +// next transaction. func (sdb *stateDB) Finalize() { + defer sdb.mtx.Unlock() + sdb.DeleteAccounts(sdb.GetSuicides()) sdb.ctrl.Finalize() } @@ -115,9 +120,9 @@ func (sdb *stateDB) Finalize() { // Prepare // ============================================================================= -// Implementation taken directly from the `stateDB` in Go-Ethereum. +// Implementation taken directly from the vm.PolarisStateDB in Go-Ethereum. // -// Prepare implements `stateDB`. +// Prepare implements vm.PolarisStateDB. func (sdb *stateDB) Prepare(rules params.Rules, sender, coinbase common.Address, dest *common.Address, precompiles []common.Address, txAccesses coretypes.AccessList) { if rules.IsBerlin { @@ -148,7 +153,7 @@ func (sdb *stateDB) Prepare(rules params.Rules, sender, coinbase common.Address, // PreImage // ============================================================================= -// AddPreimage implements the the `StateDB`interface, but currently +// AddPreimage implements the the vm.PolarisStateDB interface, but currently // performs a no-op since the EnablePreimageRecording flag is disabled. func (sdb *stateDB) AddPreimage(hash common.Hash, preimage []byte) {} @@ -162,7 +167,7 @@ func (sdb *stateDB) Preimages() map[common.Hash][]byte { // Code Size // ============================================================================= -// GetCodeSize implements the `StateDB` interface by returning the size of the +// GetCodeSize implements the vm.PolarisStateDB interface by returning the size of the // code associated with the given account. func (sdb *stateDB) GetCodeSize(addr common.Address) int { return len(sdb.GetCode(addr)) diff --git a/eth/core/state/statedb_test.go b/eth/core/state/statedb_test.go index e3da366c3..16fb37d26 100644 --- a/eth/core/state/statedb_test.go +++ b/eth/core/state/statedb_test.go @@ -101,6 +101,7 @@ var _ = Describe("StateDB", func() { It("should delete suicides on finalize", func() { sdb.Snapshot() + sdb.Reset(common.Hash{}, 0) sdb.CreateAccount(bob) sdb.SetCode(bob, []byte{1, 2, 3}) diff --git a/eth/core/vm/mock/statedb.go b/eth/core/vm/mock/statedb.go index 17f475daa..e0cfcc3c5 100644 --- a/eth/core/vm/mock/statedb.go +++ b/eth/core/vm/mock/statedb.go @@ -23,6 +23,8 @@ package mock import ( "math/big" + "github.com/ethereum/go-ethereum/params" + "pkg.berachain.dev/polaris/eth/common" "pkg.berachain.dev/polaris/eth/core/types" ) @@ -59,6 +61,9 @@ func NewEmptyStateDB() *PolarisStateDBMock { EmptyFunc: func(address common.Address) bool { return true }, + ErrorFunc: func() error { + return nil + }, ExistFunc: func(address common.Address) bool { return false }, @@ -98,6 +103,15 @@ func NewEmptyStateDB() *PolarisStateDBMock { HasSuicidedFunc: func(address common.Address) bool { return false }, + PrepareFunc: func(rules params.Rules, sender common.Address, + coinbase common.Address, dest *common.Address, + precompiles []common.Address, txAccesses types.AccessList, + ) { + // no-op + }, + ResetFunc: func(common.Hash, int) { + // no-op + }, RevertToSnapshotFunc: func(n int) { }, diff --git a/eth/go.mod b/eth/go.mod index 6cc3726a7..dc263d9d8 100644 --- a/eth/go.mod +++ b/eth/go.mod @@ -3,7 +3,7 @@ module pkg.berachain.dev/polaris/eth go 1.20 // Required for stateful precompiles and supporting the Ethereum JSON-RPC API. -replace github.com/ethereum/go-ethereum => github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b +replace github.com/ethereum/go-ethereum => github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320 require ( github.com/BurntSushi/toml v1.2.1 @@ -11,8 +11,8 @@ require ( github.com/onsi/ginkgo/v2 v2.9.2 github.com/onsi/gomega v1.27.6 golang.org/x/text v0.9.0 - pkg.berachain.dev/polaris/contracts v0.0.0-20230428201622-5b0bcf386ae9 - pkg.berachain.dev/polaris/lib v0.0.0-20230428201622-5b0bcf386ae9 + pkg.berachain.dev/polaris/contracts v0.0.0-20230516224826-185dd722aa87 + pkg.berachain.dev/polaris/lib v0.0.0-20230516224826-185dd722aa87 ) require ( diff --git a/eth/go.sum b/eth/go.sum index 9215b3d71..240b5bd66 100644 --- a/eth/go.sum +++ b/eth/go.sum @@ -47,8 +47,8 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b h1:jGti3GQATWhZBb8REtC03+bYeIIk3RZpLofWpScABFc= -github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= +github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320 h1:s7dRDDkpxtfc8FFXUI5ccAoZfjHzRDXwtYAEz4W+BM4= +github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= @@ -808,9 +808,9 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -pkg.berachain.dev/polaris/contracts v0.0.0-20230428201622-5b0bcf386ae9 h1:ccsHyXcpu8hOa+4Aqmpvq2vPJKTkF6bL6b0oMp6jH3A= -pkg.berachain.dev/polaris/contracts v0.0.0-20230428201622-5b0bcf386ae9/go.mod h1:pM2moF7smjXhv6Zt3H0yYXlkvld8rKy7pd49LoEMQy0= -pkg.berachain.dev/polaris/lib v0.0.0-20230428201622-5b0bcf386ae9 h1:eD51GfcJIhRigyp/LbVq7UFWNtL0mhq8LlgvouLeTws= -pkg.berachain.dev/polaris/lib v0.0.0-20230428201622-5b0bcf386ae9/go.mod h1:FkkRflGw8X1Cr06uXHZH0zzP29N5rXCrR2VYsrJO2ao= +pkg.berachain.dev/polaris/contracts v0.0.0-20230516224826-185dd722aa87 h1:dRU/M2ObKFtix3pPUOzvXZZ/pF5N0xTFQmqTu7M8NjA= +pkg.berachain.dev/polaris/contracts v0.0.0-20230516224826-185dd722aa87/go.mod h1:pM2moF7smjXhv6Zt3H0yYXlkvld8rKy7pd49LoEMQy0= +pkg.berachain.dev/polaris/lib v0.0.0-20230516224826-185dd722aa87 h1:Op1jLJJsX1s5oPMtOlXbxI/VPU0Y8kpad7cEE1TZ6SU= +pkg.berachain.dev/polaris/lib v0.0.0-20230516224826-185dd722aa87/go.mod h1:cc/0mOK7KM8AQsRuui39VYKUd77/fiFQ/xqIa3sdMZQ= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/go.work.sum b/go.work.sum index c54acab8b..4a36c48ae 100644 --- a/go.work.sum +++ b/go.work.sum @@ -132,367 +132,9 @@ github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53 h1:sR+/8Yb4s github.com/CloudyKit/jet/v3 v3.0.0 h1:1PwO5w5VCtlUUl+KTOBsTGZlhjWkcybsGaAau52tOy8= github.com/CloudyKit/jet/v6 v6.2.0 h1:EpcZ6SR9n28BUGtNJSvlBqf90IpjeFr36Tizxhn/oME= github.com/DATA-DOG/go-sqlmock v1.3.3 h1:CWUqKXe0s8A2z6qCgkP4Kru7wC11YoAnoupUKFDnH08= -github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= -github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= -github.com/Joker/hpp v1.0.0 h1:65+iuJYdRXv/XyN62C1uEmmOx3432rNG/rKlX6V7Kkc= -github.com/Joker/jade v1.1.3 h1:Qbeh12Vq6BxURXT1qZBRHsDxeURB8ztcL6f3EXSGeHk= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= -github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 h1:ra2OtmuW0AE5csawV4YXMNGNQQXvLRps3z2Z59OPO+I= -github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06 h1:KkH3I3sJuOLP3TjA/dfr4NAY8bghDwnXiU7cTKxQqo0= -github.com/Shopify/sarama v1.19.0 h1:9oksLxC6uxVPHPVYUmq6xhr1BOF/hHobWH2UzO67z1s= -github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= -github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= -github.com/aclements/go-moremath v0.0.0-20210112150236-f10218a38794 h1:xlwdaKcTNVW4PtpQb8aKA4Pjy0CdJHEqvFbAnvR5m2g= -github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= -github.com/aead/siphash v1.0.1 h1:FwHfE/T45KPKYuuSAKyyvE+oPWcaQ+CUmFW0bPlM+kg= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw= -github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ= -github.com/alecthomas/kingpin/v2 v2.3.1 h1:ANLJcKmQm4nIaog7xdr/id6FM6zm5hHnfZrvtKPxqGg= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= -github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db h1:nxAtV4VajJDhKysp2kdcJZsq8Ss1xSA0vZTkVHHJd0E= -github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a h1:pv34s756C4pEXnjgPfGYgdhg/ZdajGhyOvzx8k+23nw= -github.com/aws/aws-lambda-go v1.13.3 h1:SuCy7H3NLyp+1Mrfp+m80jcbi9KYWAs9/BXwppwRDzY= -github.com/aws/aws-sdk-go-v2 v1.9.1 h1:ZbovGV/qo40nrOJ4q8G33AGICzaPI45FHQWJ9650pF4= -github.com/aws/aws-sdk-go-v2/config v1.1.1 h1:ZAoq32boMzcaTW9bcUacBswAmHTbvlvDJICgHFZuECo= -github.com/aws/aws-sdk-go-v2/credentials v1.1.1 h1:NbvWIM1Mx6sNPTxowHgS2ewXCRp+NGTzUYb/96FZJbY= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2 h1:EtEU7WRaWliitZh2nmuxEXrN0Cb8EgPUFGIoTMeqbzI= -github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1 h1:w/fPGB0t5rWwA43mux4e9ozFSH5zF1moQemlA131PWc= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2 h1:4AH9fFjUlVktQMznF+YN33aWNXaR4VgDXyP28qokJC0= -github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1 h1:cKr6St+CtC3/dl/rEBJvlk7A/IN5D5F02GNkGzfbtVU= -github.com/aws/aws-sdk-go-v2/service/sso v1.1.1 h1:37QubsarExl5ZuCBlnRP+7l1tNwZPBSTqpTBrPH98RU= -github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 h1:TJoIfnIFubCX0ACVeJ0w46HEH5MwjwYN4iFhuYIhfIY= -github.com/aws/smithy-go v1.8.0 h1:AEwwwXQZtUwP5Mz506FeXXrKBe0jA8gVM+1gEcSRooc= -github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= -github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible h1:Ppm0npCCsmuR9oQaBtRuZcmILVE74aXE+AmrJj8L2ns= -github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha5FFErxK+sr6sWxQovRMzwMhejo= -github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d h1:yJzD/yFppdVCf6ApMkVy8cUxV0XrxdP9rVf6D87/Mng= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw= -github.com/btcsuite/goleveldb v1.0.0 h1:Tvd0BfvqX9o823q1j2UZ/epQo09eJh6dTcRp79ilIN4= -github.com/btcsuite/snappy-go v1.0.0 h1:ZxaA6lo2EpxGddsA8JwWOcxlzRybb444sgmeJQMJGQE= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc= -github.com/btcsuite/winsvc v1.0.0 h1:J9B4L7e3oqhXOcm+2IuNApwzQec85lE+QaikUcCs+dk= -github.com/c-bata/go-prompt v0.2.2 h1:uyKRz6Z6DUyj49QVijyM339UJV9yhbr70gESwbNU3e0= -github.com/casbin/casbin/v2 v2.37.0 h1:/poEwPSovi4bTOcP752/CsTQiRz2xycyVKFG7GUhbDw= -github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= -github.com/cheggaaa/pb v1.0.27 h1:wIkZHkNfC7R6GI5w7l/PdAdzXzlrbcI3p8OAlnkTsnc= -github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible h1:C29Ae4G5GtYyYMm1aztcyj/J5ckgJm2zwdDajFbx1NY= -github.com/circonus-labs/circonusllhist v0.1.3 h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA= -github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec h1:EdRZT3IeKQmfCSrgo8SZ8V3MEnskuJP0wCYNpe+aiXo= -github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= -github.com/cloudflare/circl v1.1.0 h1:bZgT/A+cikZnKIwn7xL2OBj012Bmvho/o6RpRvv3GKY= -github.com/cloudflare/cloudflare-go v0.14.0 h1:gFqGlGl/5f9UGXAaKapCGUfaTCgRKKnzu2VvzMZlOFA= -github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= -github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b h1:ACGZRIr7HsgBKHsueQ1yM4WaVaXh21ynwqsF8M8tXhA= -github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2 h1:IKgmqgMQlVJIZj19CdocBeSfSaiCbEBZGKODaixqtHM= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= -github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 h1:sDMmm+q/3+BukdIpxwO365v/Rbspp2Nt5XntgQRXq8Q= -github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= -github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= -github.com/consensys/gnark-crypto v0.9.1-0.20230105202408-1a7a29904a7c h1:llSLg4o9EgH3SrXky+Q5BqEYqV76NGKo07K5Ps2pIKo= -github.com/containerd/containerd v1.6.8 h1:h4dOFDwzHmqFEP754PgfgTeVXFnLiRc6kiqC7tplDJs= -github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= -github.com/coreos/etcd v3.3.10+incompatible h1:jFneRYjIvLMLhDLCzuTuU4rSJUjRplcJQ7pD7MnhC04= -github.com/coreos/go-etcd v2.0.0+incompatible h1:bXhRBIXoTm9BYHS3gE0TtQuyNZyeEMux2sDi4oo5YOo= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7 h1:u9SHYsPQNyt5tgDm3YN7+9dYrpK96E5wFilTFWIDZOM= -github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf h1:CAKfRE2YtTUIjjh1bkBtyYFaUT/WmOqsJjgtihT0vMI= -github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a h1:2humuGPw3O5riJVFq/E2FRjF57UrO97W1qJcGVmK+6k= -github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= -github.com/crate-crypto/go-ipa v0.0.0-20220523130400-f11357ae11c7 h1:6IrxszG5G+O7zhtkWxq6+unVvnrm1fqV2Pe+T95DUzw= -github.com/creachadair/command v0.0.0-20220916173946-56a74cdd66b6 h1:uKuolOJonQOb/2+z/wFSJeVREP6fSoigr/X4Wlfhwwg= -github.com/cristalhq/acmd v0.8.1 h1:mtFp/cbeJNY5jokF9zPz5mRllGHropRrOkOVxeGS6FI= -github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c h1:/ovYnF02fwL0kvspmy9AuyKg1JhdTRUgPw4nUxd9oZM= -github.com/decred/dcrd/lru v1.0.0 h1:Kbsb1SFDsIlaupWPwsPp+dkxiBY1frcS07PCPgotKz8= -github.com/dgraph-io/badger v1.6.0 h1:DshxFxZWXUcO0xX476VJC07Xsr6ZCBVRHKZ93Oh7Evo= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8 h1:akOQj8IVgoeFfBTzGOEQakCYshWD6RNo1M5pivFXt70= -github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= -github.com/dop251/goja v0.0.0-20230122112309-96b1610dd4f7 h1:kgvzE5wLsLa7XKfV85VZl40QXaMCaeFtHpPwJ8fhotY= -github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 h1:iFaUwBSo5Svw6L7HYpRu/0lE3e0BaElwnNO1qkNQxBY= -github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780 h1:tFh1tRc4CA31yP6qDcu+Trax5wW5GuMxvkIba07qVLY= -github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= -github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= -github.com/eclipse/paho.mqtt.golang v1.2.0 h1:1F8mhG9+aO5/xpdtFkW4SxOJB67ukuDC3t2y2qayIX0= -github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o= -github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= -github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY= -github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= -github.com/etcd-io/bbolt v1.3.3 h1:gSJmxrs37LgTqR/oyJBWok6k6SvXEUerFTbltIhXkBM= -github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072 h1:DddqAaWDpywytcG8w/qoQ5sAN8X12d3Z3koB0C3Rxsc= -github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= -github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c h1:CndMRAH4JIwxbW8KYq6Q+cGWcGHz0FjGR3QqcInWcW0= -github.com/flosch/pongo2/v4 v4.0.2 h1:gv+5Pe3vaSVmiJvh/BZa82b7/00YUGm0PIyVVLop0Hw= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 h1:WXb3TSNmHp2vHoCroCIB1foO/yQ36swABL8aOVeDpgg= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db h1:gb2Z18BhTPJPpLQWj4T+rfKHYCHxRHCtRxhKKjRidVw= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8 h1:a9ENSRDFBUPkJ5lCgVZh26+ZbGyoVJG7yb5SSzF5H54= -github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 h1:IZqZOB2fydHte3kUgxrzK5E1fW7RQGeDwE8F/ZZnUYc= -github.com/gavv/httpexpect v2.0.0+incompatible h1:1X9kcRshkSKEjNJJxX9Y9mQ5BRfbxU5kORdjhlA1yX8= -github.com/gballet/go-verkle v0.0.0-20220902153445-097bd83b7732 h1:AB7YjNrzlVHsYz06zCULVV2zYCEft82P86dSmtwxKL0= -github.com/getkin/kin-openapi v0.61.0 h1:6awGqF5nG5zkVpMsAih1QH4VgzS8phTxECUWIFo7zko= -github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9 h1:r5GgOLGbza2wVHRzK7aAj6lWZjfbAwiu/RDCVOKjRyM= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= -github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd h1:r04MMPyLHj/QwZuMJ5+7tJcBr1AQjpiAK/rZWRrQT7o= -github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI= -github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= -github.com/go-git/go-billy/v5 v5.4.0 h1:Vaw7LaSTRJOUric7pe4vnzBSgyuf2KrLsu2Y4ZpQBDE= -github.com/go-git/go-git/v5 v5.5.2 h1:v8lgZa5k9ylUw+OR/roJHTxR4QItsNFI5nKtAXFuynw= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= -github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab h1:xveKWz2iaueeTaUgdetzel+U7exyigDYBryyVfV/rZk= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= -github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= -github.com/go-zookeeper/zk v1.0.2 h1:4mx0EYENAdX/B/rbunjlt5+4RTA/a9SMHBRuSKdGxPM= -github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= -github.com/gogo/status v1.1.0 h1:+eIkrewn5q6b30y+g/BJINVVdi2xH7je5MPJ3ZPK3JA= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= -github.com/golang/geo v0.0.0-20190916061304-5b978397cfec h1:lJwO/92dFXWeXOZdoGXgptLmNLwynMSHUmU6besqtiw= -github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38 h1:y0Wmhvml7cGnzPa9nocn/fMraMH/lMDdeG+rkx4VgYY= -github.com/google/flatbuffers v1.11.0 h1:O7CEyB8Cb3/DmtxODGtLHcEvpr81Jm5qLg/hsHnxA2A= -github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= -github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= -github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 h1:tlyzajkF3030q6M8SvmJSemC9DTHL/xaMa18b65+JM4= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= -github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= -github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= -github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:AQwinXlbQR2HvPjQZOmDhRqsv5mZf+Jb1RnSLxcqZcI= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= -github.com/guptarohit/asciigraph v0.5.5 h1:ccFnUF8xYIOUPPY3tmdvRyHqmn1MYI9iv1pLKX+/ZkQ= -github.com/hashicorp/consul/api v1.18.0 h1:R7PPNzTCeN6VuQNDwwhZWJvzCtGSrNpJqfb22h3yH9g= -github.com/hashicorp/consul/sdk v0.3.0 h1:UOxjlb4xVNF93jak1mzzoBatyFju9nrkxpVwIp/QqxQ= -github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= -github.com/hashicorp/go-retryablehttp v0.5.3 h1:QlWt0KvWT0lq8MFppF9tsJGF+ynG7ztc2KIPhzRGk7s= -github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= -github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= -github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= -github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= -github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= -github.com/hashicorp/mdns v1.0.0 h1:WhIgCr5a7AaVH6jPUwjtRuuE7/RDufnUvzIr48smyxs= -github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= -github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= -github.com/hudl/fargo v1.4.0 h1:ZDDILMbB37UlAVLlWcJ2Iz1XuahZZTDZfdCKeclfq2s= -github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91 h1:KyZDvZ/GGn+r+Y3DKZ7UOQ/TP4xV6HNkrwiVMB1GnNY= -github.com/ianlancetaylor/demangle v0.0.0-20220517205856-0058ec4f073c h1:rwmN+hgiyp8QyBqzdEX43lTjKAxaqCrYHaU5op5P9J8= -github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= -github.com/imkira/go-interpol v1.1.0 h1:KIiKr0VSG2CUW1hl1jpiyuzuJeKUUpC8iM1AIE7N1Vk= -github.com/influxdata/flux v0.65.1 h1:77BcVUCzvN5HMm8+j9PRBQ4iZcu98Dl4Y9rf+J5vhnc= -github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab h1:HqW4xhhynfjrtEiiSGcQUd6vrK23iMam1FO8rI7mwig= -github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385 h1:ED4e5Cc3z5vSN2Tz2GkOHN7vs4Sxe2yds6CXvDnvZFE= -github.com/influxdata/promql/v2 v2.12.0 h1:kXn3p0D7zPw16rOtfDR+wo6aaiH8tSMfhPwONTxrlEc= -github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6 h1:UzJnB7VRL4PSkUJHwsyzseGOmrO/r4yA+AuxGJxiZmA= -github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9 h1:MHTrDWmQpHq/hkq+7cw9oYAt2PqUw52TZazRA0N7PGE= -github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368 h1:+TUUmaFa4YD1Q+7bH9o5NCHQGPMqZCYJiNW6lIIS9z4= -github.com/informalsystems/tm-load-test v1.3.0 h1:FGjKy7vBw6mXNakt+wmNWKggQZRsKkEYpaFk/zR64VA= -github.com/iris-contrib/blackfriday v2.0.0+incompatible h1:o5sHQHHm0ToHUlAJSTjW9UWicjJSDDauOOQ2AHuIVp4= -github.com/iris-contrib/go.uuid v2.0.0+incompatible h1:XZubAYg61/JwnJNbZilGjf3b3pB80+OQg2qf6c8BfWE= -github.com/iris-contrib/jade v1.1.3 h1:p7J/50I0cjo0wq/VWVCDFd8taPJbuFC+bq23SniRFX0= -github.com/iris-contrib/pongo2 v0.0.1 h1:zGP7pW51oi5eQZMIlGA3I+FHY9/HOQWDB+572yin0to= -github.com/iris-contrib/schema v0.0.6 h1:CPSBLyx2e91H2yJzPuhGuifVRnZBBJ3pCOMbOvPZaTw= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e h1:UvSe12bq+Uj2hWd8aOlwPmoZ+CITRFrdit+sDGfAg8U= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= -github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f h1:BNuUg9k2EiJmlMwjoef3e8vZLHplbVw6DrjGFjLL+Yo= -github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= -github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= -github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= -github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= -github.com/jsternberg/zap-logfmt v1.0.0 h1:0Dz2s/eturmdUS34GM82JwNEdQ9hPoJgqptcEKcbpzY= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0= -github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef h1:2jNeR4YUziVtswNP9sEFAI913cVrzH85T+8Q6LpYbT0= -github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= -github.com/karalabe/usb v0.0.2 h1:M6QQBNxF+CQ8OFvxrT90BA0qBOXymndZnk5q235mFc4= -github.com/kataras/blocks v0.0.7 h1:cF3RDY/vxnSRezc7vLFlQFTYXG/yAr1o7WImJuZbzC4= -github.com/kataras/golog v0.1.8 h1:isP8th4PJH2SrbkciKnylaND9xoTtfxv++NB+DF0l9g= -github.com/kataras/iris/v12 v12.2.0 h1:WzDY5nGuW/LgVaFS5BtTkW3crdSKJ/FEgWnxPnIVVLI= -github.com/kataras/neffos v0.0.14 h1:pdJaTvUG3NQfeMbbVCI8JT2T5goPldyyfUB2PJfh1Bs= -github.com/kataras/pio v0.0.11 h1:kqreJ5KOEXGMwHAWHDwIl+mjfNCPhAwZPa8gK7MKlyw= -github.com/kataras/sitemap v0.0.6 h1:w71CRMMKYMJh6LR2wTgnk5hSgjVNB9KL60n5e2KHvLY= -github.com/kataras/tunnel v0.0.4 h1:sCAqWuJV7nPzGrlb0os3j49lk2JhILT0rID38NHNLpA= -github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23 h1:FOOIBWrEkLgmlgGfMuZT83xIwfPDxEI2OHu6xUmJMFE= -github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6 h1:KAZ1BW2TCmT6PRihDPpocIy1QTtsAsrx6TneU/4+CMg= -github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= -github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= -github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= -github.com/labstack/echo/v4 v4.10.0 h1:5CiyngihEO4HXsz3vVsJn7f8xAlWwRr3aY6Ih280ZKA= -github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743 h1:143Bb8f8DuGWck/xpNUOckBVYfFbBTnLevfRZ1aVVqo= -github.com/lightstep/lightstep-tracer-go v0.18.1 h1:vi1F1IQ8N7hNWytK9DpJsUfQhGuNSc19z330K6vl4zk= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lyft/protoc-gen-validate v0.0.13 h1:KNt/RhmQTOLr7Aj8PsJ7mTronaFyx80mRTT9qF261dA= -github.com/mailgun/raymond/v2 v2.0.48 h1:5dmlB680ZkFG2RN/0lvTAghrSxIESeu9/2aeDqACtjw= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mattn/go-sqlite3 v1.11.0 h1:LDdKkqtYlom37fkvqs8rMPFKAMe8+SgjbwZ6ex1/A/Q= -github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104 h1:d8RFOZ2IiFtFWBcKEHAFYJcPTf0wY5q0exFNJZVWa1U= -github.com/mattn/goveralls v0.0.2 h1:7eJB6EqsPhRVxvwEXGnqdO2sJI0PTsrWoTMXEk9/OQc= -github.com/mediocregopher/radix/v3 v3.4.2 h1:galbPBjIwmyREgwGCfQEN4X8lxbJnKBYurgz+VfcStA= -github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517 h1:zpIH83+oKzcpryru8ceC6BxnoG8TBrhgAvRg8obzup0= -github.com/mholt/archiver/v3 v3.5.1 h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Clwo= -github.com/microcosm-cc/bluemonday v1.0.23 h1:SMZe2IGa0NuHvnVNAZ+6B38gsTbi5e4sViiWJyDDqFY= -github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg= -github.com/mitchellh/cli v1.0.0 h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y= -github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= -github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= -github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= -github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= -github.com/moby/buildkit v0.10.4 h1:FvC+buO8isGpUFZ1abdSLdGHZVqg9sqI4BbFL8tlzP4= -github.com/moul/http2curl v1.0.0 h1:dRMWoAtb+ePxMlLkrCbAqh4TlPHXvoGUSQ323/9Zahs= -github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5 h1:0KqC6/sLy7fDpBdybhVkkv4Yz+PmB7c9Dz9z3dLW804= -github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae h1:VeRdUYdCw49yizlSbMEn2SZ+gT+3IUKx8BqxyQdz+BY= -github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76 h1:0xuRacu/Zr+jX+KyLLPPktbwXqyOvnOPUQmMLzX1jxU= -github.com/naoina/go-stringutil v0.1.0 h1:rCUeRUHjBjGTSHl0VC00jUPLz8/F9dDzYI70Hzifhks= -github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416 h1:shk/vn9oCoOTmwcouEdwIeOtOGA/ELRUw/GwvxwfT+0= -github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI= -github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI= -github.com/nats-io/nats-server/v2 v2.5.0 h1:wsnVaaXH9VRSg+A2MVg5Q727/CqxnmPLGFQ3YZYKTQg= -github.com/nats-io/nats.go v1.12.1 h1:+0ndxwUPz3CmQ2vjbXdkC1fo3FdiOQDim4gl3Mge8Qo= -github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= -github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ= -github.com/oklog/oklog v0.3.2 h1:wVfs8F+in6nTBMkA7CbRw+zZMIB7nNM825cM1wuzoTk= -github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU= -github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU= -github.com/openzipkin/zipkin-go v0.2.5 h1:UwtQQx2pyPIgWYHRg+epgdx1/HnBQTgN3/oIYEJTQzU= -github.com/otiai10/curr v1.0.0 h1:TJIWdbX0B+kpNagQrjgq8bCMrbhiuX73M2XwgtDMoOI= -github.com/otiai10/mint v1.3.1 h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc= -github.com/pact-foundation/pact-go v1.0.4 h1:OYkFijGHoZAYbOIb1LWXrwKQbMMRUv1oQ89blD2Mh2Q= -github.com/paulbellamy/ratecounter v0.2.0 h1:2L/RhJq+HA8gBQImDXtLPrDXK5qAj6ozWVK/zFXVJGs= -github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= -github.com/performancecopilot/speed v3.0.0+incompatible h1:2WnRzIquHa5QxaJKShDkLM+sc0JPuwhXzK8OYOyt3Vg= -github.com/performancecopilot/speed/v4 v4.0.0 h1:VxEDCmdkfbQYDlcr/GC9YoN9PQ6p8ulk9xVsepYy9ZY= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= -github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= -github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= -github.com/pierrec/lz4/v4 v4.1.2 h1:qvY3YFXRQE/XB8MlLzJH7mSzBs74eA2gg52YTk6jUPM= -github.com/pjbgf/sha1cd v0.2.3 h1:uKQP/7QOzNtKYH7UTohZLcjF5/55EnTw0jO/Ru4jZwI= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= -github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs= -github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5 h1:tFwafIEMf0B7NlcxV/zJ6leBIa81D3hgGSgsE5hCkOQ= -github.com/pointlander/compress v1.1.1-0.20190518213731-ff44bd196cc3 h1:hUmXhbljNFtrH5hzV9kiRoddZ5nfPTq3K0Sb2hYYiqE= -github.com/pointlander/jetset v1.0.1-0.20190518214125-eee7eff80bd4 h1:RHHRCZeaNyBXdYPMjZNH8/XHDBH38TZzw8izrW7dmBE= -github.com/pointlander/peg v1.0.1 h1:mgA/GQE8TeS9MdkU6Xn6iEzBmQUQCNuWD7rHCK6Mjs0= -github.com/posener/complete v1.1.1 h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= -github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71 h1:CNooiryw5aisadVfzneSZPswRWvnVW8hF1bS/vo8ReI= -github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= -github.com/remyoudompheng/go-dbus v0.0.0-20121104212943-b7232d34b1d5 h1:CvqZS4QYHBRvx7AeFdimd16HCbLlYsvQMcKDACpJW/c= -github.com/remyoudompheng/go-liblzma v0.0.0-20190506200333-81bf2d431b96 h1:J8J/cgLDRuqXJnwIrRDBvtl+LLsdg7De74znW/BRRq4= -github.com/remyoudompheng/go-misc v0.0.0-20190427085024-2d6ac652a50e h1:eTWZyPUnHcuGRDiryS/l2I7FfKjbU3IBx3IjqHPxuKU= -github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52 h1:RnWNS9Hlm8BIkjr6wx8li5abe0fr73jljLycdfemTp0= -github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= -github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= -github.com/ryanuber/columnize v2.1.0+incompatible h1:j1Wcmh8OrK4Q7GXY+V7SVSY8nUWQxHW5TkBe7YUl+2s= -github.com/sagikazarmark/crypt v0.9.0 h1:fipzMFW34hFUEc4D7fsLQFtE7yElkpgyS2zruedRdZk= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU= -github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= -github.com/schollz/closestmatch v2.1.0+incompatible h1:Uel2GXEpJqOWBrlyI+oY9LTiyyjYS17cCYRqP13/SHk= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= -github.com/segmentio/kafka-go v0.2.0 h1:HtCSf6B4gN/87yc5qTl7WsxPKQIIGXLPPM1bMCPOsoY= -github.com/shirou/gopsutil/v3 v3.23.1 h1:a9KKO+kGLKEvcPIs4W62v0nu3sciVDOOOPUD0Hz7z/4= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e h1:MZM7FHLqUHYI0Y/mQAt3d2aYa0SiNms/hFqC9qJYolM= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 h1:llrF3Fs4018ePo4+G/HV/uQUqEI1HMDjCeOf2V6puPc= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/skeema/knownhosts v1.1.0 h1:Wvr9V0MxhjRbl3f9nMnKnFfiWTJmtECJ9Njkea3ysW0= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= -github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa h1:YJfZp12Z3AFhSBeXOlv4BO55RMwPn2NoQeDsrdWnBtY= -github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= -github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ= -github.com/streadway/amqp v1.0.0 h1:kuuDrUJFZL1QYL9hUNuCxNObNzB0bV/ZG5jV3RWAQgo= -github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e h1:mOtuXaRAbVZsxAHVdPR3IjfmN8T1h2iczJLynhLybf8= -github.com/supranational/blst v0.3.8-0.20220526154634-513d2456b344 h1:m+8fKfQwCAy1QjzINvKe/pYtLjo2dl59x2w9YSEJxuY= -github.com/tdewolff/minify/v2 v2.12.4 h1:kejsHQMM17n6/gwdw53qsi6lg0TGddZADVyQOz1KMdE= -github.com/tdewolff/parse/v2 v2.6.4 h1:KCkDvNUMof10e3QExio9OPZJT8SbdKojLBumw8YZycQ= -github.com/tinylib/msgp v1.0.2 h1:DfdQrzQa7Yh2es9SuLkixqxuXS2SxsdYn0KbdrOGWD8= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8 h1:ndzgwNDnKIqyCvHTXaCqh9KlOWKvBry6nuXMJmonVsE= -github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8= github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= -github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/fasthttp v1.40.0 h1:CRq/00MfruPGFLTQKY8b+8SfdK60TxNztjRMnH0t1Yc= -github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= -github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a h1:0R4NLDRDZX6JcmhJgXi5E4b8Wg84ihbmUKp/GvSPEzc= -github.com/vektra/mockery/v2 v2.14.0 h1:KZ1p5Hrn8tiY+LErRMr14HHle6khxo+JKOXLBW/yfqs= -github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= -github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= -github.com/willf/bitset v1.1.3 h1:ekJIKh6+YbUIVt9DfNbkR5d6aFcFTLDRyJNAACURBg8= -github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= -github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= -github.com/xhit/go-str2duration v1.2.0 h1:BcV5u025cITWxEQKGWr1URRzrcXtu7uk8+luz3Yuhwc= -github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= -github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6 h1:YdYsPAZ2pC6Tow/nPZOPQ96O3hm/ToAkGsPLzedXERk= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= -github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 h1:6fRhSjgLCkTD3JnJxvaJ4Sj+TYblw757bqYgZaOq5ZY= -github.com/yosssi/ace v0.0.5 h1:tUkIP/BLdKqrlrPwcmH0shwEEhTRHoGnc1wFIWmaBUA= -github.com/yudai/gojsondiff v1.0.0 h1:27cbfqXLVEJ1o8I6v3y9lg8Ydm53EKqHXAOMxEGlCOA= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 h1:BHyfKlQyqbsFN5p3IfnEUduWvb9is428/nNb5L3U01M= -github.com/yudai/pp v2.0.1+incompatible h1:Q4//iY4pNF6yPLZIigmvcl7k/bPgrcTPIFIcmawg5bI= -github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0fZcnECiDrKJsfxka0= -go.etcd.io/etcd/api/v3 v3.5.6 h1:Cy2qx3npLcYqTKqGJzMypnMv2tiRyifZJ17BlWIWA7A= -go.etcd.io/etcd/client/pkg/v3 v3.5.6 h1:TXQWYceBKqLp4sa87rcPs11SXxUA/mHwH975v+BDvLU= -go.etcd.io/etcd/client/v2 v2.305.6 h1:fIDR0p4KMjw01MJMfUIDWdQbjo06PD6CeYM5z4EHLi0= -go.etcd.io/etcd/client/v3 v3.5.6 h1:coLs69PWCXE9G4FKquzNaSHrRyMCAXwF+IX1tAPVO8E= -go.etcd.io/gofail v0.1.0 h1:XItAMIhOojXFQMgrxjnd2EIIHun/d5qL0Pf7FzVTkFg= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.3 h1:syAz40OyelLZo42+3U68Phisvrx4qh+4wpdZw7eUUdY= -go.opentelemetry.io/proto/otlp v0.7.0 h1:rwOQPCuKAKmwGKq2aVNnYIibI6wnV7EvzgfTCzcdGg8= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= -golang.org/x/perf v0.0.0-20230113213139-801c7ef9e5c5 h1:ObuXPmIgI4ZMyQLIz48cJYgSyWdjUXc2SZAdyJMwEAU= -gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b h1:Qh4dB5D/WpoUUp3lSod7qgoyEHbDGPUWjIbnqdqqe1k= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= -gopkg.in/cheggaaa/pb.v1 v1.0.27 h1:kJdccidYzt3CaHD1crCFTS1hxyhSi059NhOFUf03YFo= -gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= -gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs= -gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= -gopkg.in/go-playground/validator.v8 v8.18.2 h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2GVOI3xgiMrQ= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY+ILlfndk4bRioVHaU= -gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= -gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= -rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= -rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= -rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= -rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM= diff --git a/magefiles/cosmos.go b/magefiles/cosmos.go index 21e40f6fb..dd586bdac 100644 --- a/magefiles/cosmos.go +++ b/magefiles/cosmos.go @@ -42,15 +42,13 @@ var ( dockerBuild = RunCmdV("docker", "build", "--rm=false") dockerBuildX = RunCmdV("docker", "buildx", "build", "--rm=false") + dockerRun = RunCmdV("docker", "run") // Variables. - baseDockerPath = "./cosmos/runtime/localnode/" - beradDockerPath = baseDockerPath + "Dockerfile" - imageName = "polaris-cosmos" - // testImageVersion = "e2e-test-dev". + baseDockerPath = "./cosmos/docker/" + execDockerPath = baseDockerPath + "base.Dockerfile" goVersion = "1.20.4" - golangAlpine = "golang:1.20-alpine3.17" - precompileContractsDir = "./cosmos/precompile/contracts/solidity" + precompileContractsDir = "./contracts" ) // Compile-time assertion that we implement the interface correctly. @@ -70,7 +68,7 @@ func (Cosmos) directory() string { // Starts a local development net and builds it if necessary. func Start() error { - return sh.RunV("./cosmos/runtime/localnode/init.sh") + return sh.RunV("./cosmos/init.sh") } // Builds the Cosmos SDK chain. @@ -100,12 +98,22 @@ func (c Cosmos) BuildRelease() error { // =========================================================================== // Builds a release version of the Cosmos SDK chain. -func (c Cosmos) BuildDocker() error { +func (c Cosmos) Docker(node string) error { LogGreen("Build a release docker image for the Cosmos SDK chain...") - return c.dockerBuildBeradWith(goVersion, golangAlpine, version) + var path string + if node == "base" { + path = execDockerPath + } else { + path = baseDockerPath + node + "/Dockerfile" + } + return c.dockerBuild("polard-"+node, path, goVersion, version) +} + +func (c Cosmos) RunDockerLocal() error { + return dockerRun("-p", "8545:8545", "polard-local:v0.0.0") } -func (c Cosmos) BuildDockerX() error { +func (c Cosmos) DockerX() error { LogGreen("Build a release docker image for the Cosmos SDK chain...") return c.dockerBuildBeradWithX(goVersion) } @@ -114,29 +122,26 @@ func (c Cosmos) dockerBuildBeradWithX(goVersion string) error { return dockerBuildFn(true)( "--build-arg", "GO_VERSION="+goVersion, "--platform", "linux/amd64", // TODO: do not hard code, have ability to pass as arg - "--build-arg", "PRECOMPILE_CONTRACTS_DIR="+precompileContractsDir, + "--build-arg", "FOUNDRY_DIR="+precompileContractsDir, "--build-arg", "GOOS=linux", "--build-arg", "GOARCH=amd64", - "-f", beradDockerPath, + "-f", execDockerPath, "-t", "polaris:devnet-0.1", //TODO: do not hardcode, have ability to pass as arg ".", ) } // Builds a release version of the Cosmos SDK chain. -func (c Cosmos) BuildDockerDebug() error { +func (c Cosmos) DockerDebug() error { LogGreen("Build a debug docker image for the Cosmos SDK chain...") - return c.dockerBuildBeradWith(goVersion, golangAlpine, version) + return c.dockerBuild("debug", execDockerPath, goVersion, version) } // Build a docker image for berad with the supplied arguments. -func (c Cosmos) dockerBuildBeradWith(goVersion, runnerImage, imageVersion string) error { +func (c Cosmos) dockerBuild(name, dockerFilePath, goVersion, imageVersion string) error { return dockerBuildFn(false)( - "--build-arg", "GO_VERSION="+goVersion, - "--build-arg", "RUNNER_IMAGE="+runnerImage, - "--build-arg", "PRECOMPILE_CONTRACTS_DIR="+precompileContractsDir, - "-f", beradDockerPath, - "-t", imageName+":"+imageVersion, + "-f", dockerFilePath, + "-t", name+":"+imageVersion, //TODO: do not hardcode, have ability to pass as arg ".", ) } diff --git a/magefiles/tags.go b/magefiles/tags.go index 9c912a942..b75085c56 100644 --- a/magefiles/tags.go +++ b/magefiles/tags.go @@ -33,7 +33,7 @@ import ( var ( sdkRepo = "github.com/cosmos/cosmos-sdk" - version = "0.0.0" + version = "v0.0.0" commit, _ = sh.Output("git", "log", "-1", "--format='%H'") defaultDB = "pebbledb" ledgerEnabled = true diff --git a/playground/go.mod b/playground/go.mod index 69965a03c..6c8f9ec62 100644 --- a/playground/go.mod +++ b/playground/go.mod @@ -3,7 +3,7 @@ module pkg.berachain.dev/polaris/playground go 1.20 // Required for stateful precompiles and supporting the Ethereum JSON-RPC API. -replace github.com/ethereum/go-ethereum => github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b +replace github.com/ethereum/go-ethereum => github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320 require ( github.com/rs/zerolog v1.29.1 diff --git a/playground/go.sum b/playground/go.sum index 05950095d..36572da8e 100644 --- a/playground/go.sum +++ b/playground/go.sum @@ -16,8 +16,8 @@ github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5 github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b h1:jGti3GQATWhZBb8REtC03+bYeIIk3RZpLofWpScABFc= -github.com/berachain/polaris-geth v0.0.0-20230508205427-d337874a7c1b/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= +github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320 h1:s7dRDDkpxtfc8FFXUI5ccAoZfjHzRDXwtYAEz4W+BM4= +github.com/berachain/polaris-geth v0.0.0-20230516070302-88564f8af320/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=