all: bump go-ethereum to v1.10.9 (#231)
* all: bump go-ethereum to v1.10.4 * build * state transition and rpc * wip rpc changes * fix refund * fixes * no base fee param * ante handler * undo change * fix test * bump deps * calculate base fee * gRPC base fee query * update RPC * fix * update' * go.mod * fix build * fix panic * rm changes in third_party * json rpc changes * reserved fields * fixes fixes fixes * rm no stringer * fixes 2 * tests wip * bump geth version * update * grpc traceTx * rm fee market from ante * fix TransactionArgs * lint * update proto * update tx args * changelog
This commit is contained in:
parent
cda968bddd
commit
a8722655bb
@ -40,6 +40,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
### State Machine Breaking
|
||||
|
||||
* (evm, ante) [tharsis#620](https://github.com/tharsis/ethermint/pull/620) Add fee market field to EVM `Keeper` and `AnteHandler`.
|
||||
* (all) [tharsis#231](https://github.com/tharsis/ethermint/pull/231) Bump go-ethereum version to [`v1.10.9`](https://github.com/ethereum/go-ethereum/releases/tag/v1.10.9)
|
||||
|
||||
### API Breaking
|
||||
|
||||
|
@ -30,7 +30,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"success - DeliverTx (contract)",
|
||||
func() sdk.Tx {
|
||||
signedContractTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedContractTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedContractTx.From = addr.Hex()
|
||||
|
||||
tx := suite.CreateTestTx(signedContractTx, privKey, 1, true)
|
||||
@ -41,7 +41,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"success - CheckTx (contract)",
|
||||
func() sdk.Tx {
|
||||
signedContractTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedContractTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedContractTx.From = addr.Hex()
|
||||
|
||||
tx := suite.CreateTestTx(signedContractTx, privKey, 1, true)
|
||||
@ -52,7 +52,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"success - ReCheckTx (contract)",
|
||||
func() sdk.Tx {
|
||||
signedContractTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedContractTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedContractTx.From = addr.Hex()
|
||||
|
||||
tx := suite.CreateTestTx(signedContractTx, privKey, 1, true)
|
||||
@ -63,7 +63,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"success - DeliverTx",
|
||||
func() sdk.Tx {
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 1, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 1, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedTx.From = addr.Hex()
|
||||
|
||||
tx := suite.CreateTestTx(signedTx, privKey, 1, true)
|
||||
@ -74,7 +74,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"success - CheckTx",
|
||||
func() sdk.Tx {
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 2, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 2, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedTx.From = addr.Hex()
|
||||
|
||||
tx := suite.CreateTestTx(signedTx, privKey, 1, true)
|
||||
@ -85,7 +85,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"success - ReCheckTx",
|
||||
func() sdk.Tx {
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 3, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 3, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedTx.From = addr.Hex()
|
||||
|
||||
tx := suite.CreateTestTx(signedTx, privKey, 1, true)
|
||||
@ -95,7 +95,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"success - CheckTx (cosmos tx not signed)",
|
||||
func() sdk.Tx {
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 4, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 4, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedTx.From = addr.Hex()
|
||||
|
||||
tx := suite.CreateTestTx(signedTx, privKey, 1, false)
|
||||
@ -105,7 +105,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"fail - CheckTx (cosmos tx is not valid)",
|
||||
func() sdk.Tx {
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 4, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 4, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedTx.From = addr.Hex()
|
||||
|
||||
txBuilder := suite.CreateTestTxBuilder(signedTx, privKey, 1, false)
|
||||
@ -117,7 +117,7 @@ func (suite AnteTestSuite) TestAnteHandler() {
|
||||
{
|
||||
"fail - CheckTx (memo too long)",
|
||||
func() sdk.Tx {
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 5, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil)
|
||||
signedTx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 5, &to, big.NewInt(10), 100000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedTx.From = addr.Hex()
|
||||
|
||||
txBuilder := suite.CreateTestTxBuilder(signedTx, privKey, 1, true)
|
||||
|
@ -268,8 +268,7 @@ func (egcd EthGasConsumeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula
|
||||
blockHeight := big.NewInt(ctx.BlockHeight())
|
||||
homestead := ethCfg.IsHomestead(blockHeight)
|
||||
istanbul := ethCfg.IsIstanbul(blockHeight)
|
||||
// london := ethCfg.IsLondon(blockHeight)
|
||||
london := false
|
||||
london := ethCfg.IsLondon(blockHeight)
|
||||
evmDenom := params.EvmDenom
|
||||
|
||||
var events sdk.Events
|
||||
@ -364,7 +363,7 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate
|
||||
baseFee = ctd.feemarketKeeper.GetBaseFee(ctx)
|
||||
}
|
||||
|
||||
coreMsg, err := msgEthTx.AsMessage(signer)
|
||||
coreMsg, err := msgEthTx.AsMessage(signer, baseFee)
|
||||
if err != nil {
|
||||
return ctx, stacktrace.Propagate(
|
||||
err,
|
||||
@ -384,19 +383,19 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate
|
||||
)
|
||||
}
|
||||
|
||||
// if !feeMktParams.NoBaseFee && baseFee == nil {
|
||||
// return ctx, stacktrace.Propagate(
|
||||
// sdkerrors.Wrap(evmtypes.ErrInvalidBaseFee, "base fee is supported but evm block context value is nil"),
|
||||
// "address %s", coreMsg.From(),
|
||||
// )
|
||||
// }
|
||||
if !feeMktParams.NoBaseFee && baseFee == nil {
|
||||
return ctx, stacktrace.Propagate(
|
||||
sdkerrors.Wrap(evmtypes.ErrInvalidBaseFee, "base fee is supported but evm block context value is nil"),
|
||||
"address %s", coreMsg.From(),
|
||||
)
|
||||
}
|
||||
|
||||
// if !feeMktParams.NoBaseFee && baseFee != nil && coreMsg.GasFeeCap().Cmp(baseFee) < 0 {
|
||||
// return ctx, stacktrace.Propagate(
|
||||
// sdkerrors.Wrapf(evmtypes.ErrInvalidBaseFee, "max fee per gas less than block base fee (%s < %s)", coreMsg.GasFeeCap(), baseFee),
|
||||
// "address %s", coreMsg.From(),
|
||||
// )
|
||||
// }
|
||||
if !feeMktParams.NoBaseFee && baseFee != nil && coreMsg.GasFeeCap().Cmp(baseFee) < 0 {
|
||||
return ctx, stacktrace.Propagate(
|
||||
sdkerrors.Wrapf(evmtypes.ErrInvalidBaseFee, "max fee per gas less than block base fee (%s < %s)", coreMsg.GasFeeCap(), baseFee),
|
||||
"address %s", coreMsg.From(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
ctd.evmKeeper.WithContext(ctx)
|
||||
|
@ -21,7 +21,7 @@ func (suite AnteTestSuite) TestEthSigVerificationDecorator() {
|
||||
dec := ante.NewEthSigVerificationDecorator(suite.app.EvmKeeper)
|
||||
addr, privKey := tests.NewAddrKey()
|
||||
|
||||
signedTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil)
|
||||
signedTx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil)
|
||||
signedTx.From = addr.Hex()
|
||||
err := signedTx.Sign(suite.ethSigner, tests.NewSigner(privKey))
|
||||
suite.Require().NoError(err)
|
||||
@ -36,7 +36,7 @@ func (suite AnteTestSuite) TestEthSigVerificationDecorator() {
|
||||
{"invalid transaction type", &invalidTx{}, false, false},
|
||||
{
|
||||
"invalid sender",
|
||||
evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 1, &addr, big.NewInt(10), 1000, big.NewInt(1), nil, nil),
|
||||
evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 1, &addr, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil),
|
||||
false,
|
||||
false,
|
||||
},
|
||||
@ -63,7 +63,7 @@ func (suite AnteTestSuite) TestNewEthAccountVerificationDecorator() {
|
||||
|
||||
addr := tests.GenerateAddress()
|
||||
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil)
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil)
|
||||
tx.From = addr.Hex()
|
||||
|
||||
testCases := []struct {
|
||||
@ -77,7 +77,7 @@ func (suite AnteTestSuite) TestNewEthAccountVerificationDecorator() {
|
||||
{"invalid transaction type", &invalidTx{}, func() {}, true, false},
|
||||
{
|
||||
"sender not set to msg",
|
||||
evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil),
|
||||
evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil),
|
||||
func() {},
|
||||
true,
|
||||
false,
|
||||
@ -144,7 +144,7 @@ func (suite AnteTestSuite) TestEthNonceVerificationDecorator() {
|
||||
|
||||
addr := tests.GenerateAddress()
|
||||
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil)
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil)
|
||||
tx.From = addr.Hex()
|
||||
|
||||
testCases := []struct {
|
||||
@ -199,10 +199,10 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
|
||||
|
||||
addr := tests.GenerateAddress()
|
||||
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil)
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil)
|
||||
tx.From = addr.Hex()
|
||||
|
||||
tx2 := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000000, big.NewInt(1), nil, ðtypes.AccessList{{Address: addr, StorageKeys: nil}})
|
||||
tx2 := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000000, big.NewInt(1), nil, nil, nil, ðtypes.AccessList{{Address: addr, StorageKeys: nil}})
|
||||
tx2.From = addr.Hex()
|
||||
|
||||
testCases := []struct {
|
||||
@ -215,7 +215,7 @@ func (suite AnteTestSuite) TestEthGasConsumeDecorator() {
|
||||
{"invalid transaction type", &invalidTx{}, func() {}, false, false},
|
||||
{
|
||||
"sender not found",
|
||||
evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil),
|
||||
evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil),
|
||||
func() {},
|
||||
false, false,
|
||||
},
|
||||
@ -302,8 +302,8 @@ func (suite AnteTestSuite) TestCanTransferDecorator() {
|
||||
|
||||
addr, privKey := tests.NewAddrKey()
|
||||
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, ðtypes.AccessList{})
|
||||
tx2 := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, ðtypes.AccessList{})
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, ðtypes.AccessList{})
|
||||
tx2 := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, ðtypes.AccessList{})
|
||||
|
||||
tx.From = addr.Hex()
|
||||
|
||||
@ -363,8 +363,8 @@ func (suite AnteTestSuite) TestAccessListDecorator() {
|
||||
{Address: addr, StorageKeys: []common.Hash{{}}},
|
||||
}
|
||||
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil)
|
||||
tx2 := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, al)
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil)
|
||||
tx2 := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, al)
|
||||
|
||||
tx.From = addr.Hex()
|
||||
tx2.From = addr.Hex()
|
||||
@ -418,11 +418,11 @@ func (suite AnteTestSuite) TestEthIncrementSenderSequenceDecorator() {
|
||||
dec := ante.NewEthIncrementSenderSequenceDecorator(suite.app.AccountKeeper)
|
||||
addr, privKey := tests.NewAddrKey()
|
||||
|
||||
contract := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 0, big.NewInt(10), 1000, big.NewInt(1), nil, nil)
|
||||
contract := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 0, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil)
|
||||
contract.From = addr.Hex()
|
||||
|
||||
to := tests.GenerateAddress()
|
||||
tx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 0, &to, big.NewInt(10), 1000, big.NewInt(1), nil, nil)
|
||||
tx := evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 0, &to, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil)
|
||||
tx.From = addr.Hex()
|
||||
|
||||
err := contract.Sign(suite.ethSigner, tests.NewSigner(privKey))
|
||||
@ -446,7 +446,7 @@ func (suite AnteTestSuite) TestEthIncrementSenderSequenceDecorator() {
|
||||
},
|
||||
{
|
||||
"no signers",
|
||||
evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 1, &to, big.NewInt(10), 1000, big.NewInt(1), nil, nil),
|
||||
evmtypes.NewTx(suite.app.EvmKeeper.ChainID(), 1, &to, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil),
|
||||
func() {},
|
||||
false, true,
|
||||
},
|
||||
@ -508,7 +508,7 @@ func (suite AnteTestSuite) TestEthIncrementSenderSequenceDecorator() {
|
||||
|
||||
func (suite AnteTestSuite) TestEthSetupContextDecorator() {
|
||||
dec := ante.NewEthSetUpContextDecorator()
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil)
|
||||
tx := evmtypes.NewTxContract(suite.app.EvmKeeper.ChainID(), 1, big.NewInt(10), 1000, big.NewInt(1), nil, nil, nil, nil)
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
|
@ -12,7 +12,7 @@ import (
|
||||
func TestInitConfigNonNotExistError(t *testing.T) {
|
||||
tempDir := t.TempDir()
|
||||
subDir := filepath.Join(tempDir, "nonPerms")
|
||||
if err := os.Mkdir(subDir, 0600); err != nil {
|
||||
if err := os.Mkdir(subDir, 0o600); err != nil {
|
||||
t.Fatalf("Failed to create sub directory: %v", err)
|
||||
}
|
||||
cmd := &cobra.Command{}
|
||||
|
2
client/docs/statik/statik.go
vendored
2
client/docs/statik/statik.go
vendored
File diff suppressed because one or more lines are too long
2012
client/docs/swagger-ui/swagger.yaml
vendored
2012
client/docs/swagger-ui/swagger.yaml
vendored
File diff suppressed because it is too large
Load Diff
@ -255,13 +255,13 @@ TraceConfig holds extra parameters to trace functions.
|
||||
| `tracer` | [string](#string) | | custom javascript tracer |
|
||||
| `timeout` | [string](#string) | | overrides the default timeout of 5 seconds for JavaScript-based tracing calls |
|
||||
| `reexec` | [uint64](#uint64) | | number of blocks the tracer is willing to go back |
|
||||
| `disable_memory` | [bool](#bool) | | disable memory capture |
|
||||
| `disable_stack` | [bool](#bool) | | disable stack capture |
|
||||
| `disable_storage` | [bool](#bool) | | disable storage capture |
|
||||
| `disable_return_data` | [bool](#bool) | | disable return data capture |
|
||||
| `debug` | [bool](#bool) | | print output during capture end |
|
||||
| `limit` | [int32](#int32) | | maximum length of output, but zero means unlimited |
|
||||
| `overrides` | [ChainConfig](#ethermint.evm.v1.ChainConfig) | | Chain overrides, can be used to execute a trace using future fork rules |
|
||||
| `enable_memory` | [bool](#bool) | | enable memory capture |
|
||||
| `enable_return_data` | [bool](#bool) | | enable return data capture |
|
||||
|
||||
|
||||
|
||||
@ -547,6 +547,7 @@ EthCallRequest defines EthCall request
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| `args` | [bytes](#bytes) | | same json format as the json rpc api. |
|
||||
| `gas_cap` | [uint64](#uint64) | | the default gas cap to be used |
|
||||
| `base_fee` | [string](#string) | | header base fee used to generate the transaction |
|
||||
|
||||
|
||||
|
||||
|
@ -18,7 +18,7 @@ func TestTxEncoding(t *testing.T) {
|
||||
addr, key := tests.NewAddrKey()
|
||||
signer := tests.NewSigner(key)
|
||||
|
||||
msg := evmtypes.NewTxContract(big.NewInt(1), 1, big.NewInt(10), 100000, big.NewInt(1), []byte{}, nil)
|
||||
msg := evmtypes.NewTxContract(big.NewInt(1), 1, big.NewInt(10), 100000, nil, big.NewInt(1), big.NewInt(1), []byte{}, nil)
|
||||
msg.From = addr.Hex()
|
||||
|
||||
ethSigner := ethtypes.LatestSignerForChainID(big.NewInt(1))
|
||||
|
23
go.mod
23
go.mod
@ -8,17 +8,19 @@ require (
|
||||
github.com/cosmos/cosmos-sdk v0.44.1
|
||||
github.com/cosmos/go-bip39 v1.0.0
|
||||
github.com/cosmos/ibc-go v1.2.1
|
||||
github.com/ethereum/go-ethereum v1.10.3
|
||||
github.com/ethereum/go-ethereum v1.10.9
|
||||
github.com/gogo/protobuf v1.3.3
|
||||
github.com/golang/protobuf v1.5.2
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0
|
||||
github.com/improbable-eng/grpc-web v0.14.1
|
||||
github.com/miguelmota/go-ethereum-hdwallet v0.0.1
|
||||
github.com/klauspost/compress v1.11.9 // indirect
|
||||
github.com/miguelmota/go-ethereum-hdwallet v0.1.1
|
||||
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/rakyll/statik v0.1.7
|
||||
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
|
||||
github.com/regen-network/cosmos-proto v0.3.1
|
||||
github.com/rs/cors v1.8.0
|
||||
github.com/rs/zerolog v1.25.0
|
||||
@ -32,10 +34,9 @@ require (
|
||||
github.com/tyler-smith/go-bip39 v1.1.0
|
||||
go.etcd.io/bbolt v1.3.6 // indirect
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect
|
||||
golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f // indirect
|
||||
golang.org/x/sys v0.0.0-20210903071746-97244b99971b // indirect
|
||||
google.golang.org/genproto v0.0.0-20211001223012-bfb93cce50d9
|
||||
google.golang.org/grpc v1.41.0
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
)
|
||||
|
||||
@ -45,7 +46,7 @@ require (
|
||||
github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect
|
||||
github.com/DataDog/zstd v1.4.8 // indirect
|
||||
github.com/StackExchange/wmi v1.2.1 // indirect
|
||||
github.com/VictoriaMetrics/fastcache v1.5.7 // indirect
|
||||
github.com/VictoriaMetrics/fastcache v1.6.0 // indirect
|
||||
github.com/Workiva/go-datastructures v1.0.52 // indirect
|
||||
github.com/armon/go-metrics v0.3.9 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
@ -77,7 +78,7 @@ require (
|
||||
github.com/go-stack/stack v1.8.0 // indirect
|
||||
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
|
||||
github.com/gogo/gateway v1.1.0 // indirect
|
||||
github.com/golang/snappy v0.0.3 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/btree v1.0.1 // indirect
|
||||
github.com/google/orderedcode v0.0.1 // indirect
|
||||
github.com/google/uuid v1.3.0 // indirect
|
||||
@ -91,13 +92,12 @@ require (
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 // indirect
|
||||
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
|
||||
github.com/holiman/uint256 v1.1.1 // indirect
|
||||
github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88 // indirect
|
||||
github.com/holiman/uint256 v1.2.0 // indirect
|
||||
github.com/huin/goupnp v1.0.2 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.0.0 // indirect
|
||||
github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458 // indirect
|
||||
github.com/jmhodges/levigo v1.0.0 // indirect
|
||||
github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect
|
||||
github.com/klauspost/compress v1.11.9 // indirect
|
||||
github.com/libp2p/go-buffer-pool v0.0.2 // indirect
|
||||
github.com/magiconair/properties v1.8.5 // indirect
|
||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||
@ -116,7 +116,6 @@ require (
|
||||
github.com/prometheus/common v0.29.0 // indirect
|
||||
github.com/prometheus/procfs v0.6.0 // indirect
|
||||
github.com/prometheus/tsdb v0.7.1 // indirect
|
||||
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
|
||||
github.com/rjeczalik/notify v0.9.1 // indirect
|
||||
github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa // indirect
|
||||
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect
|
||||
@ -124,7 +123,7 @@ require (
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/subosito/gotenv v1.2.0 // indirect
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954 // indirect
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect
|
||||
github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect
|
||||
github.com/tendermint/btcd v0.1.1 // indirect
|
||||
github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect
|
||||
@ -132,7 +131,9 @@ require (
|
||||
github.com/tklauser/go-sysconf v0.3.7 // indirect
|
||||
github.com/tklauser/numcpus v0.2.3 // indirect
|
||||
github.com/zondax/hid v0.9.0 // indirect
|
||||
golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f // indirect
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
|
||||
golang.org/x/sys v0.0.0-20210903071746-97244b99971b // indirect
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect
|
||||
golang.org/x/text v0.3.6 // indirect
|
||||
google.golang.org/protobuf v1.27.1 // indirect
|
||||
|
137
go.sum
137
go.sum
@ -79,7 +79,6 @@ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQ
|
||||
github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4=
|
||||
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
||||
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
|
||||
github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
|
||||
github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
|
||||
github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
|
||||
github.com/DataDog/zstd v1.4.8 h1:Rpmta4xZ/MgZnriKNd24iZMhGpP5dvUcs/uqfBapKZY=
|
||||
@ -100,13 +99,13 @@ github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE
|
||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||
github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM=
|
||||
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
|
||||
github.com/Shopify/sarama v1.28.0/go.mod h1:j/2xTrU39dlzBmsxF1eQ2/DdWrxyBCl6pzz7a81o/ZY=
|
||||
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
|
||||
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
||||
github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
|
||||
github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
|
||||
github.com/VictoriaMetrics/fastcache v1.5.7 h1:4y6y0G8PRzszQUYIQHHssv/jgPHAb5qQuuDNdCbyAgw=
|
||||
github.com/VictoriaMetrics/fastcache v1.5.7/go.mod h1:ptDBkNMQI4RtmVo8VS/XwRY6RoTu1dAWCbrk+6WsEM8=
|
||||
github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o=
|
||||
github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw=
|
||||
github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE=
|
||||
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
|
||||
github.com/Workiva/go-datastructures v1.0.52 h1:PLSK6pwn8mYdaoaCZEMsXBpBotr4HHn9abU0yMQt0NI=
|
||||
@ -134,11 +133,7 @@ github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g
|
||||
github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=
|
||||
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
|
||||
github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
|
||||
github.com/aristanetworks/fsnotify v1.4.2/go.mod h1:D/rtu7LpjYM8tRJphJ0hUBYpjai8SfX+aSNsWDTq/Ks=
|
||||
github.com/aristanetworks/glog v0.0.0-20191112221043-67e8567f59f3/go.mod h1:KASm+qXFKs/xjSoWn30NrWBBvdTTQq+UjkhjEJHfSFA=
|
||||
github.com/aristanetworks/goarista v0.0.0-20170210015632-ea17b1a17847/go.mod h1:D/tb0zPVXnP7fmsLZjtdUhSsumbK/ij54UXjjVgMGxQ=
|
||||
github.com/aristanetworks/goarista v0.0.0-20210308203447-b196d8410f1d/go.mod h1:drswc1gdKErwWsW+gV2R5ELcuHehg5pZD2tat4B65Ik=
|
||||
github.com/aristanetworks/splunk-hec-go v0.3.3/go.mod h1:1VHO9r17b0K7WmOlLb9nTk/2YanvOEnLMUgsFrxBROc=
|
||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||
@ -203,7 +198,6 @@ github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOC
|
||||
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
||||
github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk=
|
||||
github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s=
|
||||
@ -232,11 +226,8 @@ github.com/confio/ics23/go v0.0.0-20200817220745-f173e6211efb/go.mod h1:E45Nqnlp
|
||||
github.com/confio/ics23/go v0.6.3/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg=
|
||||
github.com/confio/ics23/go v0.6.6 h1:pkOy18YxxJ/r0XFDCnrl4Bjv6h4LkBSpLS6F38mrKL8=
|
||||
github.com/confio/ics23/go v0.6.6/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg=
|
||||
github.com/consensys/bavard v0.1.8-0.20210105233146-c16790d2aa8b/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ=
|
||||
github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ=
|
||||
github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q=
|
||||
github.com/consensys/goff v0.3.10/go.mod h1:xTldOBEHmFiYS0gPXd3NsaEqZWlnmeWcRLWgD3ba3xc=
|
||||
github.com/consensys/gurvy v0.3.8/go.mod h1:sN75xnsiD593XnhbhvG2PkOy194pZBzqShWF/kwuW/g=
|
||||
github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ=
|
||||
github.com/containerd/continuity v0.0.0-20190827140505-75bee3e2ccb6/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||
github.com/containerd/continuity v0.1.0 h1:UFRRY5JemiAhPZrr/uE0n8fMTLcZsUvySPr1+D7pgr8=
|
||||
@ -253,7 +244,6 @@ github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7
|
||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/cosmos/cosmos-sdk v0.44.0/go.mod h1:orG0jzFJ2KsDfzLd/X0JSOMzF4Oxc/BQz2GkcYF4gRE=
|
||||
github.com/cosmos/cosmos-sdk v0.44.1 h1:UspmTMwKNGf6mH8k388v2T5csP9BYpPJkbQ/eG30PtM=
|
||||
github.com/cosmos/cosmos-sdk v0.44.1/go.mod h1:fwQJdw+aECatpTvQTo1tSfHEsxACdZYU80QCZUPnHr4=
|
||||
github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y=
|
||||
@ -262,11 +252,8 @@ github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4x
|
||||
github.com/cosmos/iavl v0.15.0-rc3.0.20201009144442-230e9bdf52cd/go.mod h1:3xOIaNNX19p0QrX0VqWa6voPRoJRGGYtny+DH8NEPvE=
|
||||
github.com/cosmos/iavl v0.15.0-rc5/go.mod h1:WqoPL9yPTQ85QBMT45OOUzPxG/U/JcJoN7uMjgxke/I=
|
||||
github.com/cosmos/iavl v0.15.3/go.mod h1:OLjQiAQ4fGD2KDZooyJG9yz+p2ao2IAYSbke8mVvSA4=
|
||||
github.com/cosmos/iavl v0.16.0/go.mod h1:2A8O/Jz9YwtjqXMO0CjnnbTYEEaovE8jWcwrakH3PoE=
|
||||
github.com/cosmos/iavl v0.17.1 h1:b/Cl8h1PRMvsu24+TYNlKchIu7W6tmxIBGe6E9u2Ybw=
|
||||
github.com/cosmos/iavl v0.17.1/go.mod h1:7aisPZK8yCpQdy3PMvKeO+bhq1NwDjUwjzxwwROUxFk=
|
||||
github.com/cosmos/ibc-go v1.2.0 h1:0RgxmKzCzIH9SwDp4ckL5VrzlO1KJ5hO0AsOAzOiWE4=
|
||||
github.com/cosmos/ibc-go v1.2.0/go.mod h1:wGjeNd+T4kpGrt0OC8DTiE/qXLrlmTPNpdoYsBZUjKI=
|
||||
github.com/cosmos/ibc-go v1.2.1 h1:eWi8EzcgSwVipvhyQ7Rh1KfBe66C1ZdDSskeKMtIg0Q=
|
||||
github.com/cosmos/ibc-go v1.2.1/go.mod h1:YieSs25Y0TSFR67qg6Elge34yJNEOjYhYB+HNQQLoSQ=
|
||||
github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 h1:DdzS1m6o/pCqeZ8VOAit/gyATedRgjvkVI+UCrLpyuU=
|
||||
@ -280,6 +267,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
|
||||
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
|
||||
github.com/daixiang0/gci v0.2.9/go.mod h1:+4dZ7TISfSmqfAGv59ePaHfNzgGtIkHAhhdKggP1JAc=
|
||||
github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU=
|
||||
@ -293,6 +281,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
|
||||
github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea h1:j4317fAZh7X6GqbFowYdYdI0L9bwxL07jyPZIdepyZ0=
|
||||
github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ=
|
||||
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
|
||||
github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M=
|
||||
github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw=
|
||||
github.com/denis-tingajkin/go-header v0.4.2/go.mod h1:eLRHAVXzE5atsKAnNRDB90WHCFFnBUn4RN0nRcs1LJA=
|
||||
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I=
|
||||
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE=
|
||||
@ -322,14 +312,12 @@ github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b h1:HBah4D48yp
|
||||
github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b/go.mod h1:7BvyPhdbLxMXIYTFPLsyJRFMsKmOZnQmzh6Gb+uquuM=
|
||||
github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
|
||||
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
|
||||
github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
|
||||
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
|
||||
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
|
||||
github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts=
|
||||
github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
|
||||
github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw=
|
||||
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
|
||||
github.com/elastic/gosigar v0.14.1/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs=
|
||||
github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25 h1:2vLKys4RBU4pn2T/hjXMbvwTr1Cvy5THHrQkbeY9HRk=
|
||||
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=
|
||||
@ -337,9 +325,9 @@ github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/esimonov/ifshort v1.0.2/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE=
|
||||
github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM=
|
||||
github.com/ethereum/go-ethereum v1.10.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/go.mod h1:99onQmSd1GRGOziyGldI41YQb7EESX3Q4H41IfJgIQQ=
|
||||
github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg=
|
||||
github.com/ethereum/go-ethereum v1.10.9 h1:uMSWt0qDhaqqCk0PWqfDFOMUExmk4Tnbma6c6oXW+Pk=
|
||||
github.com/ethereum/go-ethereum v1.10.9/go.mod h1:CaTMQrv51WaAlD2eULQ3f03KiahDRO28fleQcKjWrrg=
|
||||
github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY=
|
||||
github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 h1:0JZ+dUmQeA8IIVUMzysrX4/AKuQwWhV2dYQuPZdvdSQ=
|
||||
github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64=
|
||||
@ -370,9 +358,10 @@ github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWp
|
||||
github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
|
||||
github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM=
|
||||
github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E=
|
||||
github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
|
||||
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI=
|
||||
github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww=
|
||||
github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
|
||||
github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
|
||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
|
||||
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
|
||||
@ -381,6 +370,7 @@ github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14=
|
||||
github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
|
||||
github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
|
||||
github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
|
||||
github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs=
|
||||
github.com/go-critic/go-critic v0.5.6/go.mod h1:cVjj0DfqewQVIlIAGexPCaGaZDAqGE29PYDDADIVNEo=
|
||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
@ -397,6 +387,8 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG
|
||||
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
|
||||
github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY=
|
||||
github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
||||
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM=
|
||||
github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=
|
||||
@ -478,15 +470,16 @@ github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.3-0.20201103224600-674baa8c7fc3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
|
||||
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4=
|
||||
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
|
||||
github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8=
|
||||
github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU=
|
||||
github.com/golangci/golangci-lint v1.42.1/go.mod h1:MuInrVlgg2jq4do6XI1jbkErbVHVbwdrLLtGv6p2wPI=
|
||||
github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y=
|
||||
github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg=
|
||||
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o=
|
||||
github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA=
|
||||
@ -537,7 +530,6 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe
|
||||
github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
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/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw=
|
||||
github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
@ -563,8 +555,6 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z
|
||||
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
|
||||
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
|
||||
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
||||
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
||||
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||
github.com/gorilla/websocket v1.4.1-0.20190629185528-ae1634f6a989/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||
@ -611,6 +601,8 @@ github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyN
|
||||
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
||||
github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE=
|
||||
github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||
github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
|
||||
@ -626,9 +618,8 @@ github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR3
|
||||
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
|
||||
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
|
||||
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
|
||||
github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE=
|
||||
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
|
||||
github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
|
||||
github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
|
||||
github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
|
||||
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
|
||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
@ -649,22 +640,22 @@ github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 h1:uUj
|
||||
github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87/go.mod h1:XGsKKeXxeRr95aEOgipvluMPlgjr7dGlk9ZTWOjcUcg=
|
||||
github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao=
|
||||
github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA=
|
||||
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.2.0 h1:gpSYcPLWGv4sG43I2mVLiDZCNDh/EpGjSk8tmtxitHM=
|
||||
github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw=
|
||||
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.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
|
||||
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.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/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo=
|
||||
github.com/huin/goupnp v1.0.2 h1:RfGLP+h3mvisuWEyybxNq5Eft3NWhHLPeUN72kpKZoI=
|
||||
github.com/huin/goupnp v1.0.2/go.mod h1:0dxJBVBHqTMjIUMkESDTNgOOx/Mw5wYIfyFmdzSamkM=
|
||||
github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o=
|
||||
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/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||
github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs=
|
||||
github.com/improbable-eng/grpc-web v0.14.1 h1:NrN4PY71A6tAz2sKDvC5JCauENWp0ykG8Oq1H3cpFvw=
|
||||
github.com/improbable-eng/grpc-web v0.14.1/go.mod h1:zEjGHa8DAlkoOXmswrNvhUGEYQA9UI7DhrGeHR1DMGU=
|
||||
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
||||
@ -672,28 +663,23 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt
|
||||
github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY=
|
||||
github.com/influxdata/influxdb v1.2.3-0.20180221223340-01288bdb0883/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=
|
||||
github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI=
|
||||
github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8=
|
||||
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
|
||||
github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
|
||||
github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk=
|
||||
github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=
|
||||
github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo=
|
||||
github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo=
|
||||
github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8=
|
||||
github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=
|
||||
github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=
|
||||
github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
|
||||
github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458 h1:6OvNmYgJyexcZ3pYbTI9jWx5tHo1Dee/tWbLMfPe2TA=
|
||||
github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
|
||||
github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
|
||||
github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM=
|
||||
github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=
|
||||
github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg=
|
||||
github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc=
|
||||
github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
|
||||
github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU=
|
||||
github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4=
|
||||
github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4=
|
||||
github.com/jhump/protoreflect v1.8.2/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg=
|
||||
github.com/jhump/protoreflect v1.9.0 h1:npqHz788dryJiR/l6K/RUQAyh2SwV91+d1dnh4RjO9w=
|
||||
github.com/jhump/protoreflect v1.9.0/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg=
|
||||
github.com/jingyugao/rowserrcheck v1.1.0/go.mod h1:TOQpc2SLx6huPfoFGK3UOnEG+u02D3C1GeosjupAKCA=
|
||||
@ -727,11 +713,9 @@ github.com/julz/importas v0.0.0-20210419104244-841f0c0fe66d/go.mod h1:oSFU2R4XK/
|
||||
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
|
||||
github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0=
|
||||
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
|
||||
github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356 h1:I/yrLt2WilKxlQKCM52clh5rGzTKpVctGT1lH4Dc8Jw=
|
||||
github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU=
|
||||
github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM=
|
||||
github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc=
|
||||
github.com/kilic/bls12-381 v0.0.0-20201226121925-69dacb279461/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/errcheck v1.6.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
@ -745,12 +729,8 @@ github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs
|
||||
github.com/klauspost/compress v1.11.9 h1:5OCMOdde1TCT2sookEuVeEZzA8bmRSFV3AwPDZAG8AA=
|
||||
github.com/klauspost/compress v1.11.9/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||
github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||
github.com/klauspost/cpuid/v2 v2.0.2/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg=
|
||||
github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||
github.com/klauspost/reedsolomon v1.9.11/go.mod h1:nLvuzNvy1ZDNQW30IuMc2ZWCbiqrJgdLoUS2X8HAUVg=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
@ -768,9 +748,10 @@ github.com/kulti/thelper v0.4.0/go.mod h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5
|
||||
github.com/kunwardeep/paralleltest v1.0.2/go.mod h1:ZPqNm1fVHPllh5LPVujzbVz1JN2GhLxSfY+oqUsvG30=
|
||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||
github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg=
|
||||
github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg=
|
||||
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
|
||||
github.com/ldez/gomoddirectives v0.2.2/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0=
|
||||
github.com/ldez/tagliatelle v0.2.0/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88=
|
||||
github.com/leanovate/gopter v0.2.8/go.mod h1:gNcbPWNEWRe4lm+bycKqxUYoH5uoVje5SkOJ3uoLer8=
|
||||
github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8=
|
||||
github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw=
|
||||
github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=
|
||||
@ -792,12 +773,17 @@ github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czP
|
||||
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/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU=
|
||||
github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s=
|
||||
github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
|
||||
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
|
||||
@ -810,7 +796,6 @@ github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2y
|
||||
github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
|
||||
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
|
||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||
github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
|
||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||
@ -833,8 +818,8 @@ github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKju
|
||||
github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
|
||||
github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
|
||||
github.com/miguelmota/go-ethereum-hdwallet v0.0.1 h1:DWqgZtKWTGcHR5QsprMJItZiJ2xVEQTv640r597ul8M=
|
||||
github.com/miguelmota/go-ethereum-hdwallet v0.0.1/go.mod h1:iowKavXnc0NVNiv/UKYYBo3SjADph5PUvYQTjOIV9as=
|
||||
github.com/miguelmota/go-ethereum-hdwallet v0.1.1 h1:zdXGlHao7idpCBjEGTXThVAtMKs+IxAgivZ75xqkWK0=
|
||||
github.com/miguelmota/go-ethereum-hdwallet v0.1.1/go.mod h1:f9m9uXokAHA6WNoYOPjj4AqjJS5pquQRiYYj/XSyPYc=
|
||||
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 h1:hLDRPB66XQT/8+wG9WsDpiCvZf1yKO7sz7scAjSlBa0=
|
||||
github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
|
||||
github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0=
|
||||
@ -854,6 +839,8 @@ github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR
|
||||
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo=
|
||||
github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A=
|
||||
github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4=
|
||||
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
|
||||
github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
|
||||
github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
|
||||
@ -908,7 +895,6 @@ github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N
|
||||
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
||||
@ -917,16 +903,11 @@ github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
|
||||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
||||
github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
||||
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak=
|
||||
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
|
||||
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
|
||||
github.com/openconfig/gnmi v0.0.0-20210226144353-8eae1937bf84/go.mod h1:H/20NXlnWbCPFC593nxpiKJ+OU//7mW7s7Qk7uVdg3Q=
|
||||
github.com/openconfig/goyang v0.0.0-20200115183954-d0a48929f0ea/go.mod h1:dhXaV0JgHJzdrHi2l+w0fZrwArtXL7jEFoiqLEdmkvU=
|
||||
github.com/openconfig/reference v0.0.0-20201210185750-72ca4cfd4abd/go.mod h1:ym2A+zigScwkSEb/cVQB0/ZMpU3rqiH6X7WRRsxgOGw=
|
||||
github.com/openconfig/ygot v0.6.0/go.mod h1:o30svNf7O0xK+R35tlx95odkDmZWS9JyWWQSmIhqwAs=
|
||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||
@ -970,7 +951,6 @@ github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko
|
||||
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
|
||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||
github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
|
||||
github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM=
|
||||
github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0=
|
||||
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ=
|
||||
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o=
|
||||
@ -978,7 +958,6 @@ github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7
|
||||
github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
|
||||
github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
|
||||
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
@ -1000,7 +979,6 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD
|
||||
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
|
||||
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
||||
github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM=
|
||||
github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU=
|
||||
github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ=
|
||||
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
@ -1020,7 +998,6 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b
|
||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
||||
github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
||||
github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
||||
github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
|
||||
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
|
||||
github.com/prometheus/common v0.29.0 h1:3jqPBvKT4OHAbje2Ql7KeaaSicDBCxMYwEJU1zRJceE=
|
||||
github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
|
||||
@ -1085,7 +1062,6 @@ github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dms
|
||||
github.com/sasha-s/go-deadlock v0.2.0/go.mod h1:StQn567HiB1fF2yJ44N9au7wOhrPS3iZqiDbRupzT10=
|
||||
github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa h1:0U2s5loxrTy6/VgfVoLuVLFJcURKLH49ie0zSch7gh4=
|
||||
github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM=
|
||||
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
|
||||
github.com/securego/gosec/v2 v2.8.1/go.mod h1:pUmsq6+VyFEElJMUX+QB3p3LWNHXg1R3xh2ssVJPs8Q=
|
||||
@ -1130,7 +1106,6 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3
|
||||
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
||||
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
|
||||
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
|
||||
github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
|
||||
github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=
|
||||
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
|
||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||
@ -1144,7 +1119,6 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM
|
||||
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
|
||||
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
||||
github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
||||
github.com/spf13/viper v1.8.0/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
|
||||
github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
|
||||
github.com/spf13/viper v1.9.0 h1:yR6EXjTp0y0cLN8OZg1CRZmOBdI88UcGkhgyJhu6nZk=
|
||||
github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4=
|
||||
@ -1175,13 +1149,12 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s
|
||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM=
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954 h1:xQdMZ1WLrgkkvOZ/LDQxjVxMLdby7osSh4ZEVa5sIjs=
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM=
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY=
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc=
|
||||
github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM=
|
||||
github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok=
|
||||
github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8=
|
||||
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU=
|
||||
github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4=
|
||||
github.com/tendermint/btcd v0.1.1 h1:0VcxPfflS2zZ3RiOAHkBiFUcPvbtRj5O7zHmcJWHV7s=
|
||||
github.com/tendermint/btcd v0.1.1/go.mod h1:DC6/m53jtQzr/NFmMNEu0rxf18/ktVoVtMrnDD5pN+U=
|
||||
github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RMWx1aInLzndwxKalgi5rTqgfXxOxbEI=
|
||||
@ -1191,8 +1164,6 @@ github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoM
|
||||
github.com/tendermint/tendermint v0.34.0-rc4/go.mod h1:yotsojf2C1QBOw4dZrTcxbyxmPUrT4hNuOQWX9XUwB4=
|
||||
github.com/tendermint/tendermint v0.34.0-rc6/go.mod h1:ugzyZO5foutZImv0Iyx/gOFCX6mjJTgbLHTwi17VDVg=
|
||||
github.com/tendermint/tendermint v0.34.0/go.mod h1:Aj3PIipBFSNO21r+Lq3TtzQ+uKESxkbA3yo/INM4QwQ=
|
||||
github.com/tendermint/tendermint v0.34.10/go.mod h1:aeHL7alPh4uTBIJQ8mgFEE8VwJLXI1VD3rVOmH2Mcy0=
|
||||
github.com/tendermint/tendermint v0.34.12/go.mod h1:aeHL7alPh4uTBIJQ8mgFEE8VwJLXI1VD3rVOmH2Mcy0=
|
||||
github.com/tendermint/tendermint v0.34.13 h1:fu+tsHudbOr5PvepjH0q47Jae59hQAvn3IqAHv2EbC8=
|
||||
github.com/tendermint/tendermint v0.34.13/go.mod h1:6RVVRBqwtKhA+H59APKumO+B7Nye4QXSFc6+TYxAxCI=
|
||||
github.com/tendermint/tm-db v0.6.2/go.mod h1:GYtQ67SUvATOcoY8/+x6ylk8Qo02BQyLrAs+yAcLvGI=
|
||||
@ -1206,7 +1177,6 @@ github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhV
|
||||
github.com/tidwall/sjson v1.1.4/go.mod h1:wXpKXu8CtDjKAZ+3DrKY5ROCorDFahq8l0tey/Lx1fg=
|
||||
github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
||||
github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
|
||||
github.com/tjfoc/gmsm v1.4.0/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
|
||||
github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI=
|
||||
github.com/tklauser/go-sysconf v0.3.7 h1:HT7h4+536gjqeq1ZIJPgOl1rg1XFatQGVZWp7Py53eg=
|
||||
github.com/tklauser/go-sysconf v0.3.7/go.mod h1:JZIdXh4RmBvZDBZ41ld2bGxRV3n4daiiqA3skYhAoQ4=
|
||||
@ -1238,6 +1208,8 @@ github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/X
|
||||
github.com/uudashr/gocognit v1.0.5/go.mod h1:wgYz0mitoKOTysqxTDMOUXg+Jb5SvtihkfmugIZYpEA=
|
||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||
github.com/valyala/fasthttp v1.16.0/go.mod h1:YOKImeEosDdBPnxc0gy7INqi3m1zK6A+xl6TwOBhHCA=
|
||||
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
|
||||
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
|
||||
github.com/valyala/quicktemplate v1.6.3/go.mod h1:fwPzK2fHuYEODzJ9pkw0ipCPNHZ2tD5KW4lOuSdPKzY=
|
||||
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
|
||||
github.com/viki-org/dnscache v0.0.0-20130720023526-c70c1f23c5d8/go.mod h1:dniwbG03GafCjFohMDmz6Zc6oCuiqgH6tGNyXTkHzXE=
|
||||
@ -1247,14 +1219,10 @@ github.com/vmihailenco/msgpack/v5 v5.1.4/go.mod h1:C5gboKD0TJPqWDTVTtrQNfRbiBwHZ
|
||||
github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
|
||||
github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||
github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees=
|
||||
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
|
||||
github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
||||
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs=
|
||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||
github.com/xtaci/kcp-go v5.4.20+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE=
|
||||
github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae/go.mod h1:gXtu8J62kEgmN++bm9BVICuT/e8yiLI2KFobd/TRFsE=
|
||||
github.com/ybbus/jsonrpc v2.1.2+incompatible/go.mod h1:XJrh1eMSzdIYFbM08flv0wp5G35eRniyeGut1z+LSiE=
|
||||
github.com/yeya24/promlinter v0.1.0/go.mod h1:rs5vtZzeBHqqMwXqFScncpCF6u06lezhZepno9AB1Oc=
|
||||
github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg=
|
||||
@ -1317,18 +1285,14 @@ golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
|
||||
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
@ -1419,7 +1383,6 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R
|
||||
golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
@ -1433,6 +1396,7 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b
|
||||
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
||||
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f h1:w6wWR0H+nyVpbSAQbzVEIACVyr/h8l/BEkY6Sokc7Eg=
|
||||
golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
@ -1464,7 +1428,6 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@ -1526,27 +1489,24 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210105210732-16f7687f5001/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210313202042-bd2e13477e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@ -1560,6 +1520,7 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210903071746-97244b99971b h1:3Dq0eVHn0uaQJmPO+/aYPI/fRMqdrVDbu7MQcku54gg=
|
||||
golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
@ -1802,7 +1763,6 @@ google.golang.org/genproto v0.0.0-20211001223012-bfb93cce50d9 h1:eF1wcrhdz56Vugf
|
||||
google.golang.org/genproto v0.0.0-20211001223012-bfb93cce50d9/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o=
|
||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
@ -1820,7 +1780,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
|
||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a/go.mod h1:KF9sEfUPAXdG8Oev9e99iLGnl2uJMjc5B+4y3O7x610=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
@ -1839,16 +1798,10 @@ gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c=
|
||||
gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo=
|
||||
gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q=
|
||||
gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4=
|
||||
gopkg.in/jcmturner/gokrb5.v7 v7.2.3/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM=
|
||||
gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=
|
||||
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU=
|
||||
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c=
|
||||
gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6 h1:a6cXbcDDUkSBlpnkWV1bJ+vv3mOgQEltEJ2rPxroVu0=
|
||||
gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns=
|
||||
gopkg.in/redis.v4 v4.2.4/go.mod h1:8KREHdypkCEojGKQcjMqAODMICIVwZAONWq8RowTITA=
|
||||
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
|
@ -16,6 +16,4 @@ message PubKey {
|
||||
|
||||
// PrivKey defines a type alias for an ecdsa.PrivateKey that implements
|
||||
// Tendermint's PrivateKey interface.
|
||||
message PrivKey {
|
||||
bytes key = 1;
|
||||
}
|
||||
message PrivKey { bytes key = 1; }
|
||||
|
@ -198,24 +198,28 @@ message AccessTuple {
|
||||
|
||||
// TraceConfig holds extra parameters to trace functions.
|
||||
message TraceConfig {
|
||||
// DEPRECATED: DisableMemory and DisableReturnData have been renamed to Enable*.
|
||||
reserved 4, 7;
|
||||
reserved "disable_memory", "disable_return_data";
|
||||
|
||||
// custom javascript tracer
|
||||
string tracer = 1;
|
||||
// overrides the default timeout of 5 seconds for JavaScript-based tracing calls
|
||||
string timeout = 2;
|
||||
// number of blocks the tracer is willing to go back
|
||||
uint64 reexec = 3;
|
||||
// disable memory capture
|
||||
bool disable_memory = 4 [ (gogoproto.jsontag) = "disableMemory" ];
|
||||
// disable stack capture
|
||||
bool disable_stack = 5 [ (gogoproto.jsontag) = "disableStack" ];
|
||||
// disable storage capture
|
||||
bool disable_storage = 6 [ (gogoproto.jsontag) = "disableStorage" ];
|
||||
// disable return data capture
|
||||
bool disable_return_data = 7 [ (gogoproto.jsontag) = "disableReturnData" ];
|
||||
// print output during capture end
|
||||
bool debug = 8;
|
||||
// maximum length of output, but zero means unlimited
|
||||
int32 limit = 9;
|
||||
// Chain overrides, can be used to execute a trace using future fork rules
|
||||
ChainConfig overrides = 10;
|
||||
}
|
||||
// enable memory capture
|
||||
bool enable_memory = 11 [ (gogoproto.jsontag) = "enableMemory" ];
|
||||
// enable return data capture
|
||||
bool enable_return_data = 12 [ (gogoproto.jsontag) = "enableReturnData" ];
|
||||
}
|
||||
|
@ -214,6 +214,10 @@ message EthCallRequest {
|
||||
bytes args = 1;
|
||||
// the default gas cap to be used
|
||||
uint64 gas_cap = 2;
|
||||
// header base fee used to generate the transaction
|
||||
string base_fee = 3 [
|
||||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int"
|
||||
];
|
||||
}
|
||||
|
||||
// EstimateGasResponse defines EstimateGas response
|
||||
|
@ -10,13 +10,16 @@ option go_package = "github.com/tharsis/ethermint/types";
|
||||
// EthAccount implements the authtypes.AccountI interface and embeds an
|
||||
// authtypes.BaseAccount type. It is compatible with the auth AccountKeeper.
|
||||
message EthAccount {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.equal) = false;
|
||||
|
||||
option (cosmos_proto.implements_interface) = "github.com/cosmos/cosmos-sdk/x/auth/types.AccountI";
|
||||
option (cosmos_proto.implements_interface) =
|
||||
"github.com/cosmos/cosmos-sdk/x/auth/types.AccountI";
|
||||
|
||||
cosmos.auth.v1beta1.BaseAccount base_account = 1
|
||||
[(gogoproto.embed) = true, (gogoproto.moretags) = "yaml:\"base_account\""];
|
||||
string code_hash = 2 [(gogoproto.moretags) = "yaml:\"code_hash\""];
|
||||
cosmos.auth.v1beta1.BaseAccount base_account = 1 [
|
||||
(gogoproto.embed) = true,
|
||||
(gogoproto.moretags) = "yaml:\"base_account\""
|
||||
];
|
||||
string code_hash = 2 [ (gogoproto.moretags) = "yaml:\"code_hash\"" ];
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ import (
|
||||
"github.com/tharsis/ethermint/server/config"
|
||||
ethermint "github.com/tharsis/ethermint/types"
|
||||
evmtypes "github.com/tharsis/ethermint/x/evm/types"
|
||||
feemarkettypes "github.com/tharsis/ethermint/x/feemarket/types"
|
||||
)
|
||||
|
||||
// Backend implements the functionality shared within namespaces.
|
||||
@ -43,21 +44,21 @@ type Backend interface {
|
||||
BlockNumber() (hexutil.Uint64, error)
|
||||
GetBlockByNumber(blockNum types.BlockNumber, fullTx bool) (map[string]interface{}, error)
|
||||
GetBlockByHash(hash common.Hash, fullTx bool) (map[string]interface{}, error)
|
||||
GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpctypes.ResultBlock, error)
|
||||
CurrentHeader() *ethtypes.Header
|
||||
GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpctypes.ResultBlock, error)
|
||||
HeaderByNumber(blockNum types.BlockNumber) (*ethtypes.Header, error)
|
||||
HeaderByHash(blockHash common.Hash) (*ethtypes.Header, error)
|
||||
PendingTransactions() ([]*sdk.Tx, error)
|
||||
GetTransactionLogs(txHash common.Hash) ([]*ethtypes.Log, error)
|
||||
GetTransactionCount(address common.Address, blockNum types.BlockNumber) (*hexutil.Uint64, error)
|
||||
SendTransaction(args types.SendTxArgs) (common.Hash, error)
|
||||
SendTransaction(args evmtypes.TransactionArgs) (common.Hash, error)
|
||||
GetLogsByHeight(height *int64) ([][]*ethtypes.Log, error)
|
||||
GetLogs(hash common.Hash) ([][]*ethtypes.Log, error)
|
||||
BloomStatus() (uint64, uint64)
|
||||
GetCoinbase() (sdk.AccAddress, error)
|
||||
GetTransactionByHash(txHash common.Hash) (*types.RPCTransaction, error)
|
||||
GetTxByEthHash(txHash common.Hash) (*tmrpctypes.ResultTx, error)
|
||||
EstimateGas(args evmtypes.CallArgs, blockNrOptional *types.BlockNumber) (hexutil.Uint64, error)
|
||||
EstimateGas(args evmtypes.TransactionArgs, blockNrOptional *types.BlockNumber) (hexutil.Uint64, error)
|
||||
RPCGasCap() uint64
|
||||
RPCMinGasPrice() int64
|
||||
ChainConfig() *params.ChainConfig
|
||||
@ -305,6 +306,12 @@ func (e *EVMBackend) EthBlockFromTendermint(
|
||||
|
||||
validatorAddr := common.BytesToAddress(addr)
|
||||
|
||||
bfRes, err := e.queryClient.FeeMarket.BaseFee(ctx, &feemarkettypes.QueryBaseFeeRequest{})
|
||||
if err != nil {
|
||||
e.logger.Debug("failed to base fee", "height", block.Height, "error", err.Error())
|
||||
return nil, err
|
||||
}
|
||||
|
||||
gasLimit, err := types.BlockMaxGasFromConsensusParams(ctx, e.clientCtx)
|
||||
if err != nil {
|
||||
e.logger.Error("failed to query consensus params", "error", err.Error())
|
||||
@ -322,7 +329,11 @@ func (e *EVMBackend) EthBlockFromTendermint(
|
||||
gasUsed += uint64(txsResult.GetGasUsed())
|
||||
}
|
||||
|
||||
formattedBlock := types.FormatBlock(block.Header, block.Size(), gasLimit, new(big.Int).SetUint64(gasUsed), ethRPCTxs, bloom, validatorAddr)
|
||||
formattedBlock := types.FormatBlock(
|
||||
block.Header, block.Size(),
|
||||
gasLimit, new(big.Int).SetUint64(gasUsed),
|
||||
ethRPCTxs, bloom, validatorAddr, bfRes.BaseFee.BigInt(),
|
||||
)
|
||||
return formattedBlock, nil
|
||||
}
|
||||
|
||||
@ -588,7 +599,7 @@ func (e *EVMBackend) GetTxByEthHash(hash common.Hash) (*tmrpctypes.ResultTx, err
|
||||
return resTxs.Txs[0], nil
|
||||
}
|
||||
|
||||
func (e *EVMBackend) SendTransaction(args types.SendTxArgs) (common.Hash, error) {
|
||||
func (e *EVMBackend) SendTransaction(args evmtypes.TransactionArgs) (common.Hash, error) {
|
||||
// Look up the wallet containing the requested signer
|
||||
_, err := e.clientCtx.Keyring.KeyByAddress(sdk.AccAddress(args.From.Bytes()))
|
||||
if err != nil {
|
||||
@ -679,7 +690,7 @@ func (e *EVMBackend) SendTransaction(args types.SendTxArgs) (common.Hash, error)
|
||||
}
|
||||
|
||||
// EstimateGas returns an estimate of gas usage for the given smart contract call.
|
||||
func (e *EVMBackend) EstimateGas(args evmtypes.CallArgs, blockNrOptional *types.BlockNumber) (hexutil.Uint64, error) {
|
||||
func (e *EVMBackend) EstimateGas(args evmtypes.TransactionArgs, blockNrOptional *types.BlockNumber) (hexutil.Uint64, error) {
|
||||
blockNr := types.EthPendingBlockNumber
|
||||
if blockNrOptional != nil {
|
||||
blockNr = *blockNrOptional
|
||||
|
@ -4,6 +4,7 @@ import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"math/big"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
@ -20,16 +21,78 @@ import (
|
||||
|
||||
// setTxDefaults populates tx message with default values in case they are not
|
||||
// provided on the args
|
||||
func (e *EVMBackend) setTxDefaults(args types.SendTxArgs) (types.SendTxArgs, error) {
|
||||
if args.GasPrice == nil {
|
||||
// TODO: Suggest a gas price based on the previous included txs
|
||||
args.GasPrice = (*hexutil.Big)(new(big.Int).SetInt64(e.RPCMinGasPrice()))
|
||||
func (e *EVMBackend) setTxDefaults(args evmtypes.TransactionArgs) (evmtypes.TransactionArgs, error) {
|
||||
if args.GasPrice != nil && (args.MaxFeePerGas != nil || args.MaxPriorityFeePerGas != nil) {
|
||||
return args, errors.New("both gasPrice and (maxFeePerGas or maxPriorityFeePerGas) specified")
|
||||
}
|
||||
|
||||
head := e.CurrentHeader()
|
||||
if head == nil {
|
||||
return args, errors.New("latest header is nil")
|
||||
}
|
||||
|
||||
cfg := e.ChainConfig()
|
||||
|
||||
// If user specifies both maxPriorityfee and maxFee, then we do not
|
||||
// need to consult the chain for defaults. It's definitely a London tx.
|
||||
if args.MaxPriorityFeePerGas == nil || args.MaxFeePerGas == nil {
|
||||
// In this clause, user left some fields unspecified.
|
||||
if cfg.IsLondon(head.Number) && args.GasPrice == nil {
|
||||
if args.MaxPriorityFeePerGas == nil {
|
||||
tip, err := e.SuggestGasTipCap()
|
||||
if err != nil {
|
||||
return args, err
|
||||
}
|
||||
|
||||
args.MaxPriorityFeePerGas = (*hexutil.Big)(tip)
|
||||
}
|
||||
|
||||
if args.MaxFeePerGas == nil {
|
||||
gasFeeCap := new(big.Int).Add(
|
||||
(*big.Int)(args.MaxPriorityFeePerGas),
|
||||
new(big.Int).Mul(head.BaseFee, big.NewInt(2)),
|
||||
)
|
||||
args.MaxFeePerGas = (*hexutil.Big)(gasFeeCap)
|
||||
}
|
||||
|
||||
if args.MaxFeePerGas.ToInt().Cmp(args.MaxPriorityFeePerGas.ToInt()) < 0 {
|
||||
return args, fmt.Errorf("maxFeePerGas (%v) < maxPriorityFeePerGas (%v)", args.MaxFeePerGas, args.MaxPriorityFeePerGas)
|
||||
}
|
||||
|
||||
} else {
|
||||
if args.MaxFeePerGas != nil || args.MaxPriorityFeePerGas != nil {
|
||||
return args, errors.New("maxFeePerGas or maxPriorityFeePerGas specified but london is not active yet")
|
||||
}
|
||||
|
||||
if args.GasPrice == nil {
|
||||
price, err := e.SuggestGasTipCap()
|
||||
if err != nil {
|
||||
return args, err
|
||||
}
|
||||
|
||||
if cfg.IsLondon(head.Number) {
|
||||
// The legacy tx gas price suggestion should not add 2x base fee
|
||||
// because all fees are consumed, so it would result in a spiral
|
||||
// upwards.
|
||||
price.Add(price, head.BaseFee)
|
||||
}
|
||||
args.GasPrice = (*hexutil.Big)(price)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Both maxPriorityfee and maxFee set by caller. Sanity-check their internal relation
|
||||
if args.MaxFeePerGas.ToInt().Cmp(args.MaxPriorityFeePerGas.ToInt()) < 0 {
|
||||
return args, fmt.Errorf("maxFeePerGas (%v) < maxPriorityFeePerGas (%v)", args.MaxFeePerGas, args.MaxPriorityFeePerGas)
|
||||
}
|
||||
}
|
||||
|
||||
if args.Value == nil {
|
||||
args.Value = new(hexutil.Big)
|
||||
}
|
||||
if args.Nonce == nil {
|
||||
// get the nonce from the account retriever
|
||||
// ignore error in case tge account doesn't exist yet
|
||||
nonce, _ := e.getAccountNonce(args.From, true, 0, e.logger)
|
||||
nonce, _ := e.getAccountNonce(*args.From, true, 0, e.logger)
|
||||
args.Nonce = (*hexutil.Uint64)(&nonce)
|
||||
}
|
||||
|
||||
@ -59,15 +122,18 @@ func (e *EVMBackend) setTxDefaults(args types.SendTxArgs) (types.SendTxArgs, err
|
||||
input = args.Data
|
||||
}
|
||||
|
||||
callArgs := evmtypes.CallArgs{
|
||||
From: &args.From, // From shouldn't be nil
|
||||
To: args.To,
|
||||
Gas: args.Gas,
|
||||
GasPrice: args.GasPrice,
|
||||
Value: args.Value,
|
||||
Data: input,
|
||||
AccessList: args.AccessList,
|
||||
callArgs := evmtypes.TransactionArgs{
|
||||
From: args.From,
|
||||
To: args.To,
|
||||
Gas: args.Gas,
|
||||
GasPrice: args.GasPrice,
|
||||
MaxFeePerGas: args.MaxFeePerGas,
|
||||
MaxPriorityFeePerGas: args.MaxPriorityFeePerGas,
|
||||
Value: args.Value,
|
||||
Data: input,
|
||||
AccessList: args.AccessList,
|
||||
}
|
||||
|
||||
blockNr := types.NewBlockNumber(big.NewInt(0))
|
||||
estimated, err := e.EstimateGas(callArgs, &blockNr)
|
||||
if err != nil {
|
||||
|
@ -350,7 +350,7 @@ func (e *PublicAPI) Sign(address common.Address, data hexutil.Bytes) (hexutil.By
|
||||
}
|
||||
|
||||
// SendTransaction sends an Ethereum transaction.
|
||||
func (e *PublicAPI) SendTransaction(args rpctypes.SendTxArgs) (common.Hash, error) {
|
||||
func (e *PublicAPI) SendTransaction(args evmtypes.TransactionArgs) (common.Hash, error) {
|
||||
e.logger.Debug("eth_sendTransaction", "args", args.String())
|
||||
return e.backend.SendTransaction(args)
|
||||
}
|
||||
@ -434,7 +434,7 @@ func (e *PublicAPI) SendRawTransaction(data hexutil.Bytes) (common.Hash, error)
|
||||
}
|
||||
|
||||
// Call performs a raw contract call.
|
||||
func (e *PublicAPI) Call(args evmtypes.CallArgs, blockNrOrHash rpctypes.BlockNumberOrHash, _ *rpctypes.StateOverride) (hexutil.Bytes, error) {
|
||||
func (e *PublicAPI) Call(args evmtypes.TransactionArgs, blockNrOrHash rpctypes.BlockNumberOrHash, _ *rpctypes.StateOverride) (hexutil.Bytes, error) {
|
||||
e.logger.Debug("eth_call", "args", args.String(), "block number or hash", blockNrOrHash)
|
||||
|
||||
blockNum, err := e.getBlockNumber(blockNrOrHash)
|
||||
@ -452,7 +452,7 @@ func (e *PublicAPI) Call(args evmtypes.CallArgs, blockNrOrHash rpctypes.BlockNum
|
||||
// DoCall performs a simulated call operation through the evmtypes. It returns the
|
||||
// estimated gas used on the operation or an error if fails.
|
||||
func (e *PublicAPI) doCall(
|
||||
args evmtypes.CallArgs, blockNr rpctypes.BlockNumber,
|
||||
args evmtypes.TransactionArgs, blockNr rpctypes.BlockNumber,
|
||||
) (*evmtypes.MsgEthereumTxResponse, error) {
|
||||
bz, err := json.Marshal(&args)
|
||||
if err != nil {
|
||||
@ -479,7 +479,7 @@ func (e *PublicAPI) doCall(
|
||||
}
|
||||
|
||||
// EstimateGas returns an estimate of gas usage for the given smart contract call.
|
||||
func (e *PublicAPI) EstimateGas(args evmtypes.CallArgs, blockNrOptional *rpctypes.BlockNumber) (hexutil.Uint64, error) {
|
||||
func (e *PublicAPI) EstimateGas(args evmtypes.TransactionArgs, blockNrOptional *rpctypes.BlockNumber) (hexutil.Uint64, error) {
|
||||
e.logger.Debug("eth_estimateGas")
|
||||
return e.backend.EstimateGas(args, blockNrOptional)
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ import (
|
||||
"github.com/ethereum/go-ethereum/crypto"
|
||||
|
||||
"github.com/tharsis/ethermint/crypto/ethsecp256k1"
|
||||
rpctypes "github.com/tharsis/ethermint/rpc/ethereum/types"
|
||||
evmtypes "github.com/tharsis/ethermint/x/evm/types"
|
||||
)
|
||||
|
||||
// PrivateAccountAPI is the personal_ prefixed set of APIs in the Web3 JSON-RPC spec.
|
||||
@ -150,9 +150,13 @@ func (api *PrivateAccountAPI) UnlockAccount(_ context.Context, addr common.Addre
|
||||
// SendTransaction will create a transaction from the given arguments and
|
||||
// tries to sign it with the key associated with args.To. If the given password isn't
|
||||
// able to decrypt the key it fails.
|
||||
func (api *PrivateAccountAPI) SendTransaction(_ context.Context, args rpctypes.SendTxArgs, pwrd string) (common.Hash, error) {
|
||||
func (api *PrivateAccountAPI) SendTransaction(_ context.Context, args evmtypes.TransactionArgs, pwrd string) (common.Hash, error) {
|
||||
api.logger.Debug("personal_sendTransaction", "address", args.To.String())
|
||||
|
||||
if args.From == nil {
|
||||
return common.Hash{}, fmt.Errorf("from address cannot be nil in send transaction")
|
||||
}
|
||||
|
||||
addr := sdk.AccAddress(args.From.Bytes())
|
||||
|
||||
// check if the key is on the keyring
|
||||
|
@ -17,6 +17,7 @@ import (
|
||||
// QueryClient defines a gRPC Client used for:
|
||||
// - Transaction simulation
|
||||
// - EVM module queries
|
||||
// - Fee market module queries
|
||||
type QueryClient struct {
|
||||
tx.ServiceClient
|
||||
evmtypes.QueryClient
|
||||
|
@ -1,14 +1,9 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
||||
|
||||
evmtypes "github.com/tharsis/ethermint/x/evm/types"
|
||||
)
|
||||
|
||||
// Copied the Account and StorageResult types since they are registered under an
|
||||
@ -39,6 +34,8 @@ type RPCTransaction struct {
|
||||
From common.Address `json:"from"`
|
||||
Gas hexutil.Uint64 `json:"gas"`
|
||||
GasPrice *hexutil.Big `json:"gasPrice"`
|
||||
GasFeeCap *hexutil.Big `json:"maxFeePerGas,omitempty"`
|
||||
GasTipCap *hexutil.Big `json:"maxPriorityFeePerGas,omitempty"`
|
||||
Hash common.Hash `json:"hash"`
|
||||
Input hexutil.Bytes `json:"input"`
|
||||
Nonce hexutil.Uint64 `json:"nonce"`
|
||||
@ -53,80 +50,6 @@ type RPCTransaction struct {
|
||||
S *hexutil.Big `json:"s"`
|
||||
}
|
||||
|
||||
// SendTxArgs represents the arguments to submit a new transaction into the transaction pool.
|
||||
// Duplicate struct definition since geth struct is in internal package
|
||||
// Ref: https://github.com/ethereum/go-ethereum/blob/release/1.9/internal/ethapi/api.go#L1346
|
||||
type SendTxArgs struct {
|
||||
From common.Address `json:"from"`
|
||||
To *common.Address `json:"to"`
|
||||
Gas *hexutil.Uint64 `json:"gas"`
|
||||
GasPrice *hexutil.Big `json:"gasPrice"`
|
||||
Value *hexutil.Big `json:"value"`
|
||||
Nonce *hexutil.Uint64 `json:"nonce"`
|
||||
// We accept "data" and "input" for backwards-compatibility reasons. "input" is the
|
||||
// newer name and should be preferred by clients.
|
||||
Data *hexutil.Bytes `json:"data"`
|
||||
Input *hexutil.Bytes `json:"input"`
|
||||
// For non-legacy transactions
|
||||
AccessList *ethtypes.AccessList `json:"accessList,omitempty"`
|
||||
ChainID *hexutil.Big `json:"chainId,omitempty"`
|
||||
}
|
||||
|
||||
// String return the struct in a string format
|
||||
func (args *SendTxArgs) String() string {
|
||||
// Todo: There is currently a bug with hexutil.Big when the value its nil, printing would trigger an exception
|
||||
return fmt.Sprintf("SendTxArgs{From:%v, To:%v, Gas:%v,"+
|
||||
" Nonce:%v, Data:%v, Input:%v, AccessList:%v}",
|
||||
args.From,
|
||||
args.To,
|
||||
args.Gas,
|
||||
args.Nonce,
|
||||
args.Data,
|
||||
args.Input,
|
||||
args.AccessList)
|
||||
}
|
||||
|
||||
// ToTransaction converts the arguments to an ethereum transaction.
|
||||
// This assumes that setTxDefaults has been called.
|
||||
func (args *SendTxArgs) ToTransaction() *evmtypes.MsgEthereumTx {
|
||||
var (
|
||||
input []byte
|
||||
chainID, value, gasPrice *big.Int
|
||||
gas, nonce uint64
|
||||
)
|
||||
|
||||
if args.Input != nil {
|
||||
input = *args.Input
|
||||
} else if args.Data != nil {
|
||||
input = *args.Data
|
||||
}
|
||||
|
||||
if args.ChainID != nil {
|
||||
chainID = args.ChainID.ToInt()
|
||||
}
|
||||
|
||||
if args.Nonce != nil {
|
||||
nonce = uint64(*args.Nonce)
|
||||
}
|
||||
|
||||
if args.Gas != nil {
|
||||
gas = uint64(*args.Gas)
|
||||
}
|
||||
|
||||
if args.GasPrice != nil {
|
||||
gasPrice = args.GasPrice.ToInt()
|
||||
}
|
||||
|
||||
if args.Value != nil {
|
||||
value = args.Value.ToInt()
|
||||
}
|
||||
|
||||
tx := evmtypes.NewTx(chainID, nonce, args.To, value, gas, gasPrice, input, args.AccessList)
|
||||
tx.From = args.From.Hex()
|
||||
|
||||
return tx
|
||||
}
|
||||
|
||||
// StateOverride is the collection of overridden accounts.
|
||||
type StateOverride map[common.Address]OverrideAccount
|
||||
|
||||
|
@ -151,7 +151,7 @@ func BlockMaxGasFromConsensusParams(ctx context.Context, clientCtx client.Contex
|
||||
func FormatBlock(
|
||||
header tmtypes.Header, size int, gasLimit int64,
|
||||
gasUsed *big.Int, transactions interface{}, bloom ethtypes.Bloom,
|
||||
validatorAddr common.Address,
|
||||
validatorAddr common.Address, baseFee *big.Int,
|
||||
) map[string]interface{} {
|
||||
if len(header.DataHash) == 0 {
|
||||
header.DataHash = tmbytes.HexBytes(common.Hash{}.Bytes())
|
||||
@ -175,6 +175,7 @@ func FormatBlock(
|
||||
"timestamp": hexutil.Uint64(header.Time.Unix()),
|
||||
"transactionsRoot": hexutil.Bytes(header.DataHash),
|
||||
"receiptsRoot": ethtypes.EmptyRootHash,
|
||||
"baseFeePerGas": (*hexutil.Big)(baseFee),
|
||||
|
||||
"uncles": []common.Hash{},
|
||||
"transactions": transactions,
|
||||
|
@ -65,7 +65,7 @@ func BenchmarkTokenTransfer(b *testing.B) {
|
||||
input, err := ContractABI.Pack("transfer", common.HexToAddress("0x378c50D9264C63F3F92B806d4ee56E9D86FfB3Ec"), big.NewInt(1000))
|
||||
require.NoError(b, err)
|
||||
nonce := suite.app.EvmKeeper.GetNonce(suite.address)
|
||||
return types.NewTx(suite.app.EvmKeeper.ChainID(), nonce, &contract, big.NewInt(0), 410000, big.NewInt(1), input, nil)
|
||||
return types.NewTx(suite.app.EvmKeeper.ChainID(), nonce, &contract, big.NewInt(0), 410000, big.NewInt(1), nil, nil, input, nil)
|
||||
})
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ func BenchmarkEmitLogs(b *testing.B) {
|
||||
input, err := ContractABI.Pack("benchmarkLogs", big.NewInt(1000))
|
||||
require.NoError(b, err)
|
||||
nonce := suite.app.EvmKeeper.GetNonce(suite.address)
|
||||
return types.NewTx(suite.app.EvmKeeper.ChainID(), nonce, &contract, big.NewInt(0), 4100000, big.NewInt(1), input, nil)
|
||||
return types.NewTx(suite.app.EvmKeeper.ChainID(), nonce, &contract, big.NewInt(0), 4100000, big.NewInt(1), nil, nil, input, nil)
|
||||
})
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@ func BenchmarkTokenTransferFrom(b *testing.B) {
|
||||
input, err := ContractABI.Pack("transferFrom", suite.address, common.HexToAddress("0x378c50D9264C63F3F92B806d4ee56E9D86FfB3Ec"), big.NewInt(0))
|
||||
require.NoError(b, err)
|
||||
nonce := suite.app.EvmKeeper.GetNonce(suite.address)
|
||||
return types.NewTx(suite.app.EvmKeeper.ChainID(), nonce, &contract, big.NewInt(0), 410000, big.NewInt(1), input, nil)
|
||||
return types.NewTx(suite.app.EvmKeeper.ChainID(), nonce, &contract, big.NewInt(0), 410000, big.NewInt(1), nil, nil, input, nil)
|
||||
})
|
||||
}
|
||||
|
||||
@ -92,6 +92,6 @@ func BenchmarkTokenMint(b *testing.B) {
|
||||
input, err := ContractABI.Pack("mint", common.HexToAddress("0x378c50D9264C63F3F92B806d4ee56E9D86FfB3Ec"), big.NewInt(1000))
|
||||
require.NoError(b, err)
|
||||
nonce := suite.app.EvmKeeper.GetNonce(suite.address)
|
||||
return types.NewTx(suite.app.EvmKeeper.ChainID(), nonce, &contract, big.NewInt(0), 410000, big.NewInt(1), input, nil)
|
||||
return types.NewTx(suite.app.EvmKeeper.ChainID(), nonce, &contract, big.NewInt(0), 410000, big.NewInt(1), nil, nil, input, nil)
|
||||
})
|
||||
}
|
||||
|
@ -215,13 +215,20 @@ func (k Keeper) EthCall(c context.Context, req *types.EthCallRequest) (*types.Ms
|
||||
ctx := sdk.UnwrapSDKContext(c)
|
||||
k.WithContext(ctx)
|
||||
|
||||
var args types.CallArgs
|
||||
var args types.TransactionArgs
|
||||
err := json.Unmarshal(req.Args, &args)
|
||||
if err != nil {
|
||||
return nil, status.Error(codes.InvalidArgument, err.Error())
|
||||
}
|
||||
|
||||
msg := args.ToMessage(req.GasCap)
|
||||
if req.BaseFee != nil && req.BaseFee.IsNegative() {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "base fee cannot be negative %s", req.BaseFee)
|
||||
}
|
||||
|
||||
msg, err := args.ToMessage(req.GasCap, req.GetBaseFee())
|
||||
if err != nil {
|
||||
return nil, status.Error(codes.InvalidArgument, err.Error())
|
||||
}
|
||||
|
||||
params := k.GetParams(ctx)
|
||||
feemktParams := k.feeMarketKeeper.GetParams(ctx)
|
||||
@ -266,7 +273,11 @@ func (k Keeper) EstimateGas(c context.Context, req *types.EthCallRequest) (*type
|
||||
return nil, status.Error(codes.InvalidArgument, "gas cap cannot be lower than 21,000")
|
||||
}
|
||||
|
||||
var args types.CallArgs
|
||||
if req.BaseFee != nil && req.BaseFee.IsNegative() {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "base fee cannot be negative %s", req.BaseFee)
|
||||
}
|
||||
|
||||
var args types.TransactionArgs
|
||||
err := json.Unmarshal(req.Args, &args)
|
||||
if err != nil {
|
||||
return nil, status.Error(codes.InvalidArgument, err.Error())
|
||||
@ -308,7 +319,7 @@ func (k Keeper) EstimateGas(c context.Context, req *types.EthCallRequest) (*type
|
||||
return nil, status.Error(codes.Internal, err.Error())
|
||||
}
|
||||
|
||||
baseFee := k.feeMarketKeeper.GetBaseFee(ctx)
|
||||
baseFee := req.GetBaseFee()
|
||||
|
||||
// Create a helper to check if a gas allowance results in an executable transaction
|
||||
executable := func(gas uint64) (vmerror bool, rsp *types.MsgEthereumTxResponse, err error) {
|
||||
@ -317,7 +328,10 @@ func (k Keeper) EstimateGas(c context.Context, req *types.EthCallRequest) (*type
|
||||
// Reset to the initial context
|
||||
k.WithContext(ctx)
|
||||
|
||||
msg := args.ToMessage(req.GasCap)
|
||||
msg, err := args.ToMessage(req.GasCap, baseFee)
|
||||
if err != nil {
|
||||
return false, nil, err
|
||||
}
|
||||
|
||||
tracer := types.NewTracer(k.tracer, msg, ethCfg, k.Ctx().BlockHeight(), k.debug)
|
||||
|
||||
@ -371,6 +385,10 @@ func (k Keeper) TraceTx(c context.Context, req *types.QueryTraceTxRequest) (*typ
|
||||
return nil, status.Error(codes.InvalidArgument, "empty request")
|
||||
}
|
||||
|
||||
if req.TraceConfig != nil && req.TraceConfig.Limit < 0 {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "output limit cannot be negative, got %d", req.TraceConfig.Limit)
|
||||
}
|
||||
|
||||
ctx := sdk.UnwrapSDKContext(c)
|
||||
k.WithContext(ctx)
|
||||
|
||||
@ -413,17 +431,22 @@ func (k *Keeper) traceTx(
|
||||
) (*interface{}, error) {
|
||||
// Assemble the structured logger or the JavaScript tracer
|
||||
var (
|
||||
tracer vm.Tracer
|
||||
err error
|
||||
tracer vm.Tracer
|
||||
overrides *ethparams.ChainConfig
|
||||
err error
|
||||
)
|
||||
|
||||
msg, err := tx.AsMessage(signer)
|
||||
msg, err := tx.AsMessage(signer, baseFee)
|
||||
if err != nil {
|
||||
return nil, status.Error(codes.Internal, err.Error())
|
||||
}
|
||||
|
||||
txHash := tx.Hash()
|
||||
|
||||
if traceConfig != nil && traceConfig.Overrides != nil {
|
||||
overrides = traceConfig.Overrides.EthereumConfig(ethCfg.ChainID)
|
||||
}
|
||||
|
||||
switch {
|
||||
case traceConfig != nil && traceConfig.Tracer != "":
|
||||
timeout := defaultTraceTimeout
|
||||
@ -436,10 +459,14 @@ func (k *Keeper) traceTx(
|
||||
}
|
||||
}
|
||||
|
||||
txContext := core.NewEVMTxContext(msg)
|
||||
tCtx := &tracers.Context{
|
||||
BlockHash: k.GetHashFn()(uint64(ctx.BlockHeight())),
|
||||
TxIndex: int(txIndex),
|
||||
TxHash: txHash,
|
||||
}
|
||||
|
||||
// Construct the JavaScript tracer to execute with
|
||||
if tracer, err = tracers.New(traceConfig.Tracer, txContext); err != nil {
|
||||
if tracer, err = tracers.New(traceConfig.Tracer, tCtx); err != nil {
|
||||
return nil, status.Error(codes.Internal, err.Error())
|
||||
}
|
||||
|
||||
@ -456,10 +483,13 @@ func (k *Keeper) traceTx(
|
||||
|
||||
case traceConfig != nil:
|
||||
logConfig := vm.LogConfig{
|
||||
DisableMemory: traceConfig.DisableMemory,
|
||||
Debug: traceConfig.Debug,
|
||||
DisableStorage: traceConfig.DisableStorage,
|
||||
DisableStack: traceConfig.DisableStack,
|
||||
EnableMemory: traceConfig.EnableMemory,
|
||||
DisableStorage: traceConfig.DisableStorage,
|
||||
DisableStack: traceConfig.DisableStack,
|
||||
EnableReturnData: traceConfig.EnableReturnData,
|
||||
Debug: traceConfig.Debug,
|
||||
Limit: int(traceConfig.Limit),
|
||||
Overrides: overrides,
|
||||
}
|
||||
tracer = vm.NewStructLogger(&logConfig)
|
||||
default:
|
||||
|
@ -481,7 +481,7 @@ func (suite *KeeperTestSuite) TestEstimateGas() {
|
||||
gasHelper := hexutil.Uint64(20000)
|
||||
|
||||
var (
|
||||
args types.CallArgs
|
||||
args types.TransactionArgs
|
||||
gasCap uint64
|
||||
)
|
||||
testCases := []struct {
|
||||
@ -492,23 +492,23 @@ func (suite *KeeperTestSuite) TestEstimateGas() {
|
||||
}{
|
||||
// should success, because transfer value is zero
|
||||
{"default args", func() {
|
||||
args = types.CallArgs{To: &common.Address{}}
|
||||
args = types.TransactionArgs{To: &common.Address{}}
|
||||
}, true, 21000},
|
||||
// should fail, because the default From address(zero address) don't have fund
|
||||
{"not enough balance", func() {
|
||||
args = types.CallArgs{To: &common.Address{}, Value: (*hexutil.Big)(big.NewInt(100))}
|
||||
args = types.TransactionArgs{To: &common.Address{}, Value: (*hexutil.Big)(big.NewInt(100))}
|
||||
}, false, 0},
|
||||
// should success, enough balance now
|
||||
{"enough balance", func() {
|
||||
args = types.CallArgs{To: &common.Address{}, From: &suite.address, Value: (*hexutil.Big)(big.NewInt(100))}
|
||||
args = types.TransactionArgs{To: &common.Address{}, From: &suite.address, Value: (*hexutil.Big)(big.NewInt(100))}
|
||||
}, false, 0},
|
||||
// should success, because gas limit lower than 21000 is ignored
|
||||
{"gas exceed allowance", func() {
|
||||
args = types.CallArgs{To: &common.Address{}, Gas: &gasHelper}
|
||||
args = types.TransactionArgs{To: &common.Address{}, Gas: &gasHelper}
|
||||
}, true, 21000},
|
||||
// should fail, invalid gas cap
|
||||
{"gas exceed global allowance", func() {
|
||||
args = types.CallArgs{To: &common.Address{}}
|
||||
args = types.TransactionArgs{To: &common.Address{}}
|
||||
gasCap = 20000
|
||||
}, false, 0},
|
||||
// estimate gas of an erc20 contract deployment, the exact gas number is checked with geth
|
||||
@ -516,7 +516,7 @@ func (suite *KeeperTestSuite) TestEstimateGas() {
|
||||
ctorArgs, err := ContractABI.Pack("", &suite.address, sdk.NewIntWithDecimal(1000, 18).BigInt())
|
||||
suite.Require().NoError(err)
|
||||
data := append(ContractBin, ctorArgs...)
|
||||
args = types.CallArgs{
|
||||
args = types.TransactionArgs{
|
||||
From: &suite.address,
|
||||
Data: (*hexutil.Bytes)(&data),
|
||||
}
|
||||
@ -527,7 +527,7 @@ func (suite *KeeperTestSuite) TestEstimateGas() {
|
||||
suite.Commit()
|
||||
transferData, err := ContractABI.Pack("transfer", common.HexToAddress("0x378c50D9264C63F3F92B806d4ee56E9D86FfB3Ec"), big.NewInt(1000))
|
||||
suite.Require().NoError(err)
|
||||
args = types.CallArgs{To: &contractAddr, From: &suite.address, Data: (*hexutil.Bytes)(&transferData)}
|
||||
args = types.TransactionArgs{To: &contractAddr, From: &suite.address, Data: (*hexutil.Bytes)(&transferData)}
|
||||
}, true, 51880},
|
||||
}
|
||||
|
||||
|
@ -184,7 +184,7 @@ func (suite *KeeperTestSuite) DeployTestContract(t require.TestingT, owner commo
|
||||
require.NoError(t, err)
|
||||
|
||||
data := append(ContractBin, ctorArgs...)
|
||||
args, err := json.Marshal(&types.CallArgs{
|
||||
args, err := json.Marshal(&types.TransactionArgs{
|
||||
From: &suite.address,
|
||||
Data: (*hexutil.Bytes)(&data),
|
||||
})
|
||||
@ -203,8 +203,9 @@ func (suite *KeeperTestSuite) DeployTestContract(t require.TestingT, owner commo
|
||||
nil, // amount
|
||||
res.Gas, // gasLimit
|
||||
nil, // gasPrice
|
||||
data, // input
|
||||
nil, // accesses
|
||||
nil, nil,
|
||||
data, // input
|
||||
nil, // accesses
|
||||
)
|
||||
erc20DeployTx.From = suite.address.Hex()
|
||||
err = erc20DeployTx.Sign(ethtypes.LatestSignerForChainID(chainID), suite.signer)
|
||||
@ -221,7 +222,7 @@ func (suite *KeeperTestSuite) TransferERC20Token(t require.TestingT, contractAdd
|
||||
|
||||
transferData, err := ContractABI.Pack("transfer", to, amount)
|
||||
require.NoError(t, err)
|
||||
args, err := json.Marshal(&types.CallArgs{To: &contractAddr, From: &from, Data: (*hexutil.Bytes)(&transferData)})
|
||||
args, err := json.Marshal(&types.TransactionArgs{To: &contractAddr, From: &from, Data: (*hexutil.Bytes)(&transferData)})
|
||||
require.NoError(t, err)
|
||||
res, err := suite.queryClient.EstimateGas(ctx, &types.EthCallRequest{
|
||||
Args: args,
|
||||
@ -237,6 +238,7 @@ func (suite *KeeperTestSuite) TransferERC20Token(t require.TestingT, contractAdd
|
||||
nil,
|
||||
res.Gas,
|
||||
nil,
|
||||
nil, nil,
|
||||
transferData,
|
||||
nil,
|
||||
)
|
||||
|
@ -42,7 +42,7 @@ func (k *Keeper) NewEVM(
|
||||
BlockNumber: big.NewInt(k.Ctx().BlockHeight()),
|
||||
Time: big.NewInt(k.Ctx().BlockHeader().Time.Unix()),
|
||||
Difficulty: big.NewInt(0), // unused. Only required in PoW context
|
||||
// BaseFee: baseFee,
|
||||
BaseFee: baseFee,
|
||||
}
|
||||
|
||||
txCtx := core.NewEVMTxContext(msg)
|
||||
@ -54,14 +54,14 @@ func (k *Keeper) NewEVM(
|
||||
// VMConfig creates an EVM configuration from the debug setting and the extra EIPs enabled on the
|
||||
// module parameters. The config generated uses the default JumpTable from the EVM.
|
||||
func (k Keeper) VMConfig(msg core.Message, params types.Params, tracer vm.Tracer) vm.Config {
|
||||
// fmParams := k.feeMarketKeeper.GetParams(k.Ctx())
|
||||
fmParams := k.feeMarketKeeper.GetParams(k.Ctx())
|
||||
|
||||
return vm.Config{
|
||||
Debug: k.debug,
|
||||
Tracer: tracer,
|
||||
NoRecursion: false, // TODO: consider disabling recursion though params
|
||||
// NoBaseFee: fmParams.NoBaseFee,
|
||||
ExtraEips: params.EIPs(),
|
||||
NoBaseFee: fmParams.NoBaseFee,
|
||||
ExtraEips: params.EIPs(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -161,7 +161,7 @@ func (k *Keeper) ApplyTransaction(tx *ethtypes.Transaction) (*types.MsgEthereumT
|
||||
|
||||
baseFee := k.feeMarketKeeper.GetBaseFee(ctx)
|
||||
|
||||
msg, err := tx.AsMessage(signer)
|
||||
msg, err := tx.AsMessage(signer, baseFee)
|
||||
if err != nil {
|
||||
return nil, stacktrace.Propagate(err, "failed to return ethereum transaction as core message")
|
||||
}
|
||||
@ -270,7 +270,7 @@ func (k *Keeper) ApplyMessage(evm *vm.EVM, msg core.Message, cfg *params.ChainCo
|
||||
|
||||
sender := vm.AccountRef(msg.From())
|
||||
contractCreation := msg.To() == nil
|
||||
// isLondon := cfg.IsLondon(evm.Context.BlockNumber)
|
||||
isLondon := cfg.IsLondon(evm.Context.BlockNumber)
|
||||
|
||||
intrinsicGas, err := k.GetEthIntrinsicGas(msg, cfg, contractCreation)
|
||||
if err != nil {
|
||||
@ -296,14 +296,12 @@ func (k *Keeper) ApplyMessage(evm *vm.EVM, msg core.Message, cfg *params.ChainCo
|
||||
ret, leftoverGas, vmErr = evm.Call(sender, *msg.To(), msg.Data(), leftoverGas, msg.Value())
|
||||
}
|
||||
|
||||
refundQuotient := uint64(2)
|
||||
refundQuotient := params.RefundQuotient
|
||||
|
||||
// refundQuotient := params.RefundQuotient
|
||||
|
||||
// // After EIP-3529: refunds are capped to gasUsed / 5
|
||||
// if isLondon {
|
||||
// refundQuotient = params.RefundQuotientEIP3529
|
||||
// }
|
||||
// After EIP-3529: refunds are capped to gasUsed / 5
|
||||
if isLondon {
|
||||
refundQuotient = params.RefundQuotientEIP3529
|
||||
}
|
||||
|
||||
if query {
|
||||
// gRPC query handlers don't go through the AnteHandler to deduct the gas fee from the sender or have access historical state.
|
||||
|
@ -74,7 +74,10 @@ func newNativeMessage(
|
||||
) (core.Message, error) {
|
||||
msgSigner := ethtypes.MakeSigner(cfg, big.NewInt(blockHeight))
|
||||
|
||||
var ethTx *ethtypes.Transaction
|
||||
var (
|
||||
ethTx *ethtypes.Transaction
|
||||
baseFee *big.Int
|
||||
)
|
||||
if isLegacy {
|
||||
templateLegacyTx.Nonce = nonce
|
||||
ethTx = ethtypes.NewTx(templateLegacyTx)
|
||||
@ -91,7 +94,7 @@ func newNativeMessage(
|
||||
return nil, err
|
||||
}
|
||||
|
||||
m, err := msg.AsMessage(msgSigner) // TODO: add DynamicFeeTx
|
||||
m, err := msg.AsMessage(msgSigner, baseFee) // TODO: add DynamicFeeTx
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -549,14 +549,14 @@ func (suite *KeeperTestSuite) CreateTestTx(msg *types.MsgEthereumTx, priv crypto
|
||||
|
||||
func (suite *KeeperTestSuite) TestAddLog() {
|
||||
addr, privKey := tests.NewAddrKey()
|
||||
msg := types.NewTx(big.NewInt(1), 0, &suite.address, big.NewInt(1), 100000, big.NewInt(1), []byte("test"), nil)
|
||||
msg := types.NewTx(big.NewInt(1), 0, &suite.address, big.NewInt(1), 100000, big.NewInt(1), nil, nil, []byte("test"), nil)
|
||||
msg.From = addr.Hex()
|
||||
|
||||
tx := suite.CreateTestTx(msg, privKey)
|
||||
msg, _ = tx.GetMsgs()[0].(*types.MsgEthereumTx)
|
||||
txHash := msg.AsTransaction().Hash()
|
||||
|
||||
msg2 := types.NewTx(big.NewInt(1), 1, &suite.address, big.NewInt(1), 100000, big.NewInt(1), []byte("test"), nil)
|
||||
msg2 := types.NewTx(big.NewInt(1), 1, &suite.address, big.NewInt(1), 100000, big.NewInt(1), nil, nil, []byte("test"), nil)
|
||||
msg2.From = addr.Hex()
|
||||
|
||||
tx2 := suite.CreateTestTx(msg2, privKey)
|
||||
|
@ -60,8 +60,7 @@ func (k Keeper) DeductTxCostsFromUserBalance(
|
||||
|
||||
feeMktParams := k.feeMarketKeeper.GetParams(ctx)
|
||||
|
||||
if london && !feeMktParams.NoBaseFee {
|
||||
// TODO: add to if statement above txData.TxType() == ethtypes.DynamicFeeTxType
|
||||
if london && !feeMktParams.NoBaseFee && txData.TxType() == ethtypes.DynamicFeeTxType {
|
||||
baseFee := k.feeMarketKeeper.GetBaseFee(ctx)
|
||||
effectiveTip = cmath.BigMin(txData.GetGasTipCap(), new(big.Int).Sub(txData.GetGasFeeCap(), baseFee))
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ func (suite *KeeperTestSuite) TestCheckSenderBalance() {
|
||||
gasPrice = tc.gasPrice.BigInt()
|
||||
}
|
||||
|
||||
tx := evmtypes.NewTx(zeroInt.BigInt(), 1, &to, amount, tc.gasLimit, gasPrice, nil, tc.accessList)
|
||||
tx := evmtypes.NewTx(zeroInt.BigInt(), 1, &to, amount, tc.gasLimit, gasPrice, nil, nil, nil, tc.accessList)
|
||||
tx.From = tc.from
|
||||
|
||||
txData, _ := evmtypes.UnpackTxData(tx.Data)
|
||||
@ -230,7 +230,7 @@ func (suite *KeeperTestSuite) TestDeductTxCostsFromUserBalance() {
|
||||
gasPrice = tc.gasPrice.BigInt()
|
||||
}
|
||||
|
||||
tx := evmtypes.NewTx(zeroInt.BigInt(), 1, &suite.address, amount, tc.gasLimit, gasPrice, nil, tc.accessList)
|
||||
tx := evmtypes.NewTx(zeroInt.BigInt(), 1, &suite.address, amount, tc.gasLimit, gasPrice, nil, nil, nil, tc.accessList)
|
||||
tx.From = suite.address.String()
|
||||
|
||||
txData, _ := evmtypes.UnpackTxData(tx.Data)
|
||||
|
@ -1,77 +0,0 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
||||
)
|
||||
|
||||
// copied from: https://github.com/ethereum/go-ethereum/blob/v1.10.3/internal/ethapi/api.go#L754
|
||||
|
||||
// CallArgs represents the arguments for a call.
|
||||
type CallArgs struct {
|
||||
From *common.Address `json:"from"`
|
||||
To *common.Address `json:"to"`
|
||||
Gas *hexutil.Uint64 `json:"gas"`
|
||||
GasPrice *hexutil.Big `json:"gasPrice"`
|
||||
Value *hexutil.Big `json:"value"`
|
||||
Data *hexutil.Bytes `json:"data"`
|
||||
AccessList *ethtypes.AccessList `json:"accessList"`
|
||||
}
|
||||
|
||||
// ToMessage converts CallArgs to the Message type used by the core evm
|
||||
func (args *CallArgs) ToMessage(globalGasCap uint64) ethtypes.Message {
|
||||
// Set sender address or use zero address if none specified.
|
||||
var addr common.Address
|
||||
if args.From != nil {
|
||||
addr = *args.From
|
||||
}
|
||||
|
||||
// Set default gas & gas price if none were set
|
||||
gas := globalGasCap
|
||||
if gas == 0 {
|
||||
gas = uint64(math.MaxUint64 / 2)
|
||||
}
|
||||
if args.Gas != nil {
|
||||
gas = uint64(*args.Gas)
|
||||
}
|
||||
if globalGasCap != 0 && globalGasCap < gas {
|
||||
// log.Warn("Caller gas above allowance, capping", "requested", gas, "cap", globalGasCap)
|
||||
gas = globalGasCap
|
||||
}
|
||||
gasPrice := new(big.Int)
|
||||
if args.GasPrice != nil {
|
||||
gasPrice = args.GasPrice.ToInt()
|
||||
}
|
||||
value := new(big.Int)
|
||||
if args.Value != nil {
|
||||
value = args.Value.ToInt()
|
||||
}
|
||||
var data []byte
|
||||
if args.Data != nil {
|
||||
data = *args.Data
|
||||
}
|
||||
var accessList ethtypes.AccessList
|
||||
if args.AccessList != nil {
|
||||
accessList = *args.AccessList
|
||||
}
|
||||
|
||||
msg := ethtypes.NewMessage(addr, args.To, 0, value, gas, gasPrice, data, accessList, false)
|
||||
return msg
|
||||
}
|
||||
|
||||
// String return the struct in a string format
|
||||
func (args *CallArgs) String() string {
|
||||
// Todo: There is currently a bug with hexutil.Big when the value its nil, printing would trigger an exception
|
||||
return fmt.Sprintf("CallArgs{From:%v, To:%v, Gas:%v,"+
|
||||
" Data:%v, AccessList:%v}",
|
||||
args.From,
|
||||
args.To,
|
||||
args.Gas,
|
||||
args.Data,
|
||||
args.AccessList)
|
||||
}
|
@ -29,8 +29,8 @@ func (cc ChainConfig) EthereumConfig(chainID *big.Int) *params.ChainConfig {
|
||||
IstanbulBlock: getBlockValue(cc.IstanbulBlock),
|
||||
MuirGlacierBlock: getBlockValue(cc.MuirGlacierBlock),
|
||||
BerlinBlock: getBlockValue(cc.BerlinBlock),
|
||||
// LondonBlock: getBlockValue(cc.LondonBlock), // TODO: uncomment
|
||||
CatalystBlock: getBlockValue(cc.CatalystBlock),
|
||||
LondonBlock: getBlockValue(cc.LondonBlock),
|
||||
CatalystBlock: getBlockValue(cc.CatalystBlock),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,6 @@ import (
|
||||
"github.com/tharsis/ethermint/types"
|
||||
)
|
||||
|
||||
// nolint: deadcode, unused
|
||||
func newDynamicFeeTx(tx *ethtypes.Transaction) *DynamicFeeTx {
|
||||
txData := &DynamicFeeTx{
|
||||
Nonce: tx.Nonce(),
|
||||
@ -27,17 +26,16 @@ func newDynamicFeeTx(tx *ethtypes.Transaction) *DynamicFeeTx {
|
||||
amountInt := sdk.NewIntFromBigInt(tx.Value())
|
||||
txData.Amount = &amountInt
|
||||
}
|
||||
// TODO:
|
||||
|
||||
// if tx.GasFeeCap() != nil {
|
||||
// gasFeeCapInt := sdk.NewIntFromBigInt(tx.GasFeeCap())
|
||||
// txData.GasFeeCap = &gasFeeCapInt
|
||||
// }
|
||||
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.GasTipCap() != nil {
|
||||
gasTipCapInt := sdk.NewIntFromBigInt(tx.GasTipCap())
|
||||
txData.GasTipCap = &gasTipCapInt
|
||||
}
|
||||
|
||||
if tx.AccessList() != nil {
|
||||
al := tx.AccessList()
|
||||
@ -50,9 +48,7 @@ func newDynamicFeeTx(tx *ethtypes.Transaction) *DynamicFeeTx {
|
||||
|
||||
// TxType returns the tx type
|
||||
func (tx *DynamicFeeTx) TxType() uint8 {
|
||||
// TODO
|
||||
return 0
|
||||
// return ethtypes.DynamicFeeTxType
|
||||
return ethtypes.DynamicFeeTxType
|
||||
}
|
||||
|
||||
// Copy returns an instance with the same field values
|
||||
@ -145,23 +141,21 @@ func (tx *DynamicFeeTx) GetTo() *common.Address {
|
||||
// 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 ðtypes.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,
|
||||
// }
|
||||
v, r, s := tx.GetRawSignatureValues()
|
||||
return ðtypes.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.
|
||||
|
349
x/evm/types/evm.pb.go
generated
349
x/evm/types/evm.pb.go
generated
@ -521,20 +521,20 @@ type TraceConfig struct {
|
||||
Timeout string `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
|
||||
// number of blocks the tracer is willing to go back
|
||||
Reexec uint64 `protobuf:"varint,3,opt,name=reexec,proto3" json:"reexec,omitempty"`
|
||||
// disable memory capture
|
||||
DisableMemory bool `protobuf:"varint,4,opt,name=disable_memory,json=disableMemory,proto3" json:"disableMemory"`
|
||||
// disable stack capture
|
||||
DisableStack bool `protobuf:"varint,5,opt,name=disable_stack,json=disableStack,proto3" json:"disableStack"`
|
||||
// disable storage capture
|
||||
DisableStorage bool `protobuf:"varint,6,opt,name=disable_storage,json=disableStorage,proto3" json:"disableStorage"`
|
||||
// disable return data capture
|
||||
DisableReturnData bool `protobuf:"varint,7,opt,name=disable_return_data,json=disableReturnData,proto3" json:"disableReturnData"`
|
||||
// print output during capture end
|
||||
Debug bool `protobuf:"varint,8,opt,name=debug,proto3" json:"debug,omitempty"`
|
||||
// maximum length of output, but zero means unlimited
|
||||
Limit int32 `protobuf:"varint,9,opt,name=limit,proto3" json:"limit,omitempty"`
|
||||
// Chain overrides, can be used to execute a trace using future fork rules
|
||||
Overrides *ChainConfig `protobuf:"bytes,10,opt,name=overrides,proto3" json:"overrides,omitempty"`
|
||||
// enable memory capture
|
||||
EnableMemory bool `protobuf:"varint,11,opt,name=enable_memory,json=enableMemory,proto3" json:"enableMemory"`
|
||||
// enable return data capture
|
||||
EnableReturnData bool `protobuf:"varint,12,opt,name=enable_return_data,json=enableReturnData,proto3" json:"enableReturnData"`
|
||||
}
|
||||
|
||||
func (m *TraceConfig) Reset() { *m = TraceConfig{} }
|
||||
@ -591,13 +591,6 @@ func (m *TraceConfig) GetReexec() uint64 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *TraceConfig) GetDisableMemory() bool {
|
||||
if m != nil {
|
||||
return m.DisableMemory
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *TraceConfig) GetDisableStack() bool {
|
||||
if m != nil {
|
||||
return m.DisableStack
|
||||
@ -612,13 +605,6 @@ func (m *TraceConfig) GetDisableStorage() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *TraceConfig) GetDisableReturnData() bool {
|
||||
if m != nil {
|
||||
return m.DisableReturnData
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *TraceConfig) GetDebug() bool {
|
||||
if m != nil {
|
||||
return m.Debug
|
||||
@ -640,6 +626,20 @@ func (m *TraceConfig) GetOverrides() *ChainConfig {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *TraceConfig) GetEnableMemory() bool {
|
||||
if m != nil {
|
||||
return m.EnableMemory
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *TraceConfig) GetEnableReturnData() bool {
|
||||
if m != nil {
|
||||
return m.EnableReturnData
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*Params)(nil), "ethermint.evm.v1.Params")
|
||||
proto.RegisterType((*ChainConfig)(nil), "ethermint.evm.v1.ChainConfig")
|
||||
@ -654,96 +654,97 @@ func init() {
|
||||
func init() { proto.RegisterFile("ethermint/evm/v1/evm.proto", fileDescriptor_d21ecc92c8c8583e) }
|
||||
|
||||
var fileDescriptor_d21ecc92c8c8583e = []byte{
|
||||
// 1421 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4d, 0x6f, 0xdb, 0xb6,
|
||||
0x1b, 0x4f, 0x62, 0x27, 0x91, 0xe9, 0xd7, 0x30, 0x69, 0xfe, 0x6e, 0x8b, 0x7f, 0x94, 0xe9, 0x30,
|
||||
0x64, 0x40, 0x1b, 0x37, 0x29, 0x82, 0x05, 0x2d, 0x76, 0x88, 0x92, 0xb4, 0x4b, 0xd7, 0x6d, 0x01,
|
||||
0x93, 0x61, 0xc0, 0x80, 0x41, 0xa0, 0x25, 0x56, 0xd6, 0x22, 0x89, 0x06, 0x49, 0x79, 0xf6, 0xb0,
|
||||
0x0f, 0x30, 0x60, 0x97, 0x7d, 0x80, 0x1d, 0xf6, 0x25, 0xf6, 0x1d, 0x8a, 0x9d, 0x7a, 0x19, 0x30,
|
||||
0xec, 0x20, 0x0c, 0xee, 0xcd, 0x47, 0x7f, 0x82, 0x41, 0x24, 0xfd, 0x9a, 0x62, 0x5b, 0x72, 0x32,
|
||||
0x7f, 0xcf, 0xcb, 0xef, 0x47, 0x3e, 0x7c, 0x48, 0xca, 0xe0, 0x1e, 0x11, 0x2d, 0xc2, 0xa2, 0x20,
|
||||
0x16, 0x0d, 0xd2, 0x89, 0x1a, 0x9d, 0xbd, 0xec, 0x67, 0xb7, 0xcd, 0xa8, 0xa0, 0xb0, 0x36, 0xf6,
|
||||
0xed, 0x66, 0xc6, 0xce, 0xde, 0xbd, 0x0d, 0x9f, 0xfa, 0x54, 0x3a, 0x1b, 0xd9, 0x48, 0xc5, 0x59,
|
||||
0xbf, 0x2f, 0x81, 0x95, 0x73, 0xcc, 0x70, 0xc4, 0xe1, 0x1e, 0x28, 0x90, 0x4e, 0xe4, 0x78, 0x24,
|
||||
0xa6, 0x51, 0x7d, 0x71, 0x7b, 0x71, 0xa7, 0x60, 0x6f, 0x0c, 0x53, 0xb3, 0xd6, 0xc3, 0x51, 0xf8,
|
||||
0xc4, 0x1a, 0xbb, 0x2c, 0x64, 0x90, 0x4e, 0x74, 0x92, 0x0d, 0xe1, 0x47, 0xa0, 0x4c, 0x62, 0xdc,
|
||||
0x0c, 0x89, 0xe3, 0x32, 0x82, 0x05, 0xa9, 0x2f, 0x6d, 0x2f, 0xee, 0x18, 0x76, 0x7d, 0x98, 0x9a,
|
||||
0x1b, 0x3a, 0x6d, 0xda, 0x6d, 0xa1, 0x92, 0xc2, 0xc7, 0x12, 0xc2, 0x0f, 0x41, 0x71, 0xe4, 0xc7,
|
||||
0x61, 0x58, 0xcf, 0xc9, 0xe4, 0xcd, 0x61, 0x6a, 0xc2, 0xd9, 0x64, 0x1c, 0x86, 0x16, 0x02, 0x3a,
|
||||
0x15, 0x87, 0x21, 0x3c, 0x02, 0x80, 0x74, 0x05, 0xc3, 0x0e, 0x09, 0xda, 0xbc, 0x9e, 0xdf, 0xce,
|
||||
0xed, 0xe4, 0x6c, 0xab, 0x9f, 0x9a, 0x85, 0xd3, 0xcc, 0x7a, 0x7a, 0x76, 0xce, 0x87, 0xa9, 0xb9,
|
||||
0xa6, 0x49, 0xc6, 0x81, 0x16, 0x2a, 0x48, 0x70, 0x1a, 0xb4, 0x39, 0xfc, 0x1a, 0x94, 0xdc, 0x16,
|
||||
0x0e, 0x62, 0xc7, 0xa5, 0xf1, 0xab, 0xc0, 0xaf, 0x2f, 0x6f, 0x2f, 0xee, 0x14, 0xf7, 0xff, 0xbf,
|
||||
0x3b, 0x5f, 0xb7, 0xdd, 0xe3, 0x2c, 0xea, 0x58, 0x06, 0xd9, 0xf7, 0x5f, 0xa7, 0xe6, 0xc2, 0x30,
|
||||
0x35, 0xd7, 0x15, 0xf5, 0x34, 0x81, 0x85, 0x8a, 0xee, 0x24, 0xd2, 0xfa, 0xb9, 0x0c, 0x8a, 0x53,
|
||||
0x99, 0x30, 0x02, 0xd5, 0x16, 0x8d, 0x08, 0x17, 0x04, 0x7b, 0x4e, 0x33, 0xa4, 0xee, 0x95, 0x2e,
|
||||
0xf1, 0xc9, 0x9f, 0xa9, 0xf9, 0xbe, 0x1f, 0x88, 0x56, 0xd2, 0xdc, 0x75, 0x69, 0xd4, 0x70, 0x29,
|
||||
0x8f, 0x28, 0xd7, 0x3f, 0x0f, 0xb9, 0x77, 0xd5, 0x10, 0xbd, 0x36, 0xe1, 0xbb, 0x67, 0xb1, 0x18,
|
||||
0xa6, 0xe6, 0xa6, 0x12, 0x9e, 0xa3, 0xb2, 0x50, 0x65, 0x6c, 0xb1, 0x33, 0x03, 0xec, 0x81, 0x8a,
|
||||
0x87, 0xa9, 0xf3, 0x8a, 0xb2, 0x2b, 0xad, 0xb6, 0x24, 0xd5, 0x2e, 0xfe, 0xbb, 0x5a, 0x3f, 0x35,
|
||||
0x4b, 0x27, 0x47, 0x9f, 0x3f, 0xa3, 0xec, 0x4a, 0x72, 0x0e, 0x53, 0xf3, 0x8e, 0x52, 0x9f, 0x65,
|
||||
0xb6, 0x50, 0xc9, 0xc3, 0x74, 0x1c, 0x06, 0xbf, 0x04, 0xb5, 0x71, 0x00, 0x4f, 0xda, 0x6d, 0xca,
|
||||
0x84, 0xde, 0xd9, 0x87, 0xfd, 0xd4, 0xac, 0x68, 0xca, 0x0b, 0xe5, 0x19, 0xa6, 0xe6, 0xff, 0xe6,
|
||||
0x48, 0x75, 0x8e, 0x85, 0x2a, 0x9a, 0x56, 0x87, 0x42, 0x0e, 0x4a, 0x24, 0x68, 0xef, 0x1d, 0x3c,
|
||||
0xd2, 0x2b, 0xca, 0xcb, 0x15, 0x9d, 0xdf, 0x68, 0x45, 0xc5, 0xd3, 0xb3, 0xf3, 0xbd, 0x83, 0x47,
|
||||
0xa3, 0x05, 0xe9, 0x7d, 0x9c, 0xa6, 0xb5, 0x50, 0x51, 0x41, 0xb5, 0x9a, 0x33, 0xa0, 0xa1, 0xd3,
|
||||
0xc2, 0xbc, 0x25, 0xbb, 0xa4, 0x60, 0xef, 0xf4, 0x53, 0x13, 0x28, 0xa6, 0x8f, 0x31, 0x6f, 0x4d,
|
||||
0xf6, 0xa5, 0xd9, 0xfb, 0x0e, 0xc7, 0x22, 0x48, 0xa2, 0x11, 0x17, 0x50, 0xc9, 0x59, 0xd4, 0x78,
|
||||
0xfe, 0x07, 0x7a, 0xfe, 0x2b, 0xb7, 0x9e, 0xff, 0xc1, 0xbb, 0xe6, 0x7f, 0x30, 0x3b, 0x7f, 0x15,
|
||||
0x33, 0x16, 0x3d, 0xd4, 0xa2, 0xab, 0xb7, 0x16, 0x3d, 0x7c, 0x97, 0xe8, 0xe1, 0xac, 0xa8, 0x8a,
|
||||
0xc9, 0x9a, 0x7d, 0xae, 0x12, 0x75, 0xe3, 0xf6, 0xcd, 0x7e, 0xad, 0xa8, 0x95, 0xb1, 0x45, 0xc9,
|
||||
0x7d, 0x0f, 0x36, 0x5c, 0x1a, 0x73, 0x91, 0xd9, 0x62, 0xda, 0x0e, 0x89, 0xd6, 0x2c, 0x48, 0xcd,
|
||||
0xb3, 0x1b, 0x69, 0xde, 0xd7, 0x27, 0xfb, 0x1d, 0x7c, 0x16, 0x5a, 0x9f, 0x35, 0x2b, 0xf5, 0x36,
|
||||
0xa8, 0xb5, 0x89, 0x20, 0x8c, 0x37, 0x13, 0xe6, 0x6b, 0x65, 0x20, 0x95, 0x4f, 0x6f, 0xa4, 0xac,
|
||||
0xcf, 0xc1, 0x3c, 0x97, 0x85, 0xaa, 0x13, 0x93, 0x52, 0xfc, 0x06, 0x54, 0x82, 0x6c, 0x1a, 0xcd,
|
||||
0x24, 0xd4, 0x7a, 0x45, 0xa9, 0x77, 0x7c, 0x23, 0x3d, 0x7d, 0x98, 0x67, 0x99, 0x2c, 0x54, 0x1e,
|
||||
0x19, 0x94, 0x56, 0x02, 0x60, 0x94, 0x04, 0xcc, 0xf1, 0x43, 0xec, 0x06, 0x84, 0x69, 0xbd, 0x92,
|
||||
0xd4, 0x7b, 0x7e, 0x23, 0xbd, 0xbb, 0x4a, 0xef, 0x3a, 0x9b, 0x85, 0x6a, 0x99, 0xf1, 0xb9, 0xb2,
|
||||
0x29, 0x59, 0x0f, 0x94, 0x9a, 0x84, 0x85, 0x41, 0xac, 0x05, 0xcb, 0x52, 0xf0, 0xe8, 0x46, 0x82,
|
||||
0xba, 0x4f, 0xa7, 0x79, 0x2c, 0x54, 0x54, 0x70, 0x5c, 0x48, 0x17, 0x0b, 0x1c, 0xf6, 0xb8, 0xd0,
|
||||
0x3a, 0xb5, 0xdb, 0x17, 0x72, 0x96, 0xc9, 0x42, 0xe5, 0x91, 0x61, 0xbc, 0xa2, 0x90, 0xc6, 0x1e,
|
||||
0x1d, 0xad, 0x68, 0xed, 0xf6, 0x2b, 0x9a, 0xe6, 0xb1, 0x50, 0x51, 0x41, 0xa9, 0xf2, 0x22, 0x6f,
|
||||
0x54, 0x6a, 0xd5, 0x17, 0x79, 0xa3, 0x5a, 0xab, 0xa1, 0x72, 0x8f, 0x86, 0xd4, 0xe9, 0x3c, 0x56,
|
||||
0x81, 0xa8, 0x48, 0xbe, 0xc5, 0x7c, 0x74, 0x86, 0x1a, 0x60, 0xf9, 0x42, 0x64, 0x4f, 0x70, 0x0d,
|
||||
0xe4, 0xae, 0x48, 0x4f, 0xbd, 0x45, 0x28, 0x1b, 0xc2, 0x0d, 0xb0, 0xdc, 0xc1, 0x61, 0xa2, 0xde,
|
||||
0xf2, 0x02, 0x52, 0xc0, 0x3a, 0x07, 0xd5, 0x4b, 0x86, 0x63, 0x8e, 0x5d, 0x11, 0xd0, 0xf8, 0x25,
|
||||
0xf5, 0x39, 0x84, 0x20, 0x2f, 0xef, 0x44, 0x95, 0x2b, 0xc7, 0xf0, 0x03, 0x90, 0x0f, 0xa9, 0xcf,
|
||||
0xeb, 0x4b, 0xdb, 0xb9, 0x9d, 0xe2, 0xfe, 0x9d, 0xeb, 0xaf, 0xe9, 0x4b, 0xea, 0x23, 0x19, 0x62,
|
||||
0xfd, 0xb6, 0x04, 0x72, 0x2f, 0xa9, 0x0f, 0xeb, 0x60, 0x15, 0x7b, 0x1e, 0x23, 0x9c, 0x6b, 0xa6,
|
||||
0x11, 0x84, 0x9b, 0x60, 0x45, 0xd0, 0x76, 0xe0, 0x2a, 0xba, 0x02, 0xd2, 0x28, 0x13, 0xf6, 0xb0,
|
||||
0xc0, 0xf2, 0x55, 0x29, 0x21, 0x39, 0x86, 0xfb, 0xa0, 0x24, 0x57, 0xe6, 0xc4, 0x49, 0xd4, 0x24,
|
||||
0x4c, 0x3e, 0x0e, 0x79, 0xbb, 0x3a, 0x48, 0xcd, 0xa2, 0xb4, 0x7f, 0x26, 0xcd, 0x68, 0x1a, 0xc0,
|
||||
0x07, 0x60, 0x55, 0x74, 0xa7, 0xef, 0xf5, 0xf5, 0x41, 0x6a, 0x56, 0xc5, 0x64, 0x99, 0xd9, 0xb5,
|
||||
0x8d, 0x56, 0x44, 0x57, 0x5e, 0xdf, 0x0d, 0x60, 0x88, 0xae, 0x13, 0xc4, 0x1e, 0xe9, 0xca, 0xab,
|
||||
0x3b, 0x6f, 0x6f, 0x0c, 0x52, 0xb3, 0x36, 0x15, 0x7e, 0x96, 0xf9, 0xd0, 0xaa, 0xe8, 0xca, 0x01,
|
||||
0x7c, 0x00, 0x80, 0x9a, 0x92, 0x54, 0x50, 0x17, 0x6f, 0x79, 0x90, 0x9a, 0x05, 0x69, 0x95, 0xdc,
|
||||
0x93, 0x21, 0xb4, 0xc0, 0xb2, 0xe2, 0x36, 0x24, 0x77, 0x69, 0x90, 0x9a, 0x46, 0x48, 0x7d, 0xc5,
|
||||
0xa9, 0x5c, 0x59, 0xa9, 0x18, 0x89, 0x68, 0x87, 0x78, 0xf2, 0x6e, 0x33, 0xd0, 0x08, 0x5a, 0x3f,
|
||||
0x2e, 0x01, 0xe3, 0xb2, 0x8b, 0x08, 0x4f, 0x42, 0x01, 0x9f, 0x81, 0x9a, 0x4b, 0x63, 0xc1, 0xb0,
|
||||
0x2b, 0x9c, 0x99, 0xd2, 0xda, 0xf7, 0x27, 0xf7, 0xcc, 0x7c, 0x84, 0x85, 0xaa, 0x23, 0xd3, 0x91,
|
||||
0xae, 0xff, 0x06, 0x58, 0x6e, 0x86, 0x94, 0x46, 0xb2, 0x13, 0x4a, 0x48, 0x01, 0x88, 0x64, 0xd5,
|
||||
0xe4, 0x2e, 0xe7, 0xe4, 0x37, 0xd3, 0x7b, 0xd7, 0x77, 0x79, 0xae, 0x55, 0xec, 0x4d, 0xfd, 0xdd,
|
||||
0x54, 0x51, 0xda, 0x3a, 0xdf, 0xca, 0x6a, 0x2b, 0x5b, 0xa9, 0x06, 0x72, 0x8c, 0x08, 0xb9, 0x69,
|
||||
0x25, 0x94, 0x0d, 0xe1, 0x3d, 0x60, 0x30, 0xd2, 0x21, 0x4c, 0x10, 0x4f, 0x6e, 0x8e, 0x81, 0xc6,
|
||||
0x18, 0xde, 0x05, 0x86, 0x8f, 0xb9, 0x93, 0x70, 0xe2, 0xa9, 0x9d, 0x40, 0xab, 0x3e, 0xe6, 0x5f,
|
||||
0x70, 0xe2, 0x3d, 0xc9, 0xff, 0xf0, 0x8b, 0xb9, 0x60, 0x61, 0x50, 0x3c, 0x72, 0x5d, 0xc2, 0xf9,
|
||||
0x65, 0xd2, 0x0e, 0xc9, 0x3f, 0x74, 0xd8, 0x3e, 0x28, 0x71, 0x41, 0x19, 0xf6, 0x89, 0x73, 0x45,
|
||||
0x7a, 0xba, 0xcf, 0x54, 0xd7, 0x68, 0xfb, 0x27, 0xa4, 0xc7, 0xd1, 0x34, 0xd0, 0x12, 0xbf, 0xe6,
|
||||
0x40, 0xf1, 0x92, 0x61, 0x97, 0xe8, 0xef, 0xbb, 0xac, 0x57, 0x33, 0xc8, 0xb4, 0x84, 0x46, 0x99,
|
||||
0xb6, 0x08, 0x22, 0x42, 0x13, 0xa1, 0xcf, 0xd3, 0x08, 0x66, 0x19, 0x8c, 0x90, 0x2e, 0x71, 0x65,
|
||||
0x19, 0xf3, 0x48, 0x23, 0x78, 0x08, 0x2a, 0x5e, 0xc0, 0xe5, 0x87, 0x6f, 0x44, 0x22, 0xca, 0x7a,
|
||||
0xb2, 0x2c, 0x86, 0xbd, 0x36, 0x48, 0xcd, 0xb2, 0xf6, 0x7c, 0x2a, 0x1d, 0x68, 0x16, 0xc2, 0x03,
|
||||
0x30, 0x32, 0x38, 0x5c, 0x60, 0xf7, 0x4a, 0x15, 0xce, 0xae, 0x0d, 0x52, 0xb3, 0xa4, 0x1d, 0x17,
|
||||
0x99, 0x1d, 0xcd, 0x20, 0xf8, 0x14, 0x54, 0x27, 0x69, 0x72, 0x9d, 0xb2, 0xaa, 0x86, 0x0d, 0x07,
|
||||
0xa9, 0x59, 0x19, 0x87, 0x4a, 0x0f, 0x9a, 0xc3, 0xf0, 0x14, 0xac, 0x8f, 0x92, 0x19, 0x11, 0x09,
|
||||
0x8b, 0x1d, 0x79, 0x34, 0x57, 0x25, 0xc1, 0x9d, 0x41, 0x6a, 0xae, 0x69, 0x37, 0x92, 0xde, 0x13,
|
||||
0x2c, 0x30, 0xba, 0x6e, 0xca, 0x5a, 0xcd, 0x23, 0xcd, 0xc4, 0x97, 0xdd, 0x6f, 0x20, 0x05, 0x32,
|
||||
0x6b, 0x18, 0x44, 0x81, 0x90, 0xdd, 0xbe, 0x8c, 0x14, 0x80, 0x4f, 0x41, 0x81, 0x76, 0x08, 0x63,
|
||||
0x81, 0x47, 0xb8, 0x7c, 0x69, 0xff, 0xed, 0xb3, 0x1d, 0x4d, 0xe2, 0x6d, 0xfb, 0x75, 0x7f, 0x6b,
|
||||
0xf1, 0x4d, 0x7f, 0x6b, 0xf1, 0xaf, 0xfe, 0xd6, 0xe2, 0x4f, 0x6f, 0xb7, 0x16, 0xde, 0xbc, 0xdd,
|
||||
0x5a, 0xf8, 0xe3, 0xed, 0xd6, 0xc2, 0x57, 0x3b, 0x53, 0xd7, 0xb0, 0x68, 0x61, 0xc6, 0x03, 0xde,
|
||||
0x98, 0xfc, 0xc1, 0xea, 0xca, 0xbf, 0x58, 0xf2, 0x32, 0x6e, 0xae, 0xc8, 0xbf, 0x4e, 0x8f, 0xff,
|
||||
0x0e, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x84, 0x30, 0xb7, 0x80, 0x0d, 0x00, 0x00,
|
||||
// 1436 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4f, 0x6f, 0x1b, 0x37,
|
||||
0x16, 0xb7, 0x2d, 0xd9, 0x1e, 0x51, 0x23, 0x69, 0x42, 0x3b, 0x5e, 0x25, 0xc1, 0x7a, 0xbc, 0x73,
|
||||
0x58, 0x78, 0x81, 0xc4, 0x8a, 0x1d, 0x18, 0x1b, 0x24, 0xd8, 0x83, 0xc7, 0x76, 0xb2, 0xf6, 0x66,
|
||||
0x77, 0x0d, 0xda, 0x8b, 0x05, 0x0a, 0x14, 0x03, 0x6a, 0x86, 0x19, 0x4d, 0x3d, 0x33, 0x14, 0x48,
|
||||
0x8e, 0x2a, 0x15, 0xfd, 0x00, 0x05, 0x7a, 0xe9, 0x07, 0xe8, 0xa1, 0x1f, 0x27, 0xe8, 0x29, 0x97,
|
||||
0x02, 0x45, 0x0f, 0x83, 0xc0, 0xb9, 0xf9, 0xa8, 0x4f, 0x50, 0x0c, 0x49, 0xfd, 0x75, 0xd0, 0xd6,
|
||||
0x3e, 0x89, 0xbf, 0xc7, 0xf7, 0x7e, 0x3f, 0xbe, 0xc7, 0x47, 0x72, 0x04, 0x1e, 0x12, 0xd1, 0x21,
|
||||
0x2c, 0x89, 0x52, 0xd1, 0x22, 0xbd, 0xa4, 0xd5, 0xdb, 0x2d, 0x7e, 0x76, 0xba, 0x8c, 0x0a, 0x0a,
|
||||
0xad, 0xf1, 0xdc, 0x4e, 0x61, 0xec, 0xed, 0x3e, 0x5c, 0x0f, 0x69, 0x48, 0xe5, 0x64, 0xab, 0x18,
|
||||
0x29, 0x3f, 0xe7, 0xa7, 0x25, 0xb0, 0x72, 0x86, 0x19, 0x4e, 0x38, 0xdc, 0x05, 0x15, 0xd2, 0x4b,
|
||||
0xbc, 0x80, 0xa4, 0x34, 0x69, 0x2e, 0x6e, 0x2d, 0x6e, 0x57, 0xdc, 0xf5, 0x61, 0x6e, 0x5b, 0x03,
|
||||
0x9c, 0xc4, 0x2f, 0x9c, 0xf1, 0x94, 0x83, 0x0c, 0xd2, 0x4b, 0x8e, 0x8a, 0x21, 0xfc, 0x07, 0xa8,
|
||||
0x91, 0x14, 0xb7, 0x63, 0xe2, 0xf9, 0x8c, 0x60, 0x41, 0x9a, 0x4b, 0x5b, 0x8b, 0xdb, 0x86, 0xdb,
|
||||
0x1c, 0xe6, 0xf6, 0xba, 0x0e, 0x9b, 0x9e, 0x76, 0x90, 0xa9, 0xf0, 0xa1, 0x84, 0xf0, 0xef, 0xa0,
|
||||
0x3a, 0x9a, 0xc7, 0x71, 0xdc, 0x2c, 0xc9, 0xe0, 0x8d, 0x61, 0x6e, 0xc3, 0xd9, 0x60, 0x1c, 0xc7,
|
||||
0x0e, 0x02, 0x3a, 0x14, 0xc7, 0x31, 0x3c, 0x00, 0x80, 0xf4, 0x05, 0xc3, 0x1e, 0x89, 0xba, 0xbc,
|
||||
0x59, 0xde, 0x2a, 0x6d, 0x97, 0x5c, 0xe7, 0x2a, 0xb7, 0x2b, 0xc7, 0x85, 0xf5, 0xf8, 0xe4, 0x8c,
|
||||
0x0f, 0x73, 0xfb, 0x9e, 0x26, 0x19, 0x3b, 0x3a, 0xa8, 0x22, 0xc1, 0x71, 0xd4, 0xe5, 0xf0, 0x73,
|
||||
0x60, 0xfa, 0x1d, 0x1c, 0xa5, 0x9e, 0x4f, 0xd3, 0xb7, 0x51, 0xd8, 0x5c, 0xde, 0x5a, 0xdc, 0xae,
|
||||
0xee, 0xfd, 0x79, 0x67, 0xbe, 0x6e, 0x3b, 0x87, 0x85, 0xd7, 0xa1, 0x74, 0x72, 0x1f, 0xbd, 0xcb,
|
||||
0xed, 0x85, 0x61, 0x6e, 0xaf, 0x29, 0xea, 0x69, 0x02, 0x07, 0x55, 0xfd, 0x89, 0xa7, 0xf3, 0x7d,
|
||||
0x0d, 0x54, 0xa7, 0x22, 0x61, 0x02, 0x1a, 0x1d, 0x9a, 0x10, 0x2e, 0x08, 0x0e, 0xbc, 0x76, 0x4c,
|
||||
0xfd, 0x4b, 0x5d, 0xe2, 0xa3, 0x5f, 0x72, 0xfb, 0xaf, 0x61, 0x24, 0x3a, 0x59, 0x7b, 0xc7, 0xa7,
|
||||
0x49, 0xcb, 0xa7, 0x3c, 0xa1, 0x5c, 0xff, 0x3c, 0xe1, 0xc1, 0x65, 0x4b, 0x0c, 0xba, 0x84, 0xef,
|
||||
0x9c, 0xa4, 0x62, 0x98, 0xdb, 0x1b, 0x4a, 0x78, 0x8e, 0xca, 0x41, 0xf5, 0xb1, 0xc5, 0x2d, 0x0c,
|
||||
0x70, 0x00, 0xea, 0x01, 0xa6, 0xde, 0x5b, 0xca, 0x2e, 0xb5, 0xda, 0x92, 0x54, 0x3b, 0xff, 0xe3,
|
||||
0x6a, 0x57, 0xb9, 0x6d, 0x1e, 0x1d, 0xfc, 0xf7, 0x15, 0x65, 0x97, 0x92, 0x73, 0x98, 0xdb, 0xf7,
|
||||
0x95, 0xfa, 0x2c, 0xb3, 0x83, 0xcc, 0x00, 0xd3, 0xb1, 0x1b, 0xfc, 0x3f, 0xb0, 0xc6, 0x0e, 0x3c,
|
||||
0xeb, 0x76, 0x29, 0x13, 0x7a, 0x67, 0x9f, 0x5c, 0xe5, 0x76, 0x5d, 0x53, 0x9e, 0xab, 0x99, 0x61,
|
||||
0x6e, 0xff, 0x69, 0x8e, 0x54, 0xc7, 0x38, 0xa8, 0xae, 0x69, 0xb5, 0x2b, 0xe4, 0xc0, 0x24, 0x51,
|
||||
0x77, 0x77, 0xff, 0xa9, 0xce, 0xa8, 0x2c, 0x33, 0x3a, 0xbb, 0x55, 0x46, 0xd5, 0xe3, 0x93, 0xb3,
|
||||
0xdd, 0xfd, 0xa7, 0xa3, 0x84, 0xf4, 0x3e, 0x4e, 0xd3, 0x3a, 0xa8, 0xaa, 0xa0, 0xca, 0xe6, 0x04,
|
||||
0x68, 0xe8, 0x75, 0x30, 0xef, 0xc8, 0x2e, 0xa9, 0xb8, 0xdb, 0x57, 0xb9, 0x0d, 0x14, 0xd3, 0x3f,
|
||||
0x31, 0xef, 0x4c, 0xf6, 0xa5, 0x3d, 0xf8, 0x0a, 0xa7, 0x22, 0xca, 0x92, 0x11, 0x17, 0x50, 0xc1,
|
||||
0x85, 0xd7, 0x78, 0xfd, 0xfb, 0x7a, 0xfd, 0x2b, 0x77, 0x5e, 0xff, 0xfe, 0xa7, 0xd6, 0xbf, 0x3f,
|
||||
0xbb, 0x7e, 0xe5, 0x33, 0x16, 0x7d, 0xae, 0x45, 0x57, 0xef, 0x2c, 0xfa, 0xfc, 0x53, 0xa2, 0xcf,
|
||||
0x67, 0x45, 0x95, 0x4f, 0xd1, 0xec, 0x73, 0x95, 0x68, 0x1a, 0x77, 0x6f, 0xf6, 0x1b, 0x45, 0xad,
|
||||
0x8f, 0x2d, 0x4a, 0xee, 0x6b, 0xb0, 0xee, 0xd3, 0x94, 0x8b, 0xc2, 0x96, 0xd2, 0x6e, 0x4c, 0xb4,
|
||||
0x66, 0x45, 0x6a, 0x9e, 0xdc, 0x4a, 0xf3, 0x91, 0x3e, 0xd9, 0x9f, 0xe0, 0x73, 0xd0, 0xda, 0xac,
|
||||
0x59, 0xa9, 0x77, 0x81, 0xd5, 0x25, 0x82, 0x30, 0xde, 0xce, 0x58, 0xa8, 0x95, 0x81, 0x54, 0x3e,
|
||||
0xbe, 0x95, 0xb2, 0x3e, 0x07, 0xf3, 0x5c, 0x0e, 0x6a, 0x4c, 0x4c, 0x4a, 0xf1, 0x0b, 0x50, 0x8f,
|
||||
0x8a, 0x65, 0xb4, 0xb3, 0x58, 0xeb, 0x55, 0xa5, 0xde, 0xe1, 0xad, 0xf4, 0xf4, 0x61, 0x9e, 0x65,
|
||||
0x72, 0x50, 0x6d, 0x64, 0x50, 0x5a, 0x19, 0x80, 0x49, 0x16, 0x31, 0x2f, 0x8c, 0xb1, 0x1f, 0x11,
|
||||
0xa6, 0xf5, 0x4c, 0xa9, 0xf7, 0xfa, 0x56, 0x7a, 0x0f, 0x94, 0xde, 0x4d, 0x36, 0x07, 0x59, 0x85,
|
||||
0xf1, 0xb5, 0xb2, 0x29, 0xd9, 0x00, 0x98, 0x6d, 0xc2, 0xe2, 0x28, 0xd5, 0x82, 0x35, 0x29, 0x78,
|
||||
0x70, 0x2b, 0x41, 0xdd, 0xa7, 0xd3, 0x3c, 0x0e, 0xaa, 0x2a, 0x38, 0x2e, 0xa4, 0x8f, 0x05, 0x8e,
|
||||
0x07, 0x5c, 0x68, 0x1d, 0xeb, 0xee, 0x85, 0x9c, 0x65, 0x72, 0x50, 0x6d, 0x64, 0x18, 0x67, 0x14,
|
||||
0xd3, 0x34, 0xa0, 0xa3, 0x8c, 0xee, 0xdd, 0x3d, 0xa3, 0x69, 0x1e, 0x07, 0x55, 0x15, 0x94, 0x2a,
|
||||
0xa7, 0x65, 0xa3, 0x6e, 0x35, 0x4e, 0xcb, 0x46, 0xc3, 0xb2, 0x50, 0x6d, 0x40, 0x63, 0xea, 0xf5,
|
||||
0x9e, 0x29, 0x47, 0x54, 0x25, 0x5f, 0x62, 0x3e, 0x3a, 0x43, 0x2d, 0xb0, 0x7c, 0x2e, 0x8a, 0x27,
|
||||
0xd8, 0x02, 0xa5, 0x4b, 0x32, 0x50, 0x6f, 0x11, 0x2a, 0x86, 0x70, 0x1d, 0x2c, 0xf7, 0x70, 0x9c,
|
||||
0xa9, 0xb7, 0xbc, 0x82, 0x14, 0x70, 0xce, 0x40, 0xe3, 0x82, 0xe1, 0x94, 0x63, 0x5f, 0x44, 0x34,
|
||||
0x7d, 0x43, 0x43, 0x0e, 0x21, 0x28, 0xcb, 0x3b, 0x51, 0xc5, 0xca, 0x31, 0xfc, 0x1b, 0x28, 0xc7,
|
||||
0x34, 0xe4, 0xcd, 0xa5, 0xad, 0xd2, 0x76, 0x75, 0xef, 0xfe, 0xcd, 0xd7, 0xf4, 0x0d, 0x0d, 0x91,
|
||||
0x74, 0x71, 0x7e, 0x5c, 0x02, 0xa5, 0x37, 0x34, 0x84, 0x4d, 0xb0, 0x8a, 0x83, 0x80, 0x11, 0xce,
|
||||
0x35, 0xd3, 0x08, 0xc2, 0x0d, 0xb0, 0x22, 0x68, 0x37, 0xf2, 0x15, 0x5d, 0x05, 0x69, 0x54, 0x08,
|
||||
0x07, 0x58, 0x60, 0xf9, 0xaa, 0x98, 0x48, 0x8e, 0xe1, 0x1e, 0x30, 0x65, 0x66, 0x5e, 0x9a, 0x25,
|
||||
0x6d, 0xc2, 0xe4, 0xe3, 0x50, 0x76, 0x1b, 0xd7, 0xb9, 0x5d, 0x95, 0xf6, 0xff, 0x48, 0x33, 0x9a,
|
||||
0x06, 0xf0, 0x31, 0x58, 0x15, 0xfd, 0xe9, 0x7b, 0x7d, 0xed, 0x3a, 0xb7, 0x1b, 0x62, 0x92, 0x66,
|
||||
0x71, 0x6d, 0xa3, 0x15, 0xd1, 0x97, 0xd7, 0x77, 0x0b, 0x18, 0xa2, 0xef, 0x45, 0x69, 0x40, 0xfa,
|
||||
0xf2, 0xea, 0x2e, 0xbb, 0xeb, 0xd7, 0xb9, 0x6d, 0x4d, 0xb9, 0x9f, 0x14, 0x73, 0x68, 0x55, 0xf4,
|
||||
0xe5, 0x00, 0x3e, 0x06, 0x40, 0x2d, 0x49, 0x2a, 0xa8, 0x8b, 0xb7, 0x76, 0x9d, 0xdb, 0x15, 0x69,
|
||||
0x95, 0xdc, 0x93, 0x21, 0x74, 0xc0, 0xb2, 0xe2, 0x36, 0x24, 0xb7, 0x79, 0x9d, 0xdb, 0x46, 0x4c,
|
||||
0x43, 0xc5, 0xa9, 0xa6, 0x8a, 0x52, 0x31, 0x92, 0xd0, 0x1e, 0x09, 0xe4, 0xdd, 0x66, 0xa0, 0x11,
|
||||
0x74, 0xbe, 0x5d, 0x02, 0xc6, 0x45, 0x1f, 0x11, 0x9e, 0xc5, 0x02, 0xbe, 0x02, 0x96, 0x4f, 0x53,
|
||||
0xc1, 0xb0, 0x2f, 0xbc, 0x99, 0xd2, 0xba, 0x8f, 0x26, 0xf7, 0xcc, 0xbc, 0x87, 0x83, 0x1a, 0x23,
|
||||
0xd3, 0x81, 0xae, 0xff, 0x3a, 0x58, 0x6e, 0xc7, 0x94, 0x26, 0xb2, 0x13, 0x4c, 0xa4, 0x00, 0x44,
|
||||
0xb2, 0x6a, 0x72, 0x97, 0x4b, 0xf2, 0x9b, 0xe9, 0x2f, 0x37, 0x77, 0x79, 0xae, 0x55, 0xdc, 0x0d,
|
||||
0xfd, 0xdd, 0x54, 0x57, 0xda, 0x3a, 0xde, 0x29, 0x6a, 0x2b, 0x5b, 0xc9, 0x02, 0x25, 0x46, 0x84,
|
||||
0xdc, 0x34, 0x13, 0x15, 0x43, 0xf8, 0x10, 0x18, 0x8c, 0xf4, 0x08, 0x13, 0x24, 0x90, 0x9b, 0x63,
|
||||
0xa0, 0x31, 0x86, 0x0f, 0x80, 0x11, 0x62, 0xee, 0x65, 0x9c, 0x04, 0x6a, 0x27, 0xd0, 0x6a, 0x88,
|
||||
0xf9, 0xff, 0x38, 0x09, 0x5e, 0x94, 0xbf, 0xf9, 0xc1, 0x5e, 0x70, 0x30, 0xa8, 0x1e, 0xf8, 0x3e,
|
||||
0xe1, 0xfc, 0x22, 0xeb, 0xc6, 0xe4, 0x37, 0x3a, 0x6c, 0x0f, 0x98, 0x5c, 0x50, 0x86, 0x43, 0xe2,
|
||||
0x5d, 0x92, 0x81, 0xee, 0x33, 0xd5, 0x35, 0xda, 0xfe, 0x2f, 0x32, 0xe0, 0x68, 0x1a, 0x68, 0x89,
|
||||
0x0f, 0x25, 0x50, 0xbd, 0x60, 0xd8, 0x27, 0xfa, 0xfb, 0xae, 0xe8, 0xd5, 0x02, 0x32, 0x2d, 0xa1,
|
||||
0x51, 0xa1, 0x2d, 0xa2, 0x84, 0xd0, 0x4c, 0xe8, 0xf3, 0x34, 0x82, 0x45, 0x04, 0x23, 0xa4, 0x4f,
|
||||
0x7c, 0x59, 0xc6, 0x32, 0xd2, 0x08, 0xee, 0x83, 0x5a, 0x10, 0x71, 0xf9, 0xe1, 0xcb, 0x05, 0xf6,
|
||||
0x2f, 0x55, 0xfa, 0xae, 0x75, 0x9d, 0xdb, 0xa6, 0x9e, 0x38, 0x2f, 0xec, 0x68, 0x06, 0xc1, 0x97,
|
||||
0xa0, 0x31, 0x09, 0x93, 0xab, 0x95, 0xb5, 0x31, 0x5c, 0x78, 0x9d, 0xdb, 0xf5, 0xb1, 0xab, 0x9c,
|
||||
0x41, 0x73, 0xb8, 0xd8, 0xe9, 0x80, 0xb4, 0xb3, 0x50, 0x36, 0x9f, 0x81, 0x14, 0x28, 0xac, 0x71,
|
||||
0x94, 0x44, 0x42, 0x36, 0xdb, 0x32, 0x52, 0x00, 0xbe, 0x04, 0x15, 0xda, 0x23, 0x8c, 0x45, 0x01,
|
||||
0xe1, 0xf2, 0xa1, 0xfb, 0xbd, 0xaf, 0x66, 0x34, 0xf1, 0x2f, 0x92, 0xd3, 0x1f, 0xf5, 0x09, 0x49,
|
||||
0x28, 0x1b, 0xc8, 0x97, 0x4b, 0x27, 0xa7, 0x26, 0xfe, 0x2d, 0xed, 0x68, 0x06, 0x41, 0x17, 0x40,
|
||||
0x1d, 0xc6, 0x88, 0xc8, 0x58, 0xea, 0xc9, 0xf3, 0x6f, 0xca, 0x58, 0x79, 0x0a, 0xd5, 0x2c, 0x92,
|
||||
0x93, 0x47, 0x58, 0x60, 0x74, 0xc3, 0x72, 0x5a, 0x36, 0xca, 0xd6, 0xf2, 0x69, 0xd9, 0x58, 0xb5,
|
||||
0x8c, 0x71, 0xfe, 0x7a, 0x15, 0x68, 0x6d, 0x84, 0xa7, 0xe8, 0x5d, 0xf7, 0xdd, 0xd5, 0xe6, 0xe2,
|
||||
0xfb, 0xab, 0xcd, 0xc5, 0x0f, 0x57, 0x9b, 0x8b, 0xdf, 0x7d, 0xdc, 0x5c, 0x78, 0xff, 0x71, 0x73,
|
||||
0xe1, 0xe7, 0x8f, 0x9b, 0x0b, 0x9f, 0x6d, 0x4f, 0xdd, 0xd8, 0xa2, 0x83, 0x19, 0x8f, 0x78, 0x6b,
|
||||
0xf2, 0x5f, 0xac, 0x2f, 0xff, 0x8d, 0xc9, 0x7b, 0xbb, 0xbd, 0x22, 0xff, 0x65, 0x3d, 0xfb, 0x35,
|
||||
0x00, 0x00, 0xff, 0xff, 0x1a, 0x33, 0x43, 0x0b, 0xab, 0x0d, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *Params) Marshal() (dAtA []byte, err error) {
|
||||
@ -1319,6 +1320,26 @@ func (m *TraceConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if m.EnableReturnData {
|
||||
i--
|
||||
if m.EnableReturnData {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x60
|
||||
}
|
||||
if m.EnableMemory {
|
||||
i--
|
||||
if m.EnableMemory {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x58
|
||||
}
|
||||
if m.Overrides != nil {
|
||||
{
|
||||
size, err := m.Overrides.MarshalToSizedBuffer(dAtA[:i])
|
||||
@ -1346,16 +1367,6 @@ func (m *TraceConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i--
|
||||
dAtA[i] = 0x40
|
||||
}
|
||||
if m.DisableReturnData {
|
||||
i--
|
||||
if m.DisableReturnData {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x38
|
||||
}
|
||||
if m.DisableStorage {
|
||||
i--
|
||||
if m.DisableStorage {
|
||||
@ -1376,16 +1387,6 @@ func (m *TraceConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i--
|
||||
dAtA[i] = 0x28
|
||||
}
|
||||
if m.DisableMemory {
|
||||
i--
|
||||
if m.DisableMemory {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x20
|
||||
}
|
||||
if m.Reexec != 0 {
|
||||
i = encodeVarintEvm(dAtA, i, uint64(m.Reexec))
|
||||
i--
|
||||
@ -1659,18 +1660,12 @@ func (m *TraceConfig) Size() (n int) {
|
||||
if m.Reexec != 0 {
|
||||
n += 1 + sovEvm(uint64(m.Reexec))
|
||||
}
|
||||
if m.DisableMemory {
|
||||
n += 2
|
||||
}
|
||||
if m.DisableStack {
|
||||
n += 2
|
||||
}
|
||||
if m.DisableStorage {
|
||||
n += 2
|
||||
}
|
||||
if m.DisableReturnData {
|
||||
n += 2
|
||||
}
|
||||
if m.Debug {
|
||||
n += 2
|
||||
}
|
||||
@ -1681,6 +1676,12 @@ func (m *TraceConfig) Size() (n int) {
|
||||
l = m.Overrides.Size()
|
||||
n += 1 + l + sovEvm(uint64(l))
|
||||
}
|
||||
if m.EnableMemory {
|
||||
n += 2
|
||||
}
|
||||
if m.EnableReturnData {
|
||||
n += 2
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@ -3458,26 +3459,6 @@ func (m *TraceConfig) Unmarshal(dAtA []byte) error {
|
||||
break
|
||||
}
|
||||
}
|
||||
case 4:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field DisableMemory", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowEvm
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.DisableMemory = bool(v != 0)
|
||||
case 5:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field DisableStack", wireType)
|
||||
@ -3518,26 +3499,6 @@ func (m *TraceConfig) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
}
|
||||
m.DisableStorage = bool(v != 0)
|
||||
case 7:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field DisableReturnData", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowEvm
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.DisableReturnData = bool(v != 0)
|
||||
case 8:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Debug", wireType)
|
||||
@ -3613,6 +3574,46 @@ func (m *TraceConfig) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 11:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field EnableMemory", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowEvm
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.EnableMemory = bool(v != 0)
|
||||
case 12:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field EnableReturnData", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowEvm
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.EnableReturnData = bool(v != 0)
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipEvm(dAtA[iNdEx:])
|
||||
|
@ -34,23 +34,23 @@ const (
|
||||
// NewTx returns a reference to a new Ethereum transaction message.
|
||||
func NewTx(
|
||||
chainID *big.Int, nonce uint64, to *common.Address, amount *big.Int,
|
||||
gasLimit uint64, gasPrice *big.Int, input []byte, accesses *ethtypes.AccessList,
|
||||
gasLimit uint64, gasPrice, gasFeeCap, gasTipCap *big.Int, input []byte, accesses *ethtypes.AccessList,
|
||||
) *MsgEthereumTx {
|
||||
return newMsgEthereumTx(chainID, nonce, to, amount, gasLimit, gasPrice, input, accesses)
|
||||
return newMsgEthereumTx(chainID, nonce, to, amount, gasLimit, gasPrice, gasFeeCap, gasTipCap, input, accesses)
|
||||
}
|
||||
|
||||
// NewTxContract returns a reference to a new Ethereum transaction
|
||||
// message designated for contract creation.
|
||||
func NewTxContract(
|
||||
chainID *big.Int, nonce uint64, amount *big.Int,
|
||||
gasLimit uint64, gasPrice *big.Int, input []byte, accesses *ethtypes.AccessList,
|
||||
gasLimit uint64, gasPrice, gasFeeCap, gasTipCap *big.Int, input []byte, accesses *ethtypes.AccessList,
|
||||
) *MsgEthereumTx {
|
||||
return newMsgEthereumTx(chainID, nonce, nil, amount, gasLimit, gasPrice, input, accesses)
|
||||
return newMsgEthereumTx(chainID, nonce, nil, amount, gasLimit, gasPrice, gasFeeCap, gasTipCap, input, accesses)
|
||||
}
|
||||
|
||||
func newMsgEthereumTx(
|
||||
chainID *big.Int, nonce uint64, to *common.Address, amount *big.Int,
|
||||
gasLimit uint64, gasPrice *big.Int, input []byte, accesses *ethtypes.AccessList,
|
||||
gasLimit uint64, gasPrice, gasFeeCap, gasTipCap *big.Int, input []byte, accesses *ethtypes.AccessList,
|
||||
) *MsgEthereumTx {
|
||||
var (
|
||||
cid, amt, gp *sdk.Int
|
||||
@ -77,7 +77,8 @@ func newMsgEthereumTx(
|
||||
gp = &gasPriceInt
|
||||
}
|
||||
|
||||
if accesses == nil {
|
||||
switch {
|
||||
case accesses == nil:
|
||||
txData = &LegacyTx{
|
||||
Nonce: nonce,
|
||||
To: toAddr,
|
||||
@ -86,7 +87,22 @@ func newMsgEthereumTx(
|
||||
GasPrice: gp,
|
||||
Data: input,
|
||||
}
|
||||
} else {
|
||||
case accesses != nil && gasFeeCap != nil && gasTipCap != nil:
|
||||
gtc := sdk.NewIntFromBigInt(gasTipCap)
|
||||
gfc := sdk.NewIntFromBigInt(gasTipCap)
|
||||
|
||||
txData = &DynamicFeeTx{
|
||||
ChainID: cid,
|
||||
Nonce: nonce,
|
||||
To: toAddr,
|
||||
Amount: amt,
|
||||
GasLimit: gasLimit,
|
||||
GasTipCap: >c,
|
||||
GasFeeCap: &gfc,
|
||||
Data: input,
|
||||
Accesses: NewAccessList(accesses),
|
||||
}
|
||||
case accesses != nil:
|
||||
txData = &AccessListTx{
|
||||
ChainID: cid,
|
||||
Nonce: nonce,
|
||||
@ -97,6 +113,7 @@ func newMsgEthereumTx(
|
||||
Data: input,
|
||||
Accesses: NewAccessList(accesses),
|
||||
}
|
||||
default:
|
||||
}
|
||||
|
||||
dataAny, err := PackTxData(txData)
|
||||
@ -237,8 +254,8 @@ func (msg MsgEthereumTx) AsTransaction() *ethtypes.Transaction {
|
||||
}
|
||||
|
||||
// AsMessage creates an Ethereum core.Message from the msg fields
|
||||
func (msg MsgEthereumTx) AsMessage(signer ethtypes.Signer) (core.Message, error) {
|
||||
return msg.AsTransaction().AsMessage(signer)
|
||||
func (msg MsgEthereumTx) AsMessage(signer ethtypes.Signer, baseFee *big.Int) (core.Message, error) {
|
||||
return msg.AsTransaction().AsMessage(signer, baseFee)
|
||||
}
|
||||
|
||||
// GetSender extracts the sender address from the signature values using the latest signer for the given chainID.
|
||||
|
@ -39,7 +39,7 @@ func (suite *MsgsTestSuite) SetupTest() {
|
||||
}
|
||||
|
||||
func (suite *MsgsTestSuite) TestMsgEthereumTx_Constructor() {
|
||||
msg := NewTx(nil, 0, &suite.to, nil, 100000, nil, []byte("test"), nil)
|
||||
msg := NewTx(nil, 0, &suite.to, nil, 100000, nil, nil, nil, []byte("test"), nil)
|
||||
|
||||
// suite.Require().Equal(msg.Data.To, suite.to.Hex())
|
||||
suite.Require().Equal(msg.Route(), RouterKey)
|
||||
@ -49,7 +49,7 @@ func (suite *MsgsTestSuite) TestMsgEthereumTx_Constructor() {
|
||||
suite.Require().Panics(func() { msg.GetSigners() })
|
||||
suite.Require().Panics(func() { msg.GetSignBytes() })
|
||||
|
||||
msg = NewTxContract(nil, 0, nil, 100000, nil, []byte("test"), nil)
|
||||
msg = NewTxContract(nil, 0, nil, 100000, nil, nil, nil, []byte("test"), nil)
|
||||
suite.Require().NotNil(msg)
|
||||
// suite.Require().Empty(msg.Data.To)
|
||||
// suite.Require().Nil(msg.To())
|
||||
@ -103,7 +103,7 @@ func (suite *MsgsTestSuite) TestMsgEthereumTx_ValidateBasic() {
|
||||
gasPrice = tc.gasPrice.BigInt()
|
||||
}
|
||||
|
||||
tx := NewTx(chainID, 1, &to, amount, 1000, gasPrice, nil, tc.accessList)
|
||||
tx := NewTx(chainID, 1, &to, amount, 1000, gasPrice, nil, nil, nil, tc.accessList)
|
||||
tx.From = tc.from
|
||||
|
||||
err := tx.ValidateBasic()
|
||||
@ -126,42 +126,42 @@ func (suite *MsgsTestSuite) TestMsgEthereumTx_Sign() {
|
||||
}{
|
||||
{
|
||||
"pass - EIP2930 signer",
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, []byte("test"), &types.AccessList{}),
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, nil, nil, []byte("test"), &types.AccessList{}),
|
||||
types.NewEIP2930Signer(suite.chainID),
|
||||
func(tx *MsgEthereumTx) { tx.From = suite.from.Hex() },
|
||||
true,
|
||||
},
|
||||
{
|
||||
"pass - EIP155 signer",
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, []byte("test"), nil),
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, nil, nil, []byte("test"), nil),
|
||||
types.NewEIP155Signer(suite.chainID),
|
||||
func(tx *MsgEthereumTx) { tx.From = suite.from.Hex() },
|
||||
true,
|
||||
},
|
||||
{
|
||||
"pass - Homestead signer",
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, []byte("test"), nil),
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, nil, nil, []byte("test"), nil),
|
||||
types.HomesteadSigner{},
|
||||
func(tx *MsgEthereumTx) { tx.From = suite.from.Hex() },
|
||||
true,
|
||||
},
|
||||
{
|
||||
"pass - Frontier signer",
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, []byte("test"), nil),
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, nil, nil, []byte("test"), nil),
|
||||
types.FrontierSigner{},
|
||||
func(tx *MsgEthereumTx) { tx.From = suite.from.Hex() },
|
||||
true,
|
||||
},
|
||||
{
|
||||
"no from address ",
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, []byte("test"), &types.AccessList{}),
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, nil, nil, []byte("test"), &types.AccessList{}),
|
||||
types.NewEIP2930Signer(suite.chainID),
|
||||
func(tx *MsgEthereumTx) { tx.From = "" },
|
||||
false,
|
||||
},
|
||||
{
|
||||
"from address ≠ signer address",
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, []byte("test"), &types.AccessList{}),
|
||||
NewTx(suite.chainID, 0, &suite.to, nil, 100000, nil, nil, nil, []byte("test"), &types.AccessList{}),
|
||||
types.NewEIP2930Signer(suite.chainID),
|
||||
func(tx *MsgEthereumTx) { tx.From = suite.to.Hex() },
|
||||
false,
|
||||
|
@ -26,7 +26,7 @@ var (
|
||||
// AvailableExtraEIPs define the list of all EIPs that can be enabled by the EVM interpreter. These EIPs are applied in
|
||||
// order and can override the instruction sets from the latest hard fork enabled by the ChainConfig. For more info
|
||||
// check: https://github.com/ethereum/go-ethereum/blob/v1.10.4/core/vm/interpreter.go#L122
|
||||
AvailableExtraEIPs = []int64{1344, 1884, 2200, 2929}
|
||||
AvailableExtraEIPs = []int64{1344, 1884, 2200, 2929, 3198, 3529}
|
||||
)
|
||||
|
||||
// ParamKeyTable returns the parameter key table.
|
||||
|
@ -1,9 +1,19 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"math/big"
|
||||
|
||||
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
|
||||
)
|
||||
|
||||
func (cr EthCallRequest) GetBaseFee() *big.Int {
|
||||
if cr.BaseFee == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return cr.BaseFee.BigInt()
|
||||
}
|
||||
|
||||
// UnpackInterfaces implements UnpackInterfacesMesssage.UnpackInterfaces
|
||||
func (m QueryTraceTxRequest) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error {
|
||||
return m.Msg.UnpackInterfaces(unpacker)
|
||||
|
201
x/evm/types/query.pb.go
generated
201
x/evm/types/query.pb.go
generated
@ -6,6 +6,7 @@ package types
|
||||
import (
|
||||
context "context"
|
||||
fmt "fmt"
|
||||
github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types"
|
||||
query "github.com/cosmos/cosmos-sdk/types/query"
|
||||
_ "github.com/gogo/protobuf/gogoproto"
|
||||
grpc1 "github.com/gogo/protobuf/grpc"
|
||||
@ -787,6 +788,8 @@ type EthCallRequest struct {
|
||||
Args []byte `protobuf:"bytes,1,opt,name=args,proto3" json:"args,omitempty"`
|
||||
// the default gas cap to be used
|
||||
GasCap uint64 `protobuf:"varint,2,opt,name=gas_cap,json=gasCap,proto3" json:"gas_cap,omitempty"`
|
||||
// header base fee used to generate the transaction
|
||||
BaseFee *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=base_fee,json=baseFee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"base_fee,omitempty"`
|
||||
}
|
||||
|
||||
func (m *EthCallRequest) Reset() { *m = EthCallRequest{} }
|
||||
@ -1018,78 +1021,80 @@ func init() {
|
||||
func init() { proto.RegisterFile("ethermint/evm/v1/query.proto", fileDescriptor_e15a877459347994) }
|
||||
|
||||
var fileDescriptor_e15a877459347994 = []byte{
|
||||
// 1123 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0x4d, 0x6f, 0x1b, 0x45,
|
||||
0x18, 0xc7, 0xbd, 0x89, 0x13, 0xa7, 0x8f, 0x93, 0x12, 0xa6, 0x41, 0x24, 0x4b, 0xea, 0xa4, 0x9b,
|
||||
0xe6, 0x3d, 0xda, 0xc5, 0x06, 0x55, 0xa2, 0x12, 0x82, 0x24, 0x0a, 0x05, 0xb5, 0x45, 0xc5, 0x44,
|
||||
0x1c, 0xb8, 0x58, 0xe3, 0xf5, 0xb0, 0xb6, 0x6a, 0xef, 0xb8, 0x3b, 0x63, 0xe3, 0xb4, 0x84, 0x03,
|
||||
0x12, 0x15, 0xa8, 0x17, 0x24, 0xee, 0xa8, 0x17, 0xce, 0x7c, 0x8d, 0x1e, 0x2b, 0x71, 0xe1, 0x84,
|
||||
0x50, 0x82, 0x10, 0x1f, 0x03, 0xcd, 0xcb, 0xda, 0xbb, 0x5e, 0x6f, 0x9d, 0xa2, 0xde, 0xe6, 0xe5,
|
||||
0x99, 0xe7, 0xff, 0x9b, 0x99, 0x67, 0xff, 0xb3, 0xb0, 0x4c, 0x78, 0x9d, 0x04, 0xad, 0x86, 0xcf,
|
||||
0x1d, 0xd2, 0x6d, 0x39, 0xdd, 0xa2, 0xf3, 0xa0, 0x43, 0x82, 0x13, 0xbb, 0x1d, 0x50, 0x4e, 0xd1,
|
||||
0x7c, 0x7f, 0xd6, 0x26, 0xdd, 0x96, 0xdd, 0x2d, 0x9a, 0x0b, 0x1e, 0xf5, 0xa8, 0x9c, 0x74, 0x44,
|
||||
0x4b, 0xc5, 0x99, 0x3b, 0x2e, 0x65, 0x2d, 0xca, 0x9c, 0x2a, 0x66, 0x44, 0x25, 0x70, 0xba, 0xc5,
|
||||
0x2a, 0xe1, 0xb8, 0xe8, 0xb4, 0xb1, 0xd7, 0xf0, 0x31, 0x6f, 0x50, 0x5f, 0xc7, 0x2e, 0x7b, 0x94,
|
||||
0x7a, 0x4d, 0xe2, 0xe0, 0x76, 0xc3, 0xc1, 0xbe, 0x4f, 0xb9, 0x9c, 0x64, 0x7a, 0xd6, 0x4c, 0xf0,
|
||||
0x08, 0x61, 0x35, 0xb7, 0x94, 0x98, 0xe3, 0x3d, 0x35, 0x65, 0xbd, 0x07, 0x57, 0x3e, 0x13, 0xb2,
|
||||
0xfb, 0xae, 0x4b, 0x3b, 0x3e, 0x2f, 0x93, 0x07, 0x1d, 0xc2, 0x38, 0x5a, 0x84, 0x1c, 0xae, 0xd5,
|
||||
0x02, 0xc2, 0xd8, 0xa2, 0xb1, 0x6a, 0x6c, 0x5d, 0x2a, 0x87, 0xdd, 0x9b, 0x33, 0x3f, 0x3c, 0x5d,
|
||||
0xc9, 0xfc, 0xfb, 0x74, 0x25, 0x63, 0xb9, 0xb0, 0x10, 0x5f, 0xca, 0xda, 0xd4, 0x67, 0x44, 0xac,
|
||||
0xad, 0xe2, 0x26, 0xf6, 0x5d, 0x12, 0xae, 0xd5, 0x5d, 0xf4, 0x16, 0x5c, 0x72, 0x69, 0x8d, 0x54,
|
||||
0xea, 0x98, 0xd5, 0x17, 0x27, 0xe4, 0xdc, 0x8c, 0x18, 0xf8, 0x18, 0xb3, 0x3a, 0x5a, 0x80, 0x29,
|
||||
0x9f, 0x8a, 0x45, 0x93, 0xab, 0xc6, 0x56, 0xb6, 0xac, 0x3a, 0xd6, 0x07, 0xb0, 0x24, 0x45, 0x0e,
|
||||
0xe5, 0x39, 0xfd, 0x0f, 0xca, 0xc7, 0x06, 0x98, 0xa3, 0x32, 0x68, 0xd8, 0x75, 0xb8, 0xac, 0xae,
|
||||
0xa0, 0x12, 0xcf, 0x34, 0xa7, 0x46, 0xf7, 0xd5, 0x20, 0x32, 0x61, 0x86, 0x09, 0x51, 0xc1, 0x37,
|
||||
0x21, 0xf9, 0xfa, 0x7d, 0x91, 0x02, 0xab, 0xac, 0x15, 0xbf, 0xd3, 0xaa, 0x92, 0x40, 0xef, 0x60,
|
||||
0x4e, 0x8f, 0x7e, 0x2a, 0x07, 0xad, 0xdb, 0xb0, 0x2c, 0x39, 0xbe, 0xc0, 0xcd, 0x46, 0x0d, 0x73,
|
||||
0x1a, 0x0c, 0x6d, 0xe6, 0x1a, 0xcc, 0xba, 0xd4, 0x1f, 0xe6, 0xc8, 0x8b, 0xb1, 0xfd, 0xc4, 0xae,
|
||||
0x9e, 0x18, 0x70, 0x35, 0x25, 0x9b, 0xde, 0xd8, 0x26, 0xbc, 0x16, 0x52, 0xc5, 0x33, 0x86, 0xb0,
|
||||
0xaf, 0x70, 0x6b, 0x61, 0x11, 0x1d, 0xa8, 0x7b, 0x7e, 0x99, 0xeb, 0x79, 0x5b, 0x17, 0x51, 0x7f,
|
||||
0xe9, 0xb8, 0x22, 0xb2, 0x6e, 0x6b, 0xb1, 0xcf, 0x39, 0x0d, 0xb0, 0x37, 0x5e, 0x0c, 0xcd, 0xc3,
|
||||
0xe4, 0x7d, 0x72, 0xa2, 0xeb, 0x4d, 0x34, 0x23, 0xf2, 0x7b, 0x5a, 0xbe, 0x9f, 0x4c, 0xcb, 0x2f,
|
||||
0xc0, 0x54, 0x17, 0x37, 0x3b, 0xa1, 0xb8, 0xea, 0x58, 0x37, 0x60, 0x5e, 0x97, 0x52, 0xed, 0xa5,
|
||||
0x36, 0xb9, 0x09, 0xaf, 0x47, 0xd6, 0x69, 0x09, 0x04, 0x59, 0x51, 0xfb, 0x72, 0xd5, 0x6c, 0x59,
|
||||
0xb6, 0xad, 0x87, 0x80, 0x64, 0xe0, 0x71, 0xef, 0x0e, 0xf5, 0x58, 0x28, 0x81, 0x20, 0x2b, 0xbf,
|
||||
0x18, 0x95, 0x5f, 0xb6, 0xd1, 0x47, 0x00, 0x03, 0x83, 0x90, 0x7b, 0xcb, 0x97, 0x36, 0x6c, 0x55,
|
||||
0xb4, 0xb6, 0x70, 0x13, 0x5b, 0xd9, 0x91, 0x76, 0x13, 0xfb, 0xde, 0xe0, 0xa8, 0xca, 0x91, 0x95,
|
||||
0x11, 0xc8, 0x1f, 0x0d, 0x7d, 0xb0, 0xa1, 0xb8, 0xe6, 0xdc, 0x86, 0x6c, 0x93, 0x7a, 0x62, 0x77,
|
||||
0x93, 0x5b, 0xf9, 0xd2, 0x1b, 0xf6, 0xb0, 0xb3, 0xd9, 0x77, 0xa8, 0x57, 0x96, 0x21, 0xe8, 0xd6,
|
||||
0x08, 0xa8, 0xcd, 0xb1, 0x50, 0x4a, 0x27, 0x4a, 0x65, 0x2d, 0xe8, 0x73, 0xb8, 0x87, 0x03, 0xdc,
|
||||
0x0a, 0xcf, 0xc1, 0xba, 0xab, 0x01, 0xc3, 0x51, 0x0d, 0x78, 0x03, 0xa6, 0xdb, 0x72, 0x44, 0x1e,
|
||||
0x50, 0xbe, 0xb4, 0x98, 0x44, 0x54, 0x2b, 0x0e, 0xb2, 0xcf, 0xfe, 0x5c, 0xc9, 0x94, 0x75, 0xb4,
|
||||
0xf5, 0x3e, 0x5c, 0x3e, 0xe2, 0xf5, 0x43, 0xdc, 0x6c, 0x46, 0x0e, 0x1a, 0x07, 0x1e, 0x0b, 0xaf,
|
||||
0x44, 0xb4, 0xd1, 0x9b, 0x90, 0xf3, 0x30, 0xab, 0xb8, 0xb8, 0xad, 0xbf, 0x8e, 0x69, 0x0f, 0xb3,
|
||||
0x43, 0xdc, 0xb6, 0x36, 0xe1, 0xca, 0x11, 0xe3, 0x8d, 0x16, 0xe6, 0xe4, 0x16, 0x1e, 0xd0, 0xcc,
|
||||
0xc3, 0xa4, 0x87, 0x55, 0x8a, 0x6c, 0x59, 0x34, 0xad, 0x5f, 0xfb, 0x07, 0x1b, 0x60, 0x97, 0x1c,
|
||||
0xf7, 0x42, 0xb5, 0x22, 0x4c, 0xb6, 0x98, 0xa7, 0xa1, 0x57, 0x92, 0xd0, 0x77, 0x99, 0x77, 0x24,
|
||||
0xc6, 0x48, 0xa7, 0x75, 0xdc, 0x2b, 0x8b, 0x58, 0xb4, 0x04, 0x33, 0xbc, 0x57, 0x69, 0xf8, 0x35,
|
||||
0xd2, 0xd3, 0x34, 0x39, 0xde, 0xfb, 0x44, 0x74, 0xd1, 0x87, 0x30, 0xcb, 0x45, 0xfe, 0x8a, 0x4b,
|
||||
0xfd, 0xaf, 0x1a, 0x9e, 0xfc, 0x50, 0xf3, 0xa5, 0xab, 0xc9, 0xb4, 0x92, 0xe2, 0x50, 0x06, 0x95,
|
||||
0xf3, 0x7c, 0xd0, 0xb1, 0x76, 0xf4, 0xb7, 0xd0, 0xc7, 0x1c, 0x14, 0x6a, 0x0d, 0x73, 0x1c, 0x9e,
|
||||
0x8a, 0x68, 0x97, 0xfe, 0x01, 0x98, 0x92, 0xc1, 0xe8, 0x7b, 0x03, 0x72, 0xda, 0x7b, 0xd0, 0x7a,
|
||||
0x52, 0x6d, 0xc4, 0xe3, 0x62, 0x6e, 0x8c, 0x0b, 0x53, 0xc2, 0xd6, 0xee, 0x77, 0xbf, 0xff, 0xfd,
|
||||
0xf3, 0xc4, 0x3a, 0x5a, 0x73, 0x12, 0xef, 0x97, 0xf6, 0x1f, 0xe7, 0x91, 0xfe, 0xd8, 0x4e, 0xd1,
|
||||
0x2f, 0x06, 0xcc, 0xc5, 0x2c, 0x1e, 0xed, 0xa6, 0xc8, 0x8c, 0x7a, 0x4a, 0xcc, 0xbd, 0x8b, 0x05,
|
||||
0x6b, 0xb2, 0x92, 0x24, 0xdb, 0x43, 0x3b, 0x49, 0xb2, 0xf0, 0x35, 0x49, 0x00, 0xfe, 0x66, 0xc0,
|
||||
0xfc, 0xb0, 0x5b, 0x23, 0x3b, 0x45, 0x36, 0xe5, 0x91, 0x30, 0x9d, 0x0b, 0xc7, 0x6b, 0xd2, 0x9b,
|
||||
0x92, 0xf4, 0x5d, 0x54, 0x4a, 0x92, 0x76, 0xc3, 0x35, 0x03, 0xd8, 0xe8, 0x03, 0x74, 0x8a, 0x1e,
|
||||
0x1b, 0x90, 0xd3, 0xbe, 0x9c, 0x7a, 0xb5, 0x71, 0xcb, 0x4f, 0xbd, 0xda, 0x21, 0x7b, 0xb7, 0xf6,
|
||||
0x24, 0xd6, 0x06, 0xba, 0x9e, 0xc4, 0xd2, 0x3e, 0xcf, 0x22, 0x47, 0xf7, 0xc4, 0x80, 0x9c, 0x76,
|
||||
0xe8, 0x54, 0x90, 0xf8, 0x73, 0x90, 0x0a, 0x32, 0x64, 0xf4, 0x56, 0x51, 0x82, 0xec, 0xa2, 0xed,
|
||||
0x24, 0x08, 0x53, 0xa1, 0x03, 0x0e, 0xe7, 0xd1, 0x7d, 0x72, 0x72, 0x8a, 0x1e, 0x42, 0x56, 0x18,
|
||||
0x39, 0xb2, 0x52, 0x4b, 0xa6, 0xff, 0x3a, 0x98, 0x6b, 0x2f, 0x8c, 0xd1, 0x0c, 0xdb, 0x92, 0x61,
|
||||
0x0d, 0x5d, 0x1b, 0x55, 0x4d, 0xb5, 0xd8, 0x49, 0x7c, 0x0d, 0xd3, 0xca, 0xcb, 0xd0, 0xf5, 0x94,
|
||||
0xcc, 0x31, 0xcb, 0x34, 0xd7, 0xc7, 0x44, 0x69, 0x82, 0x55, 0x49, 0x60, 0xa2, 0xc5, 0x24, 0x81,
|
||||
0x32, 0x4b, 0xd4, 0x83, 0x9c, 0x36, 0x4b, 0xb4, 0x9a, 0xcc, 0x19, 0xf7, 0x51, 0x73, 0x73, 0x9c,
|
||||
0x99, 0x85, 0xba, 0x96, 0xd4, 0x5d, 0x46, 0x66, 0x52, 0x97, 0xf0, 0x7a, 0xc5, 0x15, 0x72, 0xdf,
|
||||
0x42, 0x3e, 0xe2, 0xb3, 0x17, 0x50, 0x1f, 0xb1, 0xe7, 0x11, 0x46, 0x6d, 0x6d, 0x48, 0xed, 0x55,
|
||||
0x54, 0x18, 0xa1, 0xad, 0xc3, 0x2b, 0x1e, 0x66, 0xe8, 0x1b, 0xc8, 0x69, 0x47, 0x4c, 0xad, 0xbd,
|
||||
0xb8, 0xb1, 0xa7, 0xd6, 0xde, 0x90, 0xb1, 0xbe, 0x68, 0xf7, 0xca, 0xca, 0x79, 0xef, 0xe0, 0xe0,
|
||||
0xd9, 0x59, 0xc1, 0x78, 0x7e, 0x56, 0x30, 0xfe, 0x3a, 0x2b, 0x18, 0x3f, 0x9d, 0x17, 0x32, 0xcf,
|
||||
0xcf, 0x0b, 0x99, 0x3f, 0xce, 0x0b, 0x99, 0x2f, 0xb7, 0xbc, 0x06, 0xaf, 0x77, 0xaa, 0xb6, 0x4b,
|
||||
0x5b, 0x0e, 0xaf, 0xe3, 0x80, 0x35, 0x58, 0x24, 0x4f, 0x4f, 0x66, 0xe2, 0x27, 0x6d, 0xc2, 0xaa,
|
||||
0xd3, 0xf2, 0x57, 0xff, 0x9d, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x07, 0x68, 0x0c, 0xb3,
|
||||
0x0c, 0x00, 0x00,
|
||||
// 1167 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4d, 0x6f, 0x1b, 0x55,
|
||||
0x17, 0xf6, 0x24, 0x4e, 0x9c, 0x1c, 0x27, 0x7d, 0xf3, 0xde, 0x06, 0x91, 0x0c, 0xa9, 0x93, 0x4e,
|
||||
0x9a, 0xef, 0x30, 0x83, 0x0d, 0xaa, 0x44, 0x37, 0x90, 0x44, 0x69, 0xa9, 0xda, 0xa2, 0x62, 0x22,
|
||||
0x16, 0x6c, 0xac, 0xeb, 0xf1, 0xed, 0xd8, 0x8a, 0x3d, 0xd7, 0x9d, 0x7b, 0x6d, 0x9c, 0x96, 0xb0,
|
||||
0x40, 0x50, 0x81, 0xba, 0x41, 0x62, 0x8f, 0xba, 0x61, 0xcd, 0xdf, 0xe8, 0xb2, 0x12, 0x1b, 0xc4,
|
||||
0xa2, 0x42, 0x09, 0x42, 0xfc, 0x0c, 0x74, 0x3f, 0xc6, 0x1e, 0x7b, 0x3c, 0x75, 0x8a, 0x58, 0xf9,
|
||||
0x7e, 0x9c, 0x73, 0x9e, 0xe7, 0x9c, 0x7b, 0xe6, 0x39, 0x32, 0x2c, 0x11, 0x5e, 0x25, 0x41, 0xa3,
|
||||
0xe6, 0x73, 0x87, 0xb4, 0x1b, 0x4e, 0x3b, 0xef, 0x3c, 0x6c, 0x91, 0xe0, 0xc4, 0x6e, 0x06, 0x94,
|
||||
0x53, 0x34, 0xd7, 0xbd, 0xb5, 0x49, 0xbb, 0x61, 0xb7, 0xf3, 0xe6, 0xbc, 0x47, 0x3d, 0x2a, 0x2f,
|
||||
0x1d, 0xb1, 0x52, 0x76, 0xe6, 0xb6, 0x4b, 0x59, 0x83, 0x32, 0xa7, 0x8c, 0x19, 0x51, 0x01, 0x9c,
|
||||
0x76, 0xbe, 0x4c, 0x38, 0xce, 0x3b, 0x4d, 0xec, 0xd5, 0x7c, 0xcc, 0x6b, 0xd4, 0xd7, 0xb6, 0x4b,
|
||||
0x1e, 0xa5, 0x5e, 0x9d, 0x38, 0xb8, 0x59, 0x73, 0xb0, 0xef, 0x53, 0x2e, 0x2f, 0x99, 0xbe, 0x35,
|
||||
0x63, 0x7c, 0x04, 0xb0, 0xba, 0x5b, 0x8c, 0xdd, 0xf1, 0x8e, 0xba, 0xb2, 0xde, 0x87, 0xcb, 0x9f,
|
||||
0x08, 0xd8, 0x3d, 0xd7, 0xa5, 0x2d, 0x9f, 0x17, 0xc9, 0xc3, 0x16, 0x61, 0x1c, 0x2d, 0x40, 0x06,
|
||||
0x57, 0x2a, 0x01, 0x61, 0x6c, 0xc1, 0x58, 0x31, 0x36, 0xa7, 0x8b, 0xe1, 0xf6, 0xc6, 0xd4, 0x77,
|
||||
0xcf, 0x96, 0x53, 0x7f, 0x3f, 0x5b, 0x4e, 0x59, 0x2e, 0xcc, 0xf7, 0xbb, 0xb2, 0x26, 0xf5, 0x19,
|
||||
0x11, 0xbe, 0x65, 0x5c, 0xc7, 0xbe, 0x4b, 0x42, 0x5f, 0xbd, 0x45, 0x6f, 0xc1, 0xb4, 0x4b, 0x2b,
|
||||
0xa4, 0x54, 0xc5, 0xac, 0xba, 0x30, 0x26, 0xef, 0xa6, 0xc4, 0xc1, 0x47, 0x98, 0x55, 0xd1, 0x3c,
|
||||
0x4c, 0xf8, 0x54, 0x38, 0x8d, 0xaf, 0x18, 0x9b, 0xe9, 0xa2, 0xda, 0x58, 0x1f, 0xc0, 0xa2, 0x04,
|
||||
0x39, 0x90, 0x75, 0xfa, 0x17, 0x2c, 0x9f, 0x18, 0x60, 0x0e, 0x8b, 0xa0, 0xc9, 0xae, 0xc1, 0x25,
|
||||
0xf5, 0x04, 0xa5, 0xfe, 0x48, 0xb3, 0xea, 0x74, 0x4f, 0x1d, 0x22, 0x13, 0xa6, 0x98, 0x00, 0x15,
|
||||
0xfc, 0xc6, 0x24, 0xbf, 0xee, 0x5e, 0x84, 0xc0, 0x2a, 0x6a, 0xc9, 0x6f, 0x35, 0xca, 0x24, 0xd0,
|
||||
0x19, 0xcc, 0xea, 0xd3, 0x8f, 0xe5, 0xa1, 0x75, 0x07, 0x96, 0x24, 0x8f, 0xcf, 0x70, 0xbd, 0x56,
|
||||
0xc1, 0x9c, 0x06, 0x03, 0xc9, 0x5c, 0x85, 0x19, 0x97, 0xfa, 0x83, 0x3c, 0xb2, 0xe2, 0x6c, 0x2f,
|
||||
0x96, 0xd5, 0x53, 0x03, 0xae, 0x24, 0x44, 0xd3, 0x89, 0x6d, 0xc0, 0xff, 0x42, 0x56, 0xfd, 0x11,
|
||||
0x43, 0xb2, 0xff, 0x61, 0x6a, 0x61, 0x13, 0xed, 0xab, 0x77, 0x7e, 0x9d, 0xe7, 0x79, 0x47, 0x37,
|
||||
0x51, 0xd7, 0x75, 0x54, 0x13, 0x59, 0x77, 0x34, 0xd8, 0xa7, 0x9c, 0x06, 0xd8, 0x1b, 0x0d, 0x86,
|
||||
0xe6, 0x60, 0xfc, 0x98, 0x9c, 0xe8, 0x7e, 0x13, 0xcb, 0x08, 0xfc, 0xae, 0x86, 0xef, 0x06, 0xd3,
|
||||
0xf0, 0xf3, 0x30, 0xd1, 0xc6, 0xf5, 0x56, 0x08, 0xae, 0x36, 0xd6, 0x75, 0x98, 0xd3, 0xad, 0x54,
|
||||
0x79, 0xad, 0x24, 0x37, 0xe0, 0xff, 0x11, 0x3f, 0x0d, 0x81, 0x20, 0x2d, 0x7a, 0x5f, 0x7a, 0xcd,
|
||||
0x14, 0xe5, 0xda, 0x7a, 0x04, 0x48, 0x1a, 0x1e, 0x75, 0xee, 0x52, 0x8f, 0x85, 0x10, 0x08, 0xd2,
|
||||
0xf2, 0x8b, 0x51, 0xf1, 0xe5, 0x1a, 0xdd, 0x04, 0xe8, 0x09, 0x84, 0xcc, 0x2d, 0x5b, 0x58, 0xb7,
|
||||
0x55, 0xd3, 0xda, 0x42, 0x4d, 0x6c, 0x25, 0x47, 0x5a, 0x4d, 0xec, 0xfb, 0xbd, 0x52, 0x15, 0x23,
|
||||
0x9e, 0x11, 0x92, 0xdf, 0x1b, 0xba, 0xb0, 0x21, 0xb8, 0xe6, 0xb9, 0x05, 0xe9, 0x3a, 0xf5, 0x44,
|
||||
0x76, 0xe3, 0x9b, 0xd9, 0xc2, 0x1b, 0xf6, 0xa0, 0xb2, 0xd9, 0x77, 0xa9, 0x57, 0x94, 0x26, 0xe8,
|
||||
0xd6, 0x10, 0x52, 0x1b, 0x23, 0x49, 0x29, 0x9c, 0x28, 0x2b, 0x6b, 0x5e, 0xd7, 0xe1, 0x3e, 0x0e,
|
||||
0x70, 0x23, 0xac, 0x83, 0x75, 0x4f, 0x13, 0x0c, 0x4f, 0x35, 0xc1, 0xeb, 0x30, 0xd9, 0x94, 0x27,
|
||||
0xb2, 0x40, 0xd9, 0xc2, 0x42, 0x9c, 0xa2, 0xf2, 0xd8, 0x4f, 0x3f, 0x7f, 0xb9, 0x9c, 0x2a, 0x6a,
|
||||
0x6b, 0xeb, 0x1b, 0x03, 0x2e, 0x1d, 0xf2, 0xea, 0x01, 0xae, 0xd7, 0x23, 0x95, 0xc6, 0x81, 0xc7,
|
||||
0xc2, 0x37, 0x11, 0x6b, 0xf4, 0x26, 0x64, 0x3c, 0xcc, 0x4a, 0x2e, 0x6e, 0xea, 0xcf, 0x63, 0xd2,
|
||||
0xc3, 0xec, 0x00, 0x37, 0xd1, 0x21, 0x4c, 0x89, 0x9c, 0x4a, 0x0f, 0x88, 0xd2, 0xac, 0xe9, 0xfd,
|
||||
0xed, 0xdf, 0x5f, 0x2e, 0xaf, 0x7b, 0x35, 0x5e, 0x6d, 0x95, 0x6d, 0x97, 0x36, 0x1c, 0x2d, 0xee,
|
||||
0xea, 0xe7, 0x6d, 0x56, 0x39, 0x76, 0xf8, 0x49, 0x93, 0x30, 0xfb, 0xb6, 0xcf, 0x45, 0x3f, 0x33,
|
||||
0x72, 0x93, 0x10, 0x6b, 0x03, 0x2e, 0x1f, 0x32, 0x5e, 0x6b, 0x60, 0x4e, 0x6e, 0xe1, 0x5e, 0x56,
|
||||
0x73, 0x30, 0xee, 0x61, 0xc5, 0x24, 0x5d, 0x14, 0x4b, 0xeb, 0xe7, 0xee, 0x03, 0x05, 0xd8, 0x25,
|
||||
0x47, 0x9d, 0x90, 0x74, 0x1e, 0xc6, 0x1b, 0xcc, 0xd3, 0xc9, 0x2f, 0xc7, 0x93, 0xbf, 0xc7, 0xbc,
|
||||
0x43, 0x71, 0x46, 0x5a, 0x8d, 0xa3, 0x4e, 0x51, 0xd8, 0xa2, 0x45, 0x98, 0xe2, 0x9d, 0x52, 0xcd,
|
||||
0xaf, 0x90, 0x8e, 0x4e, 0x2a, 0xc3, 0x3b, 0xb7, 0xc5, 0x16, 0x7d, 0x08, 0x33, 0x5c, 0xc4, 0x2f,
|
||||
0xb9, 0xd4, 0x7f, 0x50, 0xf3, 0x64, 0x66, 0xd9, 0xc2, 0x95, 0x78, 0x58, 0xc9, 0xe2, 0x40, 0x1a,
|
||||
0x15, 0xb3, 0xbc, 0xb7, 0xb1, 0xb6, 0xf5, 0x37, 0xd5, 0xa5, 0xd9, 0x6b, 0xf8, 0x0a, 0xe6, 0x38,
|
||||
0x2c, 0xae, 0x58, 0x17, 0xfe, 0x02, 0x98, 0x90, 0xc6, 0xe8, 0x5b, 0x03, 0x32, 0x5a, 0xc3, 0xd0,
|
||||
0x5a, 0x1c, 0x6d, 0xc8, 0x90, 0x32, 0xd7, 0x47, 0x99, 0x29, 0x60, 0x6b, 0xe7, 0xeb, 0x5f, 0xff,
|
||||
0xfc, 0x71, 0x6c, 0x0d, 0xad, 0x3a, 0xb1, 0x39, 0xa8, 0x75, 0xcc, 0x79, 0xac, 0x3f, 0xda, 0x53,
|
||||
0xf4, 0x93, 0x01, 0xb3, 0x7d, 0xa3, 0x02, 0xed, 0x24, 0xc0, 0x0c, 0x1b, 0x49, 0xe6, 0xee, 0xc5,
|
||||
0x8c, 0x35, 0xb3, 0x82, 0x64, 0xb6, 0x8b, 0xb6, 0xe3, 0xcc, 0xc2, 0xa9, 0x14, 0x23, 0xf8, 0x8b,
|
||||
0x01, 0x73, 0x83, 0xaa, 0x8f, 0xec, 0x04, 0xd8, 0x84, 0x61, 0x63, 0x3a, 0x17, 0xb6, 0xd7, 0x4c,
|
||||
0x6f, 0x48, 0xa6, 0xef, 0xa1, 0x42, 0x9c, 0x69, 0x3b, 0xf4, 0xe9, 0x91, 0x8d, 0x0e, 0xb2, 0x53,
|
||||
0xf4, 0xc4, 0x80, 0x8c, 0xd6, 0xf7, 0xc4, 0xa7, 0xed, 0x1f, 0x1d, 0x89, 0x4f, 0x3b, 0x30, 0x26,
|
||||
0xac, 0x5d, 0x49, 0x6b, 0x1d, 0x5d, 0x8b, 0xd3, 0xd2, 0xf3, 0x82, 0x45, 0x4a, 0xf7, 0xd4, 0x80,
|
||||
0x8c, 0x56, 0xfa, 0x44, 0x22, 0xfd, 0x63, 0x25, 0x91, 0xc8, 0xc0, 0xc0, 0xb0, 0xf2, 0x92, 0xc8,
|
||||
0x0e, 0xda, 0x8a, 0x13, 0x61, 0xca, 0xb4, 0xc7, 0xc3, 0x79, 0x7c, 0x4c, 0x4e, 0x4e, 0xd1, 0x23,
|
||||
0x48, 0x8b, 0x81, 0x80, 0xac, 0xc4, 0x96, 0xe9, 0x4e, 0x19, 0x73, 0xf5, 0x95, 0x36, 0x9a, 0xc3,
|
||||
0x96, 0xe4, 0xb0, 0x8a, 0xae, 0x0e, 0xeb, 0xa6, 0x4a, 0x5f, 0x25, 0xbe, 0x80, 0x49, 0xa5, 0x89,
|
||||
0xe8, 0x5a, 0x42, 0xe4, 0x3e, 0xe9, 0x35, 0xd7, 0x46, 0x58, 0x69, 0x06, 0x2b, 0x92, 0x81, 0x89,
|
||||
0x16, 0xe2, 0x0c, 0x94, 0xe8, 0xa2, 0x0e, 0x64, 0xb4, 0xe6, 0xa2, 0x95, 0x78, 0xcc, 0x7e, 0x39,
|
||||
0x36, 0x37, 0x46, 0x89, 0x59, 0x88, 0x6b, 0x49, 0xdc, 0x25, 0x64, 0xc6, 0x71, 0x09, 0xaf, 0x96,
|
||||
0x5c, 0x01, 0xf7, 0x15, 0x64, 0x23, 0x3a, 0x7b, 0x01, 0xf4, 0x21, 0x39, 0x0f, 0x11, 0x6a, 0x6b,
|
||||
0x5d, 0x62, 0xaf, 0xa0, 0xdc, 0x10, 0x6c, 0x6d, 0x5e, 0xf2, 0x30, 0x43, 0x5f, 0x42, 0x46, 0x2b,
|
||||
0x62, 0x62, 0xef, 0xf5, 0x0b, 0x7b, 0x62, 0xef, 0x0d, 0x08, 0xeb, 0xab, 0xb2, 0x57, 0x52, 0xce,
|
||||
0x3b, 0xfb, 0xfb, 0xcf, 0xcf, 0x72, 0xc6, 0x8b, 0xb3, 0x9c, 0xf1, 0xc7, 0x59, 0xce, 0xf8, 0xe1,
|
||||
0x3c, 0x97, 0x7a, 0x71, 0x9e, 0x4b, 0xfd, 0x76, 0x9e, 0x4b, 0x7d, 0xbe, 0x19, 0x19, 0x58, 0xbc,
|
||||
0x8a, 0x03, 0x56, 0x63, 0x91, 0x38, 0x1d, 0x19, 0x49, 0x8e, 0xad, 0xf2, 0xa4, 0xfc, 0xcb, 0xf0,
|
||||
0xee, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x73, 0x5e, 0xad, 0xda, 0xfb, 0x0c, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@ -2086,6 +2091,18 @@ func (m *EthCallRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if m.BaseFee != nil {
|
||||
{
|
||||
size := m.BaseFee.Size()
|
||||
i -= size
|
||||
if _, err := m.BaseFee.MarshalTo(dAtA[i:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i = encodeVarintQuery(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
}
|
||||
if m.GasCap != 0 {
|
||||
i = encodeVarintQuery(dAtA, i, uint64(m.GasCap))
|
||||
i--
|
||||
@ -2470,6 +2487,10 @@ func (m *EthCallRequest) Size() (n int) {
|
||||
if m.GasCap != 0 {
|
||||
n += 1 + sovQuery(uint64(m.GasCap))
|
||||
}
|
||||
if m.BaseFee != nil {
|
||||
l = m.BaseFee.Size()
|
||||
n += 1 + l + sovQuery(uint64(l))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@ -4122,6 +4143,42 @@ func (m *EthCallRequest) Unmarshal(dAtA []byte) error {
|
||||
break
|
||||
}
|
||||
}
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field BaseFee", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowQuery
|
||||
}
|
||||
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 ErrInvalidLengthQuery
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthQuery
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
var v github_com_cosmos_cosmos_sdk_types.Int
|
||||
m.BaseFee = &v
|
||||
if err := m.BaseFee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipQuery(dAtA[iNdEx:])
|
||||
|
@ -129,6 +129,13 @@ func NewNoOpTracer() *NoOpTracer {
|
||||
func (dt NoOpTracer) CaptureStart(env *vm.EVM, from, to common.Address, create bool, input []byte, gas uint64, value *big.Int) {
|
||||
}
|
||||
|
||||
// CaptureEnter implements vm.Tracer interface
|
||||
func (dt NoOpTracer) CaptureEnter(typ vm.OpCode, from common.Address, to common.Address, input []byte, gas uint64, value *big.Int) {
|
||||
}
|
||||
|
||||
// CaptureExit implements vm.Tracer interface
|
||||
func (dt NoOpTracer) CaptureExit(output []byte, gasUsed uint64, err error) {}
|
||||
|
||||
// CaptureState implements vm.Tracer interface
|
||||
func (dt NoOpTracer) CaptureState(env *vm.EVM, pc uint64, op vm.OpCode, gas, cost uint64, scope *vm.ScopeContext, rData []byte, depth int, err error) {
|
||||
}
|
||||
|
@ -3,11 +3,12 @@ package types
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
math "math"
|
||||
"math/big"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||
"github.com/ethereum/go-ethereum/common/math"
|
||||
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
||||
)
|
||||
|
||||
@ -54,26 +55,14 @@ func (args *TransactionArgs) String() string {
|
||||
// This assumes that setTxDefaults has been called.
|
||||
func (args *TransactionArgs) ToTransaction() *MsgEthereumTx {
|
||||
var (
|
||||
input []byte
|
||||
chainID, value, gasPrice *big.Int
|
||||
// maxFeePerGas, maxPriorityFeePerGas *big.Int
|
||||
addr common.Address
|
||||
gas, nonce uint64
|
||||
chainID, value, gasPrice, maxFeePerGas, maxPriorityFeePerGas sdk.Int
|
||||
gas, nonce uint64
|
||||
from, to string
|
||||
)
|
||||
|
||||
// Set sender address or use zero address if none specified.
|
||||
if args.From != nil {
|
||||
addr = *args.From
|
||||
}
|
||||
|
||||
if args.Input != nil {
|
||||
input = *args.Input
|
||||
} else if args.Data != nil {
|
||||
input = *args.Data
|
||||
}
|
||||
|
||||
if args.ChainID != nil {
|
||||
chainID = args.ChainID.ToInt()
|
||||
chainID = sdk.NewIntFromBigInt(args.ChainID.ToInt())
|
||||
}
|
||||
|
||||
if args.Nonce != nil {
|
||||
@ -85,54 +74,98 @@ func (args *TransactionArgs) ToTransaction() *MsgEthereumTx {
|
||||
}
|
||||
|
||||
if args.GasPrice != nil {
|
||||
gasPrice = args.GasPrice.ToInt()
|
||||
gasPrice = sdk.NewIntFromBigInt(args.GasPrice.ToInt())
|
||||
}
|
||||
|
||||
// if args.MaxFeePerGas != nil {
|
||||
// maxFeePerGas = args.MaxFeePerGas.ToInt()
|
||||
// }
|
||||
if args.MaxFeePerGas != nil {
|
||||
maxFeePerGas = sdk.NewIntFromBigInt(args.MaxFeePerGas.ToInt())
|
||||
}
|
||||
|
||||
// if args.MaxPriorityFeePerGas != nil {
|
||||
// maxPriorityFeePerGas = args.MaxPriorityFeePerGas.ToInt()
|
||||
// }
|
||||
if args.MaxPriorityFeePerGas != nil {
|
||||
maxPriorityFeePerGas = sdk.NewIntFromBigInt(args.MaxPriorityFeePerGas.ToInt())
|
||||
}
|
||||
|
||||
if args.GasPrice != nil {
|
||||
gasPrice = args.GasPrice.ToInt()
|
||||
gasPrice = sdk.NewIntFromBigInt(args.GasPrice.ToInt())
|
||||
}
|
||||
|
||||
if args.Value != nil {
|
||||
value = args.Value.ToInt()
|
||||
value = sdk.NewIntFromBigInt(args.Value.ToInt())
|
||||
}
|
||||
|
||||
tx := NewTx(chainID, nonce, args.To, value, gas, gasPrice, input, args.AccessList)
|
||||
tx.From = addr.Hex()
|
||||
if args.To != nil {
|
||||
to = args.To.Hex()
|
||||
}
|
||||
|
||||
return tx
|
||||
var data TxData
|
||||
switch {
|
||||
case args.MaxFeePerGas != nil:
|
||||
al := AccessList{}
|
||||
if args.AccessList != nil {
|
||||
al = NewAccessList(args.AccessList)
|
||||
}
|
||||
|
||||
data = &DynamicFeeTx{
|
||||
To: to,
|
||||
ChainID: &chainID,
|
||||
Nonce: nonce,
|
||||
GasLimit: gas,
|
||||
GasFeeCap: &maxFeePerGas,
|
||||
GasTipCap: &maxPriorityFeePerGas,
|
||||
Amount: &value,
|
||||
Data: args.data(),
|
||||
Accesses: al,
|
||||
}
|
||||
case args.AccessList != nil:
|
||||
data = &AccessListTx{
|
||||
To: to,
|
||||
ChainID: &chainID,
|
||||
Nonce: nonce,
|
||||
GasLimit: gas,
|
||||
GasPrice: &gasPrice,
|
||||
Amount: &value,
|
||||
Data: args.data(),
|
||||
Accesses: NewAccessList(args.AccessList),
|
||||
}
|
||||
default:
|
||||
data = &LegacyTx{
|
||||
To: to,
|
||||
Nonce: nonce,
|
||||
GasLimit: gas,
|
||||
GasPrice: &gasPrice,
|
||||
Amount: &value,
|
||||
Data: args.data(),
|
||||
}
|
||||
}
|
||||
|
||||
any, err := PackTxData(data)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
if args.From != nil {
|
||||
from = args.From.Hex()
|
||||
}
|
||||
|
||||
return &MsgEthereumTx{
|
||||
Data: any,
|
||||
From: from,
|
||||
}
|
||||
}
|
||||
|
||||
// ToMessage converts the arguments to the Message type used by the core evm.
|
||||
// This assumes that setTxDefaults has been called.
|
||||
func (args *TransactionArgs) ToMessage(globalGasCap uint64) (ethtypes.Message, error) {
|
||||
var (
|
||||
input []byte
|
||||
value, gasPrice *big.Int
|
||||
// gasFeeCap, gasTipCap *big.Int
|
||||
addr common.Address
|
||||
gas, nonce uint64
|
||||
)
|
||||
|
||||
func (args *TransactionArgs) ToMessage(globalGasCap uint64, baseFee *big.Int) (ethtypes.Message, error) {
|
||||
// Reject invalid combinations of pre- and post-1559 fee styles
|
||||
if args.GasPrice != nil && (args.MaxFeePerGas != nil || args.MaxPriorityFeePerGas != nil) {
|
||||
return ethtypes.Message{}, errors.New("both gasPrice and (maxFeePerGas or maxPriorityFeePerGas) specified")
|
||||
}
|
||||
|
||||
// Set sender address or use zero address if none specified.
|
||||
if args.From != nil {
|
||||
addr = *args.From
|
||||
}
|
||||
addr := args.from()
|
||||
|
||||
// Set default gas & gas price if none were set
|
||||
gas = globalGasCap
|
||||
gas := globalGasCap
|
||||
if gas == 0 {
|
||||
gas = uint64(math.MaxUint64 / 2)
|
||||
}
|
||||
@ -142,31 +175,69 @@ func (args *TransactionArgs) ToMessage(globalGasCap uint64) (ethtypes.Message, e
|
||||
if globalGasCap != 0 && globalGasCap < gas {
|
||||
gas = globalGasCap
|
||||
}
|
||||
|
||||
if args.GasPrice != nil {
|
||||
gasPrice = args.GasPrice.ToInt()
|
||||
var (
|
||||
gasPrice *big.Int
|
||||
gasFeeCap *big.Int
|
||||
gasTipCap *big.Int
|
||||
)
|
||||
if baseFee == nil {
|
||||
// If there's no basefee, then it must be a non-1559 execution
|
||||
gasPrice = new(big.Int)
|
||||
if args.GasPrice != nil {
|
||||
gasPrice = args.GasPrice.ToInt()
|
||||
}
|
||||
gasFeeCap, gasTipCap = gasPrice, gasPrice
|
||||
} else {
|
||||
// A basefee is provided, necessitating 1559-type execution
|
||||
if args.GasPrice != nil {
|
||||
// User specified the legacy gas field, convert to 1559 gas typing
|
||||
gasPrice = args.GasPrice.ToInt()
|
||||
gasFeeCap, gasTipCap = gasPrice, gasPrice
|
||||
} else {
|
||||
// User specified 1559 gas feilds (or none), use those
|
||||
gasFeeCap = new(big.Int)
|
||||
if args.MaxFeePerGas != nil {
|
||||
gasFeeCap = args.MaxFeePerGas.ToInt()
|
||||
}
|
||||
gasTipCap = new(big.Int)
|
||||
if args.MaxPriorityFeePerGas != nil {
|
||||
gasTipCap = args.MaxPriorityFeePerGas.ToInt()
|
||||
}
|
||||
// Backfill the legacy gasPrice for EVM execution, unless we're all zeroes
|
||||
gasPrice = new(big.Int)
|
||||
if gasFeeCap.BitLen() > 0 || gasTipCap.BitLen() > 0 {
|
||||
gasPrice = math.BigMin(new(big.Int).Add(gasTipCap, baseFee), gasFeeCap)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
value := new(big.Int)
|
||||
if args.Value != nil {
|
||||
value = args.Value.ToInt()
|
||||
}
|
||||
|
||||
// if args.MaxFeePerGas != nil {
|
||||
// gasFeeCap = args.MaxFeePerGas.ToInt()
|
||||
// }
|
||||
|
||||
// if args.MaxPriorityFeePerGas != nil {
|
||||
// gasTipCap = args.MaxPriorityFeePerGas.ToInt()
|
||||
// }
|
||||
|
||||
if args.Data != nil {
|
||||
input = *args.Data
|
||||
}
|
||||
data := args.data()
|
||||
var accessList ethtypes.AccessList
|
||||
if args.AccessList != nil {
|
||||
accessList = *args.AccessList
|
||||
}
|
||||
|
||||
msg := ethtypes.NewMessage(addr, args.To, nonce, value, gas, gasPrice, input, accessList, false)
|
||||
msg := ethtypes.NewMessage(addr, args.To, 0, value, gas, gasPrice, gasFeeCap, gasTipCap, data, accessList, true)
|
||||
return msg, nil
|
||||
}
|
||||
|
||||
// from retrieves the transaction sender address.
|
||||
func (args *TransactionArgs) from() common.Address {
|
||||
if args.From == nil {
|
||||
return common.Address{}
|
||||
}
|
||||
return *args.From
|
||||
}
|
||||
|
||||
// data retrieves the transaction calldata. Input field is preferred.
|
||||
func (args *TransactionArgs) data() []byte {
|
||||
if args.Input != nil {
|
||||
return *args.Input
|
||||
}
|
||||
if args.Data != nil {
|
||||
return *args.Data
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -43,8 +43,8 @@ type TxData interface {
|
||||
func NewTxDataFromTx(tx *ethtypes.Transaction) TxData {
|
||||
var txData TxData
|
||||
switch tx.Type() {
|
||||
// case ethtypes.DynamicFeeTxType:
|
||||
// txData = newDynamicFeeTx(tx)
|
||||
case ethtypes.DynamicFeeTxType:
|
||||
txData = newDynamicFeeTx(tx)
|
||||
case ethtypes.AccessListTxType:
|
||||
txData = newAccessListTx(tx)
|
||||
default:
|
||||
|
@ -59,7 +59,7 @@ func TestUnwrapEthererumMsg(t *testing.T) {
|
||||
_, err = evmtypes.UnwrapEthereumMsg(&tx)
|
||||
require.NotNil(t, err)
|
||||
|
||||
msg := evmtypes.NewTx(big.NewInt(1), 0, &common.Address{}, big.NewInt(0), 0, big.NewInt(0), []byte{}, nil)
|
||||
msg := evmtypes.NewTx(big.NewInt(1), 0, &common.Address{}, big.NewInt(0), 0, big.NewInt(0), nil, nil, []byte{}, nil)
|
||||
err = builder.SetMsgs(msg)
|
||||
|
||||
tx = builder.GetTx().(sdk.Tx)
|
||||
|
Loading…
Reference in New Issue
Block a user