Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 0f5297b

Browse files
committedJun 6, 2024··
rpc: Fix incorrect txfeecap (#10636)
Fixes #10582
1 parent d04796e commit 0f5297b

17 files changed

+83
-60
lines changed
 

‎cmd/rpcdaemon/cli/httpcfg/http_cfg.go

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ type HttpCfg struct {
4242

4343
API []string
4444
Gascap uint64
45+
Feecap float64
4546
MaxTraces uint64
4647
WebsocketPort int
4748
WebsocketEnabled bool

‎turbo/cli/flags.go

+1
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,7 @@ func setEmbeddedRpcDaemon(ctx *cli.Context, cfg *nodecfg.Config, logger log.Logg
488488
DBReadConcurrency: ctx.Int(utils.DBReadConcurrencyFlag.Name),
489489
RpcAllowListFilePath: ctx.String(utils.RpcAccessListFlag.Name),
490490
Gascap: ctx.Uint64(utils.RpcGasCapFlag.Name),
491+
Feecap: ctx.Float64(utils.RPCGlobalTxFeeCapFlag.Name),
491492
MaxTraces: ctx.Uint64(utils.TraceMaxtracesFlag.Name),
492493
TraceCompatibility: ctx.Bool(utils.RpcTraceCompatFlag.Name),
493494
BatchLimit: ctx.Int(utils.RpcBatchLimit.Name),

‎turbo/engineapi/engine_server.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func (e *EngineServer) Start(
8989
) {
9090
base := jsonrpc.NewBaseApi(filters, stateCache, blockReader, agg, httpConfig.WithDatadir, httpConfig.EvmCallTimeout, engineReader, httpConfig.Dirs)
9191

92-
ethImpl := jsonrpc.NewEthAPI(base, db, eth, txPool, mining, httpConfig.Gascap, httpConfig.ReturnDataLimit, httpConfig.AllowUnprotectedTxs, httpConfig.MaxGetProofRewindBlockCount, httpConfig.WebsocketSubscribeLogsChannelSize, e.logger)
92+
ethImpl := jsonrpc.NewEthAPI(base, db, eth, txPool, mining, httpConfig.Gascap, httpConfig.Feecap, httpConfig.ReturnDataLimit, httpConfig.AllowUnprotectedTxs, httpConfig.MaxGetProofRewindBlockCount, httpConfig.WebsocketSubscribeLogsChannelSize, e.logger)
9393

9494
// engineImpl := NewEngineAPI(base, db, engineBackend)
9595
// e.startEngineMessageHandler()

‎turbo/jsonrpc/corner_cases_support_test.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ import (
44
"context"
55
"testing"
66

7-
"github.com/ledgerwatch/erigon-lib/common"
87
"github.com/stretchr/testify/require"
98

9+
"github.com/ledgerwatch/erigon-lib/common"
10+
11+
"github.com/ledgerwatch/log/v3"
12+
1013
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
1114
"github.com/ledgerwatch/erigon/rpc"
12-
"github.com/ledgerwatch/log/v3"
1315
)
1416

1517
// TestNotFoundMustReturnNil - next methods - when record not found in db - must return nil instead of error
@@ -18,7 +20,7 @@ func TestNotFoundMustReturnNil(t *testing.T) {
1820
require := require.New(t)
1921
m, _, _ := rpcdaemontest.CreateTestSentry(t)
2022
api := NewEthAPI(newBaseApiForTest(m),
21-
m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
23+
m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
2224
ctx := context.Background()
2325

2426
a, err := api.GetTransactionByBlockNumberAndIndex(ctx, 10_000, 1)

‎turbo/jsonrpc/daemon.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package jsonrpc
22

33
import (
4+
"github.com/ledgerwatch/log/v3"
5+
46
"github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
7+
58
"github.com/ledgerwatch/erigon-lib/kv"
69
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
710
libstate "github.com/ledgerwatch/erigon-lib/state"
@@ -12,7 +15,6 @@ import (
1215
"github.com/ledgerwatch/erigon/rpc"
1316
"github.com/ledgerwatch/erigon/turbo/rpchelper"
1417
"github.com/ledgerwatch/erigon/turbo/services"
15-
"github.com/ledgerwatch/log/v3"
1618
)
1719

1820
// APIList describes the list of available RPC apis
@@ -22,7 +24,7 @@ func APIList(db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, m
2224
logger log.Logger,
2325
) (list []rpc.API) {
2426
base := NewBaseApi(filters, stateCache, blockReader, agg, cfg.WithDatadir, cfg.EvmCallTimeout, engine, cfg.Dirs)
25-
ethImpl := NewEthAPI(base, db, eth, txPool, mining, cfg.Gascap, cfg.ReturnDataLimit, cfg.AllowUnprotectedTxs, cfg.MaxGetProofRewindBlockCount, cfg.WebsocketSubscribeLogsChannelSize, logger)
27+
ethImpl := NewEthAPI(base, db, eth, txPool, mining, cfg.Gascap, cfg.Feecap, cfg.ReturnDataLimit, cfg.AllowUnprotectedTxs, cfg.MaxGetProofRewindBlockCount, cfg.WebsocketSubscribeLogsChannelSize, logger)
2628
erigonImpl := NewErigonAPI(base, db, eth)
2729
txpoolImpl := NewTxPoolAPI(base, db, txPool)
2830
netImpl := NewNetAPIImpl(eth)

‎turbo/jsonrpc/debug_api_test.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import (
88

99
"github.com/davecgh/go-spew/spew"
1010
jsoniter "github.com/json-iterator/go"
11+
"github.com/ledgerwatch/log/v3"
12+
"github.com/stretchr/testify/require"
13+
1114
"github.com/ledgerwatch/erigon-lib/common"
1215
"github.com/ledgerwatch/erigon-lib/kv"
1316
"github.com/ledgerwatch/erigon-lib/kv/iter"
@@ -19,8 +22,6 @@ import (
1922
"github.com/ledgerwatch/erigon/rpc"
2023
"github.com/ledgerwatch/erigon/rpc/rpccfg"
2124
"github.com/ledgerwatch/erigon/turbo/adapter/ethapi"
22-
"github.com/ledgerwatch/log/v3"
23-
"github.com/stretchr/testify/require"
2425
)
2526

2627
var dumper = spew.ConfigState{Indent: " "}
@@ -52,7 +53,7 @@ func TestTraceBlockByNumber(t *testing.T) {
5253
agg := m.HistoryV3Components()
5354
stateCache := kvcache.New(kvcache.DefaultCoherentConfig)
5455
baseApi := NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs)
55-
ethApi := NewEthAPI(baseApi, m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
56+
ethApi := NewEthAPI(baseApi, m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
5657
api := NewPrivateDebugAPI(baseApi, m.DB, 0)
5758
for _, tt := range debugTraceTransactionTests {
5859
var buf bytes.Buffer
@@ -97,7 +98,7 @@ func TestTraceBlockByNumber(t *testing.T) {
9798

9899
func TestTraceBlockByHash(t *testing.T) {
99100
m, _, _ := rpcdaemontest.CreateTestSentry(t)
100-
ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
101+
ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
101102
api := NewPrivateDebugAPI(newBaseApiForTest(m), m.DB, 0)
102103
for _, tt := range debugTraceTransactionTests {
103104
var buf bytes.Buffer

‎turbo/jsonrpc/erigon_receipts_test.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@ import (
77
"testing"
88

99
"github.com/holiman/uint256"
10-
libcommon "github.com/ledgerwatch/erigon-lib/common"
11-
"github.com/ledgerwatch/erigon-lib/kv"
1210
"github.com/stretchr/testify/assert"
1311
"github.com/stretchr/testify/require"
1412

13+
libcommon "github.com/ledgerwatch/erigon-lib/common"
14+
"github.com/ledgerwatch/erigon-lib/kv"
15+
16+
"github.com/ledgerwatch/log/v3"
17+
1518
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
1619
"github.com/ledgerwatch/erigon/common"
1720
"github.com/ledgerwatch/erigon/core"
@@ -22,14 +25,13 @@ import (
2225
"github.com/ledgerwatch/erigon/params"
2326
"github.com/ledgerwatch/erigon/rpc"
2427
"github.com/ledgerwatch/erigon/turbo/stages/mock"
25-
"github.com/ledgerwatch/log/v3"
2628
)
2729

2830
func TestGetLogs(t *testing.T) {
2931
assert := assert.New(t)
3032
m, _, _ := rpcdaemontest.CreateTestSentry(t)
3133
{
32-
ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
34+
ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
3335

3436
logs, err := ethApi.GetLogs(context.Background(), filters.FilterCriteria{FromBlock: big.NewInt(0), ToBlock: big.NewInt(10)})
3537
assert.NoError(err)

‎turbo/jsonrpc/eth_api.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@ type APIImpl struct {
348348
gasCache *GasPriceCache
349349
db kv.RoDB
350350
GasCap uint64
351+
FeeCap float64
351352
ReturnDataLimit int
352353
AllowUnprotectedTxs bool
353354
MaxGetProofRewindBlockCount int
@@ -356,7 +357,7 @@ type APIImpl struct {
356357
}
357358

358359
// NewEthAPI returns APIImpl instance
359-
func NewEthAPI(base *BaseAPI, db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, gascap uint64, returnDataLimit int, allowUnprotectedTxs bool, maxGetProofRewindBlockCount int, subscribeLogsChannelSize int, logger log.Logger) *APIImpl {
360+
func NewEthAPI(base *BaseAPI, db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, gascap uint64, feecap float64, returnDataLimit int, allowUnprotectedTxs bool, maxGetProofRewindBlockCount int, subscribeLogsChannelSize int, logger log.Logger) *APIImpl {
360361
if gascap == 0 {
361362
gascap = uint64(math.MaxUint64 / 2)
362363
}
@@ -369,6 +370,7 @@ func NewEthAPI(base *BaseAPI, db kv.RoDB, eth rpchelper.ApiBackend, txPool txpoo
369370
mining: mining,
370371
gasCache: NewGasPriceCache(),
371372
GasCap: gascap,
373+
FeeCap: feecap,
372374
AllowUnprotectedTxs: allowUnprotectedTxs,
373375
ReturnDataLimit: returnDataLimit,
374376
MaxGetProofRewindBlockCount: maxGetProofRewindBlockCount,

‎turbo/jsonrpc/eth_api_test.go

+15-13
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,20 @@ import (
88
"github.com/ledgerwatch/erigon-lib/common/hexutil"
99

1010
"github.com/holiman/uint256"
11-
"github.com/ledgerwatch/erigon-lib/common"
1211
"github.com/stretchr/testify/assert"
1312

13+
"github.com/ledgerwatch/erigon-lib/common"
14+
1415
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
1516
"github.com/ledgerwatch/erigon/core"
1617
"github.com/ledgerwatch/erigon/rpc"
1718
"github.com/ledgerwatch/erigon/rpc/rpccfg"
1819
"github.com/ledgerwatch/erigon/turbo/adapter/ethapi"
1920
"github.com/ledgerwatch/erigon/turbo/stages/mock"
2021

21-
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
2222
"github.com/ledgerwatch/log/v3"
23+
24+
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
2325
)
2426

2527
func newBaseApiForTest(m *mock.MockSentry) *BaseAPI {
@@ -55,7 +57,7 @@ func TestGetTransactionReceipt(t *testing.T) {
5557
db := m.DB
5658
agg := m.HistoryV3Components()
5759
stateCache := kvcache.New(kvcache.DefaultCoherentConfig)
58-
api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), db, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
60+
api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), db, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
5961
// Call GetTransactionReceipt for transaction which is not in the database
6062
if _, err := api.GetTransactionReceipt(context.Background(), common.Hash{}); err != nil {
6163
t.Errorf("calling GetTransactionReceipt with empty hash: %v", err)
@@ -64,7 +66,7 @@ func TestGetTransactionReceipt(t *testing.T) {
6466

6567
func TestGetTransactionReceiptUnprotected(t *testing.T) {
6668
m, _, _ := rpcdaemontest.CreateTestSentry(t)
67-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
69+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
6870
// Call GetTransactionReceipt for un-protected transaction
6971
if _, err := api.GetTransactionReceipt(context.Background(), common.HexToHash("0x3f3cb8a0e13ed2481f97f53f7095b9cbc78b6ffb779f2d3e565146371a8830ea")); err != nil {
7072
t.Errorf("calling GetTransactionReceipt for unprotected tx: %v", err)
@@ -76,7 +78,7 @@ func TestGetTransactionReceiptUnprotected(t *testing.T) {
7678
func TestGetStorageAt_ByBlockNumber_WithRequireCanonicalDefault(t *testing.T) {
7779
assert := assert.New(t)
7880
m, _, _ := rpcdaemontest.CreateTestSentry(t)
79-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
81+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
8082
addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
8183

8284
result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithNumber(0))
@@ -90,7 +92,7 @@ func TestGetStorageAt_ByBlockNumber_WithRequireCanonicalDefault(t *testing.T) {
9092
func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault(t *testing.T) {
9193
assert := assert.New(t)
9294
m, _, _ := rpcdaemontest.CreateTestSentry(t)
93-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
95+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
9496
addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
9597

9698
result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithHash(m.Genesis.Hash(), false))
@@ -104,7 +106,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault(t *testing.T) {
104106
func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue(t *testing.T) {
105107
assert := assert.New(t)
106108
m, _, _ := rpcdaemontest.CreateTestSentry(t)
107-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
109+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
108110
addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
109111

110112
result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithHash(m.Genesis.Hash(), true))
@@ -117,7 +119,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue(t *testing.T) {
117119

118120
func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_BlockNotFoundError(t *testing.T) {
119121
m, _, _ := rpcdaemontest.CreateTestSentry(t)
120-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
122+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
121123
addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
122124

123125
offChain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 1, func(i int, block *core.BlockGen) {
@@ -138,7 +140,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_BlockNotFoundError
138140

139141
func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_BlockNotFoundError(t *testing.T) {
140142
m, _, _ := rpcdaemontest.CreateTestSentry(t)
141-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
143+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
142144
addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
143145

144146
offChain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 1, func(i int, block *core.BlockGen) {
@@ -160,7 +162,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_BlockNotFoundError(t
160162
func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testing.T) {
161163
assert := assert.New(t)
162164
m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t)
163-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
165+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
164166
addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
165167

166168
orphanedBlock := orphanedChain[0].Blocks[0]
@@ -179,7 +181,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(
179181

180182
func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t *testing.T) {
181183
m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t)
182-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
184+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
183185
addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
184186

185187
orphanedBlock := orphanedChain[0].Blocks[0]
@@ -195,7 +197,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t *
195197

196198
func TestCall_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testing.T) {
197199
m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t)
198-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
200+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
199201
from := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
200202
to := common.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e")
201203

@@ -218,7 +220,7 @@ func TestCall_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testi
218220

219221
func TestCall_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t *testing.T) {
220222
m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t)
221-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
223+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
222224
from := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
223225
to := common.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e")
224226

‎turbo/jsonrpc/eth_block_test.go

+15-13
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ import (
77

88
"github.com/ledgerwatch/erigon-lib/common/hexutil"
99

10+
"github.com/stretchr/testify/assert"
11+
1012
"github.com/ledgerwatch/erigon-lib/common"
1113
"github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
1214
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
13-
"github.com/stretchr/testify/assert"
15+
16+
"github.com/ledgerwatch/log/v3"
1417

1518
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
1619
"github.com/ledgerwatch/erigon/core/rawdb"
@@ -20,13 +23,12 @@ import (
2023
"github.com/ledgerwatch/erigon/rpc/rpccfg"
2124
"github.com/ledgerwatch/erigon/turbo/rpchelper"
2225
"github.com/ledgerwatch/erigon/turbo/stages/mock"
23-
"github.com/ledgerwatch/log/v3"
2426
)
2527

2628
// Gets the latest block number with the latest tag
2729
func TestGetBlockByNumberWithLatestTag(t *testing.T) {
2830
m, _, _ := rpcdaemontest.CreateTestSentry(t)
29-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
31+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
3032
b, err := api.GetBlockByNumber(context.Background(), rpc.LatestBlockNumber, false)
3133
expected := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd")
3234
if err != nil {
@@ -56,7 +58,7 @@ func TestGetBlockByNumberWithLatestTag_WithHeadHashInDb(t *testing.T) {
5658
}
5759
tx.Commit()
5860

59-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
61+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
6062
block, err := api.GetBlockByNumber(ctx, rpc.LatestBlockNumber, false)
6163
if err != nil {
6264
t.Errorf("error retrieving block by number: %s", err)
@@ -87,7 +89,7 @@ func TestGetBlockByNumberWithPendingTag(t *testing.T) {
8789
RplBlock: rlpBlock,
8890
})
8991

90-
api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
92+
api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
9193
b, err := api.GetBlockByNumber(context.Background(), rpc.PendingBlockNumber, false)
9294
if err != nil {
9395
t.Errorf("error getting block number with pending tag: %s", err)
@@ -98,7 +100,7 @@ func TestGetBlockByNumberWithPendingTag(t *testing.T) {
98100
func TestGetBlockByNumber_WithFinalizedTag_NoFinalizedBlockInDb(t *testing.T) {
99101
m, _, _ := rpcdaemontest.CreateTestSentry(t)
100102
ctx := context.Background()
101-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
103+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
102104
if _, err := api.GetBlockByNumber(ctx, rpc.FinalizedBlockNumber, false); err != nil {
103105
assert.ErrorIs(t, rpchelper.UnknownBlockError, err)
104106
}
@@ -125,7 +127,7 @@ func TestGetBlockByNumber_WithFinalizedTag_WithFinalizedBlockInDb(t *testing.T)
125127
}
126128
tx.Commit()
127129

128-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
130+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
129131
block, err := api.GetBlockByNumber(ctx, rpc.FinalizedBlockNumber, false)
130132
if err != nil {
131133
t.Errorf("error retrieving block by number: %s", err)
@@ -137,7 +139,7 @@ func TestGetBlockByNumber_WithFinalizedTag_WithFinalizedBlockInDb(t *testing.T)
137139
func TestGetBlockByNumber_WithSafeTag_NoSafeBlockInDb(t *testing.T) {
138140
m, _, _ := rpcdaemontest.CreateTestSentry(t)
139141
ctx := context.Background()
140-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
142+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
141143
if _, err := api.GetBlockByNumber(ctx, rpc.SafeBlockNumber, false); err != nil {
142144
assert.ErrorIs(t, rpchelper.UnknownBlockError, err)
143145
}
@@ -164,7 +166,7 @@ func TestGetBlockByNumber_WithSafeTag_WithSafeBlockInDb(t *testing.T) {
164166
}
165167
tx.Commit()
166168

167-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
169+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
168170
block, err := api.GetBlockByNumber(ctx, rpc.SafeBlockNumber, false)
169171
if err != nil {
170172
t.Errorf("error retrieving block by number: %s", err)
@@ -177,7 +179,7 @@ func TestGetBlockTransactionCountByHash(t *testing.T) {
177179
m, _, _ := rpcdaemontest.CreateTestSentry(t)
178180
ctx := context.Background()
179181

180-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
182+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
181183
blockHash := common.HexToHash("0x6804117de2f3e6ee32953e78ced1db7b20214e0d8c745a03b8fecf7cc8ee76ef")
182184

183185
tx, err := m.DB.BeginRw(ctx)
@@ -209,7 +211,7 @@ func TestGetBlockTransactionCountByHash(t *testing.T) {
209211
func TestGetBlockTransactionCountByHash_ZeroTx(t *testing.T) {
210212
m, _, _ := rpcdaemontest.CreateTestSentry(t)
211213
ctx := context.Background()
212-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
214+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
213215
blockHash := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd")
214216

215217
tx, err := m.DB.BeginRw(ctx)
@@ -241,7 +243,7 @@ func TestGetBlockTransactionCountByHash_ZeroTx(t *testing.T) {
241243
func TestGetBlockTransactionCountByNumber(t *testing.T) {
242244
m, _, _ := rpcdaemontest.CreateTestSentry(t)
243245
ctx := context.Background()
244-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
246+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
245247
blockHash := common.HexToHash("0x6804117de2f3e6ee32953e78ced1db7b20214e0d8c745a03b8fecf7cc8ee76ef")
246248

247249
tx, err := m.DB.BeginRw(ctx)
@@ -273,7 +275,7 @@ func TestGetBlockTransactionCountByNumber(t *testing.T) {
273275
func TestGetBlockTransactionCountByNumber_ZeroTx(t *testing.T) {
274276
m, _, _ := rpcdaemontest.CreateTestSentry(t)
275277
ctx := context.Background()
276-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
278+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
277279

278280
blockHash := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd")
279281

‎turbo/jsonrpc/eth_callMany_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import (
1414
"github.com/ledgerwatch/erigon-lib/common/hexutility"
1515
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
1616

17+
"github.com/ledgerwatch/log/v3"
18+
1719
"github.com/ledgerwatch/erigon/accounts/abi/bind"
1820
"github.com/ledgerwatch/erigon/accounts/abi/bind/backends"
1921
"github.com/ledgerwatch/erigon/core/types"
@@ -23,7 +25,6 @@ import (
2325
"github.com/ledgerwatch/erigon/rpc/rpccfg"
2426
"github.com/ledgerwatch/erigon/turbo/adapter/ethapi"
2527
"github.com/ledgerwatch/erigon/turbo/jsonrpc/contracts"
26-
"github.com/ledgerwatch/log/v3"
2728
)
2829

2930
// block 1 contains 3 Transactions
@@ -85,7 +86,7 @@ func TestCallMany(t *testing.T) {
8586
db := contractBackend.DB()
8687
engine := contractBackend.Engine()
8788
api := NewEthAPI(NewBaseApi(nil, stateCache, contractBackend.BlockReader(), contractBackend.Agg(), false, rpccfg.DefaultEvmCallTimeout, engine,
88-
datadir.New(t.TempDir())), db, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
89+
datadir.New(t.TempDir())), db, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
8990

9091
callArgAddr1 := ethapi.CallArgs{From: &address, To: &tokenAddr, Nonce: &nonce,
9192
MaxPriorityFeePerGas: (*hexutil.Big)(big.NewInt(1e9)),

‎turbo/jsonrpc/eth_call_test.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import (
1919
"github.com/ledgerwatch/erigon-lib/kv"
2020
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
2121

22+
"github.com/ledgerwatch/log/v3"
23+
2224
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
2325
"github.com/ledgerwatch/erigon/common/math"
2426
"github.com/ledgerwatch/erigon/core"
@@ -33,7 +35,6 @@ import (
3335
"github.com/ledgerwatch/erigon/turbo/rpchelper"
3436
"github.com/ledgerwatch/erigon/turbo/stages/mock"
3537
"github.com/ledgerwatch/erigon/turbo/trie"
36-
"github.com/ledgerwatch/log/v3"
3738
)
3839

3940
func TestEstimateGas(t *testing.T) {
@@ -43,7 +44,7 @@ func TestEstimateGas(t *testing.T) {
4344
ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mock.Mock(t))
4445
mining := txpool.NewMiningClient(conn)
4546
ff := rpchelper.New(ctx, nil, nil, mining, func() {}, m.Log)
46-
api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
47+
api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
4748
var from = libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
4849
var to = libcommon.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e")
4950
if _, err := api.EstimateGas(context.Background(), &ethapi.CallArgs{
@@ -58,7 +59,7 @@ func TestEthCallNonCanonical(t *testing.T) {
5859
m, _, _ := rpcdaemontest.CreateTestSentry(t)
5960
agg := m.HistoryV3Components()
6061
stateCache := kvcache.New(kvcache.DefaultCoherentConfig)
61-
api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
62+
api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
6263
var from = libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7")
6364
var to = libcommon.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e")
6465
if _, err := api.Call(context.Background(), ethapi.CallArgs{
@@ -77,7 +78,7 @@ func TestEthCallToPrunedBlock(t *testing.T) {
7778

7879
m, bankAddress, contractAddress := chainWithDeployedContract(t)
7980
doPrune(t, m.DB, pruneTo)
80-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
81+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
8182

8283
callData := hexutil.MustDecode("0x2e64cec1")
8384
callDataBytes := hexutility.Bytes(callData)
@@ -98,7 +99,7 @@ func TestGetProof(t *testing.T) {
9899
if m.HistoryV3 {
99100
t.Skip("not supported by Erigon3")
100101
}
101-
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, maxGetProofRewindBlockCount, 128, log.New())
102+
api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, maxGetProofRewindBlockCount, 128, log.New())
102103

103104
key := func(b byte) libcommon.Hash {
104105
result := libcommon.Hash{}

‎turbo/jsonrpc/eth_filters_test.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,18 @@ import (
1111

1212
"github.com/ledgerwatch/erigon/rpc/rpccfg"
1313

14+
"github.com/stretchr/testify/assert"
15+
1416
"github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
17+
1518
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
16-
"github.com/stretchr/testify/assert"
19+
20+
"github.com/ledgerwatch/log/v3"
1721

1822
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
1923
"github.com/ledgerwatch/erigon/eth/filters"
2024
"github.com/ledgerwatch/erigon/turbo/rpchelper"
2125
"github.com/ledgerwatch/erigon/turbo/stages/mock"
22-
"github.com/ledgerwatch/log/v3"
2326
)
2427

2528
func TestNewFilters(t *testing.T) {
@@ -30,7 +33,7 @@ func TestNewFilters(t *testing.T) {
3033
ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mock.Mock(t))
3134
mining := txpool.NewMiningClient(conn)
3235
ff := rpchelper.New(ctx, nil, nil, mining, func() {}, m.Log)
33-
api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
36+
api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
3437

3538
ptf, err := api.NewPendingTransactionFilter(ctx)
3639
assert.Nil(err)

‎turbo/jsonrpc/eth_mining_test.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,17 @@ import (
88
"github.com/ledgerwatch/erigon/consensus/ethash"
99
"github.com/ledgerwatch/erigon/rpc/rpccfg"
1010

11+
"github.com/ledgerwatch/log/v3"
12+
"github.com/stretchr/testify/require"
13+
1114
"github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
15+
1216
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
1317
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
1418
"github.com/ledgerwatch/erigon/core/types"
1519
"github.com/ledgerwatch/erigon/rlp"
1620
"github.com/ledgerwatch/erigon/turbo/rpchelper"
1721
"github.com/ledgerwatch/erigon/turbo/stages/mock"
18-
"github.com/ledgerwatch/log/v3"
19-
"github.com/stretchr/testify/require"
2022
)
2123

2224
func TestPendingBlock(t *testing.T) {
@@ -27,7 +29,7 @@ func TestPendingBlock(t *testing.T) {
2729
stateCache := kvcache.New(kvcache.DefaultCoherentConfig)
2830
engine := ethash.NewFaker()
2931
api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, nil, false, rpccfg.DefaultEvmCallTimeout, engine,
30-
m.Dirs), nil, nil, nil, mining, 5000000, 100_000, false, 100_000, 128, log.New())
32+
m.Dirs), nil, nil, nil, mining, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
3133
expect := uint64(12345)
3234
b, err := rlp.EncodeToBytes(types.NewBlockWithHeader(&types.Header{Number: big.NewInt(int64(expect))}))
3335
require.NoError(t, err)

‎turbo/jsonrpc/eth_system_test.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,16 @@ import (
77
"testing"
88

99
"github.com/holiman/uint256"
10+
1011
libcommon "github.com/ledgerwatch/erigon-lib/common"
1112

13+
"github.com/ledgerwatch/log/v3"
14+
1215
"github.com/ledgerwatch/erigon/core"
1316
"github.com/ledgerwatch/erigon/core/types"
1417
"github.com/ledgerwatch/erigon/crypto"
1518
"github.com/ledgerwatch/erigon/params"
1619
"github.com/ledgerwatch/erigon/turbo/stages/mock"
17-
"github.com/ledgerwatch/log/v3"
1820
)
1921

2022
func TestGasPrice(t *testing.T) {
@@ -40,7 +42,7 @@ func TestGasPrice(t *testing.T) {
4042
t.Run(testCase.description, func(t *testing.T) {
4143
m := createGasPriceTestKV(t, testCase.chainSize)
4244
defer m.DB.Close()
43-
eth := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, 128, log.New())
45+
eth := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 1e18, 100_000, false, 100_000, 128, log.New())
4446

4547
ctx := context.Background()
4648
result, err := eth.GasPrice(ctx)

‎turbo/jsonrpc/send_transaction.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
txPoolProto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
1212

1313
"github.com/ledgerwatch/erigon/core/types"
14-
"github.com/ledgerwatch/erigon/eth/ethconfig"
1514
"github.com/ledgerwatch/erigon/params"
1615
)
1716

@@ -24,7 +23,7 @@ func (api *APIImpl) SendRawTransaction(ctx context.Context, encodedTx hexutility
2423

2524
// If the transaction fee cap is already specified, ensure the
2625
// fee of the given transaction is _reasonable_.
27-
if err := checkTxFee(txn.GetPrice().ToBig(), txn.GetGas(), ethconfig.Defaults.RPCTxFeeCap); err != nil {
26+
if err := checkTxFee(txn.GetPrice().ToBig(), txn.GetGas(), api.FeeCap); err != nil {
2827
return common.Hash{}, err
2928
}
3029
if !txn.Protected() && !api.AllowUnprotectedTxs {

‎turbo/jsonrpc/send_transaction_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func TestSendRawTransaction(t *testing.T) {
8989
ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mockSentry)
9090
txPool := txpool.NewTxpoolClient(conn)
9191
ff := rpchelper.New(ctx, nil, txPool, txpool.NewMiningClient(conn), func() {}, mockSentry.Log)
92-
api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 100_000, false, 100_000, 128, logger)
92+
api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 1e18, 100_000, false, 100_000, 128, logger)
9393

9494
buf := bytes.NewBuffer(nil)
9595
err = txn.MarshalBinary(buf)
@@ -141,7 +141,7 @@ func TestSendRawTransactionUnprotected(t *testing.T) {
141141
ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mockSentry)
142142
txPool := txpool.NewTxpoolClient(conn)
143143
ff := rpchelper.New(ctx, nil, txPool, txpool.NewMiningClient(conn), func() {}, mockSentry.Log)
144-
api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 100_000, false, 100_000, 128, logger)
144+
api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 1e18, 100_000, false, 100_000, 128, logger)
145145

146146
// Enable unproteced txs flag
147147
api.AllowUnprotectedTxs = true

0 commit comments

Comments
 (0)
Please sign in to comment.