build(deps): bump github.com/ethereum/go-ethereum from 1.10.9 to 1.10.11 (#676)

* build(deps): bump github.com/ethereum/go-ethereum from 1.10.9 to 1.10.10

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.10.9 to 1.10.10.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.10.9...v1.10.10)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump github.com/ethereum/go-ethereum from 1.10.9 to 1.10.10

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.10.9 to 1.10.10.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.10.9...v1.10.10)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump github.com/ethereum/go-ethereum from 1.10.9 to 1.10.10

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.10.9 to 1.10.10.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.10.9...v1.10.10)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix

* rpc: RLP apis

* tx fee cap fix

* fix config

* fix test

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
This commit is contained in:
dependabot[bot] 2021-10-25 15:01:04 +00:00 committed by GitHub
parent 0cab27d529
commit 23a3362475
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 416 additions and 1963 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -176,7 +176,6 @@ instead of *big.Int.
| `istanbul_block` | [string](#string) | | Istanbul switch block (nil no fork, 0 = already on istanbul) | | `istanbul_block` | [string](#string) | | Istanbul switch block (nil no fork, 0 = already on istanbul) |
| `muir_glacier_block` | [string](#string) | | Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated) | | `muir_glacier_block` | [string](#string) | | Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated) |
| `berlin_block` | [string](#string) | | Berlin switch block (nil = no fork, 0 = already on berlin) | | `berlin_block` | [string](#string) | | Berlin switch block (nil = no fork, 0 = already on berlin) |
| `catalyst_block` | [string](#string) | | Catalyst switch block (nil = no fork, 0 = already on catalyst) |
| `london_block` | [string](#string) | | London switch block (nil = no fork, 0 = already on london) | | `london_block` | [string](#string) | | London switch block (nil = no fork, 0 = already on london) |
@ -350,7 +349,7 @@ GenesisState defines the evm module's genesis state.
| Field | Type | Label | Description | | Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- | | ----- | ---- | ----- | ----------- |
| `accounts` | [GenesisAccount](#ethermint.evm.v1.GenesisAccount) | repeated | accounts is an array containing the ethereum genesis accounts. | | `accounts` | [GenesisAccount](#ethermint.evm.v1.GenesisAccount) | repeated | accounts is an array containing the ethereum genesis accounts. |
| `params` | [Params](#ethermint.evm.v1.Params) | | params defines all the paramaters of the module. | | `params` | [Params](#ethermint.evm.v1.Params) | | params defines all the parameters of the module. |

View File

@ -7,7 +7,7 @@ import (
"github.com/cosmos/cosmos-sdk/simapp/params" "github.com/cosmos/cosmos-sdk/simapp/params"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module" "github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/x/auth/tx" authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
ethtypes "github.com/ethereum/go-ethereum/core/types" ethtypes "github.com/ethereum/go-ethereum/core/types"
@ -45,7 +45,7 @@ type txConfig struct {
func NewTxConfig(marshaler amino.ProtoCodecMarshaler) client.TxConfig { func NewTxConfig(marshaler amino.ProtoCodecMarshaler) client.TxConfig {
return &txConfig{ return &txConfig{
marshaler, marshaler,
tx.NewTxConfig(marshaler, tx.DefaultSignModes), authtx.NewTxConfig(marshaler, authtx.DefaultSignModes),
} }
} }

12
go.mod
View File

@ -8,7 +8,7 @@ require (
github.com/cosmos/cosmos-sdk v0.44.3 github.com/cosmos/cosmos-sdk v0.44.3
github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/go-bip39 v1.0.0
github.com/cosmos/ibc-go/v2 v2.0.0-rc0 github.com/cosmos/ibc-go/v2 v2.0.0-rc0
github.com/ethereum/go-ethereum v1.10.9 github.com/ethereum/go-ethereum v1.10.11
github.com/gogo/protobuf v1.3.3 github.com/gogo/protobuf v1.3.3
github.com/golang/protobuf v1.5.2 github.com/golang/protobuf v1.5.2
github.com/gorilla/mux v1.8.0 github.com/gorilla/mux v1.8.0
@ -35,12 +35,13 @@ require (
github.com/tyler-smith/go-bip39 v1.1.0 github.com/tyler-smith/go-bip39 v1.1.0
go.etcd.io/bbolt v1.3.6 // indirect go.etcd.io/bbolt v1.3.6 // indirect
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect
google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4 google.golang.org/genproto v0.0.0-20211021150943-2b146023228c
google.golang.org/grpc v1.41.0 google.golang.org/grpc v1.41.0
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
) )
require github.com/davecgh/go-spew v1.1.1
require ( require (
filippo.io/edwards25519 v1.0.0-beta.2 // indirect filippo.io/edwards25519 v1.0.0-beta.2 // indirect
github.com/99designs/keyring v1.1.6 // indirect github.com/99designs/keyring v1.1.6 // indirect
@ -60,7 +61,6 @@ require (
github.com/cosmos/ledger-cosmos-go v0.11.1 // indirect github.com/cosmos/ledger-cosmos-go v0.11.1 // indirect
github.com/cosmos/ledger-go v0.9.2 // indirect github.com/cosmos/ledger-go v0.9.2 // indirect
github.com/danieljoos/wincred v1.0.2 // indirect github.com/danieljoos/wincred v1.0.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea // indirect github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea // indirect
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/dgraph-io/badger/v2 v2.2007.2 // indirect github.com/dgraph-io/badger/v2 v2.2007.2 // indirect
@ -134,9 +134,9 @@ require (
github.com/zondax/hid v0.9.0 // indirect github.com/zondax/hid v0.9.0 // indirect
golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f // indirect golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f // indirect
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
golang.org/x/sys v0.0.0-20210903071746-97244b99971b // indirect golang.org/x/sys v0.0.0-20211025112917-711f33c9992c // indirect
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect
golang.org/x/text v0.3.6 // indirect golang.org/x/text v0.3.7 // indirect
google.golang.org/protobuf v1.27.1 // indirect google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/ini.v1 v1.63.2 // indirect gopkg.in/ini.v1 v1.63.2 // indirect
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect

19
go.sum
View File

@ -295,12 +295,15 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WA
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA= github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA=
github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk=
github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y=
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
@ -322,8 +325,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/esimonov/ifshort v1.0.2/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE= github.com/esimonov/ifshort v1.0.2/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE=
github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM= github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM=
github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg=
github.com/ethereum/go-ethereum v1.10.9 h1:uMSWt0qDhaqqCk0PWqfDFOMUExmk4Tnbma6c6oXW+Pk= github.com/ethereum/go-ethereum v1.10.11 h1:KKIcwpmur9iTaVbR2dxlHu+peHVhU+/KX//NWvT1n9U=
github.com/ethereum/go-ethereum v1.10.9/go.mod h1:CaTMQrv51WaAlD2eULQ3f03KiahDRO28fleQcKjWrrg= github.com/ethereum/go-ethereum v1.10.11/go.mod h1:W3yfrFyL9C1pHcwY5hmRHVDaorTiQxhYBkKyu5mEDHw=
github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY=
github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 h1:0JZ+dUmQeA8IIVUMzysrX4/AKuQwWhV2dYQuPZdvdSQ= github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 h1:0JZ+dUmQeA8IIVUMzysrX4/AKuQwWhV2dYQuPZdvdSQ=
github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64=
@ -396,6 +399,7 @@ github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1
github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg=
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= 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-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
@ -708,6 +712,7 @@ github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E
github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= 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/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU=
github.com/karalabe/usb v0.0.0-20211005121534-4c5740d64559/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU=
github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM=
github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
@ -1510,8 +1515,9 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210903071746-97244b99971b h1:3Dq0eVHn0uaQJmPO+/aYPI/fRMqdrVDbu7MQcku54gg=
golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211025112917-711f33c9992c h1:i4MLwL3EbCgobekQtkVW94UBSPLMadfEGtKq+CAFsEU=
golang.org/x/sys v0.0.0-20211025112917-711f33c9992c/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-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@ -1522,8 +1528,9 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@ -1746,8 +1753,8 @@ google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKr
google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4 h1:YXPV/eKW0ZWRdB5tyI6aPoaa2Wxb4OSlFrTREMdwn64= google.golang.org/genproto v0.0.0-20211021150943-2b146023228c h1:FqrtZMB5Wr+/RecOM3uPJNPfWR8Upb5hAPnt7PU6i4k=
google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211021150943-2b146023228c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=

View File

@ -99,14 +99,9 @@ message ChainConfig {
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"berlin_block\"" (gogoproto.moretags) = "yaml:\"berlin_block\""
]; ];
// DEPRECATED: EWASM and YOLOV3 block have been deprecated // DEPRECATED: EWASM, YOLOV3 and Catalyst block have been deprecated
reserved 14, 15; reserved 14, 15, 16;
reserved "yolo_v3_block", "ewasm_block"; reserved "yolo_v3_block", "ewasm_block", "catalyst_block";
// Catalyst switch block (nil = no fork, 0 = already on catalyst)
string catalyst_block = 16 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.moretags) = "yaml:\"catalyst_block\""
];
// London switch block (nil = no fork, 0 = already on london) // London switch block (nil = no fork, 0 = already on london)
string london_block = 17 [ string london_block = 17 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",

View File

@ -10,7 +10,7 @@ option go_package = "github.com/tharsis/ethermint/x/evm/types";
message GenesisState { message GenesisState {
// accounts is an array containing the ethereum genesis accounts. // accounts is an array containing the ethereum genesis accounts.
repeated GenesisAccount accounts = 1 [ (gogoproto.nullable) = false ]; repeated GenesisAccount accounts = 1 [ (gogoproto.nullable) = false ];
// params defines all the paramaters of the module. // params defines all the parameters of the module.
Params params = 2 [ (gogoproto.nullable) = false ]; Params params = 2 [ (gogoproto.nullable) = false ];
} }

View File

@ -7,6 +7,7 @@ import (
"fmt" "fmt"
"math/big" "math/big"
"strconv" "strconv"
"time"
"github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/flags"
codectypes "github.com/cosmos/cosmos-sdk/codec/types" codectypes "github.com/cosmos/cosmos-sdk/codec/types"
@ -43,7 +44,8 @@ import (
type Backend interface { type Backend interface {
// General Ethereum API // General Ethereum API
RPCGasCap() uint64 // global gas cap for eth_call over rpc: DoS protection RPCGasCap() uint64 // global gas cap for eth_call over rpc: DoS protection
RPCTxFeeCap() float64 // RPCTxFeeCap is the global transaction fee(price * gaslimit) cap for, // send-transction variants. The unit is ether. RPCEVMTimeout() time.Duration // global timeout for eth_call over rpc: DoS protection
RPCTxFeeCap() float64 // RPCTxFeeCap is the global transaction fee(price * gaslimit) cap for send-transaction variants. The unit is ether.
RPCMinGasPrice() int64 RPCMinGasPrice() int64
SuggestGasTipCap() (*big.Int, error) SuggestGasTipCap() (*big.Int, error)
@ -53,6 +55,8 @@ type Backend interface {
GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpctypes.ResultBlock, error) GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpctypes.ResultBlock, error)
GetBlockByNumber(blockNum types.BlockNumber, fullTx bool) (map[string]interface{}, error) GetBlockByNumber(blockNum types.BlockNumber, fullTx bool) (map[string]interface{}, error)
GetBlockByHash(hash common.Hash, fullTx bool) (map[string]interface{}, error) GetBlockByHash(hash common.Hash, fullTx bool) (map[string]interface{}, error)
BlockByNumber(blockNum types.BlockNumber) (*ethtypes.Block, error)
BlockByHash(blockHash common.Hash) (*ethtypes.Block, error)
CurrentHeader() *ethtypes.Header CurrentHeader() *ethtypes.Header
HeaderByNumber(blockNum types.BlockNumber) (*ethtypes.Header, error) HeaderByNumber(blockNum types.BlockNumber) (*ethtypes.Header, error)
HeaderByHash(blockHash common.Hash) (*ethtypes.Header, error) HeaderByHash(blockHash common.Hash) (*ethtypes.Header, error)
@ -162,7 +166,7 @@ func (e *EVMBackend) GetBlockByHash(hash common.Hash, fullTx bool) (map[string]i
return nil, err return nil, err
} }
if resBlock.Block == nil { if resBlock == nil || resBlock.Block == nil {
e.logger.Debug("BlockByHash block not found", "hash", hash.Hex()) e.logger.Debug("BlockByHash block not found", "hash", hash.Hex())
return nil, nil return nil, nil
} }
@ -170,6 +174,97 @@ func (e *EVMBackend) GetBlockByHash(hash common.Hash, fullTx bool) (map[string]i
return e.EthBlockFromTendermint(resBlock.Block, fullTx) return e.EthBlockFromTendermint(resBlock.Block, fullTx)
} }
// BlockByNumber returns the block identified by number.
func (e *EVMBackend) BlockByNumber(blockNum types.BlockNumber) (*ethtypes.Block, error) {
height := blockNum.Int64()
switch blockNum {
case types.EthLatestBlockNumber:
currentBlockNumber, _ := e.BlockNumber()
if currentBlockNumber > 0 {
height = int64(currentBlockNumber)
}
case types.EthPendingBlockNumber:
currentBlockNumber, _ := e.BlockNumber()
if currentBlockNumber > 0 {
height = int64(currentBlockNumber)
}
case types.EthEarliestBlockNumber:
height = 1
default:
if blockNum < 0 {
return nil, errors.Errorf("incorrect block height: %d", height)
}
}
resBlock, err := e.clientCtx.Client.Block(e.ctx, &height)
if err != nil {
e.logger.Debug("HeaderByNumber failed", "height", height)
return nil, err
}
if resBlock == nil || resBlock.Block == nil {
return nil, errors.Errorf("block not found for height %d", height)
}
return e.EthBlockFromTm(resBlock.Block)
}
// BlockByHash returns the block identified by hash.
func (e *EVMBackend) BlockByHash(hash common.Hash) (*ethtypes.Block, error) {
resBlock, err := e.clientCtx.Client.BlockByHash(e.ctx, hash.Bytes())
if err != nil {
e.logger.Debug("HeaderByHash failed", "hash", hash.Hex())
return nil, err
}
if resBlock == nil || resBlock.Block == nil {
return nil, errors.Errorf("block not found for hash %s", hash)
}
return e.EthBlockFromTm(resBlock.Block)
}
func (e *EVMBackend) EthBlockFromTm(block *tmtypes.Block) (*ethtypes.Block, error) {
height := block.Height
bloom, err := e.BlockBloom(&height)
if err != nil {
e.logger.Debug("HeaderByNumber BlockBloom failed", "height", height)
}
baseFee, err := e.BaseFee(height)
if err != nil {
e.logger.Debug("HeaderByNumber BaseFee failed", "height", height, "error", err.Error())
return nil, err
}
ethHeader := types.EthHeaderFromTendermint(block.Header, baseFee)
ethHeader.Bloom = bloom
var txs []*ethtypes.Transaction
for _, txBz := range block.Txs {
tx, err := e.clientCtx.TxConfig.TxDecoder()(txBz)
if err != nil {
e.logger.Debug("failed to decode transaction in block", "height", height, "error", err.Error())
continue
}
for _, msg := range tx.GetMsgs() {
ethMsg, ok := msg.(*evmtypes.MsgEthereumTx)
if !ok {
continue
}
tx := ethMsg.AsTransaction()
txs = append(txs, tx)
}
}
// TODO: add tx receipts
ethBlock := ethtypes.NewBlock(ethHeader, txs, nil, nil, nil)
return ethBlock, nil
}
// GetTendermintBlockByNumber returns a Tendermint format block by block number // GetTendermintBlockByNumber returns a Tendermint format block by block number
func (e *EVMBackend) GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpctypes.ResultBlock, error) { func (e *EVMBackend) GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpctypes.ResultBlock, error) {
height := blockNum.Int64() height := blockNum.Int64()
@ -342,14 +437,15 @@ func (e *EVMBackend) CurrentHeader() *ethtypes.Header {
// HeaderByNumber returns the block header identified by height. // HeaderByNumber returns the block header identified by height.
func (e *EVMBackend) HeaderByNumber(blockNum types.BlockNumber) (*ethtypes.Header, error) { func (e *EVMBackend) HeaderByNumber(blockNum types.BlockNumber) (*ethtypes.Header, error) {
height := blockNum.Int64() height := blockNum.Int64()
currentBlockNumber, _ := e.BlockNumber()
switch blockNum { switch blockNum {
case types.EthLatestBlockNumber: case types.EthLatestBlockNumber:
currentBlockNumber, _ := e.BlockNumber()
if currentBlockNumber > 0 { if currentBlockNumber > 0 {
height = int64(currentBlockNumber) height = int64(currentBlockNumber)
} }
case types.EthPendingBlockNumber: case types.EthPendingBlockNumber:
currentBlockNumber, _ := e.BlockNumber()
if currentBlockNumber > 0 { if currentBlockNumber > 0 {
height = int64(currentBlockNumber) height = int64(currentBlockNumber)
} }
@ -391,7 +487,7 @@ func (e *EVMBackend) HeaderByHash(blockHash common.Hash) (*ethtypes.Header, erro
return nil, err return nil, err
} }
if resBlock.Block == nil { if resBlock == nil || resBlock.Block == nil {
return nil, errors.Errorf("block not found for hash %s", blockHash.Hex()) return nil, errors.Errorf("block not found for hash %s", blockHash.Hex())
} }
@ -475,14 +571,15 @@ func (e *EVMBackend) GetLogs(hash common.Hash) ([][]*ethtypes.Log, error) {
func (e *EVMBackend) GetLogsByNumber(blockNum types.BlockNumber) ([][]*ethtypes.Log, error) { func (e *EVMBackend) GetLogsByNumber(blockNum types.BlockNumber) ([][]*ethtypes.Log, error) {
height := blockNum.Int64() height := blockNum.Int64()
currentBlockNumber, _ := e.BlockNumber()
switch blockNum { switch blockNum {
case types.EthLatestBlockNumber: case types.EthLatestBlockNumber:
currentBlockNumber, _ := e.BlockNumber()
if currentBlockNumber > 0 { if currentBlockNumber > 0 {
height = int64(currentBlockNumber) height = int64(currentBlockNumber)
} }
case types.EthPendingBlockNumber: case types.EthPendingBlockNumber:
currentBlockNumber, _ := e.BlockNumber()
if currentBlockNumber > 0 { if currentBlockNumber > 0 {
height = int64(currentBlockNumber) height = int64(currentBlockNumber)
} }
@ -755,6 +852,11 @@ func (e *EVMBackend) RPCGasCap() uint64 {
return e.cfg.JSONRPC.GasCap return e.cfg.JSONRPC.GasCap
} }
// RPCEVMTimeout is the global evm timeout for eth-call variants.
func (e *EVMBackend) RPCEVMTimeout() time.Duration {
return e.cfg.JSONRPC.EVMTimeout
}
// RPCGasCap is the global gas cap for eth-call variants. // RPCGasCap is the global gas cap for eth-call variants.
func (e *EVMBackend) RPCTxFeeCap() float64 { func (e *EVMBackend) RPCTxFeeCap() float64 {
return e.cfg.JSONRPC.TxFeeCap return e.cfg.JSONRPC.TxFeeCap

View File

@ -13,6 +13,7 @@ import (
"sync" "sync"
"time" "time"
"github.com/davecgh/go-spew/spew"
"github.com/tendermint/tendermint/types" "github.com/tendermint/tendermint/types"
evmtypes "github.com/tharsis/ethermint/x/evm/types" evmtypes "github.com/tharsis/ethermint/x/evm/types"
@ -21,6 +22,9 @@ import (
"github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/server"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/consensus/ethash"
"github.com/ethereum/go-ethereum/rlp"
"github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/log"
"github.com/tharsis/ethermint/rpc/ethereum/backend" "github.com/tharsis/ethermint/rpc/ethereum/backend"
rpctypes "github.com/tharsis/ethermint/rpc/ethereum/types" rpctypes "github.com/tharsis/ethermint/rpc/ethereum/types"
@ -387,3 +391,43 @@ func (a *API) SetGCPercent(v int) int {
a.logger.Debug("debug_setGCPercent", "percent", v) a.logger.Debug("debug_setGCPercent", "percent", v)
return debug.SetGCPercent(v) return debug.SetGCPercent(v)
} }
// GetHeaderRlp retrieves the RLP encoded for of a single header.
func (a *API) GetHeaderRlp(number uint64) (hexutil.Bytes, error) {
header, err := a.backend.HeaderByNumber(rpctypes.BlockNumber(number))
if err != nil {
return nil, err
}
return rlp.EncodeToBytes(header)
}
// GetBlockRlp retrieves the RLP encoded for of a single block.
func (a *API) GetBlockRlp(number uint64) (hexutil.Bytes, error) {
block, err := a.backend.BlockByNumber(rpctypes.BlockNumber(number))
if err != nil {
return nil, err
}
return rlp.EncodeToBytes(block)
}
// PrintBlock retrieves a block and returns its pretty printed form.
func (a *API) PrintBlock(number uint64) (string, error) {
block, err := a.backend.BlockByNumber(rpctypes.BlockNumber(number))
if err != nil {
return "", err
}
return spew.Sdump(block), nil
}
// SeedHash retrieves the seed hash of a block.
func (a *API) SeedHash(number uint64) (string, error) {
_, err := a.backend.HeaderByNumber(rpctypes.BlockNumber(number))
if err != nil {
return "", err
}
return fmt.Sprintf("0x%x", ethash.SeedHash(number)), nil
}

View File

@ -630,7 +630,23 @@ func (e *PublicAPI) doCall(
// From ContextWithHeight: if the provided height is 0, // From ContextWithHeight: if the provided height is 0,
// it will return an empty context and the gRPC query will use // it will return an empty context and the gRPC query will use
// the latest block height for querying. // the latest block height for querying.
res, err := e.queryClient.EthCall(rpctypes.ContextWithHeight(blockNr.Int64()), &req) ctx := rpctypes.ContextWithHeight(blockNr.Int64())
timeout := e.backend.RPCEVMTimeout()
// Setup context so it may be canceled the call has completed
// or, in case of unmetered gas, setup a context with a timeout.
var cancel context.CancelFunc
if timeout > 0 {
ctx, cancel = context.WithTimeout(ctx, timeout)
} else {
ctx, cancel = context.WithCancel(ctx)
}
// Make sure the context is canceled when the call has completed
// this makes sure resources are cleaned up.
defer cancel()
res, err := e.queryClient.EthCall(ctx, &req)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -66,32 +66,6 @@ func EthHeaderFromTendermint(header tmtypes.Header, baseFee *big.Int) *ethtypes.
} }
} }
// EthTransactionsFromTendermint returns a slice of ethereum transaction hashes and the total gas usage from a set of
// tendermint block transactions.
func EthTransactionsFromTendermint(clientCtx client.Context, txs []tmtypes.Tx) ([]common.Hash, *big.Int, error) {
transactionHashes := []common.Hash{}
gasUsed := big.NewInt(0)
for _, tx := range txs {
ethTx, err := RawTxToEthTx(clientCtx, tx)
if err != nil {
// continue to next transaction in case it's not a MsgEthereumTx
continue
}
data, err := evmtypes.UnpackTxData(ethTx.Data)
if err != nil {
return nil, nil, fmt.Errorf("failed to unpack tx data: %w", err)
}
// TODO: Remove gas usage calculation if saving gasUsed per block
gasUsed.Add(gasUsed, data.Fee())
transactionHashes = append(transactionHashes, common.BytesToHash(tx.Hash()))
}
return transactionHashes, gasUsed, nil
}
// BlockMaxGasFromConsensusParams returns the gas limit for the latest block from the chain consensus params. // BlockMaxGasFromConsensusParams returns the gas limit for the latest block from the chain consensus params.
func BlockMaxGasFromConsensusParams(ctx context.Context, clientCtx client.Context) (int64, error) { func BlockMaxGasFromConsensusParams(ctx context.Context, clientCtx client.Context) (int64, error) {
resConsParams, err := clientCtx.Client.ConsensusParams(ctx, nil) resConsParams, err := clientCtx.Client.ConsensusParams(ctx, nil)

View File

@ -4,6 +4,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"path" "path"
"time"
"github.com/spf13/viper" "github.com/spf13/viper"
@ -31,6 +32,7 @@ const (
DefaultFilterCap int32 = 200 DefaultFilterCap int32 = 200
DefaultEVMTimeout = 5 * time.Second
// default 1.0 eth // default 1.0 eth
DefaultTxFeeCap float64 = 1.0 DefaultTxFeeCap float64 = 1.0
) )
@ -64,6 +66,8 @@ type JSONRPCConfig struct {
WsAddress string `mapstructure:"ws-address"` WsAddress string `mapstructure:"ws-address"`
// GasCap is the global gas cap for eth-call variants. // GasCap is the global gas cap for eth-call variants.
GasCap uint64 `mapstructure:"gas-cap"` GasCap uint64 `mapstructure:"gas-cap"`
// EVMTimeout is the global timeout for eth-call.
EVMTimeout time.Duration `mapstructure:"evm-timeout"`
// TxFeeCap is the global tx-fee cap for send transaction // TxFeeCap is the global tx-fee cap for send transaction
TxFeeCap float64 `mapstructure:"txfee-cap"` TxFeeCap float64 `mapstructure:"txfee-cap"`
// FilterCap is the global cap for total number of filters that can be created. // FilterCap is the global cap for total number of filters that can be created.
@ -154,6 +158,8 @@ func DefaultJSONRPCConfig() *JSONRPCConfig {
Address: DefaultJSONRPCAddress, Address: DefaultJSONRPCAddress,
WsAddress: DefaultJSONRPCWsAddress, WsAddress: DefaultJSONRPCWsAddress,
GasCap: DefaultGasCap, GasCap: DefaultGasCap,
EVMTimeout: DefaultEVMTimeout,
TxFeeCap: DefaultTxFeeCap,
FilterCap: DefaultFilterCap, FilterCap: DefaultFilterCap,
} }
} }
@ -168,6 +174,14 @@ func (c JSONRPCConfig) Validate() error {
return errors.New("JSON-RPC filter-cap cannot be negative") return errors.New("JSON-RPC filter-cap cannot be negative")
} }
if c.TxFeeCap < 0 {
return errors.New("JSON-RPC tx fee cap cannot be negative")
}
if c.EVMTimeout < 0 {
return errors.New("JSON-RPC EVM timeout duration cannot be negative")
}
// TODO: validate APIs // TODO: validate APIs
seenAPIs := make(map[string]bool) seenAPIs := make(map[string]bool)
for _, api := range c.API { for _, api := range c.API {
@ -222,6 +236,8 @@ func GetConfig(v *viper.Viper) Config {
WsAddress: v.GetString("json-rpc.ws-address"), WsAddress: v.GetString("json-rpc.ws-address"),
GasCap: v.GetUint64("json-rpc.gas-cap"), GasCap: v.GetUint64("json-rpc.gas-cap"),
FilterCap: v.GetInt32("json-rpc.filter-cap"), FilterCap: v.GetInt32("json-rpc.filter-cap"),
TxFeeCap: v.GetFloat64("json-rpc.txfee-cap"),
EVMTimeout: v.GetDuration("json-rpc.evm-timeout"),
}, },
TLS: TLSConfig{ TLS: TLSConfig{
CertificatePath: v.GetString("tls.certificate-path"), CertificatePath: v.GetString("tls.certificate-path"),

View File

@ -35,6 +35,12 @@ api = "{{range $index, $elmt := .JSONRPC.API}}{{if $index}},{{$elmt}}{{else}}{{$
# GasCap sets a cap on gas that can be used in eth_call/estimateGas (0=infinite). Default: 25,000,000. # GasCap sets a cap on gas that can be used in eth_call/estimateGas (0=infinite). Default: 25,000,000.
gas-cap = {{ .JSONRPC.GasCap }} gas-cap = {{ .JSONRPC.GasCap }}
# EVMTimeout is the global timeout for eth_call. Default: 5s.
evm-timeout = "{{ .JSONRPC.EVMTimeout }}"
# TxFeeCap is the global tx-fee cap for send transaction. Default: 1eth.
txfee-cap = {{ .JSONRPC.TxFeeCap }}
# FilterCap sets the global cap for total number of filters that can be created # FilterCap sets the global cap for total number of filters that can be created
filter-cap = {{ .JSONRPC.FilterCap }} filter-cap = {{ .JSONRPC.FilterCap }}

View File

@ -31,6 +31,7 @@ const (
JSONRPCAddress = "json-rpc.address" JSONRPCAddress = "json-rpc.address"
JSONWsAddress = "json-rpc.ws-address" JSONWsAddress = "json-rpc.ws-address"
JSONRPCGasCap = "json-rpc.gas-cap" JSONRPCGasCap = "json-rpc.gas-cap"
JSONRPCEVMTimeout = "json-rpc.evm-timeout"
JSONRPCTxFeeCap = "json-rpc.txfee-cap" JSONRPCTxFeeCap = "json-rpc.txfee-cap"
JSONRPCFilterCap = "json-rpc.filter-cap" JSONRPCFilterCap = "json-rpc.filter-cap"
) )

View File

@ -158,6 +158,7 @@ which accepts a path for the resulting pprof file.
cmd.Flags().Uint64(srvflags.JSONRPCGasCap, config.DefaultGasCap, "Sets a cap on gas that can be used in eth_call/estimateGas unit is aphoton (0=infinite)") cmd.Flags().Uint64(srvflags.JSONRPCGasCap, config.DefaultGasCap, "Sets a cap on gas that can be used in eth_call/estimateGas unit is aphoton (0=infinite)")
cmd.Flags().Float64(srvflags.JSONRPCTxFeeCap, config.DefaultTxFeeCap, "Sets a cap on transaction fee that can be sent via the RPC APIs (1 = default 1 photon)") cmd.Flags().Float64(srvflags.JSONRPCTxFeeCap, config.DefaultTxFeeCap, "Sets a cap on transaction fee that can be sent via the RPC APIs (1 = default 1 photon)")
cmd.Flags().Int32(srvflags.JSONRPCFilterCap, config.DefaultFilterCap, "Sets the global cap for total number of filters that can be created") cmd.Flags().Int32(srvflags.JSONRPCFilterCap, config.DefaultFilterCap, "Sets the global cap for total number of filters that can be created")
cmd.Flags().Duration(srvflags.JSONRPCEVMTimeout, config.DefaultEVMTimeout, "Sets a timeout used for eth_call (0=infinite)")
cmd.Flags().String(srvflags.EVMTracer, config.DefaultEVMTracer, "the EVM tracer type to collect execution traces from the EVM transaction execution (json|struct|access_list|markdown)") cmd.Flags().String(srvflags.EVMTracer, config.DefaultEVMTracer, "the EVM tracer type to collect execution traces from the EVM transaction execution (json|struct|access_list|markdown)")

View File

@ -30,7 +30,9 @@ func (cc ChainConfig) EthereumConfig(chainID *big.Int) *params.ChainConfig {
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock), MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
BerlinBlock: getBlockValue(cc.BerlinBlock), BerlinBlock: getBlockValue(cc.BerlinBlock),
LondonBlock: getBlockValue(cc.LondonBlock), LondonBlock: getBlockValue(cc.LondonBlock),
CatalystBlock: getBlockValue(cc.CatalystBlock), TerminalTotalDifficulty: nil,
Ethash: nil,
Clique: nil,
} }
} }
@ -64,7 +66,6 @@ func DefaultChainConfig() ChainConfig {
MuirGlacierBlock: &muirGlacierBlock, MuirGlacierBlock: &muirGlacierBlock,
BerlinBlock: &berlinBlock, BerlinBlock: &berlinBlock,
LondonBlock: &londonBlock, LondonBlock: &londonBlock,
CatalystBlock: nil,
} }
} }
@ -118,9 +119,6 @@ func (cc ChainConfig) Validate() error {
if err := validateBlock(cc.LondonBlock); err != nil { if err := validateBlock(cc.LondonBlock); err != nil {
return sdkerrors.Wrap(err, "londonBlock") return sdkerrors.Wrap(err, "londonBlock")
} }
if err := validateBlock(cc.CatalystBlock); err != nil {
return sdkerrors.Wrap(err, "catalystBlock")
}
// NOTE: chain ID is not needed to check config order // NOTE: chain ID is not needed to check config order
if err := cc.EthereumConfig(nil).CheckConfigForkOrder(); err != nil { if err := cc.EthereumConfig(nil).CheckConfigForkOrder(); err != nil {

View File

@ -40,7 +40,6 @@ func TestChainConfigValidate(t *testing.T) {
MuirGlacierBlock: newIntPtr(0), MuirGlacierBlock: newIntPtr(0),
BerlinBlock: newIntPtr(0), BerlinBlock: newIntPtr(0),
LondonBlock: newIntPtr(0), LondonBlock: newIntPtr(0),
CatalystBlock: newIntPtr(0),
}, },
false, false,
}, },
@ -60,7 +59,6 @@ func TestChainConfigValidate(t *testing.T) {
MuirGlacierBlock: nil, MuirGlacierBlock: nil,
BerlinBlock: nil, BerlinBlock: nil,
LondonBlock: nil, LondonBlock: nil,
CatalystBlock: nil,
}, },
false, false,
}, },
@ -238,25 +236,6 @@ func TestChainConfigValidate(t *testing.T) {
}, },
true, true,
}, },
{
"invalid CatalystBlock",
ChainConfig{
HomesteadBlock: newIntPtr(0),
DAOForkBlock: newIntPtr(0),
EIP150Block: newIntPtr(0),
EIP150Hash: defaultEIP150Hash,
EIP155Block: newIntPtr(0),
EIP158Block: newIntPtr(0),
ByzantiumBlock: newIntPtr(0),
ConstantinopleBlock: newIntPtr(0),
PetersburgBlock: newIntPtr(0),
IstanbulBlock: newIntPtr(0),
MuirGlacierBlock: newIntPtr(0),
LondonBlock: newIntPtr(0),
CatalystBlock: newIntPtr(-1),
},
true,
},
{ {
"invalid fork order - skip HomesteadBlock", "invalid fork order - skip HomesteadBlock",
ChainConfig{ ChainConfig{
@ -272,7 +251,6 @@ func TestChainConfigValidate(t *testing.T) {
MuirGlacierBlock: newIntPtr(0), MuirGlacierBlock: newIntPtr(0),
BerlinBlock: newIntPtr(0), BerlinBlock: newIntPtr(0),
LondonBlock: newIntPtr(0), LondonBlock: newIntPtr(0),
CatalystBlock: newIntPtr(0),
}, },
true, true,
}, },

238
x/evm/types/evm.pb.go generated
View File

@ -137,8 +137,6 @@ type ChainConfig struct {
MuirGlacierBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,12,opt,name=muir_glacier_block,json=muirGlacierBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"muir_glacier_block,omitempty" yaml:"muir_glacier_block"` MuirGlacierBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,12,opt,name=muir_glacier_block,json=muirGlacierBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"muir_glacier_block,omitempty" yaml:"muir_glacier_block"`
// Berlin switch block (nil = no fork, 0 = already on berlin) // Berlin switch block (nil = no fork, 0 = already on berlin)
BerlinBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,13,opt,name=berlin_block,json=berlinBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"berlin_block,omitempty" yaml:"berlin_block"` BerlinBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,13,opt,name=berlin_block,json=berlinBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"berlin_block,omitempty" yaml:"berlin_block"`
// Catalyst switch block (nil = no fork, 0 = already on catalyst)
CatalystBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,16,opt,name=catalyst_block,json=catalystBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"catalyst_block,omitempty" yaml:"catalyst_block"`
// London switch block (nil = no fork, 0 = already on london) // London switch block (nil = no fork, 0 = already on london)
LondonBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,17,opt,name=london_block,json=londonBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"london_block,omitempty" yaml:"london_block"` LondonBlock *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,17,opt,name=london_block,json=londonBlock,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"london_block,omitempty" yaml:"london_block"`
} }
@ -655,97 +653,97 @@ func init() {
func init() { proto.RegisterFile("ethermint/evm/v1/evm.proto", fileDescriptor_d21ecc92c8c8583e) } func init() { proto.RegisterFile("ethermint/evm/v1/evm.proto", fileDescriptor_d21ecc92c8c8583e) }
var fileDescriptor_d21ecc92c8c8583e = []byte{ var fileDescriptor_d21ecc92c8c8583e = []byte{
// 1436 bytes of a gzipped FileDescriptorProto // 1427 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4f, 0x6f, 0x1b, 0x37, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x5d, 0x6f, 0xdb, 0xb6,
0x16, 0xb7, 0x2d, 0xd9, 0x1e, 0x51, 0x23, 0x69, 0x42, 0x3b, 0x5e, 0x25, 0xc1, 0x7a, 0xbc, 0x73, 0x1a, 0x4e, 0x62, 0x27, 0x91, 0x69, 0xc5, 0x56, 0x99, 0x34, 0xc7, 0x6d, 0x71, 0xa2, 0x1c, 0x5d,
0x58, 0x78, 0x81, 0xc4, 0x8a, 0x1d, 0x18, 0x1b, 0x24, 0xd8, 0x83, 0xc7, 0x76, 0xb2, 0xf6, 0x66, 0x1c, 0xe4, 0x00, 0x6d, 0xdc, 0xa4, 0x08, 0x4e, 0xd1, 0x62, 0x17, 0x51, 0x92, 0x76, 0xc9, 0xba,
0x77, 0x0d, 0xda, 0x8b, 0x05, 0x0a, 0x14, 0x03, 0x6a, 0x86, 0x19, 0x4d, 0x3d, 0x33, 0x14, 0x48, 0x2d, 0x60, 0x32, 0x0c, 0x18, 0x30, 0x08, 0xb4, 0xc4, 0xca, 0x5a, 0x24, 0xd1, 0x20, 0x29, 0xcf,
0x8e, 0x2a, 0x15, 0xfd, 0x00, 0x05, 0x7a, 0xe9, 0x07, 0xe8, 0xa1, 0x1f, 0x27, 0xe8, 0x29, 0x97, 0x1e, 0xf6, 0x03, 0x06, 0xec, 0x66, 0x3f, 0x61, 0xbf, 0x66, 0x28, 0x76, 0xd5, 0x9b, 0x01, 0xc3,
0x02, 0x45, 0x0f, 0x83, 0xc0, 0xb9, 0xf9, 0xa8, 0x4f, 0x50, 0x0c, 0x49, 0xfd, 0x75, 0xd0, 0xd6, 0x2e, 0x84, 0x22, 0xbd, 0xcb, 0xa5, 0x7f, 0xc1, 0x20, 0x92, 0xfe, 0x4c, 0xb1, 0x2d, 0xb9, 0x32,
0x3e, 0x89, 0xbf, 0xc7, 0xf7, 0x7e, 0x3f, 0xbe, 0xc7, 0x47, 0x72, 0x04, 0x1e, 0x12, 0xd1, 0x21, 0x9f, 0xf7, 0xe3, 0x79, 0xf8, 0xf1, 0xea, 0x25, 0x0d, 0xee, 0x13, 0xd1, 0x26, 0x2c, 0x89, 0x52,
0x2c, 0x89, 0x52, 0xd1, 0x22, 0xbd, 0xa4, 0xd5, 0xdb, 0x2d, 0x7e, 0x76, 0xba, 0x8c, 0x0a, 0x0a, 0xd1, 0x24, 0xdd, 0xa4, 0xd9, 0xdd, 0x29, 0x7e, 0xb6, 0x3b, 0x8c, 0x0a, 0x0a, 0xad, 0x91, 0x6f,
0xad, 0xf1, 0xdc, 0x4e, 0x61, 0xec, 0xed, 0x3e, 0x5c, 0x0f, 0x69, 0x48, 0xe5, 0x64, 0xab, 0x18, 0xbb, 0x30, 0x76, 0x77, 0xee, 0xaf, 0x85, 0x34, 0xa4, 0xd2, 0xd9, 0x2c, 0x46, 0x2a, 0xce, 0xf9,
0x29, 0x3f, 0xe7, 0xa7, 0x25, 0xb0, 0x72, 0x86, 0x19, 0x4e, 0x38, 0xdc, 0x05, 0x15, 0xd2, 0x4b, 0x6d, 0x01, 0x2c, 0x9d, 0x62, 0x86, 0x13, 0x0e, 0x77, 0x40, 0x85, 0x74, 0x13, 0x2f, 0x20, 0x29,
0xbc, 0x80, 0xa4, 0x34, 0x69, 0x2e, 0x6e, 0x2d, 0x6e, 0x57, 0xdc, 0xf5, 0x61, 0x6e, 0x5b, 0x03, 0x4d, 0x1a, 0xf3, 0x9b, 0xf3, 0x5b, 0x15, 0x77, 0x6d, 0x90, 0xdb, 0x56, 0x1f, 0x27, 0xf1, 0x33,
0x9c, 0xc4, 0x2f, 0x9c, 0xf1, 0x94, 0x83, 0x0c, 0xd2, 0x4b, 0x8e, 0x8a, 0x21, 0xfc, 0x07, 0xa8, 0x67, 0xe4, 0x72, 0x90, 0x41, 0xba, 0xc9, 0x61, 0x31, 0x84, 0x1f, 0x81, 0x15, 0x92, 0xe2, 0x56,
0x91, 0x14, 0xb7, 0x63, 0xe2, 0xf9, 0x8c, 0x60, 0x41, 0x9a, 0x4b, 0x5b, 0x8b, 0xdb, 0x86, 0xdb, 0x4c, 0x3c, 0x9f, 0x11, 0x2c, 0x48, 0x63, 0x61, 0x73, 0x7e, 0xcb, 0x70, 0x1b, 0x83, 0xdc, 0x5e,
0x1c, 0xe6, 0xf6, 0xba, 0x0e, 0x9b, 0x9e, 0x76, 0x90, 0xa9, 0xf0, 0xa1, 0x84, 0xf0, 0xef, 0xa0, 0xd3, 0x69, 0x93, 0x6e, 0x07, 0x99, 0x0a, 0x1f, 0x48, 0x08, 0xff, 0x0f, 0xaa, 0x43, 0x3f, 0x8e,
0x3a, 0x9a, 0xc7, 0x71, 0xdc, 0x2c, 0xc9, 0xe0, 0x8d, 0x61, 0x6e, 0xc3, 0xd9, 0x60, 0x1c, 0xc7, 0xe3, 0x46, 0x49, 0x26, 0xaf, 0x0f, 0x72, 0x1b, 0x4e, 0x27, 0xe3, 0x38, 0x76, 0x10, 0xd0, 0xa9,
0x0e, 0x02, 0x3a, 0x14, 0xc7, 0x31, 0x3c, 0x00, 0x80, 0xf4, 0x05, 0xc3, 0x1e, 0x89, 0xba, 0xbc, 0x38, 0x8e, 0xe1, 0x3e, 0x00, 0xa4, 0x27, 0x18, 0xf6, 0x48, 0xd4, 0xe1, 0x8d, 0xf2, 0x66, 0x69,
0x59, 0xde, 0x2a, 0x6d, 0x97, 0x5c, 0xe7, 0x2a, 0xb7, 0x2b, 0xc7, 0x85, 0xf5, 0xf8, 0xe4, 0x8c, 0xab, 0xe4, 0x3a, 0x97, 0xb9, 0x5d, 0x39, 0x2a, 0xac, 0x47, 0xc7, 0xa7, 0x7c, 0x90, 0xdb, 0x77,
0x0f, 0x73, 0xfb, 0x9e, 0x26, 0x19, 0x3b, 0x3a, 0xa8, 0x22, 0xc1, 0x71, 0xd4, 0xe5, 0xf0, 0x73, 0x34, 0xc9, 0x28, 0xd0, 0x41, 0x15, 0x09, 0x8e, 0xa2, 0x0e, 0x87, 0x5f, 0x03, 0xd3, 0x6f, 0xe3,
0x60, 0xfa, 0x1d, 0x1c, 0xa5, 0x9e, 0x4f, 0xd3, 0xb7, 0x51, 0xd8, 0x5c, 0xde, 0x5a, 0xdc, 0xae, 0x28, 0xf5, 0x7c, 0x9a, 0xbe, 0x8e, 0xc2, 0xc6, 0xe2, 0xe6, 0xfc, 0x56, 0x75, 0xf7, 0xdf, 0xdb,
0xee, 0xfd, 0x79, 0x67, 0xbe, 0x6e, 0x3b, 0x87, 0x85, 0xd7, 0xa1, 0x74, 0x72, 0x1f, 0xbd, 0xcb, 0xb3, 0xfb, 0xb6, 0x7d, 0x50, 0x44, 0x1d, 0xc8, 0x20, 0xf7, 0xc1, 0x9b, 0xdc, 0x9e, 0x1b, 0xe4,
0xed, 0x85, 0x61, 0x6e, 0xaf, 0x29, 0xea, 0x69, 0x02, 0x07, 0x55, 0xfd, 0x89, 0xa7, 0xf3, 0x7d, 0xf6, 0xaa, 0xa2, 0x9e, 0x24, 0x70, 0x50, 0xd5, 0x1f, 0x47, 0x3a, 0xbf, 0x98, 0xa0, 0x3a, 0x91,
0x0d, 0x54, 0xa7, 0x22, 0x61, 0x02, 0x1a, 0x1d, 0x9a, 0x10, 0x2e, 0x08, 0x0e, 0xbc, 0x76, 0x4c, 0x09, 0x13, 0x50, 0x6f, 0xd3, 0x84, 0x70, 0x41, 0x70, 0xe0, 0xb5, 0x62, 0xea, 0x5f, 0xe8, 0x2d,
0xfd, 0x4b, 0x5d, 0xe2, 0xa3, 0x5f, 0x72, 0xfb, 0xaf, 0x61, 0x24, 0x3a, 0x59, 0x7b, 0xc7, 0xa7, 0x3e, 0xfc, 0x23, 0xb7, 0xff, 0x1b, 0x46, 0xa2, 0x9d, 0xb5, 0xb6, 0x7d, 0x9a, 0x34, 0x7d, 0xca,
0x49, 0xcb, 0xa7, 0x3c, 0xa1, 0x5c, 0xff, 0x3c, 0xe1, 0xc1, 0x65, 0x4b, 0x0c, 0xba, 0x84, 0xef, 0x13, 0xca, 0xf5, 0xcf, 0x23, 0x1e, 0x5c, 0x34, 0x45, 0xbf, 0x43, 0xf8, 0xf6, 0x71, 0x2a, 0x06,
0x9c, 0xa4, 0x62, 0x98, 0xdb, 0x1b, 0x4a, 0x78, 0x8e, 0xca, 0x41, 0xf5, 0xb1, 0xc5, 0x2d, 0x0c, 0xb9, 0xbd, 0xae, 0x84, 0x67, 0xa8, 0x1c, 0x54, 0x1b, 0x59, 0xdc, 0xc2, 0x00, 0xfb, 0xa0, 0x16,
0x70, 0x00, 0xea, 0x01, 0xa6, 0xde, 0x5b, 0xca, 0x2e, 0xb5, 0xda, 0x92, 0x54, 0x3b, 0xff, 0xe3, 0x60, 0xea, 0xbd, 0xa6, 0xec, 0x42, 0xab, 0x2d, 0x48, 0xb5, 0xb3, 0x7f, 0xae, 0x76, 0x99, 0xdb,
0x6a, 0x57, 0xb9, 0x6d, 0x1e, 0x1d, 0xfc, 0xf7, 0x15, 0x65, 0x97, 0x92, 0x73, 0x98, 0xdb, 0xf7, 0xe6, 0xe1, 0xfe, 0xe7, 0x2f, 0x28, 0xbb, 0x90, 0x9c, 0x83, 0xdc, 0xbe, 0xab, 0xd4, 0xa7, 0x99,
0x95, 0xfa, 0x2c, 0xb3, 0x83, 0xcc, 0x00, 0xd3, 0xb1, 0x1b, 0xfc, 0x3f, 0xb0, 0xc6, 0x0e, 0x3c, 0x1d, 0x64, 0x06, 0x98, 0x8e, 0xc2, 0xe0, 0x97, 0xc0, 0x1a, 0x05, 0xf0, 0xac, 0xd3, 0xa1, 0x4c,
0xeb, 0x76, 0x29, 0x13, 0x7a, 0x67, 0x9f, 0x5c, 0xe5, 0x76, 0x5d, 0x53, 0x9e, 0xab, 0x99, 0x61, 0xe8, 0x93, 0x7d, 0x74, 0x99, 0xdb, 0x35, 0x4d, 0x79, 0xa6, 0x3c, 0x83, 0xdc, 0xfe, 0xd7, 0x0c,
0x6e, 0xff, 0x69, 0x8e, 0x54, 0xc7, 0x38, 0xa8, 0xae, 0x69, 0xb5, 0x2b, 0xe4, 0xc0, 0x24, 0x51, 0xa9, 0xce, 0x71, 0x50, 0x4d, 0xd3, 0xea, 0x50, 0xc8, 0x81, 0x49, 0xa2, 0xce, 0xce, 0xde, 0x63,
0x77, 0x77, 0xff, 0xa9, 0xce, 0xa8, 0x2c, 0x33, 0x3a, 0xbb, 0x55, 0x46, 0xd5, 0xe3, 0x93, 0xb3, 0xbd, 0xa2, 0xb2, 0x5c, 0xd1, 0xe9, 0x8d, 0x56, 0x54, 0x3d, 0x3a, 0x3e, 0xdd, 0xd9, 0x7b, 0x3c,
0xdd, 0xfd, 0xa7, 0xa3, 0x84, 0xf4, 0x3e, 0x4e, 0xd3, 0x3a, 0xa8, 0xaa, 0xa0, 0xca, 0xe6, 0x04, 0x5c, 0x90, 0x3e, 0xc7, 0x49, 0x5a, 0x07, 0x55, 0x15, 0x54, 0xab, 0x39, 0x06, 0x1a, 0x7a, 0x6d,
0x68, 0xe8, 0x75, 0x30, 0xef, 0xc8, 0x2e, 0xa9, 0xb8, 0xdb, 0x57, 0xb9, 0x0d, 0x14, 0xd3, 0x3f, 0xcc, 0xdb, 0xb2, 0x4a, 0x2a, 0xee, 0xd6, 0x65, 0x6e, 0x03, 0xc5, 0xf4, 0x31, 0xe6, 0xed, 0xf1,
0x31, 0xef, 0x4c, 0xf6, 0xa5, 0x3d, 0xf8, 0x0a, 0xa7, 0x22, 0xca, 0x92, 0x11, 0x17, 0x50, 0xc1, 0xb9, 0xb4, 0xfa, 0xdf, 0xe1, 0x54, 0x44, 0x59, 0x32, 0xe4, 0x02, 0x2a, 0xb9, 0x88, 0x1a, 0xcd,
0x85, 0xd7, 0x78, 0xfd, 0xfb, 0x7a, 0xfd, 0x2b, 0x77, 0x5e, 0xff, 0xfe, 0xa7, 0xd6, 0xbf, 0x3f, 0x7f, 0x4f, 0xcf, 0x7f, 0xe9, 0xd6, 0xf3, 0xdf, 0xfb, 0xd0, 0xfc, 0xf7, 0xa6, 0xe7, 0xaf, 0x62,
0xbb, 0x7e, 0xe5, 0x33, 0x16, 0x7d, 0xae, 0x45, 0x57, 0xef, 0x2c, 0xfa, 0xfc, 0x53, 0xa2, 0xcf, 0x46, 0xa2, 0x4f, 0xb5, 0xe8, 0xf2, 0xad, 0x45, 0x9f, 0x7e, 0x48, 0xf4, 0xe9, 0xb4, 0xa8, 0x8a,
0x67, 0x45, 0x95, 0x4f, 0xd1, 0xec, 0x73, 0x95, 0x68, 0x1a, 0x77, 0x6f, 0xf6, 0x1b, 0x45, 0xad, 0x29, 0x8a, 0x7d, 0x66, 0x27, 0x1a, 0xc6, 0xed, 0x8b, 0xfd, 0xda, 0xa6, 0xd6, 0x46, 0x16, 0x25,
0x8f, 0x2d, 0x4a, 0xee, 0x6b, 0xb0, 0xee, 0xd3, 0x94, 0x8b, 0xc2, 0x96, 0xd2, 0x6e, 0x4c, 0xb4, 0xf7, 0x3d, 0x58, 0xf3, 0x69, 0xca, 0x45, 0x61, 0x4b, 0x69, 0x27, 0x26, 0x5a, 0xb3, 0x22, 0x35,
0x66, 0x45, 0x6a, 0x9e, 0xdc, 0x4a, 0xf3, 0x91, 0x3e, 0xd9, 0x9f, 0xe0, 0x73, 0xd0, 0xda, 0xac, 0x8f, 0x6f, 0xa4, 0xf9, 0x40, 0x7f, 0xd9, 0x1f, 0xe0, 0x73, 0xd0, 0xea, 0xb4, 0x59, 0xa9, 0x77,
0x59, 0xa9, 0x77, 0x81, 0xd5, 0x25, 0x82, 0x30, 0xde, 0xce, 0x58, 0xa8, 0x95, 0x81, 0x54, 0x3e, 0x80, 0xd5, 0x21, 0x82, 0x30, 0xde, 0xca, 0x58, 0xa8, 0x95, 0x81, 0x54, 0x3e, 0xba, 0x91, 0xb2,
0xbe, 0x95, 0xb2, 0x3e, 0x07, 0xf3, 0x5c, 0x0e, 0x6a, 0x4c, 0x4c, 0x4a, 0xf1, 0x0b, 0x50, 0x8f, 0xfe, 0x0e, 0x66, 0xb9, 0x1c, 0x54, 0x1f, 0x9b, 0x94, 0xe2, 0x37, 0xa0, 0x16, 0x15, 0xd3, 0x68,
0x8a, 0x65, 0xb4, 0xb3, 0x58, 0xeb, 0x55, 0xa5, 0xde, 0xe1, 0xad, 0xf4, 0xf4, 0x61, 0x9e, 0x65, 0x65, 0xb1, 0xd6, 0xab, 0x4a, 0xbd, 0x83, 0x1b, 0xe9, 0xe9, 0x8f, 0x79, 0x9a, 0xc9, 0x41, 0x2b,
0x72, 0x50, 0x6d, 0x64, 0x50, 0x5a, 0x19, 0x80, 0x49, 0x16, 0x31, 0x2f, 0x8c, 0xb1, 0x1f, 0x11, 0x43, 0x83, 0xd2, 0xca, 0x00, 0x4c, 0xb2, 0x88, 0x79, 0x61, 0x8c, 0xfd, 0x88, 0x30, 0xad, 0x67,
0xa6, 0xf5, 0x4c, 0xa9, 0xf7, 0xfa, 0x56, 0x7a, 0x0f, 0x94, 0xde, 0x4d, 0x36, 0x07, 0x59, 0x85, 0x4a, 0xbd, 0x97, 0x37, 0xd2, 0xbb, 0xa7, 0xf4, 0xae, 0xb3, 0x39, 0xc8, 0x2a, 0x8c, 0x2f, 0x95,
0xf1, 0xb5, 0xb2, 0x29, 0xd9, 0x00, 0x98, 0x6d, 0xc2, 0xe2, 0x28, 0xd5, 0x82, 0x35, 0x29, 0x78, 0x4d, 0xc9, 0x06, 0xc0, 0x6c, 0x11, 0x16, 0x47, 0xa9, 0x16, 0x5c, 0x91, 0x82, 0xfb, 0x37, 0x12,
0x70, 0x2b, 0x41, 0xdd, 0xa7, 0xd3, 0x3c, 0x0e, 0xaa, 0x2a, 0x38, 0x2e, 0xa4, 0x8f, 0x05, 0x8e, 0xd4, 0x75, 0x3a, 0xc9, 0xe3, 0xa0, 0xaa, 0x82, 0x23, 0x95, 0x98, 0xa6, 0x01, 0x1d, 0xaa, 0xdc,
0x07, 0x5c, 0x68, 0x1d, 0xeb, 0xee, 0x85, 0x9c, 0x65, 0x72, 0x50, 0x6d, 0x64, 0x18, 0x67, 0x14, 0xb9, 0xbd, 0xca, 0x24, 0x8f, 0x83, 0xaa, 0x0a, 0x4a, 0x95, 0x93, 0xb2, 0x51, 0xb3, 0xea, 0x27,
0xd3, 0x34, 0xa0, 0xa3, 0x8c, 0xee, 0xdd, 0x3d, 0xa3, 0x69, 0x1e, 0x07, 0x55, 0x15, 0x94, 0x2a, 0x65, 0xa3, 0x6e, 0x59, 0x27, 0x65, 0xc3, 0xb2, 0xee, 0xa0, 0x95, 0x3e, 0x8d, 0xa9, 0xd7, 0x7d,
0xa7, 0x65, 0xa3, 0x6e, 0x35, 0x4e, 0xcb, 0x46, 0xc3, 0xb2, 0x50, 0x6d, 0x40, 0x63, 0xea, 0xf5, 0xa2, 0xc2, 0x51, 0x95, 0x7c, 0x8b, 0xb9, 0xae, 0x6e, 0x54, 0xf3, 0xb1, 0xc0, 0x71, 0x9f, 0x0b,
0x9e, 0x29, 0x47, 0x54, 0x25, 0x5f, 0x62, 0x3e, 0x3a, 0x43, 0x2d, 0xb0, 0x7c, 0x2e, 0x8a, 0x27, 0xcd, 0xd5, 0x04, 0x8b, 0x67, 0xa2, 0xb8, 0x2c, 0x2d, 0x50, 0xba, 0x20, 0x7d, 0x75, 0x6b, 0xa0,
0xd8, 0x02, 0xa5, 0x4b, 0x32, 0x50, 0x6f, 0x11, 0x2a, 0x86, 0x70, 0x1d, 0x2c, 0xf7, 0x70, 0x9c, 0x62, 0x08, 0xd7, 0xc0, 0x62, 0x17, 0xc7, 0x99, 0xba, 0x75, 0x2b, 0x48, 0x01, 0xe7, 0x14, 0xd4,
0xa9, 0xb7, 0xbc, 0x82, 0x14, 0x70, 0xce, 0x40, 0xe3, 0x82, 0xe1, 0x94, 0x63, 0x5f, 0x44, 0x34, 0xcf, 0x19, 0x4e, 0x39, 0xf6, 0x45, 0x44, 0xd3, 0x57, 0x34, 0xe4, 0x10, 0x82, 0xb2, 0xec, 0x5e,
0x7d, 0x43, 0x43, 0x0e, 0x21, 0x28, 0xcb, 0x3b, 0x51, 0xc5, 0xca, 0x31, 0xfc, 0x1b, 0x28, 0xc7, 0x2a, 0x57, 0x8e, 0xe1, 0xff, 0x40, 0x39, 0xa6, 0x21, 0x6f, 0x2c, 0x6c, 0x96, 0xb6, 0xaa, 0xbb,
0x34, 0xe4, 0xcd, 0xa5, 0xad, 0xd2, 0x76, 0x75, 0xef, 0xfe, 0xcd, 0xd7, 0xf4, 0x0d, 0x0d, 0x91, 0x77, 0xaf, 0xdf, 0x7b, 0xaf, 0x68, 0x88, 0x64, 0x88, 0xf3, 0xeb, 0x02, 0x28, 0xbd, 0xa2, 0x21,
0x74, 0x71, 0x7e, 0x5c, 0x02, 0xa5, 0x37, 0x34, 0x84, 0x4d, 0xb0, 0x8a, 0x83, 0x80, 0x11, 0xce, 0x6c, 0x80, 0x65, 0x1c, 0x04, 0x8c, 0x70, 0xae, 0x99, 0x86, 0x10, 0xae, 0x83, 0x25, 0x41, 0x3b,
0x35, 0xd3, 0x08, 0xc2, 0x0d, 0xb0, 0x22, 0x68, 0x37, 0xf2, 0x15, 0x5d, 0x05, 0x69, 0x54, 0x08, 0x91, 0xaf, 0xe8, 0x2a, 0x48, 0xa3, 0x42, 0x38, 0xc0, 0x02, 0xcb, 0xfe, 0x6f, 0x22, 0x39, 0x86,
0x07, 0x58, 0x60, 0xf9, 0xaa, 0x98, 0x48, 0x8e, 0xe1, 0x1e, 0x30, 0x65, 0x66, 0x5e, 0x9a, 0x25, 0xbb, 0xc0, 0x94, 0x2b, 0xf3, 0xd2, 0x2c, 0x69, 0x11, 0x26, 0xdb, 0x78, 0xd9, 0xad, 0x5f, 0xe5,
0x6d, 0xc2, 0xe4, 0xe3, 0x50, 0x76, 0x1b, 0xd7, 0xb9, 0x5d, 0x95, 0xf6, 0xff, 0x48, 0x33, 0x9a, 0x76, 0x55, 0xda, 0x3f, 0x93, 0x66, 0x34, 0x09, 0xe0, 0x43, 0xb0, 0x2c, 0x7a, 0x93, 0x1d, 0x78,
0x06, 0xf0, 0x31, 0x58, 0x15, 0xfd, 0xe9, 0x7b, 0x7d, 0xed, 0x3a, 0xb7, 0x1b, 0x62, 0x92, 0x66, 0xf5, 0x2a, 0xb7, 0xeb, 0x62, 0xbc, 0xcc, 0xa2, 0xc1, 0xa2, 0x25, 0xd1, 0x93, 0x8d, 0xb6, 0x09,
0x71, 0x6d, 0xa3, 0x15, 0xd1, 0x97, 0xd7, 0x77, 0x0b, 0x18, 0xa2, 0xef, 0x45, 0x69, 0x40, 0xfa, 0x0c, 0xd1, 0xf3, 0xa2, 0x34, 0x20, 0x3d, 0xd9, 0x64, 0xcb, 0xee, 0xda, 0x55, 0x6e, 0x5b, 0x13,
0xf2, 0xea, 0x2e, 0xbb, 0xeb, 0xd7, 0xb9, 0x6d, 0x4d, 0xb9, 0x9f, 0x14, 0x73, 0x68, 0x55, 0xf4, 0xe1, 0xc7, 0x85, 0x0f, 0x2d, 0x8b, 0x9e, 0x1c, 0xc0, 0x87, 0x00, 0xa8, 0x29, 0x49, 0x05, 0xd5,
0xe5, 0x00, 0x3e, 0x06, 0x40, 0x2d, 0x49, 0x2a, 0xa8, 0x8b, 0xb7, 0x76, 0x9d, 0xdb, 0x15, 0x69, 0x22, 0x57, 0xae, 0x72, 0xbb, 0x22, 0xad, 0x92, 0x7b, 0x3c, 0x84, 0x0e, 0x58, 0x54, 0xdc, 0x86,
0x95, 0xdc, 0x93, 0x21, 0x74, 0xc0, 0xb2, 0xe2, 0x36, 0x24, 0xb7, 0x79, 0x9d, 0xdb, 0x46, 0x4c, 0xe4, 0x36, 0xaf, 0x72, 0xdb, 0x88, 0x69, 0xa8, 0x38, 0x95, 0xab, 0xd8, 0x2a, 0x46, 0x12, 0xda,
0x43, 0xc5, 0xa9, 0xa6, 0x8a, 0x52, 0x31, 0x92, 0xd0, 0x1e, 0x09, 0xe4, 0xdd, 0x66, 0xa0, 0x11, 0x25, 0x81, 0xec, 0x42, 0x06, 0x1a, 0x42, 0xe7, 0xc7, 0x05, 0x60, 0x9c, 0xf7, 0x10, 0xe1, 0x59,
0x74, 0xbe, 0x5d, 0x02, 0xc6, 0x45, 0x1f, 0x11, 0x9e, 0xc5, 0x02, 0xbe, 0x02, 0x96, 0x4f, 0x53, 0x2c, 0xe0, 0x0b, 0x60, 0xf9, 0x34, 0x15, 0x0c, 0xfb, 0xc2, 0x9b, 0xda, 0x5a, 0xf7, 0xc1, 0xb8,
0xc1, 0xb0, 0x2f, 0xbc, 0x99, 0xd2, 0xba, 0x8f, 0x26, 0xf7, 0xcc, 0xbc, 0x87, 0x83, 0x1a, 0x23, 0x23, 0xcc, 0x46, 0x38, 0xa8, 0x3e, 0x34, 0xed, 0xeb, 0xfd, 0x5f, 0x03, 0x8b, 0xad, 0x98, 0xd2,
0xd3, 0x81, 0xae, 0xff, 0x3a, 0x58, 0x6e, 0xc7, 0x94, 0x26, 0xb2, 0x13, 0x4c, 0xa4, 0x00, 0x44, 0x44, 0x56, 0x82, 0x89, 0x14, 0x80, 0x48, 0xee, 0x9a, 0x3c, 0xe5, 0x92, 0x7c, 0xdd, 0xfc, 0xe7,
0xb2, 0x6a, 0x72, 0x97, 0x4b, 0xf2, 0x9b, 0xe9, 0x2f, 0x37, 0x77, 0x79, 0xae, 0x55, 0xdc, 0x0d, 0xfa, 0x29, 0xcf, 0x94, 0x8a, 0xbb, 0xae, 0x5f, 0x38, 0x35, 0xa5, 0xad, 0xf3, 0x9d, 0x62, 0x6f,
0xfd, 0xdd, 0x54, 0x57, 0xda, 0x3a, 0xde, 0x29, 0x6a, 0x2b, 0x5b, 0xc9, 0x02, 0x25, 0x46, 0x84, 0x65, 0x29, 0x59, 0xa0, 0xc4, 0x88, 0x90, 0x87, 0x66, 0xa2, 0x62, 0x08, 0xef, 0x03, 0x83, 0x91,
0xdc, 0x34, 0x13, 0x15, 0x43, 0xf8, 0x10, 0x18, 0x8c, 0xf4, 0x08, 0x13, 0x24, 0x90, 0x9b, 0x63, 0x2e, 0x61, 0x82, 0x04, 0xf2, 0x70, 0x0c, 0x34, 0xc2, 0xf0, 0x1e, 0x30, 0x42, 0xcc, 0xbd, 0x8c,
0xa0, 0x31, 0x86, 0x0f, 0x80, 0x11, 0x62, 0xee, 0x65, 0x9c, 0x04, 0x6a, 0x27, 0xd0, 0x6a, 0x88, 0x93, 0x40, 0x9d, 0x04, 0x5a, 0x0e, 0x31, 0xff, 0x82, 0x93, 0xe0, 0x59, 0xf9, 0x87, 0x9f, 0xed,
0xf9, 0xff, 0x38, 0x09, 0x5e, 0x94, 0xbf, 0xf9, 0xc1, 0x5e, 0x70, 0x30, 0xa8, 0x1e, 0xf8, 0x3e, 0x39, 0x07, 0x83, 0xea, 0xbe, 0xef, 0x13, 0xce, 0xcf, 0xb3, 0x4e, 0x4c, 0xfe, 0xa2, 0xc2, 0x76,
0xe1, 0xfc, 0x22, 0xeb, 0xc6, 0xe4, 0x37, 0x3a, 0x6c, 0x0f, 0x98, 0x5c, 0x50, 0x86, 0x43, 0xe2, 0x81, 0xc9, 0x05, 0x65, 0x38, 0x24, 0xde, 0x05, 0xe9, 0xeb, 0x3a, 0x53, 0x55, 0xa3, 0xed, 0x9f,
0x5d, 0x92, 0x81, 0xee, 0x33, 0xd5, 0x35, 0xda, 0xfe, 0x2f, 0x32, 0xe0, 0x68, 0x1a, 0x68, 0x89, 0x90, 0x3e, 0x47, 0x93, 0x40, 0x4b, 0xbc, 0x2b, 0x81, 0xea, 0x39, 0xc3, 0x3e, 0xd1, 0x2f, 0xb1,
0x0f, 0x25, 0x50, 0xbd, 0x60, 0xd8, 0x27, 0xfa, 0xfb, 0xae, 0xe8, 0xd5, 0x02, 0x32, 0x2d, 0xa1, 0xa2, 0x56, 0x0b, 0xc8, 0xb4, 0x84, 0x46, 0x85, 0xb6, 0x88, 0x12, 0x42, 0x33, 0xa1, 0xbf, 0xa7,
0x51, 0xa1, 0x2d, 0xa2, 0x84, 0xd0, 0x4c, 0xe8, 0xf3, 0x34, 0x82, 0x45, 0x04, 0x23, 0xa4, 0x4f, 0x21, 0x2c, 0x32, 0x18, 0x21, 0x3d, 0xe2, 0xcb, 0x6d, 0x2c, 0x23, 0x8d, 0xe0, 0x1e, 0x58, 0x09,
0x7c, 0x59, 0xc6, 0x32, 0xd2, 0x08, 0xee, 0x83, 0x5a, 0x10, 0x71, 0xf9, 0xe1, 0xcb, 0x05, 0xf6, 0x22, 0x2e, 0x9f, 0xa8, 0x5c, 0x60, 0xff, 0x42, 0x2d, 0xdf, 0xb5, 0xae, 0x72, 0xdb, 0xd4, 0x8e,
0x2f, 0x55, 0xfa, 0xae, 0x75, 0x9d, 0xdb, 0xa6, 0x9e, 0x38, 0x2f, 0xec, 0x68, 0x06, 0xc1, 0x97, 0xb3, 0xc2, 0x8e, 0xa6, 0x10, 0x7c, 0x0e, 0xea, 0xe3, 0x34, 0x39, 0x5b, 0xb9, 0x37, 0x86, 0x0b,
0xa0, 0x31, 0x09, 0x93, 0xab, 0x95, 0xb5, 0x31, 0x5c, 0x78, 0x9d, 0xdb, 0xf5, 0xb1, 0xab, 0x9c, 0xaf, 0x72, 0xbb, 0x36, 0x0a, 0x95, 0x1e, 0x34, 0x83, 0x8b, 0x93, 0x0e, 0x48, 0x2b, 0x0b, 0x65,
0x41, 0x73, 0xb8, 0xd8, 0xe9, 0x80, 0xb4, 0xb3, 0x50, 0x36, 0x9f, 0x81, 0x14, 0x28, 0xac, 0x71, 0xf1, 0x19, 0x48, 0x81, 0xc2, 0x1a, 0x47, 0x49, 0x24, 0x64, 0xb1, 0x2d, 0x22, 0x05, 0xe0, 0x73,
0x94, 0x44, 0x42, 0x36, 0xdb, 0x32, 0x52, 0x00, 0xbe, 0x04, 0x15, 0xda, 0x23, 0x8c, 0x45, 0x01, 0x50, 0xa1, 0x5d, 0xc2, 0x58, 0x14, 0x10, 0x2e, 0xaf, 0xa4, 0xbf, 0x7b, 0xdf, 0xa2, 0x71, 0x7c,
0xe1, 0xf2, 0xa1, 0xfb, 0xbd, 0xaf, 0x66, 0x34, 0xf1, 0x2f, 0x92, 0xd3, 0x1f, 0xf5, 0x09, 0x49, 0xb1, 0x38, 0xfd, 0xfc, 0x4e, 0x48, 0x42, 0x59, 0x5f, 0xde, 0x31, 0x7a, 0x71, 0xca, 0xf1, 0xa9,
0x28, 0x1b, 0xc8, 0x97, 0x4b, 0x27, 0xa7, 0x26, 0xfe, 0x2d, 0xed, 0x68, 0x06, 0x41, 0x17, 0x40, 0xb4, 0xa3, 0x29, 0x04, 0x5d, 0x00, 0x75, 0x1a, 0x23, 0x22, 0x63, 0xa9, 0x27, 0xbf, 0x7f, 0x53,
0x1d, 0xc6, 0x88, 0xc8, 0x58, 0xea, 0xc9, 0xf3, 0x6f, 0xca, 0x58, 0x79, 0x0a, 0xd5, 0x2c, 0x92, 0xe6, 0xca, 0xaf, 0x50, 0x79, 0x91, 0x74, 0x1e, 0x62, 0x81, 0xd1, 0x35, 0xcb, 0x49, 0xd9, 0x28,
0x93, 0x47, 0x58, 0x60, 0x74, 0xc3, 0x72, 0x5a, 0x36, 0xca, 0xd6, 0xf2, 0x69, 0xd9, 0x58, 0xb5, 0x5b, 0x8b, 0x27, 0x65, 0x63, 0xd9, 0x32, 0x46, 0xeb, 0xd7, 0xb3, 0x40, 0xab, 0x43, 0x3c, 0x41,
0x8c, 0x71, 0xfe, 0x7a, 0x15, 0x68, 0x6d, 0x84, 0xa7, 0xe8, 0x5d, 0xf7, 0xdd, 0xd5, 0xe6, 0xe2, 0xef, 0xba, 0x6f, 0x2e, 0x37, 0xe6, 0xdf, 0x5e, 0x6e, 0xcc, 0xbf, 0xbb, 0xdc, 0x98, 0xff, 0xe9,
0xfb, 0xab, 0xcd, 0xc5, 0x0f, 0x57, 0x9b, 0x8b, 0xdf, 0x7d, 0xdc, 0x5c, 0x78, 0xff, 0x71, 0x73, 0xfd, 0xc6, 0xdc, 0xdb, 0xf7, 0x1b, 0x73, 0xbf, 0xbf, 0xdf, 0x98, 0xfb, 0x6a, 0x6b, 0xa2, 0x8f,
0xe1, 0xe7, 0x8f, 0x9b, 0x0b, 0x9f, 0x6d, 0x4f, 0xdd, 0xd8, 0xa2, 0x83, 0x19, 0x8f, 0x78, 0x6b, 0x8b, 0x36, 0x66, 0x3c, 0xe2, 0xcd, 0xf1, 0xbf, 0xa6, 0x9e, 0xfc, 0xdf, 0x24, 0xbb, 0x79, 0x6b,
0xf2, 0x5f, 0xac, 0x2f, 0xff, 0x8d, 0xc9, 0x7b, 0xbb, 0xbd, 0x22, 0xff, 0x65, 0x3d, 0xfb, 0x35, 0x49, 0xfe, 0x1f, 0x7a, 0xf2, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x34, 0x70, 0xb1, 0x79, 0x55,
0x00, 0x00, 0xff, 0xff, 0x1a, 0x33, 0x43, 0x0b, 0xab, 0x0d, 0x00, 0x00, 0x0d, 0x00, 0x00,
} }
func (m *Params) Marshal() (dAtA []byte, err error) { func (m *Params) Marshal() (dAtA []byte, err error) {
@ -861,20 +859,6 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i-- i--
dAtA[i] = 0x8a dAtA[i] = 0x8a
} }
if m.CatalystBlock != nil {
{
size := m.CatalystBlock.Size()
i -= size
if _, err := m.CatalystBlock.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintEvm(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1
i--
dAtA[i] = 0x82
}
if m.BerlinBlock != nil { if m.BerlinBlock != nil {
{ {
size := m.BerlinBlock.Size() size := m.BerlinBlock.Size()
@ -1506,10 +1490,6 @@ func (m *ChainConfig) Size() (n int) {
l = m.BerlinBlock.Size() l = m.BerlinBlock.Size()
n += 1 + l + sovEvm(uint64(l)) n += 1 + l + sovEvm(uint64(l))
} }
if m.CatalystBlock != nil {
l = m.CatalystBlock.Size()
n += 2 + l + sovEvm(uint64(l))
}
if m.LondonBlock != nil { if m.LondonBlock != nil {
l = m.LondonBlock.Size() l = m.LondonBlock.Size()
n += 2 + l + sovEvm(uint64(l)) n += 2 + l + sovEvm(uint64(l))
@ -2400,42 +2380,6 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 16:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field CatalystBlock", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowEvm
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthEvm
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthEvm
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var v github_com_cosmos_cosmos_sdk_types.Int
m.CatalystBlock = &v
if err := m.CatalystBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 17: case 17:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field LondonBlock", wireType) return fmt.Errorf("proto: wrong wireType = %d for field LondonBlock", wireType)

View File

@ -27,7 +27,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
type GenesisState struct { type GenesisState struct {
// accounts is an array containing the ethereum genesis accounts. // accounts is an array containing the ethereum genesis accounts.
Accounts []GenesisAccount `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts"` Accounts []GenesisAccount `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts"`
// params defines all the paramaters of the module. // params defines all the parameters of the module.
Params Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params"` Params Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params"`
} }

View File

@ -20,7 +20,6 @@ import (
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/grpclog" "google.golang.org/grpc/grpclog"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
) )
@ -31,7 +30,6 @@ var _ status.Status
var _ = runtime.String var _ = runtime.String
var _ = utilities.NewDoubleArray var _ = utilities.NewDoubleArray
var _ = descriptor.ForMessage var _ = descriptor.ForMessage
var _ = metadata.Join
func request_Query_Account_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func request_Query_Account_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryAccountRequest var protoReq QueryAccountRequest
@ -508,14 +506,12 @@ func local_request_Query_TraceTx_0(ctx context.Context, marshaler runtime.Marsha
// RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // RegisterQueryHandlerServer registers the http handlers for service Query to "mux".
// UnaryRPC :call QueryServer directly. // UnaryRPC :call QueryServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. // Note that using this registration option will cause many gRPC library features (such as grpc.SendHeader, etc) to stop working. Consider using RegisterQueryHandlerFromEndpoint instead.
func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error {
mux.Handle("GET", pattern_Query_Account_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_Account_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -523,7 +519,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_Account_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_Account_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -537,8 +532,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_CosmosAccount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_CosmosAccount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -546,7 +539,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_CosmosAccount_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_CosmosAccount_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -560,8 +552,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_ValidatorAccount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_ValidatorAccount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -569,7 +559,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_ValidatorAccount_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_ValidatorAccount_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -583,8 +572,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_Balance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_Balance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -592,7 +579,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_Balance_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_Balance_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -606,8 +592,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_Storage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_Storage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -615,7 +599,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_Storage_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_Storage_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -629,8 +612,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_Code_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_Code_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -638,7 +619,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_Code_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_Code_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -652,8 +632,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -661,7 +639,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_Params_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_Params_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -675,8 +652,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_EthCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_EthCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -684,7 +659,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_EthCall_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_EthCall_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -698,8 +672,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_EstimateGas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_EstimateGas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -707,7 +679,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_EstimateGas_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_EstimateGas_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -721,8 +692,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_TraceTx_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_TraceTx_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -730,7 +699,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_TraceTx_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_TraceTx_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)

View File

@ -20,7 +20,6 @@ import (
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/grpclog" "google.golang.org/grpc/grpclog"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
) )
@ -31,7 +30,6 @@ var _ status.Status
var _ = runtime.String var _ = runtime.String
var _ = utilities.NewDoubleArray var _ = utilities.NewDoubleArray
var _ = descriptor.ForMessage var _ = descriptor.ForMessage
var _ = metadata.Join
func request_Query_Params_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func request_Query_Params_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryParamsRequest var protoReq QueryParamsRequest
@ -90,14 +88,12 @@ func local_request_Query_BlockGas_0(ctx context.Context, marshaler runtime.Marsh
// RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // RegisterQueryHandlerServer registers the http handlers for service Query to "mux".
// UnaryRPC :call QueryServer directly. // UnaryRPC :call QueryServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. // Note that using this registration option will cause many gRPC library features (such as grpc.SendHeader, etc) to stop working. Consider using RegisterQueryHandlerFromEndpoint instead.
func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error {
mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -105,7 +101,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_Params_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_Params_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -119,8 +114,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_BaseFee_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_BaseFee_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -128,7 +121,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_BaseFee_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_BaseFee_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@ -142,8 +134,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
mux.Handle("GET", pattern_Query_BlockGas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("GET", pattern_Query_BlockGas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil { if err != nil {
@ -151,7 +141,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return return
} }
resp, md, err := local_request_Query_BlockGas_0(rctx, inboundMarshaler, server, req, pathParams) resp, md, err := local_request_Query_BlockGas_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md) ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil { if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)