evm: dynamic fee tx (#384)

* evm: dynamic fee tx

* proto message

* fix

* lint
This commit is contained in:
Federico Kunze Küllmer 2021-07-30 07:40:17 -04:00 committed by GitHub
parent c4aa8fafab
commit 9b9c835266
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 1242 additions and 123 deletions

View File

@ -15,6 +15,10 @@ lint:
- SERVICE_SUFFIX - SERVICE_SUFFIX
- PACKAGE_VERSION_SUFFIX - PACKAGE_VERSION_SUFFIX
- RPC_REQUEST_STANDARD_NAME - RPC_REQUEST_STANDARD_NAME
- RPC_REQUEST_RESPONSE_UNIQUE
- RPC_RESPONSE_STANDARD_NAME
- RPC_REQUEST_RESPONSE_UNIQUE
- COMMENT_MESSAGE
ignore: ignore:
- tendermint - tendermint
- gogoproto - gogoproto

View File

@ -23,6 +23,7 @@
- [ethermint/evm/v1alpha1/tx.proto](#ethermint/evm/v1alpha1/tx.proto) - [ethermint/evm/v1alpha1/tx.proto](#ethermint/evm/v1alpha1/tx.proto)
- [AccessListTx](#ethermint.evm.v1alpha1.AccessListTx) - [AccessListTx](#ethermint.evm.v1alpha1.AccessListTx)
- [DynamicFeeTx](#ethermint.evm.v1alpha1.DynamicFeeTx)
- [ExtensionOptionsEthereumTx](#ethermint.evm.v1alpha1.ExtensionOptionsEthereumTx) - [ExtensionOptionsEthereumTx](#ethermint.evm.v1alpha1.ExtensionOptionsEthereumTx)
- [ExtensionOptionsWeb3Tx](#ethermint.evm.v1alpha1.ExtensionOptionsWeb3Tx) - [ExtensionOptionsWeb3Tx](#ethermint.evm.v1alpha1.ExtensionOptionsWeb3Tx)
- [LegacyTx](#ethermint.evm.v1alpha1.LegacyTx) - [LegacyTx](#ethermint.evm.v1alpha1.LegacyTx)
@ -360,6 +361,32 @@ AccessListTx is the data of EIP-2930 access list transactions.
<a name="ethermint.evm.v1alpha1.DynamicFeeTx"></a>
### DynamicFeeTx
DynamicFeeTx is the data of EIP-1559 dinamic fee transactions.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `chain_id` | [string](#string) | | destination EVM chain ID |
| `nonce` | [uint64](#uint64) | | nonce corresponds to the account nonce (transaction sequence). |
| `gas_tip_cap` | [string](#string) | | gas tip cap defines the max value for the gas tip |
| `gas_fee_cap` | [string](#string) | | gas fee cap defines the max value for the gas fee |
| `gas` | [uint64](#uint64) | | gas defines the gas limit defined for the transaction. |
| `to` | [string](#string) | | hex formatted address of the recipient |
| `value` | [string](#string) | | value defines the the transaction amount. |
| `data` | [bytes](#bytes) | | input defines the data payload bytes of the transaction. |
| `accesses` | [AccessTuple](#ethermint.evm.v1alpha1.AccessTuple) | repeated | |
| `v` | [bytes](#bytes) | | v defines the signature value |
| `r` | [bytes](#bytes) | | r defines the signature value |
| `s` | [bytes](#bytes) | | s define the signature value |
<a name="ethermint.evm.v1alpha1.ExtensionOptionsEthereumTx"></a> <a name="ethermint.evm.v1alpha1.ExtensionOptionsEthereumTx"></a>
### ExtensionOptionsEthereumTx ### ExtensionOptionsEthereumTx
@ -659,7 +686,8 @@ method.
<a name="ethermint.evm.v1alpha1.QueryCosmosAccountRequest"></a> <a name="ethermint.evm.v1alpha1.QueryCosmosAccountRequest"></a>
### QueryCosmosAccountRequest ### QueryCosmosAccountRequest
QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC method. QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC
method.
| Field | Type | Label | Description | | Field | Type | Label | Description |
@ -674,7 +702,8 @@ QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC me
<a name="ethermint.evm.v1alpha1.QueryCosmosAccountResponse"></a> <a name="ethermint.evm.v1alpha1.QueryCosmosAccountResponse"></a>
### QueryCosmosAccountResponse ### QueryCosmosAccountResponse
QueryCosmosAccountResponse is the response type for the Query/CosmosAccount RPC method. QueryCosmosAccountResponse is the response type for the Query/CosmosAccount
RPC method.
| Field | Type | Label | Description | | Field | Type | Label | Description |
@ -809,7 +838,8 @@ QueryTxLogs is the response type for the Query/TxLogs RPC method.
<a name="ethermint.evm.v1alpha1.QueryValidatorAccountRequest"></a> <a name="ethermint.evm.v1alpha1.QueryValidatorAccountRequest"></a>
### QueryValidatorAccountRequest ### QueryValidatorAccountRequest
QueryValidatorAccountRequest is the request type for the Query/ValidatorAccount RPC method. QueryValidatorAccountRequest is the request type for the
Query/ValidatorAccount RPC method.
| Field | Type | Label | Description | | Field | Type | Label | Description |
@ -824,7 +854,8 @@ QueryValidatorAccountRequest is the request type for the Query/ValidatorAccount
<a name="ethermint.evm.v1alpha1.QueryValidatorAccountResponse"></a> <a name="ethermint.evm.v1alpha1.QueryValidatorAccountResponse"></a>
### QueryValidatorAccountResponse ### QueryValidatorAccountResponse
QueryValidatorAccountResponse is the response type for the Query/ValidatorAccount RPC method. QueryValidatorAccountResponse is the response type for the
Query/ValidatorAccount RPC method.
| Field | Type | Label | Description | | Field | Type | Label | Description |

14
go.mod
View File

@ -3,6 +3,10 @@ module github.com/tharsis/ethermint
go 1.16 go 1.16
require ( require (
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
github.com/aokoli/goutils v1.1.1 // indirect
github.com/armon/go-metrics v0.3.9 github.com/armon/go-metrics v0.3.9
github.com/aws/aws-sdk-go v1.38.21 // indirect github.com/aws/aws-sdk-go v1.38.21 // indirect
github.com/bitly/go-simplejson v0.5.0 // indirect github.com/bitly/go-simplejson v0.5.0 // indirect
@ -15,21 +19,27 @@ require (
github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/go-bip39 v1.0.0
github.com/cosmos/ibc-go v1.0.0-rc3 github.com/cosmos/ibc-go v1.0.0-rc3
github.com/deckarep/golang-set v1.7.1 // indirect github.com/deckarep/golang-set v1.7.1 // indirect
github.com/envoyproxy/protoc-gen-validate v0.6.1 // indirect
github.com/ethereum/go-ethereum v1.10.3 github.com/ethereum/go-ethereum v1.10.3
github.com/gofrs/uuid v4.0.0+incompatible // indirect github.com/gofrs/uuid v4.0.0+incompatible // indirect
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/google/uuid v1.2.0 // indirect github.com/google/uuid v1.3.0 // indirect
github.com/gorilla/mux v1.8.0 github.com/gorilla/mux v1.8.0
github.com/gorilla/websocket v1.4.2 github.com/gorilla/websocket v1.4.2
github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0
github.com/hashicorp/go-immutable-radix v1.3.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.0 // indirect
github.com/huandu/xstrings v1.3.2 // indirect
github.com/imdario/mergo v0.3.12 // indirect
github.com/improbable-eng/grpc-web v0.14.0 github.com/improbable-eng/grpc-web v0.14.0
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect
github.com/miguelmota/go-ethereum-hdwallet v0.0.1 github.com/miguelmota/go-ethereum-hdwallet v0.0.1
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mwitkow/go-proto-validators v0.3.2 // indirect
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/pkg/errors v0.9.1 github.com/pkg/errors v0.9.1
github.com/prometheus/tsdb v0.10.0 // indirect github.com/prometheus/tsdb v0.10.0 // indirect
github.com/pseudomuto/protoc-gen-doc v1.4.1 // indirect
github.com/rakyll/statik v0.1.7 github.com/rakyll/statik v0.1.7
github.com/regen-network/cosmos-proto v0.3.1 github.com/regen-network/cosmos-proto v0.3.1
github.com/rjeczalik/notify v0.9.2 // indirect github.com/rjeczalik/notify v0.9.2 // indirect
@ -44,7 +54,7 @@ require (
github.com/tyler-smith/go-bip39 v1.1.0 github.com/tyler-smith/go-bip39 v1.1.0
github.com/xlab/suplog v1.3.0 github.com/xlab/suplog v1.3.0
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 // indirect golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 // indirect
google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46 google.golang.org/genproto v0.0.0-20210729151513-df9385d47c1b
google.golang.org/grpc v1.39.0 google.golang.org/grpc v1.39.0
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
nhooyr.io/websocket v1.8.7 // indirect nhooyr.io/websocket v1.8.7 // indirect

47
go.sum
View File

@ -68,6 +68,14 @@ github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t
github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ=
github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60=
github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
@ -95,6 +103,9 @@ github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKS
github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
github.com/aokoli/goutils v1.1.1 h1:/hA+Ywo3AxoDZY5ZMnkiEkUvkK4BPp927ax110KCqqg=
github.com/aokoli/goutils v1.1.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
@ -232,6 +243,7 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU= github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU=
github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U=
github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=
github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@ -276,6 +288,9 @@ github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25 h1:2vLKys4RBU4
github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25/go.mod h1:hTr8+TLQmkUkgcuh3mcr5fjrT9c64ZzsBCdCEC6UppY= github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25/go.mod h1:hTr8+TLQmkUkgcuh3mcr5fjrT9c64ZzsBCdCEC6UppY=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.3.0-java/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.6.1 h1:4CF52PCseTFt4bE+Yk3dIpdVi7XWuPVMhPtm4FaIJPM=
github.com/envoyproxy/protoc-gen-validate v0.6.1/go.mod h1:txg5va2Qkip90uYoSKH+nkAAmXrb2j3iq4FLwdrCbXQ=
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.1/go.mod h1:E5e/zvdfUVr91JZ0AwjyuJM3x+no51zZJRz61orLLSk= github.com/ethereum/go-ethereum v1.10.1/go.mod h1:E5e/zvdfUVr91JZ0AwjyuJM3x+no51zZJRz61orLLSk=
github.com/ethereum/go-ethereum v1.10.3 h1:SEYOYARvbWnoDl1hOSks3ZJQpRiiRJe8ubaQGJQwq0s= github.com/ethereum/go-ethereum v1.10.3 h1:SEYOYARvbWnoDl1hOSks3ZJQpRiiRJe8ubaQGJQwq0s=
@ -436,12 +451,15 @@ github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/protobuf v3.14.0+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bjm9HXyH5WHB0Akwh7URreM= github.com/google/protobuf v3.14.0+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bjm9HXyH5WHB0Akwh7URreM=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs=
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
@ -524,14 +542,21 @@ github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iU
github.com/holiman/uint256 v1.1.1 h1:4JywC80b+/hSfljFlEBLHrrh+CIONLDz9NuFl0af4Mw= github.com/holiman/uint256 v1.1.1 h1:4JywC80b+/hSfljFlEBLHrrh+CIONLDz9NuFl0af4Mw=
github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw=
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc=
github.com/huin/goupnp v1.0.1-0.20200620063722-49508fba0031/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= github.com/huin/goupnp v1.0.1-0.20200620063722-49508fba0031/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo=
github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88 h1:bcAj8KroPf552TScjFPIakjH2/tdIrIH8F+cc4v4SRo= github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88 h1:bcAj8KroPf552TScjFPIakjH2/tdIrIH8F+cc4v4SRo=
github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo=
github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o=
github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/improbable-eng/grpc-web v0.14.0 h1:GdoK+cXABdB+1keuqsV1drSFO2XLYIxqt/4Rj8SWGBk= github.com/improbable-eng/grpc-web v0.14.0 h1:GdoK+cXABdB+1keuqsV1drSFO2XLYIxqt/4Rj8SWGBk=
github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
@ -634,6 +659,7 @@ github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoR
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4= github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4=
github.com/lyft/protoc-gen-star v0.5.1/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls=
@ -668,6 +694,8 @@ github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjK
github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0= github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0=
github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@ -679,6 +707,8 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh
github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@ -691,6 +721,9 @@ github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ib
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo=
github.com/mwitkow/go-proto-validators v0.3.2 h1:qRlmpTzm2pstMKKzTdvwPCF5QfBNURSlAgN/R+qbKos=
github.com/mwitkow/go-proto-validators v0.3.2/go.mod h1:ej0Qp0qMgHN/KtDyUt+Q1/tA7a5VarXUOUxD+oeD30w=
github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=
github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
@ -775,6 +808,7 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
@ -823,6 +857,10 @@ github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/prometheus/tsdb v0.10.0 h1:If5rVCMTp6W2SiRAQFlbpJNgVlgMEd+U2GZckwK38ic= github.com/prometheus/tsdb v0.10.0 h1:If5rVCMTp6W2SiRAQFlbpJNgVlgMEd+U2GZckwK38ic=
github.com/prometheus/tsdb v0.10.0/go.mod h1:oi49uRhEe9dPUTlS3JRZOwJuVi6tmh10QSgwXEyGCt4= github.com/prometheus/tsdb v0.10.0/go.mod h1:oi49uRhEe9dPUTlS3JRZOwJuVi6tmh10QSgwXEyGCt4=
github.com/pseudomuto/protoc-gen-doc v1.4.1 h1:aNTZq0dy0Pq2ag2v7bhNKFNgBBA8wMCoJSChhd7RciE=
github.com/pseudomuto/protoc-gen-doc v1.4.1/go.mod h1:exDTOVwqpp30eV/EDPFLZy3Pwr2sn6hBC1WIYH/UbIg=
github.com/pseudomuto/protokit v0.2.0 h1:hlnBDcy3YEDXH7kc9gV+NLaN0cDzhDvD1s7Y6FZ8RpM=
github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q=
github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ=
github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
@ -881,6 +919,8 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
github.com/spf13/afero v1.3.4/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
@ -920,6 +960,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
@ -1034,6 +1075,7 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@ -1175,6 +1217,7 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -1344,6 +1387,7 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@ -1387,6 +1431,7 @@ google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@ -1436,6 +1481,8 @@ google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaE
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46 h1:C+heNsV69Z0EjfRnhU7mg6EX5zz5l7x7hhTil+Ayj8g= google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46 h1:C+heNsV69Z0EjfRnhU7mg6EX5zz5l7x7hhTil+Ayj8g=
google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= google.golang.org/genproto v0.0.0-20210712171009-5404628d0f46/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
google.golang.org/genproto v0.0.0-20210729151513-df9385d47c1b h1:4xoALQmXxqVdDdLimpPyPeDdsJzo+nFTJw9euAMpqgM=
google.golang.org/genproto v0.0.0-20210729151513-df9385d47c1b/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
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.0.1/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=

View File

@ -17,13 +17,18 @@ service Query {
} }
// CosmosAccount queries an Ethereum account's Cosmos Address. // CosmosAccount queries an Ethereum account's Cosmos Address.
rpc CosmosAccount(QueryCosmosAccountRequest) returns (QueryCosmosAccountResponse) { rpc CosmosAccount(QueryCosmosAccountRequest)
option (google.api.http).get = "/ethermint/evm/v1alpha1/cosmos_account/{address}"; returns (QueryCosmosAccountResponse) {
option (google.api.http).get =
"/ethermint/evm/v1alpha1/cosmos_account/{address}";
} }
// ValidatorAccount queries an Ethereum account's from a validator consensus Address. // ValidatorAccount queries an Ethereum account's from a validator consensus
rpc ValidatorAccount(QueryValidatorAccountRequest) returns (QueryValidatorAccountResponse) { // Address.
option (google.api.http).get = "/ethermint/evm/v1alpha1/validator_account/{cons_address}"; rpc ValidatorAccount(QueryValidatorAccountRequest)
returns (QueryValidatorAccountResponse) {
option (google.api.http).get =
"/ethermint/evm/v1alpha1/validator_account/{cons_address}";
} }
// Balance queries the balance of a the EVM denomination for a single // Balance queries the balance of a the EVM denomination for a single
@ -34,7 +39,8 @@ service Query {
// Storage queries the balance of all coins for a single account. // Storage queries the balance of all coins for a single account.
rpc Storage(QueryStorageRequest) returns (QueryStorageResponse) { rpc Storage(QueryStorageRequest) returns (QueryStorageResponse) {
option (google.api.http).get = "/ethermint/evm/v1alpha1/storage/{address}/{key}"; option (google.api.http).get =
"/ethermint/evm/v1alpha1/storage/{address}/{key}";
} }
// Code queries the balance of all coins for a single account. // Code queries the balance of all coins for a single account.
@ -76,12 +82,11 @@ service Query {
rpc EstimateGas(EthCallRequest) returns (EstimateGasResponse) { rpc EstimateGas(EthCallRequest) returns (EstimateGasResponse) {
option (google.api.http).get = "/ethermint/evm/v1alpha1/estimate_gas"; option (google.api.http).get = "/ethermint/evm/v1alpha1/estimate_gas";
} }
} }
// QueryAccountRequest is the request type for the Query/Account RPC method. // QueryAccountRequest is the request type for the Query/Account RPC method.
message QueryAccountRequest { message QueryAccountRequest {
option (gogoproto.equal) = false; option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// address is the ethereum hex address to query the account for. // address is the ethereum hex address to query the account for.
@ -98,16 +103,18 @@ message QueryAccountResponse {
uint64 nonce = 3; uint64 nonce = 3;
} }
// QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC method. // QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC
// method.
message QueryCosmosAccountRequest { message QueryCosmosAccountRequest {
option (gogoproto.equal) = false; option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// address is the ethereum hex address to query the account for. // address is the ethereum hex address to query the account for.
string address = 1; string address = 1;
} }
// QueryCosmosAccountResponse is the response type for the Query/CosmosAccount RPC method. // QueryCosmosAccountResponse is the response type for the Query/CosmosAccount
// RPC method.
message QueryCosmosAccountResponse { message QueryCosmosAccountResponse {
// cosmos_address is the cosmos address of the account. // cosmos_address is the cosmos address of the account.
string cosmos_address = 1; string cosmos_address = 1;
@ -117,16 +124,18 @@ message QueryCosmosAccountResponse {
uint64 account_number = 3; uint64 account_number = 3;
} }
// QueryValidatorAccountRequest is the request type for the Query/ValidatorAccount RPC method. // QueryValidatorAccountRequest is the request type for the
// Query/ValidatorAccount RPC method.
message QueryValidatorAccountRequest { message QueryValidatorAccountRequest {
option (gogoproto.equal) = false; option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// cons_address is the validator cons address to query the account for. // cons_address is the validator cons address to query the account for.
string cons_address = 1; string cons_address = 1;
} }
// QueryValidatorAccountResponse is the response type for the Query/ValidatorAccount RPC method. // QueryValidatorAccountResponse is the response type for the
// Query/ValidatorAccount RPC method.
message QueryValidatorAccountResponse { message QueryValidatorAccountResponse {
// account_address is the cosmos address of the account in bech32 format. // account_address is the cosmos address of the account in bech32 format.
string account_address = 1; string account_address = 1;
@ -138,7 +147,7 @@ message QueryValidatorAccountResponse {
// QueryBalanceRequest is the request type for the Query/Balance RPC method. // QueryBalanceRequest is the request type for the Query/Balance RPC method.
message QueryBalanceRequest { message QueryBalanceRequest {
option (gogoproto.equal) = false; option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// address is the ethereum hex address to query the balance for. // address is the ethereum hex address to query the balance for.
@ -153,7 +162,7 @@ message QueryBalanceResponse {
// QueryStorageRequest is the request type for the Query/Storage RPC method. // QueryStorageRequest is the request type for the Query/Storage RPC method.
message QueryStorageRequest { message QueryStorageRequest {
option (gogoproto.equal) = false; option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
/// address is the ethereum hex address to query the storage state for. /// address is the ethereum hex address to query the storage state for.
@ -172,7 +181,7 @@ message QueryStorageResponse {
// QueryCodeRequest is the request type for the Query/Code RPC method. // QueryCodeRequest is the request type for the Query/Code RPC method.
message QueryCodeRequest { message QueryCodeRequest {
option (gogoproto.equal) = false; option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// address is the ethereum hex address to query the code for. // address is the ethereum hex address to query the code for.
@ -188,7 +197,7 @@ message QueryCodeResponse {
// QueryTxLogsRequest is the request type for the Query/TxLogs RPC method. // QueryTxLogsRequest is the request type for the Query/TxLogs RPC method.
message QueryTxLogsRequest { message QueryTxLogsRequest {
option (gogoproto.equal) = false; option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// hash is the ethereum transaction hex hash to query the logs for. // hash is the ethereum transaction hex hash to query the logs for.
@ -203,7 +212,7 @@ message QueryTxLogsResponse {
// QueryBlockLogsRequest is the request type for the Query/BlockLogs RPC method. // QueryBlockLogsRequest is the request type for the Query/BlockLogs RPC method.
message QueryBlockLogsRequest { message QueryBlockLogsRequest {
option (gogoproto.equal) = false; option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// hash is the block hash to query the logs for. // hash is the block hash to query the logs for.
@ -215,7 +224,7 @@ message QueryBlockLogsRequest {
// QueryTxLogs is the response type for the Query/BlockLogs RPC method. // QueryTxLogs is the response type for the Query/BlockLogs RPC method.
message QueryBlockLogsResponse { message QueryBlockLogsResponse {
// logs represents the ethereum logs generated at the given block hash. // logs represents the ethereum logs generated at the given block hash.
repeated TransactionLogs tx_logs = 1 [(gogoproto.nullable) = false]; repeated TransactionLogs tx_logs = 1 [ (gogoproto.nullable) = false ];
// pagination defines the pagination in the response. // pagination defines the pagination in the response.
cosmos.base.query.v1beta1.PageResponse pagination = 2; cosmos.base.query.v1beta1.PageResponse pagination = 2;
} }
@ -225,8 +234,8 @@ message QueryBlockLogsResponse {
message QueryBlockBloomRequest { message QueryBlockBloomRequest {
// height of the block which we want to query the bloom filter. // height of the block which we want to query the bloom filter.
// Tendermint always replace the query request header by the current context // Tendermint always replace the query request header by the current context
// header, height cannot be extracted from there, so we need to explicitly pass // header, height cannot be extracted from there, so we need to explicitly
// it in parameter. // pass it in parameter.
int64 height = 1; int64 height = 1;
} }
@ -243,7 +252,7 @@ message QueryParamsRequest {}
// QueryParamsResponse defines the response type for querying x/evm parameters. // QueryParamsResponse defines the response type for querying x/evm parameters.
message QueryParamsResponse { message QueryParamsResponse {
// params define the evm module parameters. // params define the evm module parameters.
Params params = 1 [(gogoproto.nullable) = false]; Params params = 1 [ (gogoproto.nullable) = false ];
} }
// QueryStaticCallRequest defines static call request // QueryStaticCallRequest defines static call request
@ -255,9 +264,7 @@ message QueryStaticCallRequest {
} }
// QueryStaticCallRequest defines static call response // QueryStaticCallRequest defines static call response
message QueryStaticCallResponse { message QueryStaticCallResponse { bytes data = 1; }
bytes data = 1;
}
// EthCallRequest defines EthCall request // EthCallRequest defines EthCall request
message EthCallRequest { message EthCallRequest {

View File

@ -23,12 +23,12 @@ message MsgEthereumTx {
// caches // caches
// encoded storage size of the transaction // encoded storage size of the transaction
double size = 2 [(gogoproto.jsontag) = "-"]; double size = 2 [ (gogoproto.jsontag) = "-" ];
// transaction hash in hex format // transaction hash in hex format
string hash = 3 [(gogoproto.moretags) = "rlp:\"-\""]; string hash = 3 [ (gogoproto.moretags) = "rlp:\"-\"" ];
// ethereum signer address in hex format. This address value is checked against // ethereum signer address in hex format. This address value is checked
// the address derived from the signature (V, R, S) using the secp256k1 // against the address derived from the signature (V, R, S) using the
// elliptic curve // secp256k1 elliptic curve
string from = 4; string from = 4;
} }
@ -40,11 +40,10 @@ message LegacyTx {
// nonce corresponds to the account nonce (transaction sequence). // nonce corresponds to the account nonce (transaction sequence).
uint64 nonce = 1; uint64 nonce = 1;
// gas price defines the value for each gas unit // gas price defines the value for each gas unit
string gas_price = 2 [ string gas_price = 2
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ];
];
// gas defines the gas limit defined for the transaction. // gas defines the gas limit defined for the transaction.
uint64 gas = 3 [(gogoproto.customname) = "GasLimit"]; uint64 gas = 3 [ (gogoproto.customname) = "GasLimit" ];
// hex formatted address of the recipient // hex formatted address of the recipient
string to = 4; string to = 4;
// value defines the unsigned integer value of the transaction amount. // value defines the unsigned integer value of the transaction amount.
@ -53,7 +52,7 @@ message LegacyTx {
(gogoproto.customname) = "Amount" (gogoproto.customname) = "Amount"
]; ];
// input defines the data payload bytes of the transaction. // input defines the data payload bytes of the transaction.
bytes data = 6; bytes data = 6;
// v defines the signature value // v defines the signature value
bytes v = 7; bytes v = 7;
// r defines the signature value // r defines the signature value
@ -62,7 +61,6 @@ message LegacyTx {
bytes s = 9; bytes s = 9;
} }
// AccessListTx is the data of EIP-2930 access list transactions. // AccessListTx is the data of EIP-2930 access list transactions.
message AccessListTx { message AccessListTx {
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
@ -72,16 +70,15 @@ message AccessListTx {
string chain_id = 1 [ string chain_id = 1 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.customname) = "ChainID", (gogoproto.customname) = "ChainID",
(gogoproto.jsontag) = "chainID" (gogoproto.jsontag) = "chainID"
]; ];
// nonce corresponds to the account nonce (transaction sequence). // nonce corresponds to the account nonce (transaction sequence).
uint64 nonce = 2; uint64 nonce = 2;
// gas price defines the value for each gas unit // gas price defines the value for each gas unit
string gas_price = 3 [ string gas_price = 3
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ];
];
// gas defines the gas limit defined for the transaction. // gas defines the gas limit defined for the transaction.
uint64 gas = 4 [(gogoproto.customname) = "GasLimit"]; uint64 gas = 4 [ (gogoproto.customname) = "GasLimit" ];
// hex formatted address of the recipient // hex formatted address of the recipient
string to = 5; string to = 5;
// value defines the unsigned integer value of the transaction amount. // value defines the unsigned integer value of the transaction amount.
@ -90,9 +87,12 @@ message AccessListTx {
(gogoproto.customname) = "Amount" (gogoproto.customname) = "Amount"
]; ];
// input defines the data payload bytes of the transaction. // input defines the data payload bytes of the transaction.
bytes data = 7; bytes data = 7;
repeated AccessTuple accesses = 8 repeated AccessTuple accesses = 8 [
[(gogoproto.castrepeated) = "AccessList", (gogoproto.jsontag) = "accessList", (gogoproto.nullable) = false]; (gogoproto.castrepeated) = "AccessList",
(gogoproto.jsontag) = "accessList",
(gogoproto.nullable) = false
];
// v defines the signature value // v defines the signature value
bytes v = 9; bytes v = 9;
// r defines the signature value // r defines the signature value
@ -101,25 +101,68 @@ message AccessListTx {
bytes s = 11; bytes s = 11;
} }
// DynamicFeeTx is the data of EIP-1559 dinamic fee transactions.
message DynamicFeeTx {
option (gogoproto.goproto_getters) = false;
option (cosmos_proto.implements_interface) = "TxData";
// destination EVM chain ID
string chain_id = 1 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.customname) = "ChainID",
(gogoproto.jsontag) = "chainID"
];
// nonce corresponds to the account nonce (transaction sequence).
uint64 nonce = 2;
// gas tip cap defines the max value for the gas tip
string gas_tip_cap = 3
[ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ];
// gas fee cap defines the max value for the gas fee
string gas_fee_cap = 4
[ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ];
// gas defines the gas limit defined for the transaction.
uint64 gas = 5 [ (gogoproto.customname) = "GasLimit" ];
// hex formatted address of the recipient
string to = 6;
// value defines the the transaction amount.
string value = 7 [
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.customname) = "Amount"
];
// input defines the data payload bytes of the transaction.
bytes data = 8;
repeated AccessTuple accesses = 9 [
(gogoproto.castrepeated) = "AccessList",
(gogoproto.jsontag) = "accessList",
(gogoproto.nullable) = false
];
// v defines the signature value
bytes v = 10;
// r defines the signature value
bytes r = 11;
// s define the signature value
bytes s = 12;
}
message ExtensionOptionsEthereumTx { message ExtensionOptionsEthereumTx {
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
} }
message ExtensionOptionsWeb3Tx { message ExtensionOptionsWeb3Tx { option (gogoproto.goproto_getters) = false; }
option (gogoproto.goproto_getters) = false;
}
// MsgEthereumTxResponse defines the Msg/EthereumTx response type. // MsgEthereumTxResponse defines the Msg/EthereumTx response type.
message MsgEthereumTxResponse { message MsgEthereumTxResponse {
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// ethereum transaction hash in hex format. This hash differs from the Tendermint sha256 hash of the transaction // ethereum transaction hash in hex format. This hash differs from the
// bytes. See https://github.com/tendermint/tendermint/issues/6539 for reference // Tendermint sha256 hash of the transaction bytes. See
// https://github.com/tendermint/tendermint/issues/6539 for reference
string hash = 1; string hash = 1;
// logs contains the transaction hash and the proto-compatible ethereum // logs contains the transaction hash and the proto-compatible ethereum
// logs. // logs.
repeated Log logs = 2; repeated Log logs = 2;
// returned data from evm function (result or data supplied with revert opcode) // returned data from evm function (result or data supplied with revert
// opcode)
bytes ret = 3; bytes ret = 3;
// vm error is the error returned by vm execution // vm error is the error returned by vm execution
string vm_error = 4; string vm_error = 4;

View File

@ -98,6 +98,16 @@ func (tx *AccessListTx) GetGasPrice() *big.Int {
return tx.GasPrice.BigInt() return tx.GasPrice.BigInt()
} }
// GetGasTipCap returns the gas price field.
func (tx *AccessListTx) GetGasTipCap() *big.Int {
return tx.GetGasPrice()
}
// GetGasFeeCap returns the gas price field.
func (tx *AccessListTx) GetGasFeeCap() *big.Int {
return tx.GetGasPrice()
}
// GetValue returns the tx amount. // GetValue returns the tx amount.
func (tx *AccessListTx) GetValue() *big.Int { func (tx *AccessListTx) GetValue() *big.Int {
if tx.Amount == nil { if tx.Amount == nil {

View File

@ -37,6 +37,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) {
registry.RegisterInterface( registry.RegisterInterface(
"ethermint.evm.v1alpha1.TxData", "ethermint.evm.v1alpha1.TxData",
(*TxData)(nil), (*TxData)(nil),
&DynamicFeeTx{},
&AccessListTx{}, &AccessListTx{},
&LegacyTx{}, &LegacyTx{},
) )

View File

@ -0,0 +1,245 @@
package types
import (
"math/big"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/ethereum/go-ethereum/common"
ethtypes "github.com/ethereum/go-ethereum/core/types"
"github.com/tharsis/ethermint/types"
)
// nolint: deadcode, unused
func newDynamicFeeTx(tx *ethtypes.Transaction) *DynamicFeeTx {
txData := &DynamicFeeTx{
Nonce: tx.Nonce(),
Data: tx.Data(),
GasLimit: tx.Gas(),
}
v, r, s := tx.RawSignatureValues()
if tx.To() != nil {
txData.To = tx.To().Hex()
}
if tx.Value() != nil {
amountInt := sdk.NewIntFromBigInt(tx.Value())
txData.Amount = &amountInt
}
// TODO:
// if tx.GasFeeCap() != nil {
// gasFeeCapInt := sdk.NewIntFromBigInt(tx.GasFeeCap())
// txData.GasFeeCap = &gasFeeCapInt
// }
// if tx.GasTipCap() != nil {
// gasTipCapInt := sdk.NewIntFromBigInt(tx.GasTipCap())
// txData.GasTipCap = &gasTipCapInt
// }
if tx.AccessList() != nil {
al := tx.AccessList()
txData.Accesses = NewAccessList(&al)
}
txData.SetSignatureValues(tx.ChainId(), v, r, s)
return txData
}
// TxType returns the tx type
func (tx *DynamicFeeTx) TxType() uint8 {
// TODO
return 0
// return ethtypes.DynamicFeeTxType
}
// Copy returns an instance with the same field values
func (tx *DynamicFeeTx) Copy() TxData {
return &DynamicFeeTx{
ChainID: tx.ChainID,
Nonce: tx.Nonce,
GasTipCap: tx.GasTipCap,
GasFeeCap: tx.GasFeeCap,
GasLimit: tx.GasLimit,
To: tx.To,
Amount: tx.Amount,
Data: common.CopyBytes(tx.Data),
Accesses: tx.Accesses,
V: common.CopyBytes(tx.V),
R: common.CopyBytes(tx.R),
S: common.CopyBytes(tx.S),
}
}
// GetChainID returns the chain id field from the DynamicFeeTx
func (tx *DynamicFeeTx) GetChainID() *big.Int {
if tx.ChainID == nil {
return nil
}
return tx.ChainID.BigInt()
}
// GetAccessList returns the AccessList field.
func (tx *DynamicFeeTx) GetAccessList() ethtypes.AccessList {
if tx.Accesses == nil {
return nil
}
return *tx.Accesses.ToEthAccessList()
}
// GetData returns the a copy of the input data bytes.
func (tx *DynamicFeeTx) GetData() []byte {
return common.CopyBytes(tx.Data)
}
// GetGas returns the gas limit.
func (tx *DynamicFeeTx) GetGas() uint64 {
return tx.GasLimit
}
// GetGasPrice returns the gas fee cap field.
func (tx *DynamicFeeTx) GetGasPrice() *big.Int {
return tx.GetGasFeeCap()
}
// GetGasTipCap returns the gas price field.
func (tx *DynamicFeeTx) GetGasTipCap() *big.Int {
if tx.GasTipCap == nil {
return nil
}
return tx.GasTipCap.BigInt()
}
// GetGasFeeCap returns the gas price field.
func (tx *DynamicFeeTx) GetGasFeeCap() *big.Int {
if tx.GasFeeCap == nil {
return nil
}
return tx.GasFeeCap.BigInt()
}
// GetValue returns the tx amount.
func (tx *DynamicFeeTx) GetValue() *big.Int {
if tx.Amount == nil {
return nil
}
return tx.Amount.BigInt()
}
// GetNonce returns the account sequence for the transaction.
func (tx *DynamicFeeTx) GetNonce() uint64 { return tx.Nonce }
// GetTo returns the pointer to the recipient address.
func (tx *DynamicFeeTx) GetTo() *common.Address {
if tx.To == "" {
return nil
}
to := common.HexToAddress(tx.To)
return &to
}
// AsEthereumData returns an DynamicFeeTx transaction tx from the proto-formatted
// TxData defined on the Cosmos EVM.
func (tx *DynamicFeeTx) AsEthereumData() ethtypes.TxData {
return nil
// TODO:
// v, r, s := tx.GetRawSignatureValues()
// return &ethtypes.DynamicFeeTx{
// ChainID: tx.GetChainID(),
// Nonce: tx.GetNonce(),
// GasTipCap: tx.GetGasTipCap(),
// GasFeeCap: tx.GetGasFeeCap(),
// Gas: tx.GetGas(),
// To: tx.GetTo(),
// Value: tx.GetValue(),
// Data: tx.GetData(),
// AccessList: tx.GetAccessList(),
// V: v,
// R: r,
// S: s,
// }
}
// GetRawSignatureValues returns the V, R, S signature values of the transaction.
// The return values should not be modified by the caller.
func (tx *DynamicFeeTx) GetRawSignatureValues() (v, r, s *big.Int) {
return rawSignatureValues(tx.V, tx.R, tx.S)
}
// SetSignatureValues sets the signature values to the transaction.
func (tx *DynamicFeeTx) SetSignatureValues(chainID, v, r, s *big.Int) {
if v != nil {
tx.V = v.Bytes()
}
if r != nil {
tx.R = r.Bytes()
}
if s != nil {
tx.S = s.Bytes()
}
if chainID != nil {
chainIDInt := sdk.NewIntFromBigInt(chainID)
tx.ChainID = &chainIDInt
}
}
// Validate performs a stateless validation of the tx fields.
func (tx DynamicFeeTx) Validate() error {
if tx.GasTipCap == nil {
return sdkerrors.Wrap(ErrInvalidGasCap, "gas tip cap cannot nil")
}
if tx.GasFeeCap == nil {
return sdkerrors.Wrap(ErrInvalidGasCap, "gas fee cap cannot nil")
}
if tx.GasTipCap.IsNegative() {
return sdkerrors.Wrapf(ErrInvalidGasCap, "gas tip cap cannot be negative %s", tx.GasTipCap)
}
if tx.GasFeeCap.IsNegative() {
return sdkerrors.Wrapf(ErrInvalidGasCap, "gas fee cap cannot be negative %s", tx.GasFeeCap)
}
if tx.GasFeeCap.LT(*tx.GasTipCap) {
return sdkerrors.Wrapf(
ErrInvalidGasCap, "max priority fee per gas higher than max fee per gas (%s > %s)",
tx.GasTipCap, tx.GasFeeCap,
)
}
amount := tx.GetValue()
// Amount can be 0
if amount != nil && amount.Sign() == -1 {
return sdkerrors.Wrapf(ErrInvalidAmount, "amount cannot be negative %s", amount)
}
if tx.To != "" {
if err := types.ValidateAddress(tx.To); err != nil {
return sdkerrors.Wrap(err, "invalid to address")
}
}
if tx.GetChainID() == nil {
return sdkerrors.Wrap(
sdkerrors.ErrInvalidChainID,
"chain ID must be present on AccessList txs",
)
}
return nil
}
// Fee panics as it requires the base fee amount to calculate
func (tx DynamicFeeTx) Fee() *big.Int {
panic("fee can only be called manually by providing the base fee")
}
// Cost returns amount + gasprice * gaslimit.
func (tx DynamicFeeTx) Cost() *big.Int {
panic("cost can only be called manually by providing the base fee")
}

View File

@ -28,6 +28,8 @@ const (
codeErrVMExecution codeErrVMExecution
codeErrInvalidRefund codeErrInvalidRefund
codeErrInconsistentGas codeErrInconsistentGas
codeErrInvalidGasCap
codeErrInvalidBaseFee
) )
var ( var (
@ -75,6 +77,12 @@ var (
// ErrInconsistentGas returns an error if a the gas differs from the expected one. // ErrInconsistentGas returns an error if a the gas differs from the expected one.
ErrInconsistentGas = sdkerrors.Register(ModuleName, codeErrInconsistentGas, "inconsistent gas") ErrInconsistentGas = sdkerrors.Register(ModuleName, codeErrInconsistentGas, "inconsistent gas")
// ErrInvalidGasCap returns an error if a the gas cap value is negative or invalid
ErrInvalidGasCap = sdkerrors.Register(ModuleName, codeErrInvalidGasCap, "invalid gas cap")
// ErrInvalidBaseFee returns an error if a the base fee cap value is invalid
ErrInvalidBaseFee = sdkerrors.Register(ModuleName, codeErrInvalidBaseFee, "invalid base fee")
) )
// NewExecErrorWithReason unpacks the revert return bytes and returns a wrapped error // NewExecErrorWithReason unpacks the revert return bytes and returns a wrapped error

View File

@ -85,6 +85,16 @@ func (tx *LegacyTx) GetGasPrice() *big.Int {
return tx.GasPrice.BigInt() return tx.GasPrice.BigInt()
} }
// GetGasTipCap returns the gas price field.
func (tx *LegacyTx) GetGasTipCap() *big.Int {
return tx.GetGasPrice()
}
// GetGasFeeCap returns the gas price field.
func (tx *LegacyTx) GetGasFeeCap() *big.Int {
return tx.GetGasPrice()
}
// GetValue returns the tx amount. // GetValue returns the tx amount.
func (tx *LegacyTx) GetValue() *big.Int { func (tx *LegacyTx) GetValue() *big.Int {
if tx.Amount == nil { if tx.Amount == nil {

View File

@ -133,7 +133,8 @@ func (m *QueryAccountResponse) GetNonce() uint64 {
return 0 return 0
} }
// QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC method. // QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC
// method.
type QueryCosmosAccountRequest struct { type QueryCosmosAccountRequest struct {
// address is the ethereum hex address to query the account for. // address is the ethereum hex address to query the account for.
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
@ -172,7 +173,8 @@ func (m *QueryCosmosAccountRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_QueryCosmosAccountRequest proto.InternalMessageInfo var xxx_messageInfo_QueryCosmosAccountRequest proto.InternalMessageInfo
// QueryCosmosAccountResponse is the response type for the Query/CosmosAccount RPC method. // QueryCosmosAccountResponse is the response type for the Query/CosmosAccount
// RPC method.
type QueryCosmosAccountResponse struct { type QueryCosmosAccountResponse struct {
// cosmos_address is the cosmos address of the account. // cosmos_address is the cosmos address of the account.
CosmosAddress string `protobuf:"bytes,1,opt,name=cosmos_address,json=cosmosAddress,proto3" json:"cosmos_address,omitempty"` CosmosAddress string `protobuf:"bytes,1,opt,name=cosmos_address,json=cosmosAddress,proto3" json:"cosmos_address,omitempty"`
@ -236,7 +238,8 @@ func (m *QueryCosmosAccountResponse) GetAccountNumber() uint64 {
return 0 return 0
} }
// QueryValidatorAccountRequest is the request type for the Query/ValidatorAccount RPC method. // QueryValidatorAccountRequest is the request type for the
// Query/ValidatorAccount RPC method.
type QueryValidatorAccountRequest struct { type QueryValidatorAccountRequest struct {
// cons_address is the validator cons address to query the account for. // cons_address is the validator cons address to query the account for.
ConsAddress string `protobuf:"bytes,1,opt,name=cons_address,json=consAddress,proto3" json:"cons_address,omitempty"` ConsAddress string `protobuf:"bytes,1,opt,name=cons_address,json=consAddress,proto3" json:"cons_address,omitempty"`
@ -275,7 +278,8 @@ func (m *QueryValidatorAccountRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_QueryValidatorAccountRequest proto.InternalMessageInfo var xxx_messageInfo_QueryValidatorAccountRequest proto.InternalMessageInfo
// QueryValidatorAccountResponse is the response type for the Query/ValidatorAccount RPC method. // QueryValidatorAccountResponse is the response type for the
// Query/ValidatorAccount RPC method.
type QueryValidatorAccountResponse struct { type QueryValidatorAccountResponse struct {
// account_address is the cosmos address of the account in bech32 format. // account_address is the cosmos address of the account in bech32 format.
AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"`
@ -784,8 +788,8 @@ func (m *QueryBlockLogsResponse) GetPagination() *query.PageResponse {
type QueryBlockBloomRequest struct { type QueryBlockBloomRequest struct {
// height of the block which we want to query the bloom filter. // height of the block which we want to query the bloom filter.
// Tendermint always replace the query request header by the current context // Tendermint always replace the query request header by the current context
// header, height cannot be extracted from there, so we need to explicitly pass // header, height cannot be extracted from there, so we need to explicitly
// it in parameter. // pass it in parameter.
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
} }
@ -1290,7 +1294,8 @@ type QueryClient interface {
Account(ctx context.Context, in *QueryAccountRequest, opts ...grpc.CallOption) (*QueryAccountResponse, error) Account(ctx context.Context, in *QueryAccountRequest, opts ...grpc.CallOption) (*QueryAccountResponse, error)
// CosmosAccount queries an Ethereum account's Cosmos Address. // CosmosAccount queries an Ethereum account's Cosmos Address.
CosmosAccount(ctx context.Context, in *QueryCosmosAccountRequest, opts ...grpc.CallOption) (*QueryCosmosAccountResponse, error) CosmosAccount(ctx context.Context, in *QueryCosmosAccountRequest, opts ...grpc.CallOption) (*QueryCosmosAccountResponse, error)
// ValidatorAccount queries an Ethereum account's from a validator consensus Address. // ValidatorAccount queries an Ethereum account's from a validator consensus
// Address.
ValidatorAccount(ctx context.Context, in *QueryValidatorAccountRequest, opts ...grpc.CallOption) (*QueryValidatorAccountResponse, error) ValidatorAccount(ctx context.Context, in *QueryValidatorAccountRequest, opts ...grpc.CallOption) (*QueryValidatorAccountResponse, error)
// Balance queries the balance of a the EVM denomination for a single // Balance queries the balance of a the EVM denomination for a single
// EthAccount. // EthAccount.
@ -1446,7 +1451,8 @@ type QueryServer interface {
Account(context.Context, *QueryAccountRequest) (*QueryAccountResponse, error) Account(context.Context, *QueryAccountRequest) (*QueryAccountResponse, error)
// CosmosAccount queries an Ethereum account's Cosmos Address. // CosmosAccount queries an Ethereum account's Cosmos Address.
CosmosAccount(context.Context, *QueryCosmosAccountRequest) (*QueryCosmosAccountResponse, error) CosmosAccount(context.Context, *QueryCosmosAccountRequest) (*QueryCosmosAccountResponse, error)
// ValidatorAccount queries an Ethereum account's from a validator consensus Address. // ValidatorAccount queries an Ethereum account's from a validator consensus
// Address.
ValidatorAccount(context.Context, *QueryValidatorAccountRequest) (*QueryValidatorAccountResponse, error) ValidatorAccount(context.Context, *QueryValidatorAccountRequest) (*QueryValidatorAccountResponse, error)
// Balance queries the balance of a the EVM denomination for a single // Balance queries the balance of a the EVM denomination for a single
// EthAccount. // EthAccount.

View File

@ -40,9 +40,9 @@ type MsgEthereumTx struct {
Size_ float64 `protobuf:"fixed64,2,opt,name=size,proto3" json:"-"` Size_ float64 `protobuf:"fixed64,2,opt,name=size,proto3" json:"-"`
// transaction hash in hex format // transaction hash in hex format
Hash string `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty" rlp:"-"` Hash string `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty" rlp:"-"`
// ethereum signer address in hex format. This address value is checked against // ethereum signer address in hex format. This address value is checked
// the address derived from the signature (V, R, S) using the secp256k1 // against the address derived from the signature (V, R, S) using the
// elliptic curve // secp256k1 elliptic curve
From string `protobuf:"bytes,4,opt,name=from,proto3" json:"from,omitempty"` From string `protobuf:"bytes,4,opt,name=from,proto3" json:"from,omitempty"`
} }
@ -192,6 +192,66 @@ func (m *AccessListTx) XXX_DiscardUnknown() {
var xxx_messageInfo_AccessListTx proto.InternalMessageInfo var xxx_messageInfo_AccessListTx proto.InternalMessageInfo
// DynamicFeeTx is the data of EIP-1559 dinamic fee transactions.
type DynamicFeeTx struct {
// destination EVM chain ID
ChainID *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"chainID"`
// nonce corresponds to the account nonce (transaction sequence).
Nonce uint64 `protobuf:"varint,2,opt,name=nonce,proto3" json:"nonce,omitempty"`
// gas tip cap defines the max value for the gas tip
GasTipCap *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=gas_tip_cap,json=gasTipCap,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"gas_tip_cap,omitempty"`
// gas fee cap defines the max value for the gas fee
GasFeeCap *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=gas_fee_cap,json=gasFeeCap,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"gas_fee_cap,omitempty"`
// gas defines the gas limit defined for the transaction.
GasLimit uint64 `protobuf:"varint,5,opt,name=gas,proto3" json:"gas,omitempty"`
// hex formatted address of the recipient
To string `protobuf:"bytes,6,opt,name=to,proto3" json:"to,omitempty"`
// value defines the the transaction amount.
Amount *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=value,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"value,omitempty"`
// input defines the data payload bytes of the transaction.
Data []byte `protobuf:"bytes,8,opt,name=data,proto3" json:"data,omitempty"`
Accesses AccessList `protobuf:"bytes,9,rep,name=accesses,proto3,castrepeated=AccessList" json:"accessList"`
// v defines the signature value
V []byte `protobuf:"bytes,10,opt,name=v,proto3" json:"v,omitempty"`
// r defines the signature value
R []byte `protobuf:"bytes,11,opt,name=r,proto3" json:"r,omitempty"`
// s define the signature value
S []byte `protobuf:"bytes,12,opt,name=s,proto3" json:"s,omitempty"`
}
func (m *DynamicFeeTx) Reset() { *m = DynamicFeeTx{} }
func (m *DynamicFeeTx) String() string { return proto.CompactTextString(m) }
func (*DynamicFeeTx) ProtoMessage() {}
func (*DynamicFeeTx) Descriptor() ([]byte, []int) {
return fileDescriptor_6a305e80b084ab0e, []int{3}
}
func (m *DynamicFeeTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *DynamicFeeTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_DynamicFeeTx.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *DynamicFeeTx) XXX_Merge(src proto.Message) {
xxx_messageInfo_DynamicFeeTx.Merge(m, src)
}
func (m *DynamicFeeTx) XXX_Size() int {
return m.Size()
}
func (m *DynamicFeeTx) XXX_DiscardUnknown() {
xxx_messageInfo_DynamicFeeTx.DiscardUnknown(m)
}
var xxx_messageInfo_DynamicFeeTx proto.InternalMessageInfo
type ExtensionOptionsEthereumTx struct { type ExtensionOptionsEthereumTx struct {
} }
@ -199,7 +259,7 @@ func (m *ExtensionOptionsEthereumTx) Reset() { *m = ExtensionOptionsEthe
func (m *ExtensionOptionsEthereumTx) String() string { return proto.CompactTextString(m) } func (m *ExtensionOptionsEthereumTx) String() string { return proto.CompactTextString(m) }
func (*ExtensionOptionsEthereumTx) ProtoMessage() {} func (*ExtensionOptionsEthereumTx) ProtoMessage() {}
func (*ExtensionOptionsEthereumTx) Descriptor() ([]byte, []int) { func (*ExtensionOptionsEthereumTx) Descriptor() ([]byte, []int) {
return fileDescriptor_6a305e80b084ab0e, []int{3} return fileDescriptor_6a305e80b084ab0e, []int{4}
} }
func (m *ExtensionOptionsEthereumTx) XXX_Unmarshal(b []byte) error { func (m *ExtensionOptionsEthereumTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -235,7 +295,7 @@ func (m *ExtensionOptionsWeb3Tx) Reset() { *m = ExtensionOptionsWeb3Tx{}
func (m *ExtensionOptionsWeb3Tx) String() string { return proto.CompactTextString(m) } func (m *ExtensionOptionsWeb3Tx) String() string { return proto.CompactTextString(m) }
func (*ExtensionOptionsWeb3Tx) ProtoMessage() {} func (*ExtensionOptionsWeb3Tx) ProtoMessage() {}
func (*ExtensionOptionsWeb3Tx) Descriptor() ([]byte, []int) { func (*ExtensionOptionsWeb3Tx) Descriptor() ([]byte, []int) {
return fileDescriptor_6a305e80b084ab0e, []int{4} return fileDescriptor_6a305e80b084ab0e, []int{5}
} }
func (m *ExtensionOptionsWeb3Tx) XXX_Unmarshal(b []byte) error { func (m *ExtensionOptionsWeb3Tx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -266,13 +326,15 @@ var xxx_messageInfo_ExtensionOptionsWeb3Tx proto.InternalMessageInfo
// MsgEthereumTxResponse defines the Msg/EthereumTx response type. // MsgEthereumTxResponse defines the Msg/EthereumTx response type.
type MsgEthereumTxResponse struct { type MsgEthereumTxResponse struct {
// ethereum transaction hash in hex format. This hash differs from the Tendermint sha256 hash of the transaction // ethereum transaction hash in hex format. This hash differs from the
// bytes. See https://github.com/tendermint/tendermint/issues/6539 for reference // Tendermint sha256 hash of the transaction bytes. See
// https://github.com/tendermint/tendermint/issues/6539 for reference
Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
// logs contains the transaction hash and the proto-compatible ethereum // logs contains the transaction hash and the proto-compatible ethereum
// logs. // logs.
Logs []*Log `protobuf:"bytes,2,rep,name=logs,proto3" json:"logs,omitempty"` Logs []*Log `protobuf:"bytes,2,rep,name=logs,proto3" json:"logs,omitempty"`
// returned data from evm function (result or data supplied with revert opcode) // returned data from evm function (result or data supplied with revert
// opcode)
Ret []byte `protobuf:"bytes,3,opt,name=ret,proto3" json:"ret,omitempty"` Ret []byte `protobuf:"bytes,3,opt,name=ret,proto3" json:"ret,omitempty"`
// vm error is the error returned by vm execution // vm error is the error returned by vm execution
VmError string `protobuf:"bytes,4,opt,name=vm_error,json=vmError,proto3" json:"vm_error,omitempty"` VmError string `protobuf:"bytes,4,opt,name=vm_error,json=vmError,proto3" json:"vm_error,omitempty"`
@ -284,7 +346,7 @@ func (m *MsgEthereumTxResponse) Reset() { *m = MsgEthereumTxResponse{} }
func (m *MsgEthereumTxResponse) String() string { return proto.CompactTextString(m) } func (m *MsgEthereumTxResponse) String() string { return proto.CompactTextString(m) }
func (*MsgEthereumTxResponse) ProtoMessage() {} func (*MsgEthereumTxResponse) ProtoMessage() {}
func (*MsgEthereumTxResponse) Descriptor() ([]byte, []int) { func (*MsgEthereumTxResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_6a305e80b084ab0e, []int{5} return fileDescriptor_6a305e80b084ab0e, []int{6}
} }
func (m *MsgEthereumTxResponse) XXX_Unmarshal(b []byte) error { func (m *MsgEthereumTxResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -317,6 +379,7 @@ func init() {
proto.RegisterType((*MsgEthereumTx)(nil), "ethermint.evm.v1alpha1.MsgEthereumTx") proto.RegisterType((*MsgEthereumTx)(nil), "ethermint.evm.v1alpha1.MsgEthereumTx")
proto.RegisterType((*LegacyTx)(nil), "ethermint.evm.v1alpha1.LegacyTx") proto.RegisterType((*LegacyTx)(nil), "ethermint.evm.v1alpha1.LegacyTx")
proto.RegisterType((*AccessListTx)(nil), "ethermint.evm.v1alpha1.AccessListTx") proto.RegisterType((*AccessListTx)(nil), "ethermint.evm.v1alpha1.AccessListTx")
proto.RegisterType((*DynamicFeeTx)(nil), "ethermint.evm.v1alpha1.DynamicFeeTx")
proto.RegisterType((*ExtensionOptionsEthereumTx)(nil), "ethermint.evm.v1alpha1.ExtensionOptionsEthereumTx") proto.RegisterType((*ExtensionOptionsEthereumTx)(nil), "ethermint.evm.v1alpha1.ExtensionOptionsEthereumTx")
proto.RegisterType((*ExtensionOptionsWeb3Tx)(nil), "ethermint.evm.v1alpha1.ExtensionOptionsWeb3Tx") proto.RegisterType((*ExtensionOptionsWeb3Tx)(nil), "ethermint.evm.v1alpha1.ExtensionOptionsWeb3Tx")
proto.RegisterType((*MsgEthereumTxResponse)(nil), "ethermint.evm.v1alpha1.MsgEthereumTxResponse") proto.RegisterType((*MsgEthereumTxResponse)(nil), "ethermint.evm.v1alpha1.MsgEthereumTxResponse")
@ -325,54 +388,59 @@ func init() {
func init() { proto.RegisterFile("ethermint/evm/v1alpha1/tx.proto", fileDescriptor_6a305e80b084ab0e) } func init() { proto.RegisterFile("ethermint/evm/v1alpha1/tx.proto", fileDescriptor_6a305e80b084ab0e) }
var fileDescriptor_6a305e80b084ab0e = []byte{ var fileDescriptor_6a305e80b084ab0e = []byte{
// 750 bytes of a gzipped FileDescriptorProto // 829 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x41, 0x6b, 0xdb, 0x48, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x55, 0x4d, 0x6f, 0xf3, 0x44,
0x14, 0xf6, 0xd8, 0xb2, 0x2d, 0x8f, 0xbd, 0x61, 0x19, 0xb2, 0x41, 0xf1, 0x82, 0x64, 0xbc, 0xec, 0x10, 0x8e, 0x13, 0x27, 0x76, 0x36, 0xe1, 0x15, 0xb2, 0xca, 0x2b, 0x37, 0x48, 0x76, 0x14, 0x04,
0x62, 0x16, 0x2c, 0x91, 0x64, 0x4f, 0x39, 0x6d, 0xb4, 0x09, 0x21, 0x8b, 0xc3, 0x2e, 0xc2, 0xa5, 0x8a, 0x90, 0x62, 0xab, 0x2d, 0xa7, 0x9e, 0xa8, 0xfb, 0xa5, 0x56, 0xa9, 0x40, 0x56, 0x10, 0x12,
0xd0, 0x1e, 0xc2, 0x58, 0x9e, 0xc8, 0xa2, 0x96, 0xc6, 0x68, 0xc6, 0xc2, 0xee, 0x2f, 0xe8, 0xad, 0x1c, 0xa2, 0x8d, 0xb3, 0x75, 0x56, 0xc4, 0x5e, 0xcb, 0xbb, 0xb1, 0x12, 0x7e, 0x01, 0x37, 0xf8,
0xfd, 0x09, 0x3d, 0xe7, 0xda, 0xfe, 0x88, 0x1c, 0x43, 0x4f, 0xa5, 0x07, 0xb5, 0x38, 0xb7, 0x1c, 0x09, 0x9c, 0x7b, 0x85, 0xdf, 0x80, 0x7a, 0xac, 0x38, 0x21, 0x0e, 0x06, 0xa5, 0xb7, 0x1e, 0xb9,
0x7b, 0xe9, 0xb5, 0xcc, 0x48, 0xb6, 0xe3, 0xb6, 0x2e, 0x29, 0xed, 0x49, 0xef, 0xe9, 0x7d, 0x33, 0x70, 0x45, 0xbb, 0x76, 0x92, 0x86, 0x92, 0xaa, 0x94, 0xa2, 0xf7, 0x94, 0x19, 0xcf, 0xb3, 0x33,
0xef, 0xcd, 0xf7, 0xbd, 0xf7, 0xa0, 0x41, 0xf8, 0x80, 0x44, 0x81, 0x1f, 0x72, 0x8b, 0xc4, 0x81, 0xb3, 0xf3, 0x3c, 0xd9, 0x01, 0x26, 0x62, 0x23, 0x14, 0x07, 0x38, 0x64, 0x36, 0x4a, 0x02, 0x3b,
0x15, 0xef, 0xe0, 0xe1, 0x68, 0x80, 0x77, 0x2c, 0x3e, 0x31, 0x47, 0x11, 0xe5, 0x14, 0x6d, 0x2d, 0xd9, 0x81, 0xe3, 0x68, 0x04, 0x77, 0x6c, 0x36, 0xb5, 0xa2, 0x98, 0x30, 0xa2, 0xbd, 0x5e, 0x02,
0x00, 0x26, 0x89, 0x03, 0x73, 0x0e, 0xa8, 0x6f, 0x7a, 0xd4, 0xa3, 0x12, 0x62, 0x09, 0x2b, 0x45, 0x2c, 0x94, 0x04, 0xd6, 0x02, 0xd0, 0xd8, 0xf2, 0x89, 0x4f, 0x04, 0xc4, 0xe6, 0x56, 0x86, 0x6e,
0xd7, 0xb7, 0x3d, 0x4a, 0xbd, 0x21, 0xb1, 0xa4, 0xd7, 0x1b, 0x9f, 0x5b, 0x38, 0x9c, 0xce, 0x43, 0x6c, 0xfb, 0x84, 0xf8, 0x63, 0x64, 0x0b, 0x6f, 0x30, 0xb9, 0xb4, 0x61, 0x38, 0x5b, 0x84, 0x3c,
0x2e, 0x65, 0x01, 0x65, 0x67, 0xe9, 0x99, 0xd4, 0xc9, 0x42, 0x8d, 0x35, 0x45, 0x88, 0x84, 0x12, 0x42, 0x03, 0x42, 0xfb, 0xd9, 0x99, 0xcc, 0xc9, 0x43, 0xcd, 0x0d, 0x4d, 0xf0, 0x82, 0x02, 0xd1,
0xd1, 0x7c, 0x0a, 0xe0, 0x4f, 0xa7, 0xcc, 0x3b, 0x12, 0x38, 0x32, 0x0e, 0xba, 0x13, 0xd4, 0x82, 0xfa, 0x56, 0x02, 0x6f, 0x5d, 0x50, 0xff, 0x98, 0xe3, 0xd0, 0x24, 0xe8, 0x4d, 0xb5, 0x36, 0x90,
0x4a, 0x1f, 0x73, 0xac, 0x81, 0x06, 0x68, 0x55, 0x77, 0x37, 0xcd, 0x34, 0xb1, 0x39, 0x4f, 0x6c, 0x87, 0x90, 0x41, 0x5d, 0x6a, 0x4a, 0xed, 0xda, 0xee, 0x96, 0x95, 0x15, 0xb6, 0x16, 0x85, 0xad,
0x1e, 0x84, 0x53, 0x47, 0x22, 0xd0, 0x36, 0x54, 0x98, 0xff, 0x98, 0x68, 0xf9, 0x06, 0x68, 0x01, 0x83, 0x70, 0xe6, 0x0a, 0x84, 0xb6, 0x0d, 0x64, 0x8a, 0xbf, 0x46, 0x7a, 0xb1, 0x29, 0xb5, 0x25,
0xbb, 0x78, 0x93, 0x18, 0xa0, 0xed, 0xc8, 0x5f, 0xc8, 0x80, 0xca, 0x00, 0xb3, 0x81, 0x56, 0x68, 0xa7, 0x7c, 0x97, 0x9a, 0x52, 0xc7, 0x15, 0x9f, 0x34, 0x13, 0xc8, 0x23, 0x48, 0x47, 0x7a, 0xa9,
0x80, 0x56, 0xc5, 0xae, 0xbe, 0x4f, 0x8c, 0x72, 0x34, 0x1c, 0xed, 0x37, 0xdb, 0x4d, 0x47, 0x06, 0x29, 0xb5, 0xab, 0x4e, 0xed, 0x8f, 0xd4, 0x54, 0xe2, 0x71, 0xb4, 0xdf, 0xea, 0xb4, 0x5c, 0x11,
0x10, 0x82, 0xca, 0x79, 0x44, 0x03, 0x4d, 0x11, 0x00, 0x47, 0xda, 0xfb, 0xca, 0x93, 0xe7, 0x46, 0xd0, 0x34, 0x20, 0x5f, 0xc6, 0x24, 0xd0, 0x65, 0x0e, 0x70, 0x85, 0xbd, 0x2f, 0x7f, 0xf3, 0xbd,
0xae, 0xf9, 0x22, 0x0f, 0xd5, 0x0e, 0xf1, 0xb0, 0x3b, 0xed, 0x4e, 0xd0, 0x26, 0x2c, 0x86, 0x34, 0x59, 0x68, 0xfd, 0x50, 0x04, 0x6a, 0x17, 0xf9, 0xd0, 0x9b, 0xf5, 0xa6, 0xda, 0x16, 0x28, 0x87,
0x74, 0x89, 0xac, 0x46, 0x71, 0x52, 0x07, 0x1d, 0xc3, 0x8a, 0x87, 0xc5, 0x83, 0x7d, 0x37, 0xcd, 0x24, 0xf4, 0x90, 0xe8, 0x46, 0x76, 0x33, 0x47, 0x3b, 0x05, 0x55, 0x1f, 0xf2, 0x0b, 0x63, 0x2f,
0x5e, 0xb1, 0xff, 0x7c, 0x93, 0x18, 0x7f, 0x78, 0x3e, 0x1f, 0x8c, 0x7b, 0xa6, 0x4b, 0x83, 0x8c, 0xab, 0x5e, 0x75, 0x3e, 0xfc, 0x35, 0x35, 0x3f, 0xf0, 0x31, 0x1b, 0x4d, 0x06, 0x96, 0x47, 0x82,
0x86, 0xec, 0xd3, 0x66, 0xfd, 0x47, 0x16, 0x9f, 0x8e, 0x08, 0x33, 0x4f, 0x42, 0xee, 0xa8, 0x1e, 0x7c, 0x0c, 0xf9, 0x4f, 0x87, 0x0e, 0xbf, 0xb2, 0xd9, 0x2c, 0x42, 0xd4, 0x3a, 0x0b, 0x99, 0xab,
0x66, 0xff, 0x8b, 0xb3, 0x48, 0x87, 0x05, 0x0f, 0x33, 0x59, 0xa5, 0x62, 0xd7, 0x66, 0x89, 0xa1, 0xfa, 0x90, 0x7e, 0xca, 0xcf, 0x6a, 0x06, 0x28, 0xf9, 0x90, 0x8a, 0x2e, 0x65, 0xa7, 0x3e, 0x4f,
0x1e, 0x63, 0xd6, 0xf1, 0x03, 0x9f, 0x3b, 0x22, 0x80, 0x36, 0x60, 0x9e, 0xd3, 0xac, 0xc6, 0x3c, 0x4d, 0xf5, 0x14, 0xd2, 0x2e, 0x0e, 0x30, 0x73, 0x79, 0x40, 0x7b, 0x05, 0x8a, 0x8c, 0xe4, 0x3d,
0xa7, 0xe8, 0x5f, 0x58, 0x8c, 0xf1, 0x70, 0x4c, 0xb4, 0xa2, 0x4c, 0xfa, 0xd7, 0xdd, 0x93, 0xce, 0x16, 0x19, 0xd1, 0xce, 0x41, 0x39, 0x81, 0xe3, 0x09, 0xd2, 0xcb, 0xa2, 0xe8, 0x47, 0x4f, 0x2f,
0x12, 0xa3, 0x74, 0x10, 0xd0, 0x71, 0xc8, 0x9d, 0xf4, 0x0a, 0xc1, 0x80, 0xe4, 0xb9, 0xd4, 0x00, 0x3a, 0x4f, 0xcd, 0xca, 0x41, 0x40, 0x26, 0x21, 0x73, 0xb3, 0x14, 0x7c, 0x02, 0x62, 0xce, 0x95,
0xad, 0x5a, 0xc6, 0x68, 0x0d, 0x82, 0x58, 0x2b, 0xcb, 0x1f, 0x20, 0x16, 0x5e, 0xa4, 0xa9, 0xa9, 0xa6, 0xd4, 0xae, 0xe7, 0x13, 0xad, 0x03, 0x29, 0xd1, 0x15, 0xf1, 0x41, 0x4a, 0xb8, 0x17, 0xeb,
0x17, 0x09, 0x8f, 0x69, 0x95, 0xd4, 0x63, 0xfb, 0x1b, 0x82, 0xab, 0x57, 0x2f, 0xdb, 0xa5, 0xee, 0x6a, 0xe6, 0xc5, 0xdc, 0xa3, 0x7a, 0x35, 0xf3, 0xe8, 0xfe, 0x2b, 0x3e, 0xab, 0x9f, 0x7f, 0xec,
0xe4, 0x10, 0x73, 0xdc, 0xfc, 0x50, 0x80, 0xb5, 0x03, 0xd7, 0x25, 0x8c, 0x75, 0x7c, 0xc6, 0xbb, 0x54, 0x7a, 0xd3, 0x23, 0xc8, 0x60, 0xeb, 0xcf, 0x12, 0xa8, 0x1f, 0x78, 0x1e, 0xa2, 0xb4, 0x8b,
0x13, 0xf4, 0x10, 0xaa, 0xee, 0x00, 0xfb, 0xe1, 0x99, 0xdf, 0x97, 0xe4, 0x55, 0xec, 0xbf, 0xbf, 0x29, 0xeb, 0x4d, 0xb5, 0x2f, 0x81, 0xea, 0x8d, 0x20, 0x0e, 0xfb, 0x78, 0x28, 0x86, 0x57, 0x75,
0xa9, 0xda, 0xf2, 0x3f, 0xe2, 0xf4, 0xc9, 0xe1, 0x4d, 0x62, 0x94, 0xdd, 0xd4, 0x74, 0x32, 0xa3, 0x3e, 0xfe, 0x57, 0xdd, 0x2a, 0x87, 0xfc, 0xf4, 0xd9, 0xd1, 0x5d, 0x6a, 0x2a, 0x5e, 0x66, 0xba,
0xbf, 0x94, 0x25, 0xbf, 0x56, 0x96, 0xc2, 0xf7, 0xcb, 0xa2, 0x7c, 0x5d, 0x96, 0xe2, 0xe7, 0xb2, 0xb9, 0x31, 0x5c, 0xd1, 0x52, 0xdc, 0x48, 0x4b, 0xe9, 0xbf, 0xd3, 0x22, 0x3f, 0x4e, 0x4b, 0xf9,
0x94, 0x7e, 0x9c, 0x2c, 0xe5, 0x5b, 0xb2, 0x60, 0xa8, 0x62, 0xc9, 0x2d, 0x61, 0x9a, 0xda, 0x28, 0x21, 0x2d, 0x95, 0x97, 0xa3, 0x45, 0xb9, 0x47, 0x0b, 0x04, 0x2a, 0x14, 0xb3, 0x45, 0x54, 0x57,
0xb4, 0xaa, 0xbb, 0xbf, 0x99, 0x5f, 0x9e, 0x5e, 0x33, 0xd5, 0xa0, 0x3b, 0x1e, 0x0d, 0x89, 0xdd, 0x9b, 0xa5, 0x76, 0x6d, 0xf7, 0x3d, 0xeb, 0x9f, 0xff, 0xbd, 0x56, 0xc6, 0x41, 0x6f, 0x12, 0x8d,
0xb8, 0x4c, 0x8c, 0xdc, 0x4d, 0x62, 0x40, 0xbc, 0x10, 0xe6, 0xe2, 0xad, 0x01, 0x97, 0x32, 0x39, 0x91, 0xd3, 0xbc, 0x4e, 0xcd, 0xc2, 0x5d, 0x6a, 0x02, 0xb8, 0x24, 0xe6, 0xea, 0x37, 0x13, 0xac,
0x8b, 0x6b, 0x53, 0xe5, 0x2b, 0x2b, 0xca, 0xc3, 0x15, 0xe5, 0xab, 0xeb, 0x94, 0x6f, 0xc2, 0xfa, 0x68, 0x72, 0x97, 0x69, 0x33, 0xe6, 0xab, 0x6b, 0xcc, 0x83, 0x35, 0xe6, 0x6b, 0x9b, 0x98, 0xff,
0xd1, 0x84, 0x93, 0x90, 0xf9, 0x34, 0xfc, 0x6f, 0xc4, 0x7d, 0x1a, 0xb2, 0xe5, 0x34, 0x67, 0x33, 0x49, 0x06, 0xf5, 0xa3, 0x59, 0x08, 0x03, 0xec, 0x9d, 0x20, 0xf4, 0x66, 0x98, 0x3f, 0x07, 0x35,
0xa5, 0xc3, 0xad, 0x4f, 0x31, 0xf7, 0x49, 0x6f, 0x6f, 0x11, 0xbf, 0x00, 0xf0, 0x97, 0x95, 0x2d, 0xce, 0x3c, 0xc3, 0x51, 0xdf, 0x83, 0xd1, 0x33, 0xb8, 0xe7, 0xc2, 0xe9, 0xe1, 0xe8, 0x10, 0x46,
0xe0, 0x10, 0x36, 0xa2, 0x21, 0x93, 0x74, 0xc8, 0x41, 0x06, 0xe9, 0x9c, 0xca, 0xd9, 0xb5, 0xa0, 0x8b, 0x5c, 0x97, 0x08, 0x89, 0x5c, 0xf2, 0xb3, 0x72, 0x9d, 0x20, 0xc4, 0x73, 0xe5, 0x42, 0x2a,
0x32, 0xa4, 0x1e, 0xd3, 0xf2, 0x92, 0x8a, 0x5f, 0xd7, 0x51, 0xd1, 0xa1, 0x9e, 0x23, 0x81, 0xe8, 0x3f, 0x2e, 0xa4, 0xca, 0x43, 0x21, 0x29, 0x2f, 0x27, 0x24, 0x75, 0x83, 0x90, 0xaa, 0xff, 0xa3,
0x67, 0x58, 0x88, 0x08, 0x97, 0x2d, 0x51, 0x73, 0x84, 0x89, 0xb6, 0xa1, 0x1a, 0x07, 0x67, 0x24, 0x90, 0xc0, 0x9a, 0x90, 0x6a, 0x6b, 0x42, 0xaa, 0x6f, 0x12, 0x52, 0x0b, 0x34, 0x8e, 0xa7, 0x0c,
0x8a, 0x68, 0x94, 0x8d, 0x57, 0x39, 0x0e, 0x8e, 0x84, 0x2b, 0x42, 0xa2, 0x8b, 0xc6, 0x8c, 0xf4, 0x85, 0x14, 0x93, 0xf0, 0x93, 0x88, 0x61, 0x12, 0xd2, 0xd5, 0x5a, 0xc8, 0x1f, 0x67, 0x03, 0xbc,
0xa5, 0xc4, 0x8a, 0x53, 0xf6, 0x30, 0xbb, 0xc7, 0x48, 0x3f, 0x2d, 0x76, 0xd7, 0x87, 0x85, 0x53, 0xfe, 0x3b, 0xe6, 0x73, 0x34, 0xd8, 0x5b, 0xc6, 0xaf, 0x24, 0xf0, 0xce, 0xda, 0x3a, 0x71, 0x11,
0xe6, 0xa1, 0x1e, 0x84, 0xb7, 0xb6, 0xd6, 0xef, 0xeb, 0xaa, 0x58, 0x79, 0x56, 0xbd, 0x7d, 0x27, 0x8d, 0x48, 0x48, 0xc5, 0x38, 0xc4, 0x46, 0x90, 0xb2, 0x07, 0x5f, 0x2c, 0x01, 0x1b, 0xc8, 0x63,
0xd8, 0xfc, 0xf5, 0xb6, 0x7d, 0x39, 0xd3, 0xc1, 0xd5, 0x4c, 0x07, 0xef, 0x66, 0x3a, 0x78, 0x76, 0xe2, 0x53, 0xbd, 0x28, 0x46, 0xf1, 0xee, 0xa6, 0x51, 0x74, 0x89, 0xef, 0x0a, 0xa0, 0xf6, 0x36,
0xad, 0xe7, 0xae, 0xae, 0xf5, 0xdc, 0xeb, 0x6b, 0x3d, 0xf7, 0xa0, 0x75, 0xab, 0xbf, 0xf8, 0x00, 0x28, 0xc5, 0x88, 0x09, 0x7d, 0xd5, 0x5d, 0x6e, 0x6a, 0xdb, 0x40, 0x4d, 0x82, 0x3e, 0x8a, 0x63,
0x47, 0xcc, 0x67, 0xd6, 0x72, 0xd9, 0x4e, 0xe4, 0xba, 0x95, 0x5d, 0xd6, 0x2b, 0xc9, 0xcd, 0xb9, 0x12, 0xe7, 0xef, 0xb4, 0x92, 0x04, 0xc7, 0xdc, 0xe5, 0x21, 0x2e, 0xa4, 0x09, 0x45, 0xc3, 0x4c,
0xf7, 0x31, 0x00, 0x00, 0xff, 0xff, 0x32, 0x13, 0x74, 0x7d, 0x11, 0x06, 0x00, 0x00, 0x01, 0xae, 0xe2, 0x43, 0xfa, 0x19, 0x45, 0xc3, 0xac, 0xd9, 0x5d, 0x0c, 0x4a, 0x17, 0xd4, 0xd7,
0x06, 0x00, 0xdc, 0x5b, 0x7f, 0xef, 0x6f, 0xea, 0x62, 0xed, 0x5a, 0x8d, 0xce, 0x93, 0x60, 0x8b,
0xdb, 0x3b, 0xce, 0xf5, 0xdc, 0x90, 0x6e, 0xe6, 0x86, 0xf4, 0xfb, 0xdc, 0x90, 0xbe, 0xbb, 0x35,
0x0a, 0x37, 0xb7, 0x46, 0xe1, 0x97, 0x5b, 0xa3, 0xf0, 0x45, 0xfb, 0x9e, 0xbe, 0xd8, 0x08, 0xc6,
0x14, 0x53, 0x7b, 0xb5, 0xb5, 0xa7, 0x62, 0x6f, 0x0b, 0x95, 0x0d, 0x2a, 0x62, 0x05, 0xef, 0xfd,
0x15, 0x00, 0x00, 0xff, 0xff, 0xf9, 0x5f, 0x67, 0x36, 0x5a, 0x08, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -722,6 +790,136 @@ func (m *AccessListTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil return len(dAtA) - i, nil
} }
func (m *DynamicFeeTx) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *DynamicFeeTx) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *DynamicFeeTx) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.S) > 0 {
i -= len(m.S)
copy(dAtA[i:], m.S)
i = encodeVarintTx(dAtA, i, uint64(len(m.S)))
i--
dAtA[i] = 0x62
}
if len(m.R) > 0 {
i -= len(m.R)
copy(dAtA[i:], m.R)
i = encodeVarintTx(dAtA, i, uint64(len(m.R)))
i--
dAtA[i] = 0x5a
}
if len(m.V) > 0 {
i -= len(m.V)
copy(dAtA[i:], m.V)
i = encodeVarintTx(dAtA, i, uint64(len(m.V)))
i--
dAtA[i] = 0x52
}
if len(m.Accesses) > 0 {
for iNdEx := len(m.Accesses) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Accesses[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintTx(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x4a
}
}
if len(m.Data) > 0 {
i -= len(m.Data)
copy(dAtA[i:], m.Data)
i = encodeVarintTx(dAtA, i, uint64(len(m.Data)))
i--
dAtA[i] = 0x42
}
if m.Amount != nil {
{
size := m.Amount.Size()
i -= size
if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintTx(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x3a
}
if len(m.To) > 0 {
i -= len(m.To)
copy(dAtA[i:], m.To)
i = encodeVarintTx(dAtA, i, uint64(len(m.To)))
i--
dAtA[i] = 0x32
}
if m.GasLimit != 0 {
i = encodeVarintTx(dAtA, i, uint64(m.GasLimit))
i--
dAtA[i] = 0x28
}
if m.GasFeeCap != nil {
{
size := m.GasFeeCap.Size()
i -= size
if _, err := m.GasFeeCap.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintTx(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x22
}
if m.GasTipCap != nil {
{
size := m.GasTipCap.Size()
i -= size
if _, err := m.GasTipCap.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintTx(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
}
if m.Nonce != 0 {
i = encodeVarintTx(dAtA, i, uint64(m.Nonce))
i--
dAtA[i] = 0x10
}
if m.ChainID != nil {
{
size := m.ChainID.Size()
i -= size
if _, err := m.ChainID.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintTx(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *ExtensionOptionsEthereumTx) Marshal() (dAtA []byte, err error) { func (m *ExtensionOptionsEthereumTx) Marshal() (dAtA []byte, err error) {
size := m.Size() size := m.Size()
dAtA = make([]byte, size) dAtA = make([]byte, size)
@ -962,6 +1160,63 @@ func (m *AccessListTx) Size() (n int) {
return n return n
} }
func (m *DynamicFeeTx) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.ChainID != nil {
l = m.ChainID.Size()
n += 1 + l + sovTx(uint64(l))
}
if m.Nonce != 0 {
n += 1 + sovTx(uint64(m.Nonce))
}
if m.GasTipCap != nil {
l = m.GasTipCap.Size()
n += 1 + l + sovTx(uint64(l))
}
if m.GasFeeCap != nil {
l = m.GasFeeCap.Size()
n += 1 + l + sovTx(uint64(l))
}
if m.GasLimit != 0 {
n += 1 + sovTx(uint64(m.GasLimit))
}
l = len(m.To)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
if m.Amount != nil {
l = m.Amount.Size()
n += 1 + l + sovTx(uint64(l))
}
l = len(m.Data)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
if len(m.Accesses) > 0 {
for _, e := range m.Accesses {
l = e.Size()
n += 1 + l + sovTx(uint64(l))
}
}
l = len(m.V)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
l = len(m.R)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
l = len(m.S)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
return n
}
func (m *ExtensionOptionsEthereumTx) Size() (n int) { func (m *ExtensionOptionsEthereumTx) Size() (n int) {
if m == nil { if m == nil {
return 0 return 0
@ -1903,6 +2158,440 @@ func (m *AccessListTx) Unmarshal(dAtA []byte) error {
} }
return nil return nil
} }
func (m *DynamicFeeTx) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: DynamicFeeTx: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: DynamicFeeTx: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ChainID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
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 ErrInvalidLengthTx
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var v github_com_cosmos_cosmos_sdk_types.Int
m.ChainID = &v
if err := m.ChainID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType)
}
m.Nonce = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Nonce |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field GasTipCap", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
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 ErrInvalidLengthTx
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var v github_com_cosmos_cosmos_sdk_types.Int
m.GasTipCap = &v
if err := m.GasTipCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field GasFeeCap", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
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 ErrInvalidLengthTx
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var v github_com_cosmos_cosmos_sdk_types.Int
m.GasFeeCap = &v
if err := m.GasFeeCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 5:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field GasLimit", wireType)
}
m.GasLimit = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.GasLimit |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 6:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field To", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
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 ErrInvalidLengthTx
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.To = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 7:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
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 ErrInvalidLengthTx
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var v github_com_cosmos_cosmos_sdk_types.Int
m.Amount = &v
if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 8:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
if m.Data == nil {
m.Data = []byte{}
}
iNdEx = postIndex
case 9:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Accesses", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Accesses = append(m.Accesses, AccessTuple{})
if err := m.Accesses[len(m.Accesses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 10:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field V", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.V = append(m.V[:0], dAtA[iNdEx:postIndex]...)
if m.V == nil {
m.V = []byte{}
}
iNdEx = postIndex
case 11:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field R", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.R = append(m.R[:0], dAtA[iNdEx:postIndex]...)
if m.R == nil {
m.R = []byte{}
}
iNdEx = postIndex
case 12:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field S", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.S = append(m.S[:0], dAtA[iNdEx:postIndex]...)
if m.S == nil {
m.S = []byte{}
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTx(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthTx
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ExtensionOptionsEthereumTx) Unmarshal(dAtA []byte) error { func (m *ExtensionOptionsEthereumTx) Unmarshal(dAtA []byte) error {
l := len(dAtA) l := len(dAtA)
iNdEx := 0 iNdEx := 0

View File

@ -7,7 +7,11 @@ import (
ethtypes "github.com/ethereum/go-ethereum/core/types" ethtypes "github.com/ethereum/go-ethereum/core/types"
) )
var _ TxData = &AccessListTx{} var (
_ TxData = &LegacyTx{}
_ TxData = &AccessListTx{}
_ TxData = &DynamicFeeTx{}
)
// TxData implements the Ethereum transaction tx structure. It is used // TxData implements the Ethereum transaction tx structure. It is used
// solely as intended in Ethereum abiding by the protocol. // solely as intended in Ethereum abiding by the protocol.
@ -22,6 +26,8 @@ type TxData interface {
GetNonce() uint64 GetNonce() uint64
GetGas() uint64 GetGas() uint64
GetGasPrice() *big.Int GetGasPrice() *big.Int
GetGasTipCap() *big.Int
GetGasFeeCap() *big.Int
GetValue() *big.Int GetValue() *big.Int
GetTo() *common.Address GetTo() *common.Address
@ -37,6 +43,8 @@ type TxData interface {
func NewTxDataFromTx(tx *ethtypes.Transaction) TxData { func NewTxDataFromTx(tx *ethtypes.Transaction) TxData {
var txData TxData var txData TxData
switch tx.Type() { switch tx.Type() {
// case ethtypes.DynamicFeeTxType:
// txData = newDynamicFeeTx(tx)
case ethtypes.AccessListTxType: case ethtypes.AccessListTxType:
txData = newAccessListTx(tx) txData = newAccessListTx(tx)
default: default: