Skip to content

Commit 3cf8c55

Browse files
macfarlamatthew1001
authored andcommitted
Eth call with 4844 params (hyperledger#6661)
* use accessList in hash and equals * add blob fields to callParams * blob fields from callParam used in transaction simulator * don't zero maxFeePerBlobs if not present * add roundtrip callParam verification * added a failure case test * error conversion * added some spec tests Signed-off-by: Sally MacFarlane <[email protected]> --------- Signed-off-by: Sally MacFarlane <[email protected]>
1 parent e6678d9 commit 3cf8c55

File tree

21 files changed

+372
-15
lines changed

21 files changed

+372
-15
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
- RocksDB database metadata refactoring [#6555](https://github.com/hyperledger/besu/pull/6555)
1818
- Make layered txpool aware of minGasPrice and minPriorityFeePerGas dynamic options [#6611](https://github.com/hyperledger/besu/pull/6611)
1919
- Update commons-compress to 1.26.0 [#6648](https://github.com/hyperledger/besu/pull/6648)
20+
- Add blob transaction support to `eth_call` [#6661](https://github.com/hyperledger/besu/pull/6661)
2021
- Add blobs to `eth_feeHistory` [#6679](https://github.com/hyperledger/besu/pull/6679)
2122

2223
### Bug fixes

ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/fork/frontier/EthCallIntegrationTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ public void shouldReturnExpectedResultForCallAtLatestBlock() {
7575
Bytes.fromHexString("0x12a7b914"),
7676
null,
7777
null,
78+
null,
79+
null,
7880
null);
7981
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
8082
final JsonRpcResponse expectedResponse =
@@ -100,6 +102,8 @@ public void shouldReturnExpectedResultForCallAtSpecificBlock() {
100102
Bytes.fromHexString("0x12a7b914"),
101103
null,
102104
null,
105+
null,
106+
null,
103107
null);
104108
final JsonRpcRequestContext request = requestWithParams(callParameter, "0x8");
105109
final JsonRpcResponse expectedResponse =
@@ -126,6 +130,8 @@ public void shouldReturnSuccessWhenCreatingContract() {
126130
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
127131
null,
128132
null,
133+
null,
134+
null,
129135
null);
130136
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
131137
final JsonRpcResponse expectedResponse =
@@ -152,6 +158,8 @@ public void shouldReturnErrorWithGasLimitTooLow() {
152158
Bytes.fromHexString("0x12a7b914"),
153159
null,
154160
null,
161+
null,
162+
null,
155163
null);
156164
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
157165
final JsonRpcResponse expectedResponse =
@@ -176,6 +184,8 @@ public void shouldReturnErrorWithGasPriceTooHighAndStrict() {
176184
Bytes.fromHexString("0x12a7b914"),
177185
null,
178186
true,
187+
null,
188+
null,
179189
null);
180190
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
181191
final JsonRpcResponse expectedResponse =
@@ -200,6 +210,8 @@ public void shouldReturnSuccessWithGasPriceTooHighNotStrict() {
200210
Bytes.fromHexString("0x12a7b914"),
201211
null,
202212
false,
213+
null,
214+
null,
203215
null);
204216
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
205217
final JsonRpcResponse expectedResponse =
@@ -225,6 +237,8 @@ public void shouldReturnErrorWithGasPriceTooHigh() {
225237
Bytes.fromHexString("0x12a7b914"),
226238
null,
227239
null,
240+
null,
241+
null,
228242
null);
229243
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
230244
final JsonRpcResponse expectedResponse =
@@ -249,6 +263,8 @@ public void shouldReturnSuccessWithValidGasPrice() {
249263
Bytes.fromHexString("0x12a7b914"),
250264
null,
251265
null,
266+
null,
267+
null,
252268
null);
253269
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
254270
final JsonRpcResponse expectedResponse =
@@ -274,6 +290,8 @@ public void shouldReturnErrorWithGasPriceAndEmptyBalance() {
274290
Bytes.fromHexString("0x12a7b914"),
275291
null,
276292
null,
293+
null,
294+
null,
277295
null);
278296
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
279297
final JsonRpcResponse expectedResponse =
@@ -298,6 +316,8 @@ public void shouldReturnSuccessWithZeroGasPriceAndEmptyBalance() {
298316
Bytes.fromHexString("0x12a7b914"),
299317
null,
300318
null,
319+
null,
320+
null,
301321
null);
302322
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
303323
final JsonRpcResponse expectedResponse =
@@ -323,6 +343,8 @@ public void shouldReturnSuccessWithoutGasPriceAndEmptyBalance() {
323343
Bytes.fromHexString("0x12a7b914"),
324344
null,
325345
null,
346+
null,
347+
null,
326348
null);
327349
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
328350
final JsonRpcResponse expectedResponse =
@@ -348,6 +370,8 @@ public void shouldReturnSuccessWithInvalidGasPricingAndEmptyBalance() {
348370
Bytes.fromHexString("0x12a7b914"),
349371
null,
350372
null,
373+
null,
374+
null,
351375
null);
352376
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
353377
final JsonRpcResponse expectedResponse =
@@ -373,6 +397,8 @@ public void shouldReturnEmptyHashResultForCallWithOnlyToField() {
373397
null,
374398
null,
375399
null,
400+
null,
401+
null,
376402
null);
377403
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
378404
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x");

ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/fork/frontier/EthCreateAccessListIntegrationTest.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,8 @@ public void shouldSucceedWhenCreateAccessListSimpleContract() {
140140
@Test
141141
public void shouldReturnExpectedValueForEmptyCallParameter() {
142142
final JsonCallParameter callParameter =
143-
new JsonCallParameter(null, null, null, null, null, null, null, null, null, null, null);
143+
new JsonCallParameter(
144+
null, null, null, null, null, null, null, null, null, null, null, null, null);
144145
final JsonRpcRequestContext request = requestWithParams(callParameter);
145146
final JsonRpcResponse expectedResponse =
146147
new JsonRpcSuccessResponse(null, new CreateAccessListResult(new ArrayList<>(), 0xcf08));
@@ -164,6 +165,8 @@ public void shouldReturnExpectedValueForTransfer() {
164165
null,
165166
null,
166167
null,
168+
null,
169+
null,
167170
null);
168171
final JsonRpcRequestContext request = requestWithParams(callParameter);
169172
final JsonRpcResponse expectedResponse =
@@ -189,6 +192,8 @@ public void shouldReturnExpectedValueForContractDeploy() {
189192
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
190193
null,
191194
null,
195+
null,
196+
null,
192197
null);
193198
final JsonRpcRequestContext request = requestWithParams(callParameter);
194199
final JsonRpcResponse expectedResponse =
@@ -214,6 +219,8 @@ public void shouldIgnoreSenderBalanceAccountWhenStrictModeDisabledAndReturnExpec
214219
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
215220
null,
216221
false,
222+
null,
223+
null,
217224
null);
218225
final JsonRpcRequestContext request = requestWithParams(callParameter);
219226
final JsonRpcResponse expectedResponse =
@@ -227,7 +234,8 @@ public void shouldIgnoreSenderBalanceAccountWhenStrictModeDisabledAndReturnExpec
227234
@Test
228235
public void shouldReturnExpectedValueForInsufficientGas() {
229236
final JsonCallParameter callParameter =
230-
new JsonCallParameter(null, null, 1L, null, null, null, null, null, null, null, null);
237+
new JsonCallParameter(
238+
null, null, 1L, null, null, null, null, null, null, null, null, null, null);
231239
final JsonRpcRequestContext request = requestWithParams(callParameter);
232240
final JsonRpcResponse expectedResponse =
233241
new JsonRpcSuccessResponse(null, new CreateAccessListResult(new ArrayList<>(), 0xcf08));
@@ -262,7 +270,9 @@ private JsonCallParameter createAccessListJsonCallParameters(
262270
null,
263271
null,
264272
null,
265-
accessList);
273+
accessList,
274+
null,
275+
null);
266276
}
267277

268278
private JsonRpcRequestContext requestWithParams(final Object... params) {

ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/fork/frontier/EthEstimateGasIntegrationTest.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ public void setUp() {
6565
@Test
6666
public void shouldReturnExpectedValueForEmptyCallParameter() {
6767
final JsonCallParameter callParameter =
68-
new JsonCallParameter(null, null, null, null, null, null, null, null, null, null, null);
68+
new JsonCallParameter(
69+
null, null, null, null, null, null, null, null, null, null, null, null, null);
6970
final JsonRpcRequestContext request = requestWithParams(callParameter);
7071
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x5208");
7172

@@ -88,6 +89,8 @@ public void shouldReturnExpectedValueForTransfer() {
8889
null,
8990
null,
9091
null,
92+
null,
93+
null,
9194
null);
9295
final JsonRpcRequestContext request = requestWithParams(callParameter);
9396
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x5208");
@@ -112,6 +115,8 @@ public void shouldReturnExpectedValueForContractDeploy() {
112115
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
113116
null,
114117
null,
118+
null,
119+
null,
115120
null);
116121
final JsonRpcRequestContext request = requestWithParams(callParameter);
117122
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x1b551");
@@ -136,6 +141,8 @@ public void shouldIgnoreSenderBalanceAccountWhenStrictModeDisabledAndReturnExpec
136141
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
137142
null,
138143
false,
144+
null,
145+
null,
139146
null);
140147
final JsonRpcRequestContext request = requestWithParams(callParameter);
141148
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x1b551");
@@ -160,6 +167,8 @@ public void shouldNotIgnoreSenderBalanceAccountWhenStrictModeDisabledAndThrowErr
160167
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
161168
null,
162169
true,
170+
null,
171+
null,
163172
null);
164173
final JsonRpcRequestContext request = requestWithParams(callParameter);
165174

@@ -176,7 +185,8 @@ public void shouldNotIgnoreSenderBalanceAccountWhenStrictModeDisabledAndThrowErr
176185
@Test
177186
public void shouldReturnExpectedValueForInsufficientGas() {
178187
final JsonCallParameter callParameter =
179-
new JsonCallParameter(null, null, 1L, null, null, null, null, null, null, null, null);
188+
new JsonCallParameter(
189+
null, null, 1L, null, null, null, null, null, null, null, null, null, null);
180190
final JsonRpcRequestContext request = requestWithParams(callParameter);
181191
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x5208");
182192

ethereum/api/src/integration-test/java/org/hyperledger/besu/ethereum/api/jsonrpc/methods/fork/london/EthCallIntegrationTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ public void shouldReturnSuccessWithoutGasPriceAndEmptyBalance() {
7575
Bytes.fromHexString("0x2e64cec1"),
7676
null,
7777
null,
78+
null,
79+
null,
7880
null);
7981
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
8082
final JsonRpcResponse expectedResponse =
@@ -100,6 +102,8 @@ public void shouldReturnErrorWithGasPriceTooHigh() {
100102
Bytes.fromHexString("0x2e64cec1"),
101103
null,
102104
null,
105+
null,
106+
null,
103107
null);
104108
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
105109
final JsonRpcResponse expectedResponse =
@@ -124,6 +128,8 @@ public void shouldReturnSuccessWithValidGasPrice() {
124128
Bytes.fromHexString("0x2e64cec1"),
125129
null,
126130
null,
131+
null,
132+
null,
127133
null);
128134
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
129135
final JsonRpcResponse expectedResponse =
@@ -149,6 +155,8 @@ public void shouldReturnErrorWithGasPriceLessThanCurrentBaseFee() {
149155
Bytes.fromHexString("0x2e64cec1"),
150156
null,
151157
null,
158+
null,
159+
null,
152160
null);
153161
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
154162
final JsonRpcResponse expectedResponse =
@@ -173,6 +181,8 @@ public void shouldReturnSuccessWithValidMaxFeePerGas() {
173181
Bytes.fromHexString("0x2e64cec1"),
174182
null,
175183
null,
184+
null,
185+
null,
176186
null);
177187
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
178188
final JsonRpcResponse expectedResponse =
@@ -198,6 +208,8 @@ public void shouldReturnSuccessWithValidMaxFeePerGasAndMaxPriorityFeePerGas() {
198208
Bytes.fromHexString("0x2e64cec1"),
199209
null,
200210
null,
211+
null,
212+
null,
201213
null);
202214
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
203215
final JsonRpcResponse expectedResponse =
@@ -223,6 +235,8 @@ public void shouldReturnErrorWithValidMaxFeePerGasLessThanCurrentBaseFee() {
223235
Bytes.fromHexString("0x2e64cec1"),
224236
null,
225237
null,
238+
null,
239+
null,
226240
null);
227241
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
228242
final JsonRpcResponse expectedResponse =
@@ -247,6 +261,8 @@ public void shouldReturnErrorWithValidMaxFeePerGasLessThanMaxPriorityFeePerGas()
247261
Bytes.fromHexString("0x2e64cec1"),
248262
null,
249263
null,
264+
null,
265+
null,
250266
null);
251267
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
252268
final JsonRpcResponse expectedResponse =
@@ -272,6 +288,8 @@ public void shouldReturnErrorWithMaxFeePerGasAndEmptyBalance() {
272288
Bytes.fromHexString("0x2e64cec1"),
273289
null,
274290
null,
291+
null,
292+
null,
275293
null);
276294
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
277295
final JsonRpcResponse expectedResponse =

0 commit comments

Comments
 (0)