Skip to content
Closed
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Changelog
## 22.10.4

### Additions and Improvements
- Add access list to Transaction Call Object [#4802](https://github.com/hyperledger/besu/issues/4801)

### Breaking Changes

### Additions and Improvements
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,9 @@ public boolean isSyncing() {
return Optional.ofNullable(syncState.get()).map(s -> !s.isInSync()).orElse(Boolean.TRUE)
// this is necessary for when we do not have a sync target yet, like at startup.
// not being stopped at ttd implies we are syncing.
&& !syncState.get().hasReachedTerminalDifficulty().orElse(Boolean.FALSE);
&& Optional.ofNullable(syncState.get())
.map(s -> !(s.hasReachedTerminalDifficulty().orElse(Boolean.FALSE)))
.orElse(Boolean.TRUE);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,32 @@ public void tryingToRetrieveABlockPutButEvictedReturnsEmpty() {
assertThat(postMergeContext.retrieveBlockById(evictedPayloadId)).isEmpty();
}

@Test
public void syncStateNullShouldNotThrowWhenIsSyncingIsCalled() {
// simulate a possible syncState null when we still have got a syncState set yet.
postMergeContext.setSyncState(null);
assertThat(postMergeContext.isSyncing()).isTrue();

// after setting a syncState things should progress as expected.
postMergeContext.setSyncState(mockSyncState);

// Assuming we're not in sync
when(mockSyncState.isInSync()).thenReturn(Boolean.FALSE);

when(mockSyncState.hasReachedTerminalDifficulty()).thenReturn(Optional.empty());
assertThat(postMergeContext.isSyncing()).isTrue();

when(mockSyncState.hasReachedTerminalDifficulty()).thenReturn(Optional.of(Boolean.FALSE));
assertThat(postMergeContext.isSyncing()).isTrue();

when(mockSyncState.hasReachedTerminalDifficulty()).thenReturn(Optional.of(Boolean.TRUE));
assertThat(postMergeContext.isSyncing()).isFalse();

// if we're in sync reached ttd does not matter anymore
when(mockSyncState.isInSync()).thenReturn(Boolean.TRUE);
assertThat(postMergeContext.isSyncing()).isFalse();
}

private static class MergeStateChangeCollector implements MergeStateHandler {
final List<Boolean> stateChanges = new ArrayList<>();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public void shouldReturnExpectedResultForCallAtLatestBlock() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -96,6 +97,7 @@ public void shouldReturnExpectedResultForCallAtSpecificBlock() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "0x8");
final JsonRpcResponse expectedResponse =
Expand All @@ -120,6 +122,7 @@ public void shouldReturnSuccessWhenCreatingContract() {
null,
Bytes.fromHexString(
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -144,6 +147,7 @@ public void shouldReturnErrorWithGasLimitTooLow() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -166,7 +170,8 @@ public void shouldReturnErrorWithGasPriceTooHighAndStrict() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
true);
true,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
new JsonRpcErrorResponse(null, JsonRpcError.TRANSACTION_UPFRONT_COST_EXCEEDS_BALANCE);
Expand All @@ -188,7 +193,8 @@ public void shouldReturnSuccessWithGasPriceTooHighNotStrict() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
false);
false,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
new JsonRpcSuccessResponse(
Expand All @@ -211,6 +217,7 @@ public void shouldReturnErrorWithGasPriceTooHigh() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -233,6 +240,7 @@ public void shouldReturnSuccessWithValidGasPrice() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -256,6 +264,7 @@ public void shouldReturnErrorWithGasPriceAndEmptyBalance() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -278,6 +287,7 @@ public void shouldReturnSuccessWithZeroGasPriceAndEmptyBalance() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -301,6 +311,7 @@ public void shouldReturnSuccessWithoutGasPriceAndEmptyBalance() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -324,6 +335,7 @@ public void shouldReturnSuccessWithInvalidGasPricingAndEmptyBalance() {
null,
null,
Bytes.fromHexString("0x12a7b914"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -347,6 +359,7 @@ public void shouldReturnEmptyHashResultForCallWithOnlyToField() {
null,
null,
null,
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public void setUp() {
@Test
public void shouldReturnExpectedValueForEmptyCallParameter() {
final JsonCallParameter callParameter =
new JsonCallParameter(null, null, null, null, null, null, null, null, null);
new JsonCallParameter(null, null, null, null, null, null, null, null, null, null);
final JsonRpcRequestContext request = requestWithParams(callParameter);
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x5208");

Expand All @@ -85,6 +85,7 @@ public void shouldReturnExpectedValueForTransfer() {
null,
Wei.ONE,
null,
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter);
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x5208");
Expand All @@ -107,6 +108,7 @@ public void shouldReturnExpectedValueForContractDeploy() {
null,
Bytes.fromHexString(
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter);
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x1b551");
Expand All @@ -129,7 +131,8 @@ public void shouldIgnoreSenderBalanceAccountWhenStrictModeDisabledAndReturnExpec
null,
Bytes.fromHexString(
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
false);
false,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter);
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x1b551");

Expand All @@ -151,7 +154,8 @@ public void shouldNotIgnoreSenderBalanceAccountWhenStrictModeDisabledAndThrowErr
null,
Bytes.fromHexString(
"0x608060405234801561001057600080fd5b50610157806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633bdab8bf146100515780639ae97baa14610068575b600080fd5b34801561005d57600080fd5b5061006661007f565b005b34801561007457600080fd5b5061007d6100b9565b005b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60016040518082815260200191505060405180910390a1565b7fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60026040518082815260200191505060405180910390a17fa53887c1eed04528e23301f55ad49a91634ef5021aa83a97d07fd16ed71c039a60036040518082815260200191505060405180910390a15600a165627a7a7230582010ddaa52e73a98c06dbcd22b234b97206c1d7ed64a7c048e10c2043a3d2309cb0029"),
true);
true,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter);
final JsonRpcResponse expectedResponse =
new JsonRpcErrorResponse(null, JsonRpcError.TRANSACTION_UPFRONT_COST_EXCEEDS_BALANCE);
Expand All @@ -163,7 +167,7 @@ public void shouldNotIgnoreSenderBalanceAccountWhenStrictModeDisabledAndThrowErr
@Test
public void shouldReturnExpectedValueForInsufficientGas() {
final JsonCallParameter callParameter =
new JsonCallParameter(null, null, 1L, null, null, null, null, null, null);
new JsonCallParameter(null, null, 1L, null, null, null, null, null, null, null);
final JsonRpcRequestContext request = requestWithParams(callParameter);
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(null, "0x5208");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public void shouldReturnSuccessWithoutGasPriceAndEmptyBalance() {
null,
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -96,6 +97,7 @@ public void shouldReturnErrorWithGasPriceTooHigh() {
null,
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -118,6 +120,7 @@ public void shouldReturnSuccessWithValidGasPrice() {
null,
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -141,6 +144,7 @@ public void shouldReturnErrorWithGasPriceLessThanCurrentBaseFee() {
null,
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -163,6 +167,7 @@ public void shouldReturnSuccessWithValidMaxFeePerGas() {
Wei.fromHexString("0x3B9ACA01"),
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -186,6 +191,7 @@ public void shouldReturnSuccessWithValidMaxFeePerGasAndMaxPriorityFeePerGas() {
Wei.fromHexString("0x3B9ACA01"),
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -209,6 +215,7 @@ public void shouldReturnErrorWithValidMaxFeePerGasLessThanCurrentBaseFee() {
Wei.fromHexString("0x0A"),
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -231,6 +238,7 @@ public void shouldReturnErrorWithValidMaxFeePerGasLessThanMaxPriorityFeePerGas()
Wei.fromHexString("0x3B9ACA01"),
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand All @@ -254,6 +262,7 @@ public void shouldReturnErrorWithMaxFeePerGasAndEmptyBalance() {
Wei.fromHexString("0x3B9ACA01"),
null,
Bytes.fromHexString("0x2e64cec1"),
null,
null);
final JsonRpcRequestContext request = requestWithParams(callParameter, "latest");
final JsonRpcResponse expectedResponse =
Expand Down
Loading