diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/TransactionPendingResult.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/TransactionPendingResult.java index 3221995f422..4200f75f658 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/TransactionPendingResult.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/TransactionPendingResult.java @@ -84,8 +84,8 @@ public TransactionPendingResult(final Transaction transaction) { this.from = transaction.getSender().toString(); this.gas = Quantity.create(transaction.getGasLimit()); this.maxPriorityFeePerGas = - transaction.getMaxPriorityFeePerGas().map(Wei::toHexString).orElse(null); - this.maxFeePerGas = transaction.getMaxFeePerGas().map(Wei::toHexString).orElse(null); + transaction.getMaxPriorityFeePerGas().map(Wei::toShortHexString).orElse(null); + this.maxFeePerGas = transaction.getMaxFeePerGas().map(Wei::toShortHexString).orElse(null); this.gasPrice = transaction.getGasPrice().map(Quantity::create).orElse(maxFeePerGas); this.hash = transaction.getHash().toString(); this.input = transaction.getPayload().toString(); diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TxPoolBesuPendingTransactionsTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TxPoolBesuPendingTransactionsTest.java index 60c506cd927..884048536ab 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TxPoolBesuPendingTransactionsTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TxPoolBesuPendingTransactionsTest.java @@ -31,6 +31,7 @@ import java.time.Instant; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -74,6 +75,31 @@ public void shouldReturnPendingTransactions() { assertThat(result.size()).isEqualTo(4); } + @Test + public void pendingTransactionsGasPricesDoNotHaveLeadingZeroes() { + final JsonRpcRequestContext request = + new JsonRpcRequestContext( + new JsonRpcRequest( + JSON_RPC_VERSION, TXPOOL_PENDING_TRANSACTIONS_METHOD, new Object[] {100})); + + final JsonRpcSuccessResponse actualResponse = (JsonRpcSuccessResponse) method.response(request); + final Set result = + (Set) actualResponse.getResult(); + + assertThat(result) + .extracting(TransactionPendingResult::getGasPrice) + .filteredOn(Objects::nonNull) + .allSatisfy(p -> assertThat(p).doesNotContain("0x0")); + assertThat(result) + .extracting(TransactionPendingResult::getMaxFeePerGas) + .filteredOn(Objects::nonNull) + .allSatisfy(p -> assertThat(p).doesNotContain("0x0")); + assertThat(result) + .extracting(TransactionPendingResult::getMaxPriorityFeePerGas) + .filteredOn(Objects::nonNull) + .allSatisfy(p -> assertThat(p).doesNotContain("0x0")); + } + @Test public void shouldReturnPendingTransactionsWithLimit() { final JsonRpcRequestContext request =