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) |
| `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) |
| `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) |
@ -350,7 +349,7 @@ GenesisState defines the evm module's genesis state.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `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"
sdk "github.com/cosmos/cosmos-sdk/types"
"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"
@ -45,7 +45,7 @@ type txConfig struct {
func NewTxConfig(marshaler amino.ProtoCodecMarshaler) client.TxConfig {
return &txConfig{
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/go-bip39 v1.0.0
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/golang/protobuf v1.5.2
github.com/gorilla/mux v1.8.0
@ -35,12 +35,13 @@ require (
github.com/tyler-smith/go-bip39 v1.1.0
go.etcd.io/bbolt v1.3.6 // 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
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v2 v2.4.0
)
require github.com/davecgh/go-spew v1.1.1
require (
filippo.io/edwards25519 v1.0.0-beta.2 // 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-go v0.9.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/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/dgraph-io/badger/v2 v2.2007.2 // indirect
@ -134,9 +134,9 @@ require (
github.com/zondax/hid v0.9.0 // indirect
golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f // 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/text v0.3.6 // indirect
golang.org/x/text v0.3.7 // indirect
google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/ini.v1 v1.63.2 // 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-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.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/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
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/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-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 v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
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/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.9 h1:uMSWt0qDhaqqCk0PWqfDFOMUExmk4Tnbma6c6oXW+Pk=
github.com/ethereum/go-ethereum v1.10.9/go.mod h1:CaTMQrv51WaAlD2eULQ3f03KiahDRO28fleQcKjWrrg=
github.com/ethereum/go-ethereum v1.10.11 h1:KKIcwpmur9iTaVbR2dxlHu+peHVhU+/KX//NWvT1n9U=
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/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=
@ -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-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.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.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
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/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-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/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc=
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-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-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-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-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
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.4/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.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-20181108054448-85acf8d2951c/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-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-20211007155348-82e027067bd4 h1:YXPV/eKW0ZWRdB5tyI6aPoaa2Wxb4OSlFrTREMdwn64=
google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211021150943-2b146023228c h1:FqrtZMB5Wr+/RecOM3uPJNPfWR8Upb5hAPnt7PU6i4k=
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/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
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.moretags) = "yaml:\"berlin_block\""
];
// DEPRECATED: EWASM and YOLOV3 block have been deprecated
reserved 14, 15;
reserved "yolo_v3_block", "ewasm_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\""
];
// DEPRECATED: EWASM, YOLOV3 and Catalyst block have been deprecated
reserved 14, 15, 16;
reserved "yolo_v3_block", "ewasm_block", "catalyst_block";
// London switch block (nil = no fork, 0 = already on london)
string london_block = 17 [
(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 {
// accounts is an array containing the ethereum genesis accounts.
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 ];
}

View File

@ -7,6 +7,7 @@ import (
"fmt"
"math/big"
"strconv"
"time"
"github.com/cosmos/cosmos-sdk/client/flags"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
@ -42,8 +43,9 @@ import (
// Implemented by EVMBackend.
type Backend interface {
// General Ethereum API
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.
RPCGasCap() uint64 // global gas cap for eth_call over rpc: DoS protection
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
SuggestGasTipCap() (*big.Int, error)
@ -53,6 +55,8 @@ type Backend interface {
GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpctypes.ResultBlock, error)
GetBlockByNumber(blockNum types.BlockNumber, 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
HeaderByNumber(blockNum types.BlockNumber) (*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
}
if resBlock.Block == nil {
if resBlock == nil || resBlock.Block == nil {
e.logger.Debug("BlockByHash block not found", "hash", hash.Hex())
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)
}
// 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
func (e *EVMBackend) GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpctypes.ResultBlock, error) {
height := blockNum.Int64()
@ -342,14 +437,15 @@ func (e *EVMBackend) CurrentHeader() *ethtypes.Header {
// HeaderByNumber returns the block header identified by height.
func (e *EVMBackend) HeaderByNumber(blockNum types.BlockNumber) (*ethtypes.Header, error) {
height := blockNum.Int64()
currentBlockNumber, _ := e.BlockNumber()
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)
}
@ -391,7 +487,7 @@ func (e *EVMBackend) HeaderByHash(blockHash common.Hash) (*ethtypes.Header, erro
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())
}
@ -475,14 +571,15 @@ func (e *EVMBackend) GetLogs(hash common.Hash) ([][]*ethtypes.Log, error) {
func (e *EVMBackend) GetLogsByNumber(blockNum types.BlockNumber) ([][]*ethtypes.Log, error) {
height := blockNum.Int64()
currentBlockNumber, _ := e.BlockNumber()
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)
}
@ -755,6 +852,11 @@ func (e *EVMBackend) RPCGasCap() uint64 {
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.
func (e *EVMBackend) RPCTxFeeCap() float64 {
return e.cfg.JSONRPC.TxFeeCap

View File

@ -13,6 +13,7 @@ import (
"sync"
"time"
"github.com/davecgh/go-spew/spew"
"github.com/tendermint/tendermint/types"
evmtypes "github.com/tharsis/ethermint/x/evm/types"
@ -21,6 +22,9 @@ import (
"github.com/cosmos/cosmos-sdk/server"
"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/tharsis/ethermint/rpc/ethereum/backend"
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)
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,
// it will return an empty context and the gRPC query will use
// 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 {
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.
func BlockMaxGasFromConsensusParams(ctx context.Context, clientCtx client.Context) (int64, error) {
resConsParams, err := clientCtx.Client.ConsensusParams(ctx, nil)

View File

@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"path"
"time"
"github.com/spf13/viper"
@ -31,6 +32,7 @@ const (
DefaultFilterCap int32 = 200
DefaultEVMTimeout = 5 * time.Second
// default 1.0 eth
DefaultTxFeeCap float64 = 1.0
)
@ -64,6 +66,8 @@ type JSONRPCConfig struct {
WsAddress string `mapstructure:"ws-address"`
// GasCap is the global gas cap for eth-call variants.
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 float64 `mapstructure:"txfee-cap"`
// FilterCap is the global cap for total number of filters that can be created.
@ -149,12 +153,14 @@ func GetDefaultAPINamespaces() []string {
// DefaultJSONRPCConfig returns an EVM config with the JSON-RPC API enabled by default
func DefaultJSONRPCConfig() *JSONRPCConfig {
return &JSONRPCConfig{
Enable: true,
API: GetDefaultAPINamespaces(),
Address: DefaultJSONRPCAddress,
WsAddress: DefaultJSONRPCWsAddress,
GasCap: DefaultGasCap,
FilterCap: DefaultFilterCap,
Enable: true,
API: GetDefaultAPINamespaces(),
Address: DefaultJSONRPCAddress,
WsAddress: DefaultJSONRPCWsAddress,
GasCap: DefaultGasCap,
EVMTimeout: DefaultEVMTimeout,
TxFeeCap: DefaultTxFeeCap,
FilterCap: DefaultFilterCap,
}
}
@ -168,6 +174,14 @@ func (c JSONRPCConfig) Validate() error {
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
seenAPIs := make(map[string]bool)
for _, api := range c.API {
@ -216,12 +230,14 @@ func GetConfig(v *viper.Viper) Config {
Tracer: v.GetString("evm.tracer"),
},
JSONRPC: JSONRPCConfig{
Enable: v.GetBool("json-rpc.enable"),
API: v.GetStringSlice("json-rpc.api"),
Address: v.GetString("json-rpc.address"),
WsAddress: v.GetString("json-rpc.ws-address"),
GasCap: v.GetUint64("json-rpc.gas-cap"),
FilterCap: v.GetInt32("json-rpc.filter-cap"),
Enable: v.GetBool("json-rpc.enable"),
API: v.GetStringSlice("json-rpc.api"),
Address: v.GetString("json-rpc.address"),
WsAddress: v.GetString("json-rpc.ws-address"),
GasCap: v.GetUint64("json-rpc.gas-cap"),
FilterCap: v.GetInt32("json-rpc.filter-cap"),
TxFeeCap: v.GetFloat64("json-rpc.txfee-cap"),
EVMTimeout: v.GetDuration("json-rpc.evm-timeout"),
},
TLS: TLSConfig{
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.
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
filter-cap = {{ .JSONRPC.FilterCap }}

View File

@ -26,13 +26,14 @@ const (
// JSON-RPC flags
const (
JSONRPCEnable = "json-rpc.enable"
JSONRPCAPI = "json-rpc.api"
JSONRPCAddress = "json-rpc.address"
JSONWsAddress = "json-rpc.ws-address"
JSONRPCGasCap = "json-rpc.gas-cap"
JSONRPCTxFeeCap = "json-rpc.txfee-cap"
JSONRPCFilterCap = "json-rpc.filter-cap"
JSONRPCEnable = "json-rpc.enable"
JSONRPCAPI = "json-rpc.api"
JSONRPCAddress = "json-rpc.address"
JSONWsAddress = "json-rpc.ws-address"
JSONRPCGasCap = "json-rpc.gas-cap"
JSONRPCEVMTimeout = "json-rpc.evm-timeout"
JSONRPCTxFeeCap = "json-rpc.txfee-cap"
JSONRPCFilterCap = "json-rpc.filter-cap"
)
// EVM flags

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().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().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)")

View File

@ -15,22 +15,24 @@ import (
// All the negative or nil values are converted to nil
func (cc ChainConfig) EthereumConfig(chainID *big.Int) *params.ChainConfig {
return &params.ChainConfig{
ChainID: chainID,
HomesteadBlock: getBlockValue(cc.HomesteadBlock),
DAOForkBlock: getBlockValue(cc.DAOForkBlock),
DAOForkSupport: cc.DAOForkSupport,
EIP150Block: getBlockValue(cc.EIP150Block),
EIP150Hash: common.HexToHash(cc.EIP150Hash),
EIP155Block: getBlockValue(cc.EIP155Block),
EIP158Block: getBlockValue(cc.EIP158Block),
ByzantiumBlock: getBlockValue(cc.ByzantiumBlock),
ConstantinopleBlock: getBlockValue(cc.ConstantinopleBlock),
PetersburgBlock: getBlockValue(cc.PetersburgBlock),
IstanbulBlock: getBlockValue(cc.IstanbulBlock),
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
BerlinBlock: getBlockValue(cc.BerlinBlock),
LondonBlock: getBlockValue(cc.LondonBlock),
CatalystBlock: getBlockValue(cc.CatalystBlock),
ChainID: chainID,
HomesteadBlock: getBlockValue(cc.HomesteadBlock),
DAOForkBlock: getBlockValue(cc.DAOForkBlock),
DAOForkSupport: cc.DAOForkSupport,
EIP150Block: getBlockValue(cc.EIP150Block),
EIP150Hash: common.HexToHash(cc.EIP150Hash),
EIP155Block: getBlockValue(cc.EIP155Block),
EIP158Block: getBlockValue(cc.EIP158Block),
ByzantiumBlock: getBlockValue(cc.ByzantiumBlock),
ConstantinopleBlock: getBlockValue(cc.ConstantinopleBlock),
PetersburgBlock: getBlockValue(cc.PetersburgBlock),
IstanbulBlock: getBlockValue(cc.IstanbulBlock),
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
BerlinBlock: getBlockValue(cc.BerlinBlock),
LondonBlock: getBlockValue(cc.LondonBlock),
TerminalTotalDifficulty: nil,
Ethash: nil,
Clique: nil,
}
}
@ -64,7 +66,6 @@ func DefaultChainConfig() ChainConfig {
MuirGlacierBlock: &muirGlacierBlock,
BerlinBlock: &berlinBlock,
LondonBlock: &londonBlock,
CatalystBlock: nil,
}
}
@ -118,9 +119,6 @@ func (cc ChainConfig) Validate() error {
if err := validateBlock(cc.LondonBlock); err != nil {
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
if err := cc.EthereumConfig(nil).CheckConfigForkOrder(); err != nil {

View File

@ -40,7 +40,6 @@ func TestChainConfigValidate(t *testing.T) {
MuirGlacierBlock: newIntPtr(0),
BerlinBlock: newIntPtr(0),
LondonBlock: newIntPtr(0),
CatalystBlock: newIntPtr(0),
},
false,
},
@ -60,7 +59,6 @@ func TestChainConfigValidate(t *testing.T) {
MuirGlacierBlock: nil,
BerlinBlock: nil,
LondonBlock: nil,
CatalystBlock: nil,
},
false,
},
@ -238,25 +236,6 @@ func TestChainConfigValidate(t *testing.T) {
},
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",
ChainConfig{
@ -272,7 +251,6 @@ func TestChainConfigValidate(t *testing.T) {
MuirGlacierBlock: newIntPtr(0),
BerlinBlock: newIntPtr(0),
LondonBlock: newIntPtr(0),
CatalystBlock: newIntPtr(0),
},
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"`
// 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"`
// 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)
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) }
var fileDescriptor_d21ecc92c8c8583e = []byte{
// 1436 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4f, 0x6f, 0x1b, 0x37,
0x16, 0xb7, 0x2d, 0xd9, 0x1e, 0x51, 0x23, 0x69, 0x42, 0x3b, 0x5e, 0x25, 0xc1, 0x7a, 0xbc, 0x73,
0x58, 0x78, 0x81, 0xc4, 0x8a, 0x1d, 0x18, 0x1b, 0x24, 0xd8, 0x83, 0xc7, 0x76, 0xb2, 0xf6, 0x66,
0x77, 0x0d, 0xda, 0x8b, 0x05, 0x0a, 0x14, 0x03, 0x6a, 0x86, 0x19, 0x4d, 0x3d, 0x33, 0x14, 0x48,
0x8e, 0x2a, 0x15, 0xfd, 0x00, 0x05, 0x7a, 0xe9, 0x07, 0xe8, 0xa1, 0x1f, 0x27, 0xe8, 0x29, 0x97,
0x02, 0x45, 0x0f, 0x83, 0xc0, 0xb9, 0xf9, 0xa8, 0x4f, 0x50, 0x0c, 0x49, 0xfd, 0x75, 0xd0, 0xd6,
0x3e, 0x89, 0xbf, 0xc7, 0xf7, 0x7e, 0x3f, 0xbe, 0xc7, 0x47, 0x72, 0x04, 0x1e, 0x12, 0xd1, 0x21,
0x2c, 0x89, 0x52, 0xd1, 0x22, 0xbd, 0xa4, 0xd5, 0xdb, 0x2d, 0x7e, 0x76, 0xba, 0x8c, 0x0a, 0x0a,
0xad, 0xf1, 0xdc, 0x4e, 0x61, 0xec, 0xed, 0x3e, 0x5c, 0x0f, 0x69, 0x48, 0xe5, 0x64, 0xab, 0x18,
0x29, 0x3f, 0xe7, 0xa7, 0x25, 0xb0, 0x72, 0x86, 0x19, 0x4e, 0x38, 0xdc, 0x05, 0x15, 0xd2, 0x4b,
0xbc, 0x80, 0xa4, 0x34, 0x69, 0x2e, 0x6e, 0x2d, 0x6e, 0x57, 0xdc, 0xf5, 0x61, 0x6e, 0x5b, 0x03,
0x9c, 0xc4, 0x2f, 0x9c, 0xf1, 0x94, 0x83, 0x0c, 0xd2, 0x4b, 0x8e, 0x8a, 0x21, 0xfc, 0x07, 0xa8,
0x91, 0x14, 0xb7, 0x63, 0xe2, 0xf9, 0x8c, 0x60, 0x41, 0x9a, 0x4b, 0x5b, 0x8b, 0xdb, 0x86, 0xdb,
0x1c, 0xe6, 0xf6, 0xba, 0x0e, 0x9b, 0x9e, 0x76, 0x90, 0xa9, 0xf0, 0xa1, 0x84, 0xf0, 0xef, 0xa0,
0x3a, 0x9a, 0xc7, 0x71, 0xdc, 0x2c, 0xc9, 0xe0, 0x8d, 0x61, 0x6e, 0xc3, 0xd9, 0x60, 0x1c, 0xc7,
0x0e, 0x02, 0x3a, 0x14, 0xc7, 0x31, 0x3c, 0x00, 0x80, 0xf4, 0x05, 0xc3, 0x1e, 0x89, 0xba, 0xbc,
0x59, 0xde, 0x2a, 0x6d, 0x97, 0x5c, 0xe7, 0x2a, 0xb7, 0x2b, 0xc7, 0x85, 0xf5, 0xf8, 0xe4, 0x8c,
0x0f, 0x73, 0xfb, 0x9e, 0x26, 0x19, 0x3b, 0x3a, 0xa8, 0x22, 0xc1, 0x71, 0xd4, 0xe5, 0xf0, 0x73,
0x60, 0xfa, 0x1d, 0x1c, 0xa5, 0x9e, 0x4f, 0xd3, 0xb7, 0x51, 0xd8, 0x5c, 0xde, 0x5a, 0xdc, 0xae,
0xee, 0xfd, 0x79, 0x67, 0xbe, 0x6e, 0x3b, 0x87, 0x85, 0xd7, 0xa1, 0x74, 0x72, 0x1f, 0xbd, 0xcb,
0xed, 0x85, 0x61, 0x6e, 0xaf, 0x29, 0xea, 0x69, 0x02, 0x07, 0x55, 0xfd, 0x89, 0xa7, 0xf3, 0x7d,
0x0d, 0x54, 0xa7, 0x22, 0x61, 0x02, 0x1a, 0x1d, 0x9a, 0x10, 0x2e, 0x08, 0x0e, 0xbc, 0x76, 0x4c,
0xfd, 0x4b, 0x5d, 0xe2, 0xa3, 0x5f, 0x72, 0xfb, 0xaf, 0x61, 0x24, 0x3a, 0x59, 0x7b, 0xc7, 0xa7,
0x49, 0xcb, 0xa7, 0x3c, 0xa1, 0x5c, 0xff, 0x3c, 0xe1, 0xc1, 0x65, 0x4b, 0x0c, 0xba, 0x84, 0xef,
0x9c, 0xa4, 0x62, 0x98, 0xdb, 0x1b, 0x4a, 0x78, 0x8e, 0xca, 0x41, 0xf5, 0xb1, 0xc5, 0x2d, 0x0c,
0x70, 0x00, 0xea, 0x01, 0xa6, 0xde, 0x5b, 0xca, 0x2e, 0xb5, 0xda, 0x92, 0x54, 0x3b, 0xff, 0xe3,
0x6a, 0x57, 0xb9, 0x6d, 0x1e, 0x1d, 0xfc, 0xf7, 0x15, 0x65, 0x97, 0x92, 0x73, 0x98, 0xdb, 0xf7,
0x95, 0xfa, 0x2c, 0xb3, 0x83, 0xcc, 0x00, 0xd3, 0xb1, 0x1b, 0xfc, 0x3f, 0xb0, 0xc6, 0x0e, 0x3c,
0xeb, 0x76, 0x29, 0x13, 0x7a, 0x67, 0x9f, 0x5c, 0xe5, 0x76, 0x5d, 0x53, 0x9e, 0xab, 0x99, 0x61,
0x6e, 0xff, 0x69, 0x8e, 0x54, 0xc7, 0x38, 0xa8, 0xae, 0x69, 0xb5, 0x2b, 0xe4, 0xc0, 0x24, 0x51,
0x77, 0x77, 0xff, 0xa9, 0xce, 0xa8, 0x2c, 0x33, 0x3a, 0xbb, 0x55, 0x46, 0xd5, 0xe3, 0x93, 0xb3,
0xdd, 0xfd, 0xa7, 0xa3, 0x84, 0xf4, 0x3e, 0x4e, 0xd3, 0x3a, 0xa8, 0xaa, 0xa0, 0xca, 0xe6, 0x04,
0x68, 0xe8, 0x75, 0x30, 0xef, 0xc8, 0x2e, 0xa9, 0xb8, 0xdb, 0x57, 0xb9, 0x0d, 0x14, 0xd3, 0x3f,
0x31, 0xef, 0x4c, 0xf6, 0xa5, 0x3d, 0xf8, 0x0a, 0xa7, 0x22, 0xca, 0x92, 0x11, 0x17, 0x50, 0xc1,
0x85, 0xd7, 0x78, 0xfd, 0xfb, 0x7a, 0xfd, 0x2b, 0x77, 0x5e, 0xff, 0xfe, 0xa7, 0xd6, 0xbf, 0x3f,
0xbb, 0x7e, 0xe5, 0x33, 0x16, 0x7d, 0xae, 0x45, 0x57, 0xef, 0x2c, 0xfa, 0xfc, 0x53, 0xa2, 0xcf,
0x67, 0x45, 0x95, 0x4f, 0xd1, 0xec, 0x73, 0x95, 0x68, 0x1a, 0x77, 0x6f, 0xf6, 0x1b, 0x45, 0xad,
0x8f, 0x2d, 0x4a, 0xee, 0x6b, 0xb0, 0xee, 0xd3, 0x94, 0x8b, 0xc2, 0x96, 0xd2, 0x6e, 0x4c, 0xb4,
0x66, 0x45, 0x6a, 0x9e, 0xdc, 0x4a, 0xf3, 0x91, 0x3e, 0xd9, 0x9f, 0xe0, 0x73, 0xd0, 0xda, 0xac,
0x59, 0xa9, 0x77, 0x81, 0xd5, 0x25, 0x82, 0x30, 0xde, 0xce, 0x58, 0xa8, 0x95, 0x81, 0x54, 0x3e,
0xbe, 0x95, 0xb2, 0x3e, 0x07, 0xf3, 0x5c, 0x0e, 0x6a, 0x4c, 0x4c, 0x4a, 0xf1, 0x0b, 0x50, 0x8f,
0x8a, 0x65, 0xb4, 0xb3, 0x58, 0xeb, 0x55, 0xa5, 0xde, 0xe1, 0xad, 0xf4, 0xf4, 0x61, 0x9e, 0x65,
0x72, 0x50, 0x6d, 0x64, 0x50, 0x5a, 0x19, 0x80, 0x49, 0x16, 0x31, 0x2f, 0x8c, 0xb1, 0x1f, 0x11,
0xa6, 0xf5, 0x4c, 0xa9, 0xf7, 0xfa, 0x56, 0x7a, 0x0f, 0x94, 0xde, 0x4d, 0x36, 0x07, 0x59, 0x85,
0xf1, 0xb5, 0xb2, 0x29, 0xd9, 0x00, 0x98, 0x6d, 0xc2, 0xe2, 0x28, 0xd5, 0x82, 0x35, 0x29, 0x78,
0x70, 0x2b, 0x41, 0xdd, 0xa7, 0xd3, 0x3c, 0x0e, 0xaa, 0x2a, 0x38, 0x2e, 0xa4, 0x8f, 0x05, 0x8e,
0x07, 0x5c, 0x68, 0x1d, 0xeb, 0xee, 0x85, 0x9c, 0x65, 0x72, 0x50, 0x6d, 0x64, 0x18, 0x67, 0x14,
0xd3, 0x34, 0xa0, 0xa3, 0x8c, 0xee, 0xdd, 0x3d, 0xa3, 0x69, 0x1e, 0x07, 0x55, 0x15, 0x94, 0x2a,
0xa7, 0x65, 0xa3, 0x6e, 0x35, 0x4e, 0xcb, 0x46, 0xc3, 0xb2, 0x50, 0x6d, 0x40, 0x63, 0xea, 0xf5,
0x9e, 0x29, 0x47, 0x54, 0x25, 0x5f, 0x62, 0x3e, 0x3a, 0x43, 0x2d, 0xb0, 0x7c, 0x2e, 0x8a, 0x27,
0xd8, 0x02, 0xa5, 0x4b, 0x32, 0x50, 0x6f, 0x11, 0x2a, 0x86, 0x70, 0x1d, 0x2c, 0xf7, 0x70, 0x9c,
0xa9, 0xb7, 0xbc, 0x82, 0x14, 0x70, 0xce, 0x40, 0xe3, 0x82, 0xe1, 0x94, 0x63, 0x5f, 0x44, 0x34,
0x7d, 0x43, 0x43, 0x0e, 0x21, 0x28, 0xcb, 0x3b, 0x51, 0xc5, 0xca, 0x31, 0xfc, 0x1b, 0x28, 0xc7,
0x34, 0xe4, 0xcd, 0xa5, 0xad, 0xd2, 0x76, 0x75, 0xef, 0xfe, 0xcd, 0xd7, 0xf4, 0x0d, 0x0d, 0x91,
0x74, 0x71, 0x7e, 0x5c, 0x02, 0xa5, 0x37, 0x34, 0x84, 0x4d, 0xb0, 0x8a, 0x83, 0x80, 0x11, 0xce,
0x35, 0xd3, 0x08, 0xc2, 0x0d, 0xb0, 0x22, 0x68, 0x37, 0xf2, 0x15, 0x5d, 0x05, 0x69, 0x54, 0x08,
0x07, 0x58, 0x60, 0xf9, 0xaa, 0x98, 0x48, 0x8e, 0xe1, 0x1e, 0x30, 0x65, 0x66, 0x5e, 0x9a, 0x25,
0x6d, 0xc2, 0xe4, 0xe3, 0x50, 0x76, 0x1b, 0xd7, 0xb9, 0x5d, 0x95, 0xf6, 0xff, 0x48, 0x33, 0x9a,
0x06, 0xf0, 0x31, 0x58, 0x15, 0xfd, 0xe9, 0x7b, 0x7d, 0xed, 0x3a, 0xb7, 0x1b, 0x62, 0x92, 0x66,
0x71, 0x6d, 0xa3, 0x15, 0xd1, 0x97, 0xd7, 0x77, 0x0b, 0x18, 0xa2, 0xef, 0x45, 0x69, 0x40, 0xfa,
0xf2, 0xea, 0x2e, 0xbb, 0xeb, 0xd7, 0xb9, 0x6d, 0x4d, 0xb9, 0x9f, 0x14, 0x73, 0x68, 0x55, 0xf4,
0xe5, 0x00, 0x3e, 0x06, 0x40, 0x2d, 0x49, 0x2a, 0xa8, 0x8b, 0xb7, 0x76, 0x9d, 0xdb, 0x15, 0x69,
0x95, 0xdc, 0x93, 0x21, 0x74, 0xc0, 0xb2, 0xe2, 0x36, 0x24, 0xb7, 0x79, 0x9d, 0xdb, 0x46, 0x4c,
0x43, 0xc5, 0xa9, 0xa6, 0x8a, 0x52, 0x31, 0x92, 0xd0, 0x1e, 0x09, 0xe4, 0xdd, 0x66, 0xa0, 0x11,
0x74, 0xbe, 0x5d, 0x02, 0xc6, 0x45, 0x1f, 0x11, 0x9e, 0xc5, 0x02, 0xbe, 0x02, 0x96, 0x4f, 0x53,
0xc1, 0xb0, 0x2f, 0xbc, 0x99, 0xd2, 0xba, 0x8f, 0x26, 0xf7, 0xcc, 0xbc, 0x87, 0x83, 0x1a, 0x23,
0xd3, 0x81, 0xae, 0xff, 0x3a, 0x58, 0x6e, 0xc7, 0x94, 0x26, 0xb2, 0x13, 0x4c, 0xa4, 0x00, 0x44,
0xb2, 0x6a, 0x72, 0x97, 0x4b, 0xf2, 0x9b, 0xe9, 0x2f, 0x37, 0x77, 0x79, 0xae, 0x55, 0xdc, 0x0d,
0xfd, 0xdd, 0x54, 0x57, 0xda, 0x3a, 0xde, 0x29, 0x6a, 0x2b, 0x5b, 0xc9, 0x02, 0x25, 0x46, 0x84,
0xdc, 0x34, 0x13, 0x15, 0x43, 0xf8, 0x10, 0x18, 0x8c, 0xf4, 0x08, 0x13, 0x24, 0x90, 0x9b, 0x63,
0xa0, 0x31, 0x86, 0x0f, 0x80, 0x11, 0x62, 0xee, 0x65, 0x9c, 0x04, 0x6a, 0x27, 0xd0, 0x6a, 0x88,
0xf9, 0xff, 0x38, 0x09, 0x5e, 0x94, 0xbf, 0xf9, 0xc1, 0x5e, 0x70, 0x30, 0xa8, 0x1e, 0xf8, 0x3e,
0xe1, 0xfc, 0x22, 0xeb, 0xc6, 0xe4, 0x37, 0x3a, 0x6c, 0x0f, 0x98, 0x5c, 0x50, 0x86, 0x43, 0xe2,
0x5d, 0x92, 0x81, 0xee, 0x33, 0xd5, 0x35, 0xda, 0xfe, 0x2f, 0x32, 0xe0, 0x68, 0x1a, 0x68, 0x89,
0x0f, 0x25, 0x50, 0xbd, 0x60, 0xd8, 0x27, 0xfa, 0xfb, 0xae, 0xe8, 0xd5, 0x02, 0x32, 0x2d, 0xa1,
0x51, 0xa1, 0x2d, 0xa2, 0x84, 0xd0, 0x4c, 0xe8, 0xf3, 0x34, 0x82, 0x45, 0x04, 0x23, 0xa4, 0x4f,
0x7c, 0x59, 0xc6, 0x32, 0xd2, 0x08, 0xee, 0x83, 0x5a, 0x10, 0x71, 0xf9, 0xe1, 0xcb, 0x05, 0xf6,
0x2f, 0x55, 0xfa, 0xae, 0x75, 0x9d, 0xdb, 0xa6, 0x9e, 0x38, 0x2f, 0xec, 0x68, 0x06, 0xc1, 0x97,
0xa0, 0x31, 0x09, 0x93, 0xab, 0x95, 0xb5, 0x31, 0x5c, 0x78, 0x9d, 0xdb, 0xf5, 0xb1, 0xab, 0x9c,
0x41, 0x73, 0xb8, 0xd8, 0xe9, 0x80, 0xb4, 0xb3, 0x50, 0x36, 0x9f, 0x81, 0x14, 0x28, 0xac, 0x71,
0x94, 0x44, 0x42, 0x36, 0xdb, 0x32, 0x52, 0x00, 0xbe, 0x04, 0x15, 0xda, 0x23, 0x8c, 0x45, 0x01,
0xe1, 0xf2, 0xa1, 0xfb, 0xbd, 0xaf, 0x66, 0x34, 0xf1, 0x2f, 0x92, 0xd3, 0x1f, 0xf5, 0x09, 0x49,
0x28, 0x1b, 0xc8, 0x97, 0x4b, 0x27, 0xa7, 0x26, 0xfe, 0x2d, 0xed, 0x68, 0x06, 0x41, 0x17, 0x40,
0x1d, 0xc6, 0x88, 0xc8, 0x58, 0xea, 0xc9, 0xf3, 0x6f, 0xca, 0x58, 0x79, 0x0a, 0xd5, 0x2c, 0x92,
0x93, 0x47, 0x58, 0x60, 0x74, 0xc3, 0x72, 0x5a, 0x36, 0xca, 0xd6, 0xf2, 0x69, 0xd9, 0x58, 0xb5,
0x8c, 0x71, 0xfe, 0x7a, 0x15, 0x68, 0x6d, 0x84, 0xa7, 0xe8, 0x5d, 0xf7, 0xdd, 0xd5, 0xe6, 0xe2,
0xfb, 0xab, 0xcd, 0xc5, 0x0f, 0x57, 0x9b, 0x8b, 0xdf, 0x7d, 0xdc, 0x5c, 0x78, 0xff, 0x71, 0x73,
0xe1, 0xe7, 0x8f, 0x9b, 0x0b, 0x9f, 0x6d, 0x4f, 0xdd, 0xd8, 0xa2, 0x83, 0x19, 0x8f, 0x78, 0x6b,
0xf2, 0x5f, 0xac, 0x2f, 0xff, 0x8d, 0xc9, 0x7b, 0xbb, 0xbd, 0x22, 0xff, 0x65, 0x3d, 0xfb, 0x35,
0x00, 0x00, 0xff, 0xff, 0x1a, 0x33, 0x43, 0x0b, 0xab, 0x0d, 0x00, 0x00,
// 1427 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x5d, 0x6f, 0xdb, 0xb6,
0x1a, 0x4e, 0x62, 0x27, 0x91, 0x69, 0xc5, 0x56, 0x99, 0x34, 0xc7, 0x6d, 0x71, 0xa2, 0x1c, 0x5d,
0x1c, 0xe4, 0x00, 0x6d, 0xdc, 0xa4, 0x08, 0x4e, 0xd1, 0x62, 0x17, 0x51, 0x92, 0x76, 0xc9, 0xba,
0x2d, 0x60, 0x32, 0x0c, 0x18, 0x30, 0x08, 0xb4, 0xc4, 0xca, 0x5a, 0x24, 0xd1, 0x20, 0x29, 0xcf,
0x1e, 0xf6, 0x03, 0x06, 0xec, 0x66, 0x3f, 0x61, 0xbf, 0x66, 0x28, 0x76, 0xd5, 0x9b, 0x01, 0xc3,
0x2e, 0x84, 0x22, 0xbd, 0xcb, 0xa5, 0x7f, 0xc1, 0x20, 0x92, 0xfe, 0x4c, 0xb1, 0x2d, 0xb9, 0x32,
0x9f, 0xf7, 0xe3, 0x79, 0xf8, 0xf1, 0xea, 0x25, 0x0d, 0xee, 0x13, 0xd1, 0x26, 0x2c, 0x89, 0x52,
0xd1, 0x24, 0xdd, 0xa4, 0xd9, 0xdd, 0x29, 0x7e, 0xb6, 0x3b, 0x8c, 0x0a, 0x0a, 0xad, 0x91, 0x6f,
0xbb, 0x30, 0x76, 0x77, 0xee, 0xaf, 0x85, 0x34, 0xa4, 0xd2, 0xd9, 0x2c, 0x46, 0x2a, 0xce, 0xf9,
0x6d, 0x01, 0x2c, 0x9d, 0x62, 0x86, 0x13, 0x0e, 0x77, 0x40, 0x85, 0x74, 0x13, 0x2f, 0x20, 0x29,
0x4d, 0x1a, 0xf3, 0x9b, 0xf3, 0x5b, 0x15, 0x77, 0x6d, 0x90, 0xdb, 0x56, 0x1f, 0x27, 0xf1, 0x33,
0x67, 0xe4, 0x72, 0x90, 0x41, 0xba, 0xc9, 0x61, 0x31, 0x84, 0x1f, 0x81, 0x15, 0x92, 0xe2, 0x56,
0x4c, 0x3c, 0x9f, 0x11, 0x2c, 0x48, 0x63, 0x61, 0x73, 0x7e, 0xcb, 0x70, 0x1b, 0x83, 0xdc, 0x5e,
0xd3, 0x69, 0x93, 0x6e, 0x07, 0x99, 0x0a, 0x1f, 0x48, 0x08, 0xff, 0x0f, 0xaa, 0x43, 0x3f, 0x8e,
0xe3, 0x46, 0x49, 0x26, 0xaf, 0x0f, 0x72, 0x1b, 0x4e, 0x27, 0xe3, 0x38, 0x76, 0x10, 0xd0, 0xa9,
0x38, 0x8e, 0xe1, 0x3e, 0x00, 0xa4, 0x27, 0x18, 0xf6, 0x48, 0xd4, 0xe1, 0x8d, 0xf2, 0x66, 0x69,
0xab, 0xe4, 0x3a, 0x97, 0xb9, 0x5d, 0x39, 0x2a, 0xac, 0x47, 0xc7, 0xa7, 0x7c, 0x90, 0xdb, 0x77,
0x34, 0xc9, 0x28, 0xd0, 0x41, 0x15, 0x09, 0x8e, 0xa2, 0x0e, 0x87, 0x5f, 0x03, 0xd3, 0x6f, 0xe3,
0x28, 0xf5, 0x7c, 0x9a, 0xbe, 0x8e, 0xc2, 0xc6, 0xe2, 0xe6, 0xfc, 0x56, 0x75, 0xf7, 0xdf, 0xdb,
0xb3, 0xfb, 0xb6, 0x7d, 0x50, 0x44, 0x1d, 0xc8, 0x20, 0xf7, 0xc1, 0x9b, 0xdc, 0x9e, 0x1b, 0xe4,
0xf6, 0xaa, 0xa2, 0x9e, 0x24, 0x70, 0x50, 0xd5, 0x1f, 0x47, 0x3a, 0xbf, 0x98, 0xa0, 0x3a, 0x91,
0x09, 0x13, 0x50, 0x6f, 0xd3, 0x84, 0x70, 0x41, 0x70, 0xe0, 0xb5, 0x62, 0xea, 0x5f, 0xe8, 0x2d,
0x3e, 0xfc, 0x23, 0xb7, 0xff, 0x1b, 0x46, 0xa2, 0x9d, 0xb5, 0xb6, 0x7d, 0x9a, 0x34, 0x7d, 0xca,
0x13, 0xca, 0xf5, 0xcf, 0x23, 0x1e, 0x5c, 0x34, 0x45, 0xbf, 0x43, 0xf8, 0xf6, 0x71, 0x2a, 0x06,
0xb9, 0xbd, 0xae, 0x84, 0x67, 0xa8, 0x1c, 0x54, 0x1b, 0x59, 0xdc, 0xc2, 0x00, 0xfb, 0xa0, 0x16,
0x60, 0xea, 0xbd, 0xa6, 0xec, 0x42, 0xab, 0x2d, 0x48, 0xb5, 0xb3, 0x7f, 0xae, 0x76, 0x99, 0xdb,
0xe6, 0xe1, 0xfe, 0xe7, 0x2f, 0x28, 0xbb, 0x90, 0x9c, 0x83, 0xdc, 0xbe, 0xab, 0xd4, 0xa7, 0x99,
0x1d, 0x64, 0x06, 0x98, 0x8e, 0xc2, 0xe0, 0x97, 0xc0, 0x1a, 0x05, 0xf0, 0xac, 0xd3, 0xa1, 0x4c,
0xe8, 0x93, 0x7d, 0x74, 0x99, 0xdb, 0x35, 0x4d, 0x79, 0xa6, 0x3c, 0x83, 0xdc, 0xfe, 0xd7, 0x0c,
0xa9, 0xce, 0x71, 0x50, 0x4d, 0xd3, 0xea, 0x50, 0xc8, 0x81, 0x49, 0xa2, 0xce, 0xce, 0xde, 0x63,
0xbd, 0xa2, 0xb2, 0x5c, 0xd1, 0xe9, 0x8d, 0x56, 0x54, 0x3d, 0x3a, 0x3e, 0xdd, 0xd9, 0x7b, 0x3c,
0x5c, 0x90, 0x3e, 0xc7, 0x49, 0x5a, 0x07, 0x55, 0x15, 0x54, 0xab, 0x39, 0x06, 0x1a, 0x7a, 0x6d,
0xcc, 0xdb, 0xb2, 0x4a, 0x2a, 0xee, 0xd6, 0x65, 0x6e, 0x03, 0xc5, 0xf4, 0x31, 0xe6, 0xed, 0xf1,
0xb9, 0xb4, 0xfa, 0xdf, 0xe1, 0x54, 0x44, 0x59, 0x32, 0xe4, 0x02, 0x2a, 0xb9, 0x88, 0x1a, 0xcd,
0x7f, 0x4f, 0xcf, 0x7f, 0xe9, 0xd6, 0xf3, 0xdf, 0xfb, 0xd0, 0xfc, 0xf7, 0xa6, 0xe7, 0xaf, 0x62,
0x46, 0xa2, 0x4f, 0xb5, 0xe8, 0xf2, 0xad, 0x45, 0x9f, 0x7e, 0x48, 0xf4, 0xe9, 0xb4, 0xa8, 0x8a,
0x29, 0x8a, 0x7d, 0x66, 0x27, 0x1a, 0xc6, 0xed, 0x8b, 0xfd, 0xda, 0xa6, 0xd6, 0x46, 0x16, 0x25,
0xf7, 0x3d, 0x58, 0xf3, 0x69, 0xca, 0x45, 0x61, 0x4b, 0x69, 0x27, 0x26, 0x5a, 0xb3, 0x22, 0x35,
0x8f, 0x6f, 0xa4, 0xf9, 0x40, 0x7f, 0xd9, 0x1f, 0xe0, 0x73, 0xd0, 0xea, 0xb4, 0x59, 0xa9, 0x77,
0x80, 0xd5, 0x21, 0x82, 0x30, 0xde, 0xca, 0x58, 0xa8, 0x95, 0x81, 0x54, 0x3e, 0xba, 0x91, 0xb2,
0xfe, 0x0e, 0x66, 0xb9, 0x1c, 0x54, 0x1f, 0x9b, 0x94, 0xe2, 0x37, 0xa0, 0x16, 0x15, 0xd3, 0x68,
0x65, 0xb1, 0xd6, 0xab, 0x4a, 0xbd, 0x83, 0x1b, 0xe9, 0xe9, 0x8f, 0x79, 0x9a, 0xc9, 0x41, 0x2b,
0x43, 0x83, 0xd2, 0xca, 0x00, 0x4c, 0xb2, 0x88, 0x79, 0x61, 0x8c, 0xfd, 0x88, 0x30, 0xad, 0x67,
0x4a, 0xbd, 0x97, 0x37, 0xd2, 0xbb, 0xa7, 0xf4, 0xae, 0xb3, 0x39, 0xc8, 0x2a, 0x8c, 0x2f, 0x95,
0x4d, 0xc9, 0x06, 0xc0, 0x6c, 0x11, 0x16, 0x47, 0xa9, 0x16, 0x5c, 0x91, 0x82, 0xfb, 0x37, 0x12,
0xd4, 0x75, 0x3a, 0xc9, 0xe3, 0xa0, 0xaa, 0x82, 0x23, 0x95, 0x98, 0xa6, 0x01, 0x1d, 0xaa, 0xdc,
0xb9, 0xbd, 0xca, 0x24, 0x8f, 0x83, 0xaa, 0x0a, 0x4a, 0x95, 0x93, 0xb2, 0x51, 0xb3, 0xea, 0x27,
0x65, 0xa3, 0x6e, 0x59, 0x27, 0x65, 0xc3, 0xb2, 0xee, 0xa0, 0x95, 0x3e, 0x8d, 0xa9, 0xd7, 0x7d,
0xa2, 0xc2, 0x51, 0x95, 0x7c, 0x8b, 0xb9, 0xae, 0x6e, 0x54, 0xf3, 0xb1, 0xc0, 0x71, 0x9f, 0x0b,
0xcd, 0xd5, 0x04, 0x8b, 0x67, 0xa2, 0xb8, 0x2c, 0x2d, 0x50, 0xba, 0x20, 0x7d, 0x75, 0x6b, 0xa0,
0x62, 0x08, 0xd7, 0xc0, 0x62, 0x17, 0xc7, 0x99, 0xba, 0x75, 0x2b, 0x48, 0x01, 0xe7, 0x14, 0xd4,
0xcf, 0x19, 0x4e, 0x39, 0xf6, 0x45, 0x44, 0xd3, 0x57, 0x34, 0xe4, 0x10, 0x82, 0xb2, 0xec, 0x5e,
0x2a, 0x57, 0x8e, 0xe1, 0xff, 0x40, 0x39, 0xa6, 0x21, 0x6f, 0x2c, 0x6c, 0x96, 0xb6, 0xaa, 0xbb,
0x77, 0xaf, 0xdf, 0x7b, 0xaf, 0x68, 0x88, 0x64, 0x88, 0xf3, 0xeb, 0x02, 0x28, 0xbd, 0xa2, 0x21,
0x6c, 0x80, 0x65, 0x1c, 0x04, 0x8c, 0x70, 0xae, 0x99, 0x86, 0x10, 0xae, 0x83, 0x25, 0x41, 0x3b,
0x91, 0xaf, 0xe8, 0x2a, 0x48, 0xa3, 0x42, 0x38, 0xc0, 0x02, 0xcb, 0xfe, 0x6f, 0x22, 0x39, 0x86,
0xbb, 0xc0, 0x94, 0x2b, 0xf3, 0xd2, 0x2c, 0x69, 0x11, 0x26, 0xdb, 0x78, 0xd9, 0xad, 0x5f, 0xe5,
0x76, 0x55, 0xda, 0x3f, 0x93, 0x66, 0x34, 0x09, 0xe0, 0x43, 0xb0, 0x2c, 0x7a, 0x93, 0x1d, 0x78,
0xf5, 0x2a, 0xb7, 0xeb, 0x62, 0xbc, 0xcc, 0xa2, 0xc1, 0xa2, 0x25, 0xd1, 0x93, 0x8d, 0xb6, 0x09,
0x0c, 0xd1, 0xf3, 0xa2, 0x34, 0x20, 0x3d, 0xd9, 0x64, 0xcb, 0xee, 0xda, 0x55, 0x6e, 0x5b, 0x13,
0xe1, 0xc7, 0x85, 0x0f, 0x2d, 0x8b, 0x9e, 0x1c, 0xc0, 0x87, 0x00, 0xa8, 0x29, 0x49, 0x05, 0xd5,
0x22, 0x57, 0xae, 0x72, 0xbb, 0x22, 0xad, 0x92, 0x7b, 0x3c, 0x84, 0x0e, 0x58, 0x54, 0xdc, 0x86,
0xe4, 0x36, 0xaf, 0x72, 0xdb, 0x88, 0x69, 0xa8, 0x38, 0x95, 0xab, 0xd8, 0x2a, 0x46, 0x12, 0xda,
0x25, 0x81, 0xec, 0x42, 0x06, 0x1a, 0x42, 0xe7, 0xc7, 0x05, 0x60, 0x9c, 0xf7, 0x10, 0xe1, 0x59,
0x2c, 0xe0, 0x0b, 0x60, 0xf9, 0x34, 0x15, 0x0c, 0xfb, 0xc2, 0x9b, 0xda, 0x5a, 0xf7, 0xc1, 0xb8,
0x23, 0xcc, 0x46, 0x38, 0xa8, 0x3e, 0x34, 0xed, 0xeb, 0xfd, 0x5f, 0x03, 0x8b, 0xad, 0x98, 0xd2,
0x44, 0x56, 0x82, 0x89, 0x14, 0x80, 0x48, 0xee, 0x9a, 0x3c, 0xe5, 0x92, 0x7c, 0xdd, 0xfc, 0xe7,
0xfa, 0x29, 0xcf, 0x94, 0x8a, 0xbb, 0xae, 0x5f, 0x38, 0x35, 0xa5, 0xad, 0xf3, 0x9d, 0x62, 0x6f,
0x65, 0x29, 0x59, 0xa0, 0xc4, 0x88, 0x90, 0x87, 0x66, 0xa2, 0x62, 0x08, 0xef, 0x03, 0x83, 0x91,
0x2e, 0x61, 0x82, 0x04, 0xf2, 0x70, 0x0c, 0x34, 0xc2, 0xf0, 0x1e, 0x30, 0x42, 0xcc, 0xbd, 0x8c,
0x93, 0x40, 0x9d, 0x04, 0x5a, 0x0e, 0x31, 0xff, 0x82, 0x93, 0xe0, 0x59, 0xf9, 0x87, 0x9f, 0xed,
0x39, 0x07, 0x83, 0xea, 0xbe, 0xef, 0x13, 0xce, 0xcf, 0xb3, 0x4e, 0x4c, 0xfe, 0xa2, 0xc2, 0x76,
0x81, 0xc9, 0x05, 0x65, 0x38, 0x24, 0xde, 0x05, 0xe9, 0xeb, 0x3a, 0x53, 0x55, 0xa3, 0xed, 0x9f,
0x90, 0x3e, 0x47, 0x93, 0x40, 0x4b, 0xbc, 0x2b, 0x81, 0xea, 0x39, 0xc3, 0x3e, 0xd1, 0x2f, 0xb1,
0xa2, 0x56, 0x0b, 0xc8, 0xb4, 0x84, 0x46, 0x85, 0xb6, 0x88, 0x12, 0x42, 0x33, 0xa1, 0xbf, 0xa7,
0x21, 0x2c, 0x32, 0x18, 0x21, 0x3d, 0xe2, 0xcb, 0x6d, 0x2c, 0x23, 0x8d, 0xe0, 0x1e, 0x58, 0x09,
0x22, 0x2e, 0x9f, 0xa8, 0x5c, 0x60, 0xff, 0x42, 0x2d, 0xdf, 0xb5, 0xae, 0x72, 0xdb, 0xd4, 0x8e,
0xb3, 0xc2, 0x8e, 0xa6, 0x10, 0x7c, 0x0e, 0xea, 0xe3, 0x34, 0x39, 0x5b, 0xb9, 0x37, 0x86, 0x0b,
0xaf, 0x72, 0xbb, 0x36, 0x0a, 0x95, 0x1e, 0x34, 0x83, 0x8b, 0x93, 0x0e, 0x48, 0x2b, 0x0b, 0x65,
0xf1, 0x19, 0x48, 0x81, 0xc2, 0x1a, 0x47, 0x49, 0x24, 0x64, 0xb1, 0x2d, 0x22, 0x05, 0xe0, 0x73,
0x50, 0xa1, 0x5d, 0xc2, 0x58, 0x14, 0x10, 0x2e, 0xaf, 0xa4, 0xbf, 0x7b, 0xdf, 0xa2, 0x71, 0x7c,
0xb1, 0x38, 0xfd, 0xfc, 0x4e, 0x48, 0x42, 0x59, 0x5f, 0xde, 0x31, 0x7a, 0x71, 0xca, 0xf1, 0xa9,
0xb4, 0xa3, 0x29, 0x04, 0x5d, 0x00, 0x75, 0x1a, 0x23, 0x22, 0x63, 0xa9, 0x27, 0xbf, 0x7f, 0x53,
0xe6, 0xca, 0xaf, 0x50, 0x79, 0x91, 0x74, 0x1e, 0x62, 0x81, 0xd1, 0x35, 0xcb, 0x49, 0xd9, 0x28,
0x5b, 0x8b, 0x27, 0x65, 0x63, 0xd9, 0x32, 0x46, 0xeb, 0xd7, 0xb3, 0x40, 0xab, 0x43, 0x3c, 0x41,
0xef, 0xba, 0x6f, 0x2e, 0x37, 0xe6, 0xdf, 0x5e, 0x6e, 0xcc, 0xbf, 0xbb, 0xdc, 0x98, 0xff, 0xe9,
0xfd, 0xc6, 0xdc, 0xdb, 0xf7, 0x1b, 0x73, 0xbf, 0xbf, 0xdf, 0x98, 0xfb, 0x6a, 0x6b, 0xa2, 0x8f,
0x8b, 0x36, 0x66, 0x3c, 0xe2, 0xcd, 0xf1, 0xbf, 0xa6, 0x9e, 0xfc, 0xdf, 0x24, 0xbb, 0x79, 0x6b,
0x49, 0xfe, 0x1f, 0x7a, 0xf2, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x34, 0x70, 0xb1, 0x79, 0x55,
0x0d, 0x00, 0x00,
}
func (m *Params) Marshal() (dAtA []byte, err error) {
@ -861,20 +859,6 @@ func (m *ChainConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
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 {
{
size := m.BerlinBlock.Size()
@ -1506,10 +1490,6 @@ func (m *ChainConfig) Size() (n int) {
l = m.BerlinBlock.Size()
n += 1 + l + sovEvm(uint64(l))
}
if m.CatalystBlock != nil {
l = m.CatalystBlock.Size()
n += 2 + l + sovEvm(uint64(l))
}
if m.LondonBlock != nil {
l = m.LondonBlock.Size()
n += 2 + l + sovEvm(uint64(l))
@ -2400,42 +2380,6 @@ func (m *ChainConfig) Unmarshal(dAtA []byte) error {
return err
}
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:
if wireType != 2 {
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 {
// accounts is an array containing the ethereum genesis 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"`
}

View File

@ -20,7 +20,6 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/grpclog"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
)
@ -31,7 +30,6 @@ var _ status.Status
var _ = runtime.String
var _ = utilities.NewDoubleArray
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) {
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".
// UnaryRPC :call QueryServer directly.
// 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 {
mux.Handle("GET", pattern_Query_Account_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -523,7 +519,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -546,7 +539,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -569,7 +559,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -592,7 +579,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -615,7 +599,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -638,7 +619,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -661,7 +639,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -684,7 +659,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -707,7 +679,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -730,7 +699,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)

View File

@ -20,7 +20,6 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/grpclog"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
)
@ -31,7 +30,6 @@ var _ status.Status
var _ = runtime.String
var _ = utilities.NewDoubleArray
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) {
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".
// UnaryRPC :call QueryServer directly.
// 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 {
mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -105,7 +101,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -128,7 +121,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
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) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@ -151,7 +141,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
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)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)