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:
Federico Kunze Küllmer
2021-10-05 15:38:20 +00:00
committed by GitHub
parent cda968bddd
commit a8722655bb
44 changed files with 1020 additions and 2584 deletions
+4 -4
View File
@@ -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)
})
}
+44 -14
View File
@@ -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:
+8 -8
View File
@@ -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},
}
+6 -4
View File
@@ -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,
)
+11 -13
View File
@@ -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
}
+2 -2
View File
@@ -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)
+1 -2
View File
@@ -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))
}
+2 -2
View File
@@ -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)
-77
View File
@@ -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)
}
+2 -2
View File
@@ -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),
}
}
+24 -30
View File
@@ -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 &ethtypes.DynamicFeeTx{
// ChainID: tx.GetChainID(),
// Nonce: tx.GetNonce(),
// GasTipCap: tx.GetGasTipCap(),
// GasFeeCap: tx.GetGasFeeCap(),
// Gas: tx.GetGas(),
// To: tx.GetTo(),
// Value: tx.GetValue(),
// Data: tx.GetData(),
// AccessList: tx.GetAccessList(),
// V: v,
// R: r,
// S: s,
// }
v, r, s := tx.GetRawSignatureValues()
return &ethtypes.DynamicFeeTx{
ChainID: tx.GetChainID(),
Nonce: tx.GetNonce(),
GasTipCap: tx.GetGasTipCap(),
GasFeeCap: tx.GetGasFeeCap(),
Gas: tx.GetGas(),
To: tx.GetTo(),
Value: tx.GetValue(),
Data: tx.GetData(),
AccessList: tx.GetAccessList(),
V: v,
R: r,
S: s,
}
}
// GetRawSignatureValues returns the V, R, S signature values of the transaction.
+175 -174
View File
@@ -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:])
+26 -9
View File
@@ -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: &gtc,
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.
+9 -9
View File
@@ -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,
+1 -1
View File
@@ -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.
+10
View File
@@ -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)
+129 -72
View File
@@ -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:])
+7
View File
@@ -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) {
}
+131 -60
View File
@@ -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
}
+2 -2
View File
@@ -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:
+1 -1
View File
@@ -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)