From c249f7c388a7a440373f274824a206af5e2c4b0f Mon Sep 17 00:00:00 2001 From: sdimitrov9 Date: Wed, 11 Dec 2024 16:58:23 +0200 Subject: [PATCH] Fix sonar issues Signed-off-by: sdimitrov9 --- .../common/domain/token/TokenAccountTest.java | 4 +- .../domain/transaction/RecordItemTest.java | 16 +- .../graphql/service/EntityServiceTest.java | 2 +- .../listener/NotifyingTopicListenerTest.java | 6 +- .../repository/NodeStakeRepositoryTest.java | 24 +- .../config/HibernateConfiguration.java | 5 +- .../batch/TransactionHashTxManager.java | 28 ++- .../mirror/importer/TestRecordFiles.java | 36 +-- .../AddressBookServiceImplTest.java | 6 +- .../downloader/AbstractDownloaderTest.java | 2 +- .../migration/AbstractJavaMigrationTest.java | 4 +- .../migration/CleanupEntityMigrationTest.java | 227 ++++-------------- .../migration/CustomFeesMigrationTest.java | 14 +- .../EntityTimestampMigrationTest.java | 4 +- .../EntityTimestampMigrationV1_46_0Test.java | 4 +- .../RemoveInvalidEntityMigrationTest.java | 74 +++--- ...icCryptoTransferApprovalMigrationTest.java | 2 - ...TransferTransactionPayerMigrationTest.java | 15 +- .../parser/domain/RecordItemBuilder.java | 19 +- .../EntityRecordItemListenerCryptoTest.java | 21 +- ...cordItemListenerEntityTransactionTest.java | 10 +- .../EntityRecordItemListenerFileTest.java | 9 +- .../EntityRecordItemListenerScheduleTest.java | 3 +- .../EntityRecordItemListenerTokenTest.java | 2 +- .../EntityRecordItemListenerTopicTest.java | 2 +- .../EthereumTransactionHandlerTest.java | 8 +- .../line/AccountBalanceLineParserV2Test.java | 4 +- .../reader/record/RecordFileReaderTest.java | 3 +- .../CompositeSignatureFileReaderTest.java | 6 +- .../importer/retention/RetentionJobTest.java | 2 +- .../monitor/publish/PublishException.java | 15 +- .../DurationToStringSerializerTest.java | 3 +- .../ExpressionConverterImplTest.java | 41 ++-- .../TokenCreateTransactionSupplierTest.java | 2 - .../TokenPauseTransactionSupplierTest.java | 8 +- .../TokenUpdateTransactionSupplierTest.java | 2 - .../client/AbstractNetworkClient.java | 3 +- .../e2e/acceptance/client/AccountClient.java | 3 +- .../client/EncoderDecoderFacade.java | 13 - .../e2e/acceptance/steps/AccountFeature.java | 2 +- .../e2e/acceptance/steps/CallFeature.java | 8 +- .../acceptance/steps/ERCContractFeature.java | 2 +- .../e2e/acceptance/steps/EthereumFeature.java | 8 +- .../acceptance/steps/HistoricalFeature.java | 4 + .../steps/PrecompileContractFeature.java | 11 +- .../e2e/acceptance/steps/ScheduleFeature.java | 11 +- .../test/e2e/acceptance/util/TestUtil.java | 2 +- .../store/contract/HederaEvmWorldState.java | 2 - .../calculation/utils/OpUsageCtxHelper.java | 12 +- .../fees/usage/token/TokenOpsUsageUtils.java | 3 +- .../precompile/impl/SystemContractAbis.java | 20 +- .../com/hedera/services/utils/MiscUtils.java | 2 +- .../account/MirrorEvmContractAliasesTest.java | 4 +- .../HederaBlockHashOperationTest.java | 2 +- .../web3/evm/store/CachingStateFrameTest.java | 12 +- .../evm/store/UpdatableReferenceCacheSpy.java | 2 - .../store/UpdatableReferenceCacheTest.java | 2 - .../contract/MockLedgerWorldUpdater.java | 4 +- .../TokenAllowanceRepositoryTest.java | 5 +- .../TokenBalanceRepositoryTest.java | 1 - .../execution/LivePricesSourceTest.java | 4 +- .../UsageBasedFeeCalculatorTest.java | 3 +- .../utils/AccessorBasedUsagesTest.java | 4 +- .../utils/OpUsageCtxHelperTest.java | 4 - .../usage/state/UsageAccumulatorTest.java | 4 +- .../usage/token/TokenOpsUsageUtilsTest.java | 16 +- .../crypto/CryptoDeleteAllowanceMetaTest.java | 4 +- .../precompile/SyntheticTxnFactoryTest.java | 4 - .../TokenUpdateKeysPrecompileTest.java | 15 -- .../precompile/TokenUpdateWrapperTest.java | 8 +- .../precompile/TransferPrecompileTest.java | 34 --- .../hedera/services/utils/MiscUtilsTest.java | 67 +++--- 72 files changed, 352 insertions(+), 586 deletions(-) diff --git a/hedera-mirror-common/src/test/java/com/hedera/mirror/common/domain/token/TokenAccountTest.java b/hedera-mirror-common/src/test/java/com/hedera/mirror/common/domain/token/TokenAccountTest.java index 71426f78a43..cf9403c5e24 100644 --- a/hedera-mirror-common/src/test/java/com/hedera/mirror/common/domain/token/TokenAccountTest.java +++ b/hedera-mirror-common/src/test/java/com/hedera/mirror/common/domain/token/TokenAccountTest.java @@ -23,8 +23,8 @@ class TokenAccountTest { - private final EntityId FOO_COIN_ID = EntityId.of("0.0.101"); - private final EntityId ACCOUNT_ID = EntityId.of("0.0.102"); + private static final EntityId FOO_COIN_ID = EntityId.of("0.0.101"); + private static final EntityId ACCOUNT_ID = EntityId.of("0.0.102"); @Test void createValidTokenAccount() { diff --git a/hedera-mirror-common/src/test/java/com/hedera/mirror/common/domain/transaction/RecordItemTest.java b/hedera-mirror-common/src/test/java/com/hedera/mirror/common/domain/transaction/RecordItemTest.java index 7f928a903b3..a257024caec 100644 --- a/hedera-mirror-common/src/test/java/com/hedera/mirror/common/domain/transaction/RecordItemTest.java +++ b/hedera-mirror-common/src/test/java/com/hedera/mirror/common/domain/transaction/RecordItemTest.java @@ -87,6 +87,18 @@ class RecordItemTest { .setTransactionHash(ByteString.copyFrom(nextBytes(32))) .build(); + private static final TransactionRecord TRANSACTION_RECORD_ETHEREUM_HASH = TransactionRecord.newBuilder() + .setReceipt(TransactionReceipt.newBuilder().setStatusValue(22).build()) + .setMemo("memo") + .setTransactionHash(ByteString.copyFrom(nextBytes(32))) + .build(); + + private static final TransactionRecord TRANSACTION_RECORD_HEDERA_HASH = TransactionRecord.newBuilder() + .setReceipt(TransactionReceipt.newBuilder().setStatusValue(22).build()) + .setMemo("memo") + .setTransactionHash(ByteString.copyFrom(nextBytes(48))) + .build(); + @CsvSource({ ", FEE_SCHEDULE_FILE_PART_UPLOADED, true", ", SUCCESS, true", @@ -128,10 +140,10 @@ void isSuccessful(ResponseCodeEnum parentStatus, ResponseCodeEnum childStatus, b void getTransactionHashEthereum() { var recordItem = RecordItem.builder() .transaction(DEFAULT_TRANSACTION) - .transactionRecord(TRANSACTION_RECORD) + .transactionRecord(TRANSACTION_RECORD_ETHEREUM_HASH) .build(); assertThat(recordItem.getTransactionHash()) - .isEqualTo(TRANSACTION_RECORD.getTransactionHash().toByteArray()); + .isEqualTo(TRANSACTION_RECORD_ETHEREUM_HASH.getTransactionHash().toByteArray()); } @Test diff --git a/hedera-mirror-graphql/src/test/java/com/hedera/mirror/graphql/service/EntityServiceTest.java b/hedera-mirror-graphql/src/test/java/com/hedera/mirror/graphql/service/EntityServiceTest.java index 8b0e876315e..f3f9d20f763 100644 --- a/hedera-mirror-graphql/src/test/java/com/hedera/mirror/graphql/service/EntityServiceTest.java +++ b/hedera-mirror-graphql/src/test/java/com/hedera/mirror/graphql/service/EntityServiceTest.java @@ -39,7 +39,7 @@ class EntityServiceTest { private final DomainBuilder domainBuilder = new DomainBuilder(); private final Base32 base32 = new Base32(); - private final int EVM_ADDRESS_BYTE_LENGTH = 20; + private static final int EVM_ADDRESS_BYTE_LENGTH = 20; @Mock private EntityRepository entityRepository; diff --git a/hedera-mirror-grpc/src/test/java/com/hedera/mirror/grpc/listener/NotifyingTopicListenerTest.java b/hedera-mirror-grpc/src/test/java/com/hedera/mirror/grpc/listener/NotifyingTopicListenerTest.java index e2b9166d51b..ba13089c103 100644 --- a/hedera-mirror-grpc/src/test/java/com/hedera/mirror/grpc/listener/NotifyingTopicListenerTest.java +++ b/hedera-mirror-grpc/src/test/java/com/hedera/mirror/grpc/listener/NotifyingTopicListenerTest.java @@ -47,7 +47,7 @@ class NotifyingTopicListenerTest extends AbstractSharedTopicListenerTest { "valid_start_timestamp":1594401416000000000 }"""; private static final Duration WAIT = Duration.ofSeconds(1L); - private static boolean INITIALIZED = false; + private static boolean initialized = false; private final NotifyingTopicListener topicListener; private final JdbcTemplate jdbcTemplate; @@ -58,7 +58,7 @@ protected ListenerProperties.ListenerType getType() { @BeforeEach void warmup() { - if (!INITIALIZED) { + if (!initialized) { try { // Warm up the database connection var filter = TopicMessageFilter.builder().build(); @@ -68,7 +68,7 @@ void warmup() { .expectNextCount(1) .thenCancel() .verify(WAIT); - INITIALIZED = true; + initialized = true; } catch (AssertionError e) { log.warn("Unable to warmup connection: {}", e.getMessage()); } diff --git a/hedera-mirror-grpc/src/test/java/com/hedera/mirror/grpc/repository/NodeStakeRepositoryTest.java b/hedera-mirror-grpc/src/test/java/com/hedera/mirror/grpc/repository/NodeStakeRepositoryTest.java index ce015f386e0..4d0983aac85 100644 --- a/hedera-mirror-grpc/src/test/java/com/hedera/mirror/grpc/repository/NodeStakeRepositoryTest.java +++ b/hedera-mirror-grpc/src/test/java/com/hedera/mirror/grpc/repository/NodeStakeRepositoryTest.java @@ -68,31 +68,31 @@ void findAllByConsensusTimestamp() { @Test void findAllStakeByConsensusTimestamp() { long consensusTimestamp = 0L; - var nodeStake0_0 = nodeStake(consensusTimestamp, 0L, 0L); - var nodeStake0_1 = nodeStake(consensusTimestamp, 1L, 1L); + var nodeStakeZeroZero = nodeStake(consensusTimestamp, 0L, 0L); + var nodeStakeZeroOne = nodeStake(consensusTimestamp, 1L, 1L); assertThat(nodeStakeRepository.findAllStakeByConsensusTimestamp(consensusTimestamp)) .as("Latest timestamp 0 stakes") .containsAllEntriesOf(Map.of( - nodeStake0_0.getNodeId(), - nodeStake0_0.getStake(), - nodeStake0_1.getNodeId(), - nodeStake0_1.getStake())); + nodeStakeZeroZero.getNodeId(), + nodeStakeZeroZero.getStake(), + nodeStakeZeroOne.getNodeId(), + nodeStakeZeroOne.getStake())); // Clear cache and load the next day's node stake info reset(); consensusTimestamp++; - var nodeStake1_0 = nodeStake(consensusTimestamp, 0L, 10L); - var nodeStake1_1 = nodeStake(consensusTimestamp, 1L, 11L); + var nodeStakeOneZero = nodeStake(consensusTimestamp, 0L, 10L); + var nodeStakeOneOne = nodeStake(consensusTimestamp, 1L, 11L); assertThat(nodeStakeRepository.findAllStakeByConsensusTimestamp(consensusTimestamp)) .as("Latest timestamp 1 stakes") .containsAllEntriesOf(Map.of( - nodeStake1_0.getNodeId(), - nodeStake1_0.getStake(), - nodeStake1_1.getNodeId(), - nodeStake1_1.getStake())); + nodeStakeOneZero.getNodeId(), + nodeStakeOneZero.getStake(), + nodeStakeOneOne.getNodeId(), + nodeStakeOneOne.getStake())); } private NodeStake nodeStake(long consensusTimestamp, long nodeId, long stake) { diff --git a/hedera-mirror-importer/src/main/java/com/hedera/mirror/importer/config/HibernateConfiguration.java b/hedera-mirror-importer/src/main/java/com/hedera/mirror/importer/config/HibernateConfiguration.java index 692dd8da0c5..39203f42d77 100644 --- a/hedera-mirror-importer/src/main/java/com/hedera/mirror/importer/config/HibernateConfiguration.java +++ b/hedera-mirror-importer/src/main/java/com/hedera/mirror/importer/config/HibernateConfiguration.java @@ -16,8 +16,9 @@ package com.hedera.mirror.importer.config; +import static org.hibernate.cfg.JdbcSettings.STATEMENT_INSPECTOR; + import java.util.Map; -import org.hibernate.cfg.AvailableSettings; import org.hibernate.resource.jdbc.spi.StatementInspector; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.orm.jpa.HibernatePropertiesCustomizer; @@ -32,7 +33,7 @@ class HibernateConfiguration implements HibernatePropertiesCustomizer { @Override public void customize(Map hibernateProperties) { - hibernateProperties.put(AvailableSettings.STATEMENT_INSPECTOR, statementInspector()); + hibernateProperties.put(STATEMENT_INSPECTOR, statementInspector()); } /** diff --git a/hedera-mirror-importer/src/main/java/com/hedera/mirror/importer/parser/batch/TransactionHashTxManager.java b/hedera-mirror-importer/src/main/java/com/hedera/mirror/importer/parser/batch/TransactionHashTxManager.java index f40922f4ece..183b01ba7dd 100644 --- a/hedera-mirror-importer/src/main/java/com/hedera/mirror/importer/parser/batch/TransactionHashTxManager.java +++ b/hedera-mirror-importer/src/main/java/com/hedera/mirror/importer/parser/batch/TransactionHashTxManager.java @@ -52,18 +52,22 @@ public void afterCompletion(int status) { for (ThreadState threadState : threadConnections.values()) { try (Connection connection = threadState.getConnection()) { - if (status == STATUS_COMMITTED) { - connection.commit(); - successfulShards.addAll(threadState.getProcessedShards()); - threadState.setStatus(STATUS_COMMITTED); - } else if (status == STATUS_ROLLED_BACK) { - connection.rollback(); - successfulShards.addAll(threadState.getProcessedShards()); - threadState.setStatus(STATUS_ROLLED_BACK); - } else { - connection.rollback(); - failedShards.addAll(threadState.getProcessedShards()); - threadState.setStatus(STATUS_UNKNOWN); + switch (status) { + case STATUS_COMMITTED -> { + connection.commit(); + successfulShards.addAll(threadState.getProcessedShards()); + threadState.setStatus(STATUS_COMMITTED); + } + case STATUS_ROLLED_BACK -> { + connection.rollback(); + successfulShards.addAll(threadState.getProcessedShards()); + threadState.setStatus(STATUS_ROLLED_BACK); + } + default -> { + connection.rollback(); + failedShards.addAll(threadState.getProcessedShards()); + threadState.setStatus(STATUS_UNKNOWN); + } } } catch (Exception e) { log.error( diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/TestRecordFiles.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/TestRecordFiles.java index 18d3b2ca898..6ac6b098007 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/TestRecordFiles.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/TestRecordFiles.java @@ -48,7 +48,7 @@ public class TestRecordFiles { public Map getAll() { var digestAlgorithm = DigestAlgorithm.SHA_384; - var recordFileV1_1 = RecordFile.builder() + var recordFileVersionOneOne = RecordFile.builder() .consensusStart(1561990380317763000L) .consensusEnd(1561990399074934000L) .count(15L) @@ -63,7 +63,7 @@ public Map getAll() { .size(4898) .version(1) .build(); - var recordFileV1_2 = RecordFile.builder() + var recordFileVersionOneTwo = RecordFile.builder() .consensusStart(1561991340302068000L) .consensusEnd(1561991353226225001L) .count(69L) @@ -73,11 +73,11 @@ public Map getAll() { .hash( "1faf198f8fdbefa59bde191f214d73acdc4f5c0f434677a7edf9591b129e21aea90a5b3119d2802cee522e7be6bc8830") .name("2019-07-01T14_29_00.302068Z.rcd") - .previousHash(recordFileV1_1.getFileHash()) + .previousHash(recordFileVersionOneOne.getFileHash()) .size(22347) .version(1) .build(); - var recordFileV2_1 = RecordFile.builder() + var recordFileVersionTwoOne = RecordFile.builder() .consensusStart(1567188600419072000L) .consensusEnd(1567188604906443001L) .count(19L) @@ -91,7 +91,7 @@ public Map getAll() { .size(8515) .version(2) .build(); - var recordFileV2_2 = RecordFile.builder() + var recordFileVersionTwoTwo = RecordFile.builder() .consensusStart(1567188605249678000L) .consensusEnd(1567188609705382001L) .count(15L) @@ -101,11 +101,11 @@ public Map getAll() { .hash( "5ed51baeff204eb6a2a68b76bbaadcb9b6e7074676c1746b99681d075bef009e8d57699baaa6342feec4e83726582d36") .name("2019-08-30T18_10_05.249678Z.rcd") - .previousHash(recordFileV2_1.getFileHash()) + .previousHash(recordFileVersionTwoOne.getFileHash()) .size(6649) .version(2) .build(); - var recordFileV5_1 = RecordFile.builder() + var recordFileVersionFiveOne = RecordFile.builder() .consensusStart(1610402964063739000L) .consensusEnd(1610402964063739000L) .count(1L) @@ -124,7 +124,7 @@ public Map getAll() { .size(498) .version(5) .build(); - var recordFileV5_2 = RecordFile.builder() + var recordFileVersionFiveTwo = RecordFile.builder() .consensusStart(1610402974097416003L) .consensusEnd(1610402974097416003L) .count(1L) @@ -139,11 +139,11 @@ public Map getAll() { .metadataHash( "912869b5204ffbb7e437aaa6e7a09e9d53da98ead27942fdf7017e850827e857fadb1167e8877cfb8175883adcd74f7d") .name("2021-01-11T22_09_34.097416003Z.rcd") - .previousHash(recordFileV5_1.getHash()) + .previousHash(recordFileVersionFiveOne.getHash()) .size(498) .version(5) .build(); - var recordFileV6_1 = RecordFile.builder() + var recordFileVersionSixTwo = RecordFile.builder() .consensusStart(1657701968041986003L) .consensusEnd(1657701968041986003L) .count(1L) @@ -203,7 +203,7 @@ public Map getAll() { .metadataHash( "b13a2b638c5688dbec43b97dbee8ad637d2d42376fc313c628a990ac65aefdbd39832cf5ece42b925a520ed2d2bf8eac") .name("2022-07-13T08_46_11.304284003Z.rcd.gz") - .previousHash(recordFileV6_1.getHash()) + .previousHash(recordFileVersionSixTwo.getHash()) .size(805) .sidecarCount(1) .sidecars(List.of(SidecarFile.builder() @@ -222,13 +222,13 @@ public Map getAll() { .build(); var allFiles = List.of( - recordFileV1_1, - recordFileV1_2, - recordFileV2_1, - recordFileV2_2, - recordFileV5_1, - recordFileV5_2, - recordFileV6_1, + recordFileVersionOneOne, + recordFileVersionOneTwo, + recordFileVersionTwoOne, + recordFileVersionTwoTwo, + recordFileVersionFiveOne, + recordFileVersionFiveTwo, + recordFileVersionSixTwo, recordFileV6_2); return Collections.unmodifiableMap(allFiles.stream().collect(Collectors.toMap(RecordFile::getName, rf -> rf))); } diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/addressbook/AddressBookServiceImplTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/addressbook/AddressBookServiceImplTest.java index 279b21c1963..9017f0c77f0 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/addressbook/AddressBookServiceImplTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/addressbook/AddressBookServiceImplTest.java @@ -1001,7 +1001,8 @@ void getNodes(ConsensusMode mode, long stake, long expectedNodeStake, long expec long timestamp = domainBuilder.timestamp(); var nodeId = new AtomicInteger(0); for (int i = 0; i < TEST_INITIAL_ADDRESS_BOOK_NODE_COUNT; i++) { - var nodeStake = domainBuilder + // node stake + domainBuilder .nodeStake() .customize(n -> n.consensusTimestamp(timestamp) .nodeId(nodeId.getAndIncrement()) @@ -1033,7 +1034,8 @@ void getNodesWithNodeStakeCountMoreThanAddressBook( var nodeId = new AtomicInteger(0); final int nodeCount = 6; // regardless of mode, always have 4 nodes in address book and 6 nodes in nodeStakes. for (int i = 0; i < nodeCount; i++) { - var nodeStake = domainBuilder + // node stake + domainBuilder .nodeStake() .customize(n -> n.consensusTimestamp(timestamp) .nodeId(nodeId.getAndIncrement()) diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/downloader/AbstractDownloaderTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/downloader/AbstractDownloaderTest.java index 7110042cfd4..1a9bed7ffac 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/downloader/AbstractDownloaderTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/downloader/AbstractDownloaderTest.java @@ -659,7 +659,7 @@ void testPartialCollection() { } @Test - void testDownloadRatioSetTooLow() throws Exception { + void testDownloadRatioSetTooLow() { BigDecimal problematicDownloadRatio = new BigDecimal("0.10"); commonDownloaderProperties.setDownloadRatio(problematicDownloadRatio); assertThrows(IllegalArgumentException.class, () -> commonDownloaderProperties.init()); diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/AbstractJavaMigrationTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/AbstractJavaMigrationTest.java index d337f53b0ee..fcba11ecf3f 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/AbstractJavaMigrationTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/AbstractJavaMigrationTest.java @@ -185,7 +185,9 @@ public JavaMigration(MigrationVersion version, MigrationVersion minimumVersion) } @Override - protected void doMigrate() {} + protected void doMigrate() { + throw new UnsupportedOperationException("Missing implementation"); + } @Override public MigrationVersion getVersion() { diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/CleanupEntityMigrationTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/CleanupEntityMigrationTest.java index e6e79f5a098..9d14cda5abb 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/CleanupEntityMigrationTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/CleanupEntityMigrationTest.java @@ -97,30 +97,12 @@ void verifyEntityMigrationCreationTransactions() throws Exception { insertEntity(entity(ids[5], EntityType.SCHEDULE)); long[] createTimestamps = new long[] {10, 20, 30, 40, 50, 60}; - insertTransaction( - createTimestamps[0], - 1, - EntityType.ACCOUNT, - ResponseCodeEnum.SUCCESS, - TransactionType.CRYPTOCREATEACCOUNT); - insertTransaction( - createTimestamps[1], - 2, - EntityType.CONTRACT, - ResponseCodeEnum.SUCCESS, - TransactionType.CONTRACTCREATEINSTANCE); - insertTransaction( - createTimestamps[2], 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE); - insertTransaction( - createTimestamps[3], - 4, - EntityType.TOPIC, - ResponseCodeEnum.SUCCESS, - TransactionType.CONSENSUSCREATETOPIC); - insertTransaction( - createTimestamps[4], 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION); - insertTransaction( - createTimestamps[5], 6, EntityType.SCHEDULE, ResponseCodeEnum.SUCCESS, TransactionType.SCHEDULECREATE); + insertTransaction(createTimestamps[0], 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT); + insertTransaction(createTimestamps[1], 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE); + insertTransaction(createTimestamps[2], 3, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE); + insertTransaction(createTimestamps[3], 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC); + insertTransaction(createTimestamps[4], 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION); + insertTransaction(createTimestamps[5], 6, ResponseCodeEnum.SUCCESS, TransactionType.SCHEDULECREATE); assertEquals(ids.length, getTEntitiesCount()); @@ -181,65 +163,31 @@ void verifyEntityMigrationCreationTransactionsWithFailures() throws Exception { insertTransaction( createTimestamps[0] - 1, 1, - EntityType.ACCOUNT, ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE, TransactionType.CRYPTOCREATEACCOUNT); insertTransaction( createTimestamps[1] - 1, 2, - EntityType.CONTRACT, ResponseCodeEnum.INVALID_TRANSACTION, TransactionType.CONTRACTCREATEINSTANCE); insertTransaction( - createTimestamps[2] - 1, - 3, - EntityType.FILE, - ResponseCodeEnum.PAYER_ACCOUNT_NOT_FOUND, - TransactionType.FILECREATE); + createTimestamps[2] - 1, 3, ResponseCodeEnum.PAYER_ACCOUNT_NOT_FOUND, TransactionType.FILECREATE); insertTransaction( createTimestamps[3] - 1, 4, - EntityType.TOPIC, ResponseCodeEnum.INVALID_NODE_ACCOUNT, TransactionType.CONSENSUSCREATETOPIC); insertTransaction( - createTimestamps[4] - 1, - 5, - EntityType.TOKEN, - ResponseCodeEnum.INVALID_SIGNATURE, - TransactionType.TOKENCREATION); - insertTransaction( - createTimestamps[5] - 1, - 6, - EntityType.SCHEDULE, - ResponseCodeEnum.MEMO_TOO_LONG, - TransactionType.SCHEDULECREATE); + createTimestamps[4] - 1, 5, ResponseCodeEnum.INVALID_SIGNATURE, TransactionType.TOKENCREATION); + insertTransaction(createTimestamps[5] - 1, 6, ResponseCodeEnum.MEMO_TOO_LONG, TransactionType.SCHEDULECREATE); // successful create transactions - insertTransaction( - createTimestamps[0], - 1, - EntityType.ACCOUNT, - ResponseCodeEnum.SUCCESS, - TransactionType.CRYPTOCREATEACCOUNT); - insertTransaction( - createTimestamps[1], - 2, - EntityType.CONTRACT, - ResponseCodeEnum.SUCCESS, - TransactionType.CONTRACTCREATEINSTANCE); - insertTransaction( - createTimestamps[2], 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE); - insertTransaction( - createTimestamps[3], - 4, - EntityType.TOPIC, - ResponseCodeEnum.SUCCESS, - TransactionType.CONSENSUSCREATETOPIC); - insertTransaction( - createTimestamps[4], 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION); - insertTransaction( - createTimestamps[5], 6, EntityType.SCHEDULE, ResponseCodeEnum.SUCCESS, TransactionType.SCHEDULECREATE); + insertTransaction(createTimestamps[0], 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT); + insertTransaction(createTimestamps[1], 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE); + insertTransaction(createTimestamps[2], 3, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE); + insertTransaction(createTimestamps[3], 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC); + insertTransaction(createTimestamps[4], 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION); + insertTransaction(createTimestamps[5], 6, ResponseCodeEnum.SUCCESS, TransactionType.SCHEDULECREATE); // migration migrate(); @@ -270,53 +218,19 @@ void verifyEntityMigrationWithSingleUpdate() throws Exception { long[] createTimestamps = new long[] {10, 20, 30, 40, 50}; // successful create transactions - insertTransaction( - createTimestamps[0], - 1, - EntityType.ACCOUNT, - ResponseCodeEnum.SUCCESS, - TransactionType.CRYPTOCREATEACCOUNT); - insertTransaction( - createTimestamps[1], - 2, - EntityType.CONTRACT, - ResponseCodeEnum.SUCCESS, - TransactionType.CONTRACTCREATEINSTANCE); - insertTransaction( - createTimestamps[2], 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE); - insertTransaction( - createTimestamps[3], - 4, - EntityType.TOPIC, - ResponseCodeEnum.SUCCESS, - TransactionType.CONSENSUSCREATETOPIC); - insertTransaction( - createTimestamps[4], 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION); + insertTransaction(createTimestamps[0], 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT); + insertTransaction(createTimestamps[1], 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE); + insertTransaction(createTimestamps[2], 3, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE); + insertTransaction(createTimestamps[3], 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC); + insertTransaction(createTimestamps[4], 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION); // successful update transactions long[] modifiedTimestamps = new long[] {110, 120, 130, 140, 150}; - insertTransaction( - modifiedTimestamps[0], - 1, - EntityType.ACCOUNT, - ResponseCodeEnum.SUCCESS, - TransactionType.CRYPTOUPDATEACCOUNT); - insertTransaction( - modifiedTimestamps[1], - 2, - EntityType.CONTRACT, - ResponseCodeEnum.SUCCESS, - TransactionType.CONTRACTUPDATEINSTANCE); - insertTransaction( - modifiedTimestamps[2], 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILEUPDATE); - insertTransaction( - modifiedTimestamps[3], - 4, - EntityType.TOPIC, - ResponseCodeEnum.SUCCESS, - TransactionType.CONSENSUSUPDATETOPIC); - insertTransaction( - modifiedTimestamps[4], 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENUPDATE); + insertTransaction(modifiedTimestamps[0], 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOUPDATEACCOUNT); + insertTransaction(modifiedTimestamps[1], 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTUPDATEINSTANCE); + insertTransaction(modifiedTimestamps[2], 3, ResponseCodeEnum.SUCCESS, TransactionType.FILEUPDATE); + insertTransaction(modifiedTimestamps[3], 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSUPDATETOPIC); + insertTransaction(modifiedTimestamps[4], 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENUPDATE); // migration migrate(); @@ -347,73 +261,26 @@ void verifyEntityMigrationWithMultipleUpdates() throws Exception { long[] createTimestamps = new long[] {10, 20, 30, 40, 50}; // successful create transactions - insertTransaction( - createTimestamps[0], - 1, - EntityType.ACCOUNT, - ResponseCodeEnum.SUCCESS, - TransactionType.CRYPTOCREATEACCOUNT); - insertTransaction( - createTimestamps[1], - 2, - EntityType.CONTRACT, - ResponseCodeEnum.SUCCESS, - TransactionType.CONTRACTCREATEINSTANCE); - insertTransaction( - createTimestamps[2], 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE); - insertTransaction( - createTimestamps[3], - 4, - EntityType.TOPIC, - ResponseCodeEnum.SUCCESS, - TransactionType.CONSENSUSCREATETOPIC); - insertTransaction( - createTimestamps[4], 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION); + insertTransaction(createTimestamps[0], 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT); + insertTransaction(createTimestamps[1], 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE); + insertTransaction(createTimestamps[2], 3, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE); + insertTransaction(createTimestamps[3], 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC); + insertTransaction(createTimestamps[4], 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION); // successful update transactions long[] modifiedTimestamps = new long[] {110, 120, 130, 140, 150}; - insertTransaction( - modifiedTimestamps[0], - 1, - EntityType.ACCOUNT, - ResponseCodeEnum.SUCCESS, - TransactionType.CRYPTOUPDATEACCOUNT); - insertTransaction( - modifiedTimestamps[1], - 2, - EntityType.CONTRACT, - ResponseCodeEnum.SUCCESS, - TransactionType.CONTRACTUPDATEINSTANCE); - insertTransaction( - modifiedTimestamps[2], 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILEUPDATE); - insertTransaction( - modifiedTimestamps[3], - 4, - EntityType.TOPIC, - ResponseCodeEnum.SUCCESS, - TransactionType.CONSENSUSUPDATETOPIC); - insertTransaction( - modifiedTimestamps[4], 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENUPDATE); + insertTransaction(modifiedTimestamps[0], 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOUPDATEACCOUNT); + insertTransaction(modifiedTimestamps[1], 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTUPDATEINSTANCE); + insertTransaction(modifiedTimestamps[2], 3, ResponseCodeEnum.SUCCESS, TransactionType.FILEUPDATE); + insertTransaction(modifiedTimestamps[3], 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSUPDATETOPIC); + insertTransaction(modifiedTimestamps[4], 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENUPDATE); long[] deletedTimestamps = new long[] {210, 220, 230, 240, 250}; - insertTransaction( - deletedTimestamps[0], 1, EntityType.ACCOUNT, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTODELETE); - insertTransaction( - deletedTimestamps[1], - 2, - EntityType.CONTRACT, - ResponseCodeEnum.SUCCESS, - TransactionType.CONTRACTDELETEINSTANCE); - insertTransaction( - deletedTimestamps[2], 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILEDELETE); - insertTransaction( - deletedTimestamps[3], - 4, - EntityType.TOPIC, - ResponseCodeEnum.SUCCESS, - TransactionType.CONSENSUSDELETETOPIC); - insertTransaction( - deletedTimestamps[4], 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENDELETION); + insertTransaction(deletedTimestamps[0], 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTODELETE); + insertTransaction(deletedTimestamps[1], 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTDELETEINSTANCE); + insertTransaction(deletedTimestamps[2], 3, ResponseCodeEnum.SUCCESS, TransactionType.FILEDELETE); + insertTransaction(deletedTimestamps[3], 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSDELETETOPIC); + insertTransaction(deletedTimestamps[4], 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENDELETION); // migration migrate(); @@ -432,11 +299,7 @@ void verifyEntityMigrationWithMultipleUpdates() throws Exception { } private Transaction transaction( - long consensusNs, - long entityNum, - EntityType entityType, - ResponseCodeEnum result, - TransactionType transactionType) { + long consensusNs, long entityNum, ResponseCodeEnum result, TransactionType transactionType) { Transaction transaction = new Transaction(); transaction.setChargedTxFee(100L); transaction.setConsensusTimestamp(consensusNs); @@ -454,12 +317,8 @@ private Transaction transaction( } private void insertTransaction( - long consensusTimestamp, - long entityNum, - EntityType entityType, - ResponseCodeEnum result, - TransactionType transactionType) { - Transaction transaction = transaction(consensusTimestamp, entityNum, entityType, result, transactionType); + long consensusTimestamp, long entityNum, ResponseCodeEnum result, TransactionType transactionType) { + Transaction transaction = transaction(consensusTimestamp, entityNum, result, transactionType); jdbcOperations.update( "insert into transaction (charged_tx_fee, consensus_ns, entity_id, initial_balance, max_fee, " + "memo, " diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/CustomFeesMigrationTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/CustomFeesMigrationTest.java index 63039c3f8ef..1ef6014659e 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/CustomFeesMigrationTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/CustomFeesMigrationTest.java @@ -296,28 +296,27 @@ private void runMigration() { } private MigrationCustomFee.MigrationCustomFeeBuilder getEmptyFee() { - var id = new MigrationCustomFee.Id(domainBuilder.timestamp(), domainBuilder.id()); - return MigrationCustomFee.builder().id(id).minimumAmount(0L); + return MigrationCustomFee.builder() + .id(new MigrationCustomFee.Id(domainBuilder.timestamp(), domainBuilder.id())) + .minimumAmount(0L); } private MigrationCustomFee.MigrationCustomFeeBuilder getFixedFee() { - var id = new MigrationCustomFee.Id(domainBuilder.timestamp(), domainBuilder.id()); return MigrationCustomFee.builder() .allCollectorsAreExempt(false) .amount(domainBuilder.number()) .denominatingTokenId(domainBuilder.id()) - .id(id) + .id(new MigrationCustomFee.Id(domainBuilder.timestamp(), domainBuilder.id())) .collectorAccountId(domainBuilder.id()); } private MigrationCustomFee.MigrationCustomFeeBuilder getFractionalFee() { - var id = new MigrationCustomFee.Id(domainBuilder.timestamp(), domainBuilder.id()); return MigrationCustomFee.builder() .allCollectorsAreExempt(false) .amount(domainBuilder.number()) .denominatingTokenId(domainBuilder.id()) .amountDenominator(domainBuilder.number()) - .id(id) + .id(new MigrationCustomFee.Id(domainBuilder.timestamp(), domainBuilder.id())) .collectorAccountId(domainBuilder.id()) .maximumAmount(domainBuilder.number()) .minimumAmount(1L) @@ -325,11 +324,10 @@ private MigrationCustomFee.MigrationCustomFeeBuilder getFractionalFee() { } private MigrationCustomFee.MigrationCustomFeeBuilder getRoyaltyFee() { - var id = new MigrationCustomFee.Id(domainBuilder.timestamp(), domainBuilder.id()); return MigrationCustomFee.builder() .allCollectorsAreExempt(false) .amount(domainBuilder.number()) - .id(id) + .id(new MigrationCustomFee.Id(domainBuilder.timestamp(), domainBuilder.id())) .collectorAccountId(domainBuilder.id()) .denominatingTokenId(domainBuilder.id()) .royaltyDenominator(10L) diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/EntityTimestampMigrationTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/EntityTimestampMigrationTest.java index 1e2a1737dc6..2e603db2804 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/EntityTimestampMigrationTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/EntityTimestampMigrationTest.java @@ -119,13 +119,13 @@ private MigrationEntity entity(long id, EntityType entityType) { return entity(id, entityType, null, null); } - private MigrationEntity entity(long id, EntityType EntityType, Long createdTimestamp, Long modifiedTimestamp) { + private MigrationEntity entity(long id, EntityType entityType, Long createdTimestamp, Long modifiedTimestamp) { MigrationEntity entity = new MigrationEntity(); entity.setCreatedTimestamp(createdTimestamp); entity.setId(id); entity.setModifiedTimestamp(modifiedTimestamp); entity.setNum(id); - entity.setType(EntityType.getId()); + entity.setType(entityType.getId()); return entity; } diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/EntityTimestampMigrationV1_46_0Test.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/EntityTimestampMigrationV1_46_0Test.java index 78a37c86bfb..aa8f77720cf 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/EntityTimestampMigrationV1_46_0Test.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/EntityTimestampMigrationV1_46_0Test.java @@ -123,8 +123,8 @@ void verifyEntityTimestampMigration() throws Exception { .containsExactlyInAnyOrderElementsOf(expected); } - private MigrationEntity entity(long id, EntityType EntityType) { - return entity(id, EntityType, null, false, null); + private MigrationEntity entity(long id, EntityType entityType) { + return entity(id, entityType, null, false, null); } private MigrationEntity entity(long id, EntityType EntityType, Long createdTimestamp, Long modifiedTimestamp) { diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/RemoveInvalidEntityMigrationTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/RemoveInvalidEntityMigrationTest.java index a50ce2e85e0..32f8341a6d7 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/RemoveInvalidEntityMigrationTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/RemoveInvalidEntityMigrationTest.java @@ -87,15 +87,11 @@ void verifyEntityTypeMigrationValidEntities() throws Exception { insertEntity(5, EntityType.TOKEN); List transactionList = new ArrayList<>(); - transactionList.add( - transaction(1, 1, EntityType.ACCOUNT, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT)); - transactionList.add(transaction( - 20, 2, EntityType.CONTRACT, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE)); - transactionList.add(transaction(30, 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE)); - transactionList.add( - transaction(40, 4, EntityType.TOPIC, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC)); - transactionList.add( - transaction(50, 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION)); + transactionList.add(transaction(1, 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT)); + transactionList.add(transaction(20, 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE)); + transactionList.add(transaction(30, 3, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE)); + transactionList.add(transaction(40, 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC)); + transactionList.add(transaction(50, 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION)); transactionList.forEach(this::insertTransaction); // migration @@ -114,19 +110,15 @@ void verifyEntityTypeMigrationInvalidEntities() throws Exception { var typeMismatchedTokenEntityId = insertEntity(5, EntityType.FILE); List transactionList = new ArrayList<>(); + transactionList.add(transaction(1, 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT)); + transactionList.add(transaction(20, 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE)); + transactionList.add(transaction(30, 3, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE)); + transactionList.add(transaction(40, 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC)); + transactionList.add(transaction(50, 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION)); transactionList.add( - transaction(1, 1, EntityType.ACCOUNT, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT)); - transactionList.add(transaction( - 20, 2, EntityType.CONTRACT, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE)); - transactionList.add(transaction(30, 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE)); - transactionList.add( - transaction(40, 4, EntityType.TOPIC, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC)); + transaction(70, 50, ResponseCodeEnum.INVALID_TOPIC_ID, TransactionType.CONSENSUSSUBMITMESSAGE)); transactionList.add( - transaction(50, 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION)); - transactionList.add(transaction( - 70, 50, EntityType.TOPIC, ResponseCodeEnum.INVALID_TOPIC_ID, TransactionType.CONSENSUSSUBMITMESSAGE)); - transactionList.add(transaction( - 80, 100, EntityType.TOPIC, ResponseCodeEnum.TOPIC_EXPIRED, TransactionType.CONSENSUSSUBMITMESSAGE)); + transaction(80, 100, ResponseCodeEnum.TOPIC_EXPIRED, TransactionType.CONSENSUSSUBMITMESSAGE)); transactionList.forEach(this::insertTransaction); // migration @@ -168,28 +160,20 @@ void verifyEntityTypeMigrationInvalidEntitiesMultiBatch() throws Exception { var typeMismatchedTokenEntityId = insertEntity(10, EntityType.FILE); List transactionList = new ArrayList<>(); + transactionList.add(transaction(1, 1, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT)); + transactionList.add(transaction(20, 2, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE)); + transactionList.add(transaction(30, 3, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE)); + transactionList.add(transaction(40, 4, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC)); + transactionList.add(transaction(50, 5, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION)); + transactionList.add(transaction(60, 6, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT)); + transactionList.add(transaction(70, 7, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE)); + transactionList.add(transaction(80, 8, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE)); + transactionList.add(transaction(90, 9, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC)); + transactionList.add(transaction(100, 10, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION)); transactionList.add( - transaction(1, 1, EntityType.ACCOUNT, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT)); - transactionList.add(transaction( - 20, 2, EntityType.CONTRACT, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE)); - transactionList.add(transaction(30, 3, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE)); - transactionList.add( - transaction(40, 4, EntityType.TOPIC, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC)); - transactionList.add( - transaction(50, 5, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION)); - transactionList.add( - transaction(60, 6, EntityType.ACCOUNT, ResponseCodeEnum.SUCCESS, TransactionType.CRYPTOCREATEACCOUNT)); - transactionList.add(transaction( - 70, 7, EntityType.CONTRACT, ResponseCodeEnum.SUCCESS, TransactionType.CONTRACTCREATEINSTANCE)); - transactionList.add(transaction(80, 8, EntityType.FILE, ResponseCodeEnum.SUCCESS, TransactionType.FILECREATE)); - transactionList.add( - transaction(90, 9, EntityType.TOPIC, ResponseCodeEnum.SUCCESS, TransactionType.CONSENSUSCREATETOPIC)); + transaction(500, 50, ResponseCodeEnum.INVALID_TOPIC_ID, TransactionType.CONSENSUSSUBMITMESSAGE)); transactionList.add( - transaction(100, 10, EntityType.TOKEN, ResponseCodeEnum.SUCCESS, TransactionType.TOKENCREATION)); - transactionList.add(transaction( - 500, 50, EntityType.TOPIC, ResponseCodeEnum.INVALID_TOPIC_ID, TransactionType.CONSENSUSSUBMITMESSAGE)); - transactionList.add(transaction( - 1000, 100, EntityType.TOPIC, ResponseCodeEnum.TOPIC_EXPIRED, TransactionType.CONSENSUSSUBMITMESSAGE)); + transaction(1000, 100, ResponseCodeEnum.TOPIC_EXPIRED, TransactionType.CONSENSUSSUBMITMESSAGE)); transactionList.forEach(this::insertTransaction); // migration @@ -217,11 +201,7 @@ void verifyEntityTypeMigrationInvalidEntitiesMultiBatch() throws Exception { } private Transaction transaction( - long consensusNs, - long id, - EntityType entityType, - ResponseCodeEnum result, - TransactionType transactionType) { + long consensusNs, long id, ResponseCodeEnum result, TransactionType transactionType) { Transaction transaction = new Transaction(); transaction.setChargedTxFee(100L); transaction.setConsensusTimestamp(consensusNs); @@ -238,7 +218,7 @@ private Transaction transaction( return transaction; } - private EntityId entityId(long id, EntityType entityType) { + private EntityId entityId(long id) { return EntityId.of(0, 1, id); } @@ -280,7 +260,7 @@ private void insertTransaction(Transaction transaction) { * @param type EntityType */ private Entity insertEntity(long id, EntityType type) { - var entityId = entityId(id, type); + var entityId = entityId(id); var entity = entityId.toEntity(); entity.setType(type); entity.setMemo("abc" + (char) 0); diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/SyntheticCryptoTransferApprovalMigrationTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/SyntheticCryptoTransferApprovalMigrationTest.java index 67146ba9338..b2cbcadac30 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/SyntheticCryptoTransferApprovalMigrationTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/SyntheticCryptoTransferApprovalMigrationTest.java @@ -359,7 +359,6 @@ private Pair, List> getTokenTransfersPair( var tokenPastKeyAffectedEntity = entityPastKey(contractId2.getNum()); return setupTokenTransfers( contractId, - contractId2, priorContractId, currentKeyUnaffectedEntity, currentKeyAffectedEntity, @@ -577,7 +576,6 @@ private Pair, List> setupTransactionNfts( private Pair, List> setupTokenTransfers( EntityId contractId, - EntityId contractId2, EntityId priorGrandfatheredContractId, Entity currentKeyUnaffectedEntity, Entity currentKeyAffectedEntity, diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/TransferTransactionPayerMigrationTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/TransferTransactionPayerMigrationTest.java index fd9eaedb3cb..2f1bb26cd75 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/TransferTransactionPayerMigrationTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/migration/TransferTransactionPayerMigrationTest.java @@ -40,7 +40,6 @@ import com.hederahashgraph.api.proto.java.ResponseCodeEnum; import io.hypersistence.utils.hibernate.type.range.guava.PostgreSQLGuavaRangeType; import java.io.File; -import java.io.IOException; import java.sql.PreparedStatement; import java.util.Arrays; import java.util.List; @@ -445,7 +444,7 @@ private MigrationNftTransfer nftTransfer( .build(); } - private void persistAssessedCustomFees(List assessedCustomFees) throws IOException { + private void persistAssessedCustomFees(List assessedCustomFees) { for (AssessedCustomFee assessedCustomFee : assessedCustomFees) { jdbcOperations.update( "insert into assessed_custom_fee (amount, collector_account_id, consensus_timestamp, token_id," @@ -528,25 +527,23 @@ private List findCryptoTransfers() { Long amount = rs.getLong("amount"); EntityId sender = amount < 0 ? EntityId.of(rs.getLong("entity_id")) : null; EntityId receiver = amount > 0 ? EntityId.of(rs.getLong("entity_id")) : null; - SharedTransfer sharedTransfer = new SharedTransfer( + return new SharedTransfer( amount, rs.getLong("consensus_timestamp"), EntityId.of(rs.getLong("payer_account_id")), receiver, sender); - return sharedTransfer; }); } private List findNftTransfers() { return jdbcOperations.query("select * from nft_transfer", (rs, rowNum) -> { - SharedTransfer sharedTransfer = new SharedTransfer( + return new SharedTransfer( rs.getLong("serial_number"), rs.getLong("consensus_timestamp"), EntityId.of(rs.getLong("payer_account_id")), EntityId.of(rs.getLong("receiver_account_id")), EntityId.of(rs.getLong("sender_account_id"))); - return sharedTransfer; }); } @@ -555,13 +552,12 @@ private List findNonFeeTransfersAsSharedTransfers() { Long amount = rs.getLong("amount"); EntityId sender = amount < 0 ? EntityId.of(rs.getLong("entity_id")) : null; EntityId receiver = amount > 0 ? EntityId.of(rs.getLong("entity_id")) : null; - SharedTransfer sharedTransfer = new SharedTransfer( + return new SharedTransfer( amount, rs.getLong("consensus_timestamp"), EntityId.of(rs.getLong("payer_account_id")), receiver, sender); - return sharedTransfer; }); } @@ -570,13 +566,12 @@ private List findTokenTransfers() { Long amount = rs.getLong("amount"); EntityId sender = amount < 0 ? EntityId.of(rs.getLong("account_id")) : null; EntityId receiver = amount > 0 ? EntityId.of(rs.getLong("account_id")) : null; - SharedTransfer sharedTransfer = new SharedTransfer( + return new SharedTransfer( amount, rs.getLong("consensus_timestamp"), EntityId.of(rs.getLong("payer_account_id")), receiver, sender); - return sharedTransfer; }); } diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/domain/RecordItemBuilder.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/domain/RecordItemBuilder.java index 7be16c6cdc6..dd02a429128 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/domain/RecordItemBuilder.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/domain/RecordItemBuilder.java @@ -72,6 +72,7 @@ import com.hederahashgraph.api.proto.java.CryptoTransferTransactionBody; import com.hederahashgraph.api.proto.java.CryptoUpdateTransactionBody; import com.hederahashgraph.api.proto.java.CustomFee; +import com.hederahashgraph.api.proto.java.CustomFee.FeeCase; import com.hederahashgraph.api.proto.java.Duration; import com.hederahashgraph.api.proto.java.EthereumTransactionBody; import com.hederahashgraph.api.proto.java.FileAppendTransactionBody; @@ -158,9 +159,10 @@ import java.time.temporal.TemporalUnit; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; +import java.util.EnumMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -201,7 +203,7 @@ public class RecordItemBuilder { AccountID.newBuilder().setAccountNum(STAKING_REWARD_ACCOUNT).build(); private final AtomicBoolean autoCreation = new AtomicBoolean(false); - private final Map>> builders = new HashMap<>(); + private final Map>> builders = new EnumMap<>(TransactionType.class); private final AtomicLong entityId = new AtomicLong(INITIAL_ID); private final AtomicLong id = new AtomicLong(0L); private final SecureRandom random = new SecureRandom(); @@ -576,11 +578,15 @@ public CustomFee.Builder customFee(CustomFee.FeeCase feeCase) { var accountId = accountId(); var customFee = CustomFee.newBuilder().setFeeCollectorAccountId(accountId).setAllCollectorsAreExempt(false); - switch (feeCase) { - case FIXED_FEE -> customFee.setFixedFee(fixedFee()); - case ROYALTY_FEE -> customFee.setRoyaltyFee(royaltyFee()); - case FRACTIONAL_FEE -> customFee.setFractionalFee(fractionalFee()); + + if (Objects.requireNonNull(feeCase) == FIXED_FEE) { + customFee.setFixedFee(fixedFee()); + } else if (feeCase == FeeCase.ROYALTY_FEE) { + customFee.setRoyaltyFee(royaltyFee()); + } else if (feeCase == FeeCase.FRACTIONAL_FEE) { + customFee.setFractionalFee(fractionalFee()); } + return customFee; } @@ -1064,6 +1070,7 @@ public Builder tokenWipe(TokenType type switch (type) { case FUNGIBLE_COMMON -> transactionBody.setAmount(1000L); case NON_FUNGIBLE_UNIQUE -> transactionBody.addSerialNumbers(1L); + default -> throw new IllegalArgumentException("Unsupported token type: " + type); } return new Builder<>(TransactionType.TOKENWIPE, transactionBody).receipt(r -> r.setNewTotalSupply(2L)); } diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerCryptoTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerCryptoTest.java index 49e574c3c73..7e43277e612 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerCryptoTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerCryptoTest.java @@ -66,7 +66,6 @@ import com.hederahashgraph.api.proto.java.ContractID; import com.hederahashgraph.api.proto.java.CryptoAddLiveHashTransactionBody; import com.hederahashgraph.api.proto.java.CryptoCreateTransactionBody; -import com.hederahashgraph.api.proto.java.CryptoDeleteLiveHashTransactionBody; import com.hederahashgraph.api.proto.java.CryptoUpdateTransactionBody; import com.hederahashgraph.api.proto.java.Duration; import com.hederahashgraph.api.proto.java.KeyList; @@ -1040,23 +1039,23 @@ void cryptoDeleteFailedTransaction() { // now delete Transaction transaction = cryptoDeleteTransaction(); TransactionBody transactionBody = getTransactionBody(transaction); - TransactionRecord record = transactionRecord( + TransactionRecord txnRecord = transactionRecord( transactionBody, ResponseCodeEnum.INSUFFICIENT_ACCOUNT_BALANCE.getNumber(), recordBuilder -> groupCryptoTransfersByAccountId(recordBuilder, List.of())); parseRecordItemAndCommit(RecordItem.builder() - .transactionRecord(record) + .transactionRecord(txnRecord) .transaction(transaction) .build()); - Entity dbAccountEntity = getTransactionEntity(record.getConsensusTimestamp()); + Entity dbAccountEntity = getTransactionEntity(txnRecord.getConsensusTimestamp()); assertAll( () -> assertEquals(2, transactionRepository.count()), () -> assertEntities(EntityId.of(accountId1)), () -> assertCryptoTransfers(6), // 3 + 3 fee transfers with only one transfer per account - () -> assertCryptoTransaction(transactionBody, record), + () -> assertCryptoTransaction(transactionBody, txnRecord), () -> assertThat(dbAccountEntity).isNotNull().returns(false, Entity::getDeleted)); } @@ -1065,14 +1064,14 @@ void cryptoAddLiveHashPersist() { Transaction transaction = cryptoAddLiveHashTransaction(); TransactionBody transactionBody = getTransactionBody(transaction); CryptoAddLiveHashTransactionBody cryptoAddLiveHashTransactionBody = transactionBody.getCryptoAddLiveHash(); - TransactionRecord record = transactionRecordSuccess(transactionBody); + TransactionRecord txnRecord = transactionRecordSuccess(transactionBody); parseRecordItemAndCommit(RecordItem.builder() - .transactionRecord(record) + .transactionRecord(txnRecord) .transaction(transaction) .build()); - var dbTransaction = getDbTransaction(record.getConsensusTimestamp()); + var dbTransaction = getDbTransaction(txnRecord.getConsensusTimestamp()); LiveHash dbLiveHash = liveHashRepository .findById(dbTransaction.getConsensusTimestamp()) .get(); @@ -1082,7 +1081,7 @@ void cryptoAddLiveHashPersist() { () -> assertEntities(), () -> assertCryptoTransfers(3), () -> assertEquals(1, liveHashRepository.count()), - () -> assertTransactionAndRecord(transactionBody, record), + () -> assertTransactionAndRecord(transactionBody, txnRecord), () -> assertArrayEquals( cryptoAddLiveHashTransactionBody.getLiveHash().getHash().toByteArray(), dbLiveHash.getLivehash())); @@ -1121,7 +1120,7 @@ void cryptoDeleteLiveHash() { // now delete the live hash Transaction transaction = cryptoDeleteLiveHashTransaction(); TransactionBody transactionBody = getTransactionBody(transaction); - CryptoDeleteLiveHashTransactionBody deleteLiveHashTransactionBody = transactionBody.getCryptoDeleteLiveHash(); + transactionBody.getCryptoDeleteLiveHash(); TransactionRecord txnRecord = transactionRecordSuccess(transactionBody); parseRecordItemAndCommit(RecordItem.builder() @@ -1131,7 +1130,7 @@ void cryptoDeleteLiveHash() { assertAll( () -> assertEquals(2, transactionRepository.count()), - () -> assertEntities(), + this::assertEntities, () -> assertCryptoTransfers(6), () -> assertEquals(1, liveHashRepository.count()), () -> assertTransactionAndRecord(transactionBody, txnRecord)); diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerEntityTransactionTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerEntityTransactionTest.java index a5e538d65b3..34517fdf017 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerEntityTransactionTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerEntityTransactionTest.java @@ -16,6 +16,8 @@ package com.hedera.mirror.importer.parser.record.entity; +import static com.hederahashgraph.api.proto.java.TransactionRecord.BodyCase.CONTRACTCALLRESULT; +import static com.hederahashgraph.api.proto.java.TransactionRecord.BodyCase.CONTRACTCREATERESULT; import static org.assertj.core.api.Assertions.assertThat; import com.google.protobuf.GeneratedMessageV3; @@ -115,9 +117,11 @@ private Set getEntities(RecordItem recordItem) { var txnRecord = recordItem.getTransactionRecord(); ContractFunctionResult contractFunctionResult = null; - switch (txnRecord.getBodyCase()) { - case CONTRACTCALLRESULT -> contractFunctionResult = txnRecord.getContractCallResult(); - case CONTRACTCREATERESULT -> contractFunctionResult = txnRecord.getContractCreateResult(); + var txnRecordBodyCase = txnRecord.getBodyCase(); + if (txnRecordBodyCase == CONTRACTCALLRESULT) { + contractFunctionResult = txnRecord.getContractCallResult(); + } else if (txnRecordBodyCase == CONTRACTCREATERESULT) { + contractFunctionResult = txnRecord.getContractCreateResult(); } if (contractFunctionResult != null diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerFileTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerFileTest.java index 3d1adc697ac..6183c311bd6 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerFileTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerFileTest.java @@ -871,11 +871,12 @@ void fileSystemUnDeleteFailedTransaction() { assertFailedFileTransaction(transactionBody, txnRecord); } - private void assertFailedFileTransaction(TransactionBody transactionBody, TransactionRecord record) { + private void assertFailedFileTransaction(TransactionBody transactionBody, TransactionRecord txnRecord) { com.hedera.mirror.common.domain.transaction.Transaction transaction = - getDbTransaction(record.getConsensusTimestamp()); - assertAll(() -> assertTransactionAndRecord(transactionBody, record), () -> assertThat(transaction.getEntityId()) - .isEqualTo(EntityId.of(record.getReceipt().getFileID()))); + getDbTransaction(txnRecord.getConsensusTimestamp()); + assertAll(() -> assertTransactionAndRecord(transactionBody, txnRecord), () -> assertThat( + transaction.getEntityId()) + .isEqualTo(EntityId.of(txnRecord.getReceipt().getFileID()))); } private void assertFileEntity(FileCreateTransactionBody expected, Timestamp consensusTimestamp) { diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerScheduleTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerScheduleTest.java index 497e3895e1f..768f71ca65e 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerScheduleTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerScheduleTest.java @@ -50,7 +50,6 @@ import jakarta.annotation.Resource; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.commons.lang3.RandomStringUtils; import org.junit.jupiter.api.BeforeEach; @@ -595,6 +594,6 @@ private List toTransactionSignatureList( transactionSignature.setType(SignaturePair.SignatureCase.ED25519.getNumber()); return transactionSignature; }) - .collect(Collectors.toUnmodifiableList()); + .toList(); } } diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerTokenTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerTokenTest.java index 3642f063174..a7996b35b5c 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerTokenTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerTokenTest.java @@ -4607,7 +4607,7 @@ private void createTokenEntity( .setTokenId(tokenId) .setAccountId(convertAccountId(account)) .build()) - .collect(Collectors.toList())); + .toList()); if (tokenType == FUNGIBLE_COMMON) { builder.addTokenTransferLists(tokenTransferList(tokenId, accountAmount(PAYER, INITIAL_SUPPLY))); } diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerTopicTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerTopicTest.java index 4c04602a5e9..a4c0b657084 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerTopicTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/entity/EntityRecordItemListenerTopicTest.java @@ -704,7 +704,7 @@ void submitMessageToInvalidTopicEntityNotCreated() { var scheduled = false; var nonce = 0; - var topic = createTopicEntity(TOPIC_ID, null, null, null, null, "", null, null); + createTopicEntity(TOPIC_ID, null, null, null, null, "", null, null); // Topic NOT saved in the repository. TransactionID initialTransactionId = diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/transactionhandler/EthereumTransactionHandlerTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/transactionhandler/EthereumTransactionHandlerTest.java index 755b7efd67f..0e33f717d13 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/transactionhandler/EthereumTransactionHandlerTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/parser/record/transactionhandler/EthereumTransactionHandlerTest.java @@ -464,10 +464,12 @@ void updateTransactionDisabled() { @Disabled("Since this handler persists data for unsuccessful transactions & has tests for that") @Override @Test - void updateTransactionUnsuccessful() {} + void updateTransactionUnsuccessful() { + throw new UnsupportedOperationException("Missing method implementation"); + } - private ContractFunctionResult getContractFunctionResult(TransactionRecord record, boolean create) { - return create ? record.getContractCreateResult() : record.getContractCallResult(); + private ContractFunctionResult getContractFunctionResult(TransactionRecord txnRecord, boolean create) { + return create ? txnRecord.getContractCreateResult() : txnRecord.getContractCallResult(); } private Map getExpectedEntityTransactions(RecordItem recordItem, Transaction transaction) { diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/balance/line/AccountBalanceLineParserV2Test.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/balance/line/AccountBalanceLineParserV2Test.java index 9ccdb89a55d..99995165ae3 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/balance/line/AccountBalanceLineParserV2Test.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/balance/line/AccountBalanceLineParserV2Test.java @@ -24,7 +24,6 @@ import com.hedera.mirror.common.domain.balance.TokenBalance; import com.hedera.mirror.importer.ImporterProperties; import com.hedera.mirror.importer.exception.InvalidDatasetException; -import java.io.IOException; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -91,8 +90,7 @@ void parse( Long expectedRealm, Long expectedAccount, Long expectedBalance, - String tokenBalances) - throws IOException { + String tokenBalances) { if (!expectThrow) { AccountBalance accountBalance = parser.parse(line, TIMESTAMP); var id = accountBalance.getId(); diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/record/RecordFileReaderTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/record/RecordFileReaderTest.java index 2b18ccda397..0d21e9a2aac 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/record/RecordFileReaderTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/record/RecordFileReaderTest.java @@ -31,7 +31,6 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; import lombok.SneakyThrows; @@ -92,7 +91,7 @@ Stream readValidFile() { List timestamps = actual.getItems().stream() .map(RecordItem::getConsensusTimestamp) - .collect(Collectors.toList()); + .toList(); assertThat(timestamps).first().isEqualTo(recordFile.getConsensusStart()); assertThat(timestamps).last().isEqualTo(recordFile.getConsensusEnd()); assertThat(timestamps).doesNotHaveDuplicates().isSorted(); diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/signature/CompositeSignatureFileReaderTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/signature/CompositeSignatureFileReaderTest.java index 524dab1077f..846c6d9e853 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/signature/CompositeSignatureFileReaderTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/reader/signature/CompositeSignatureFileReaderTest.java @@ -56,7 +56,7 @@ void setUp() { } @Test - void testValidV2() throws Exception { + void testValidV2() { var signatureFileBytes = getSignatureFileBytes(SignatureFileReaderV2.SIGNATURE_TYPE_FILE_HASH); var streamFileData = StreamFileData.from(SIGNATURE_FILENAME, signatureFileBytes); compositeBalanceFileReader.read(streamFileData); @@ -66,7 +66,7 @@ void testValidV2() throws Exception { } @Test - void testValidV5() throws Exception { + void testValidV5() { var signatureFileBytes = getSignatureFileBytes(SignatureFileReaderV5.VERSION); var streamFileData = StreamFileData.from(SIGNATURE_FILENAME, signatureFileBytes); compositeBalanceFileReader.read(streamFileData); @@ -76,7 +76,7 @@ void testValidV5() throws Exception { } @Test - void testValidV6() throws Exception { + void testValidV6() { var signatureFileBytes = getSignatureFileBytes(ProtoSignatureFileReader.VERSION); var streamFileData = StreamFileData.from(SIGNATURE_FILENAME, signatureFileBytes); compositeBalanceFileReader.read(streamFileData); diff --git a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/retention/RetentionJobTest.java b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/retention/RetentionJobTest.java index c106ff652de..de4e45a1135 100644 --- a/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/retention/RetentionJobTest.java +++ b/hedera-mirror-importer/src/test/java/com/hedera/mirror/importer/retention/RetentionJobTest.java @@ -153,7 +153,7 @@ void pruneNothing() { @Test void prunePartial() { // given - var recordFile1 = recordFile(); + recordFile(); var recordFile2 = recordFile(); var recordFile3 = recordFile(); var period = recordFile3.getConsensusEnd() - recordFile2.getConsensusEnd() - 1; diff --git a/hedera-mirror-monitor/src/main/java/com/hedera/mirror/monitor/publish/PublishException.java b/hedera-mirror-monitor/src/main/java/com/hedera/mirror/monitor/publish/PublishException.java index 7d4692887da..a6e8918c5cb 100644 --- a/hedera-mirror-monitor/src/main/java/com/hedera/mirror/monitor/publish/PublishException.java +++ b/hedera-mirror-monitor/src/main/java/com/hedera/mirror/monitor/publish/PublishException.java @@ -36,14 +36,11 @@ public PublishException(PublishRequest publishRequest, Throwable throwable) { public String getStatus() { Throwable throwable = Throwables.getRootCause(this); - if (throwable instanceof PrecheckStatusException pse) { - return pse.status.toString(); - } else if (throwable instanceof ReceiptStatusException rse) { - return rse.receipt.status.toString(); - } else if (throwable instanceof StatusRuntimeException sre) { - return sre.getStatus().getCode().toString(); - } else { - return throwable.getClass().getSimpleName(); - } + return switch (throwable) { + case PrecheckStatusException pse -> pse.status.toString(); + case ReceiptStatusException rse -> rse.receipt.status.toString(); + case StatusRuntimeException sre -> sre.getStatus().getCode().toString(); + default -> throwable.getClass().getSimpleName(); + }; } } diff --git a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/converter/DurationToStringSerializerTest.java b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/converter/DurationToStringSerializerTest.java index eb6302945f7..2a15ccac4e5 100644 --- a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/converter/DurationToStringSerializerTest.java +++ b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/converter/DurationToStringSerializerTest.java @@ -55,7 +55,7 @@ void convert(Long input, String text) { @SuppressWarnings("unused") private static String[][] testCases() { - String[][] testCases = { + return new String[][] { {"0", "0s"}, {"1", "1s"}, {"60", "1m"}, @@ -68,6 +68,5 @@ private static String[][] testCases() { {"90060", "1d1h1m"}, {"90061", "1d1h1m1s"} }; - return testCases; } } diff --git a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/expression/ExpressionConverterImplTest.java b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/expression/ExpressionConverterImplTest.java index 6a9b0c02188..bba1a85e14d 100644 --- a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/expression/ExpressionConverterImplTest.java +++ b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/expression/ExpressionConverterImplTest.java @@ -16,6 +16,10 @@ package com.hedera.mirror.monitor.expression; +import static com.hedera.mirror.monitor.publish.transaction.TransactionType.ACCOUNT_CREATE; +import static com.hedera.mirror.monitor.publish.transaction.TransactionType.CONSENSUS_CREATE_TOPIC; +import static com.hedera.mirror.monitor.publish.transaction.TransactionType.SCHEDULE_CREATE; +import static com.hedera.mirror.monitor.publish.transaction.TransactionType.TOKEN_CREATE; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.Mockito.any; @@ -116,7 +120,7 @@ void error() throws InvalidProtocolBufferException { @Test void errorPublishing() throws InvalidProtocolBufferException { - TransactionType type = TransactionType.CONSENSUS_CREATE_TOPIC; + TransactionType type = CONSENSUS_CREATE_TOPIC; when(transactionPublisher.publish(any())) .thenReturn(Mono.error(new TimeoutException("timeout"))) .thenReturn(response(type, 100)); @@ -125,7 +129,7 @@ void errorPublishing() throws InvalidProtocolBufferException { @Test void account() throws InvalidProtocolBufferException { - TransactionType type = TransactionType.ACCOUNT_CREATE; + TransactionType type = ACCOUNT_CREATE; when(transactionPublisher.publish(any())).thenReturn(response(type, 100)); assertThat(expressionConverter.convert("${account.foo}")).isEqualTo("0.0.100"); @@ -135,7 +139,7 @@ void account() throws InvalidProtocolBufferException { @Test void token() throws InvalidProtocolBufferException { - TransactionType type = TransactionType.TOKEN_CREATE; + TransactionType type = TOKEN_CREATE; when(transactionPublisher.publish(any())).thenReturn(response(type, 101)); assertThat(expressionConverter.convert("${token.foo}")).isEqualTo("0.0.101"); @@ -145,7 +149,7 @@ void token() throws InvalidProtocolBufferException { @Test void nft() throws InvalidProtocolBufferException { - TransactionType type = TransactionType.TOKEN_CREATE; + TransactionType type = TOKEN_CREATE; when(transactionPublisher.publish(any())).thenReturn(response(type, 101)); assertThat(expressionConverter.convert("${nft.foo}")).isEqualTo("0.0.101"); @@ -155,7 +159,7 @@ void nft() throws InvalidProtocolBufferException { @Test void topic() throws InvalidProtocolBufferException { - TransactionType type = TransactionType.CONSENSUS_CREATE_TOPIC; + TransactionType type = CONSENSUS_CREATE_TOPIC; when(transactionPublisher.publish(any())).thenReturn(response(type, 100)); assertThat(expressionConverter.convert("${topic.foo}")).isEqualTo("0.0.100"); @@ -165,7 +169,7 @@ void topic() throws InvalidProtocolBufferException { @Test void schedule() throws InvalidProtocolBufferException { - TransactionType type = TransactionType.SCHEDULE_CREATE; + TransactionType type = SCHEDULE_CREATE; when(transactionPublisher.publish(any())).thenReturn(response(type, 100)); assertThat(expressionConverter.convert("${schedule.foo}")).isEqualTo("0.0.100"); @@ -176,7 +180,7 @@ void schedule() throws InvalidProtocolBufferException { @Test void cached() throws InvalidProtocolBufferException { - TransactionType type = TransactionType.CONSENSUS_CREATE_TOPIC; + TransactionType type = CONSENSUS_CREATE_TOPIC; when(transactionPublisher.publish(any())).thenReturn(response(type, 100)); assertThat(expressionConverter.convert("${topic.foo}")).isEqualTo("0.0.100"); @@ -189,7 +193,7 @@ void cached() throws InvalidProtocolBufferException { @Test void map() throws InvalidProtocolBufferException { Map properties = Map.of("accountId", "0.0.100", "topicId", "${topic.fooBar_123}"); - TransactionType type = TransactionType.CONSENSUS_CREATE_TOPIC; + TransactionType type = CONSENSUS_CREATE_TOPIC; when(transactionPublisher.publish(any())).thenReturn(response(type, 101)); assertThat(expressionConverter.convert(properties)) @@ -204,19 +208,14 @@ void map() throws InvalidProtocolBufferException { private Mono response(TransactionType type, long id) throws InvalidProtocolBufferException { TransactionReceipt.Builder receipt = TransactionReceipt.newBuilder(); - switch (type) { - case ACCOUNT_CREATE: - receipt.setAccountID(AccountID.newBuilder().setAccountNum(id).build()); - break; - case CONSENSUS_CREATE_TOPIC: - receipt.setTopicID(TopicID.newBuilder().setTopicNum(id).build()); - break; - case TOKEN_CREATE: - receipt.setTokenID(TokenID.newBuilder().setTokenNum(id).build()); - break; - case SCHEDULE_CREATE: - receipt.setScheduleID(ScheduleID.newBuilder().setScheduleNum(id).build()); - break; + if (type == ACCOUNT_CREATE) { + receipt.setAccountID(AccountID.newBuilder().setAccountNum(id).build()); + } else if (type == CONSENSUS_CREATE_TOPIC) { + receipt.setTopicID(TopicID.newBuilder().setTopicNum(id).build()); + } else if (type == TOKEN_CREATE) { + receipt.setTokenID(TokenID.newBuilder().setTokenNum(id).build()); + } else if (type == SCHEDULE_CREATE) { + receipt.setScheduleID(ScheduleID.newBuilder().setScheduleNum(id).build()); } com.hedera.hashgraph.sdk.TransactionRecord txnRecord = com.hedera.hashgraph.sdk.TransactionRecord.fromBytes( diff --git a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenCreateTransactionSupplierTest.java b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenCreateTransactionSupplierTest.java index 5c72c526a03..f9f379ea907 100644 --- a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenCreateTransactionSupplierTest.java +++ b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenCreateTransactionSupplierTest.java @@ -97,8 +97,6 @@ void createWithCustomFungibleData() { @Test void createWithNonFungibleData() { - PublicKey key = PrivateKey.generateED25519().getPublicKey(); - TokenCreateTransactionSupplier tokenCreateTransactionSupplier = new TokenCreateTransactionSupplier(); tokenCreateTransactionSupplier.setTreasuryAccountId(ACCOUNT_ID.toString()); tokenCreateTransactionSupplier.setType(TokenType.NON_FUNGIBLE_UNIQUE); diff --git a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenPauseTransactionSupplierTest.java b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenPauseTransactionSupplierTest.java index 35fde5becce..eb238549d24 100644 --- a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenPauseTransactionSupplierTest.java +++ b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenPauseTransactionSupplierTest.java @@ -39,10 +39,10 @@ void createWithMinimumData() { @Test void createWithCustomData() { - TokenPauseTransactionSupplier TokenPauseTransactionSupplier = new TokenPauseTransactionSupplier(); - TokenPauseTransactionSupplier.setMaxTransactionFee(1); - TokenPauseTransactionSupplier.setTokenId(TOKEN_ID.toString()); - TokenPauseTransaction actual = TokenPauseTransactionSupplier.get(); + TokenPauseTransactionSupplier tokenPauseTransactionSupplier = new TokenPauseTransactionSupplier(); + tokenPauseTransactionSupplier.setMaxTransactionFee(1); + tokenPauseTransactionSupplier.setTokenId(TOKEN_ID.toString()); + TokenPauseTransaction actual = tokenPauseTransactionSupplier.get(); assertThat(actual) .returns(ONE_TINYBAR, TokenPauseTransaction::getMaxTransactionFee) diff --git a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenUpdateTransactionSupplierTest.java b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenUpdateTransactionSupplierTest.java index 55730f18287..6976c3bcd77 100644 --- a/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenUpdateTransactionSupplierTest.java +++ b/hedera-mirror-monitor/src/test/java/com/hedera/mirror/monitor/publish/transaction/token/TokenUpdateTransactionSupplierTest.java @@ -26,7 +26,6 @@ import com.hedera.mirror.monitor.publish.transaction.TransactionSupplier; import java.time.Duration; import java.time.Instant; -import java.time.temporal.ChronoUnit; import org.junit.jupiter.api.Test; class TokenUpdateTransactionSupplierTest extends AbstractTransactionSupplierTest { @@ -59,7 +58,6 @@ void createWithMinimumData() { @Test void createWithCustomData() { Duration autoRenewPeriod = Duration.ofSeconds(1); - Instant expirationTime = Instant.now().plus(1, ChronoUnit.DAYS); PublicKey key = PrivateKey.generateED25519().getPublicKey(); TokenUpdateTransactionSupplier tokenUpdateTransactionSupplier = new TokenUpdateTransactionSupplier(); diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/AbstractNetworkClient.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/AbstractNetworkClient.java index 032cc31ab5f..937f725ae07 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/AbstractNetworkClient.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/AbstractNetworkClient.java @@ -42,7 +42,6 @@ import java.util.concurrent.Executors; import java.util.function.Consumer; import java.util.function.Supplier; -import java.util.stream.Collectors; import lombok.Data; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; @@ -82,7 +81,7 @@ protected final void deleteAll(Collection ids, Consumer deleteAction) } return id; }) - .collect(Collectors.toList()); + .toList(); executorService.invokeAll(futures); } catch (Exception e) { diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/AccountClient.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/AccountClient.java index c3a1b83f183..fbfc7993d9f 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/AccountClient.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/AccountClient.java @@ -119,11 +119,10 @@ public ExpandedAccountId getAccount(AccountNameEnum accountNameEnum) { } public TransferTransaction getCryptoTransferTransaction(AccountId sender, AccountId recipient, Hbar hbarAmount) { - TransferTransaction transferTransaction = new TransferTransaction() + return new TransferTransaction() .addHbarTransfer(sender, hbarAmount.negated()) .addHbarTransfer(recipient, hbarAmount) .setTransactionMemo(getMemo("Crypto transfer")); - return transferTransaction; } public NetworkTransactionResponse sendApprovedCryptoTransfer( diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/EncoderDecoderFacade.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/EncoderDecoderFacade.java index 14a56c1ff83..fc0d5747cb7 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/EncoderDecoderFacade.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/client/EncoderDecoderFacade.java @@ -19,7 +19,6 @@ import static com.hedera.mirror.test.e2e.acceptance.util.TestUtil.getAbiFunctionAsJsonString; import com.esaulpaugh.headlong.abi.Function; -import com.esaulpaugh.headlong.abi.Tuple; import com.fasterxml.jackson.databind.ObjectMapper; import com.hedera.mirror.test.e2e.acceptance.props.CompiledSolidityArtifact; import com.hedera.mirror.test.e2e.acceptance.steps.AbstractFeature.ContractResource; @@ -58,16 +57,4 @@ protected byte[] encodeDataToByteArray(ContractResource resource, SelectorInterf ByteBuffer byteBuffer = function.encodeCallWithArgs(args); return byteBuffer.array(); } - - private Tuple decodeResult(ContractResource resource, SelectorInterface method, final byte[] result) { - String json; - try (var in = getResourceAsStream(resource.getPath())) { - json = getAbiFunctionAsJsonString(readCompiledArtifact(in), method.getSelector()); - } catch (IOException e) { - throw new RuntimeException(e); - } - - Function function = Function.fromJson(json); - return function.decodeReturn(result); - } } diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/AccountFeature.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/AccountFeature.java index 9fdc841050e..a83347e60c2 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/AccountFeature.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/AccountFeature.java @@ -53,7 +53,7 @@ @RequiredArgsConstructor public class AccountFeature extends AbstractFeature { - private static AtomicReference CLEANUP = new AtomicReference<>(); + private static final AtomicReference CLEANUP = new AtomicReference<>(); private final AccountClient accountClient; private final MirrorNodeClient mirrorClient; diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/CallFeature.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/CallFeature.java index 1b6f48f1d22..8d04d4b3a94 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/CallFeature.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/CallFeature.java @@ -124,13 +124,13 @@ public void ethCallVerifyMirrorAPIResponses(int status) { } @Given("I successfully create ERC contract") - public void createNewERCtestContract() throws IOException { + public void createNewERCtestContract() { deployedErcTestContract = getContract(ERC); ercContractAddress = deployedErcTestContract.contractId().toSolidityAddress(); } @Given("I successfully create Precompile contract") - public void createNewPrecompileTestContract() throws IOException { + public void createNewPrecompileTestContract() { deployedPrecompileContract = getContract(PRECOMPILE); precompileContractAddress = deployedPrecompileContract.contractId().toSolidityAddress(); } @@ -203,14 +203,14 @@ public void associateNftTokenToReceiver() { } @And("I associate precompile contract with the tokens") - public void associatePrecompileWithTokens() throws InvalidProtocolBufferException { + public void associatePrecompileWithTokens() { // In order to execute Approve, approveNFT, ercApprove we need to associate the contract with the token tokenClient.associate(deployedPrecompileContract.contractId(), fungibleTokenId); networkTransactionResponse = tokenClient.associate(deployedPrecompileContract.contractId(), nonFungibleTokenId); } @And("I associate FUNGIBLE_KYC_UNFROZEN token to receiver account") - public void associateReceiverWithFungibleKyc() throws InvalidProtocolBufferException { + public void associateReceiverWithFungibleKyc() { networkTransactionResponse = tokenClient.associate(secondReceiverAccount, fungibleKycUnfrozenTokenId); } diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/ERCContractFeature.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/ERCContractFeature.java index 369240c81d1..2123348565e 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/ERCContractFeature.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/ERCContractFeature.java @@ -141,7 +141,7 @@ public void getApprovedContractCall() { var data = encodeData(ERC, GET_APPROVED_SELECTOR, asAddress(nonFungibleTokenId), new BigInteger("1")); var getApprovedResponse = callContract(data, ercTestContractSolidityAddress); - assertThat(getApprovedResponse.getResultAsAddress()).isEqualTo(""); + assertThat(getApprovedResponse.getResultAsAddress()).isEmpty(); } @RetryAsserts diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/EthereumFeature.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/EthereumFeature.java index 63c025e6025..1aa88bd83a5 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/EthereumFeature.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/EthereumFeature.java @@ -129,6 +129,7 @@ public void verifyMirrorAPIContractResponses(int status) { } @Then("the mirror node REST API should verify the deployed contract entity by eth call") + @Then("the mirror node REST API should verify the ethereum called contract function") public void verifyDeployedContractMirror() { verifyContractFromMirror(false); verifyContractExecutionResultsById(); @@ -144,13 +145,6 @@ public void callContract() { gasConsumedSelector = encodeDataToByteArray(PARENT_CONTRACT, CREATE_CHILD, BigInteger.valueOf(1000)); } - @Then("the mirror node REST API should verify the ethereum called contract function") - public void verifyContractFunctionCallMirror() { - verifyContractFromMirror(false); - verifyContractExecutionResultsById(); - verifyContractExecutionResultsByTransactionId(); - } - @Given("I successfully call function using EIP-2930 ethereum transaction") public void getChildBytecode() { var executeContractResult = diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/HistoricalFeature.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/HistoricalFeature.java index a8cb7bdebf6..14b07f933ef 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/HistoricalFeature.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/HistoricalFeature.java @@ -667,6 +667,7 @@ public void getHistoricalDataForFungibleTokenInfo(TokenNameEnum tokenName, Strin tokenId, admin, receiverAccountId.getAccountId(), receiverAccountId.getPrivateKey(), 10L); networkTransactionResponse = tokenClient.wipeFungible(tokenId, 1L, receiverAccountId); } + default -> throw new IllegalArgumentException("Unsupported action: " + action); } verifyMirrorTransactionsResponse(mirrorClient, 200); var historicalResponse = callContract( @@ -690,6 +691,8 @@ public void getHistoricalDataForFungibleTokenInfoWhenTransferringToTreasury( case "burn" -> networkTransactionResponse = tokenClient.burnFungible(tokenId, 10L); case "mint" -> networkTransactionResponse = tokenClient.mint(tokenId, 10L); + + default -> throw new IllegalArgumentException("Unsupported action: " + action); } if (account.equals("treasury")) { networkTransactionResponse = @@ -738,6 +741,7 @@ public void getHistoricalDataForNonFungibleTokenInfo(TokenNameEnum tokenName, St tokenId, admin, receiverAccountId.getAccountId(), List.of(5L), null, null, false); networkTransactionResponse = tokenClient.wipeNonFungible(tokenId, 5L, receiverAccountId); } + default -> throw new IllegalArgumentException("Unsupported action: " + action); } verifyMirrorTransactionsResponse(mirrorClient, 200); var historicalResponse = callContract( diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/PrecompileContractFeature.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/PrecompileContractFeature.java index da784fb8e07..d3f1dfd6184 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/PrecompileContractFeature.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/PrecompileContractFeature.java @@ -224,6 +224,7 @@ public void verifyFungibleTokenIsNotFrozen() { } @And("verify non fungible token isn't frozen") + @And("check if non fungible token is unfrozen") public void verifyNonFungibleTokenIsNotFrozen() { var data = encodeData( PRECOMPILE, IS_TOKEN_FROZEN_SELECTOR, asAddress(nonFungibleTokenId), asAddress(contractClient)); @@ -265,16 +266,6 @@ public void unfreezeToken() { retryFor = {AssertionError.class, HttpClientErrorException.class}, backoff = @Backoff(delayExpression = "#{@restProperties.minBackoff.toMillis()}"), maxAttemptsExpression = "#{@restProperties.maxAttempts}") - @And("check if non fungible token is unfrozen") - public void checkIfTokenIsUnfrozen() { - var data = encodeData( - PRECOMPILE, IS_TOKEN_FROZEN_SELECTOR, asAddress(nonFungibleTokenId), asAddress(contractClient)); - - var response = callContract(data, precompileTestContractSolidityAddress); - - assertFalse(response.getResultAsBoolean()); - } - @Given("I freeze fungible token for evm address") public void freezeTokenForEvmAddress() { NetworkTransactionResponse freezeResponse = tokenClient.freeze(fungibleTokenId, ecdsaEaId.getAccountId()); diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/ScheduleFeature.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/ScheduleFeature.java index 774f937e66b..83750c15356 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/ScheduleFeature.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/steps/ScheduleFeature.java @@ -38,6 +38,7 @@ import io.cucumber.java.en.Then; import io.cucumber.java.en.When; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import lombok.CustomLog; import lombok.RequiredArgsConstructor; @@ -158,11 +159,11 @@ private Schedule verifyScheduleFromMirror(ScheduleStatus scheduleStatus) { .collect(Collectors.toSet()); assertThat(signatureSet).hasSize(currentSignersCount); - switch (scheduleStatus) { - case DELETED, NON_EXECUTED -> assertThat(mirrorSchedule.getExecutedTimestamp()) - .isNull(); - case EXECUTED -> assertThat(mirrorSchedule.getExecutedTimestamp()).isNotNull(); - default -> {} + if (Objects.requireNonNull(scheduleStatus) == ScheduleStatus.DELETED + || scheduleStatus == ScheduleStatus.NON_EXECUTED) { + assertThat(mirrorSchedule.getExecutedTimestamp()).isNull(); + } else if (scheduleStatus == ScheduleStatus.EXECUTED) { + assertThat(mirrorSchedule.getExecutedTimestamp()).isNotNull(); } return mirrorSchedule; diff --git a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/util/TestUtil.java b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/util/TestUtil.java index 5e3e786155d..daab2238afe 100644 --- a/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/util/TestUtil.java +++ b/hedera-mirror-test/src/test/java/com/hedera/mirror/test/e2e/acceptance/util/TestUtil.java @@ -52,7 +52,7 @@ public class TestUtil { private static final BaseEncoding BASE32_ENCODER = BaseEncoding.base32().omitPadding(); private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); private static final SecureRandom RANDOM = new SecureRandom(); - public static String ZERO_ADDRESS = "0x0000000000000000000000000000000000000000"; + public static final String ZERO_ADDRESS = "0x0000000000000000000000000000000000000000"; private static final Pattern extractTransactionIdPattern = Pattern.compile("(\\d+\\.\\d+\\.\\d+)@(\\d+)\\.(\\d+)"); public static String getAliasFromPublicKey(@NonNull PublicKey key) { diff --git a/hedera-mirror-web3/src/main/java/com/hedera/mirror/web3/evm/store/contract/HederaEvmWorldState.java b/hedera-mirror-web3/src/main/java/com/hedera/mirror/web3/evm/store/contract/HederaEvmWorldState.java index 030f0e317da..fc6ebd21837 100644 --- a/hedera-mirror-web3/src/main/java/com/hedera/mirror/web3/evm/store/contract/HederaEvmWorldState.java +++ b/hedera-mirror-web3/src/main/java/com/hedera/mirror/web3/evm/store/contract/HederaEvmWorldState.java @@ -127,7 +127,6 @@ public static class Updater extends AbstractLedgerWorldUpdater 0) - throw new IllegalArgumentException("uint64 out of range for Java.long"); - return big.longValue(); - } else if (bigNumeric instanceof Long big) { - return big; - } else return (long) bigNumeric; + switch (bigNumeric) { + case BigInteger big -> { + if (big.compareTo(LONG_MIN) < 0 || big.compareTo(LONG_MAX) > 0) + throw new IllegalArgumentException("uint64 out of range for Java.long"); + return big.longValue(); + } + case Long big -> { + return big; + } + default -> { + return (long) bigNumeric; + } + } } @NonNull diff --git a/hedera-mirror-web3/src/main/java/com/hedera/services/utils/MiscUtils.java b/hedera-mirror-web3/src/main/java/com/hedera/services/utils/MiscUtils.java index c33e8d49f86..e38eae111ae 100644 --- a/hedera-mirror-web3/src/main/java/com/hedera/services/utils/MiscUtils.java +++ b/hedera-mirror-web3/src/main/java/com/hedera/services/utils/MiscUtils.java @@ -124,7 +124,7 @@ public static HederaFunctionality functionOf(@NonNull final TransactionBody txn) case TOKENDISSOCIATE -> TokenDissociateFromAccount; case TOKEN_PAUSE -> TokenPause; case TOKEN_UNPAUSE -> TokenUnpause; - default -> throw new Exception("Unknown HederaFunctionality for " + txn); + default -> throw new IllegalArgumentException("Unknown HederaFunctionality for " + txn); }; } diff --git a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/account/MirrorEvmContractAliasesTest.java b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/account/MirrorEvmContractAliasesTest.java index 84c7031881c..47a1d7b7acf 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/account/MirrorEvmContractAliasesTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/account/MirrorEvmContractAliasesTest.java @@ -154,10 +154,10 @@ void isInUseShouldBeFalseIfNotInAliasesOrPending() { @Test void publicKeyCouldNotBeParsed() throws InvalidProtocolBufferException, InvalidKeyException { - final byte[] ECDSA_PUBLIC_KEY = + final byte[] ecdsaPublicKey = Hex.decode("3a21033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d"); Address recoveredAddress = Address.fromHexString("0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"); - Key key = Key.parseFrom(ECDSA_PUBLIC_KEY); + Key key = Key.parseFrom(ecdsaPublicKey); JKey jKey = JKey.mapKey(key); mirrorEvmContractAliases.maybeLinkEvmAddress(jKey, ADDRESS); diff --git a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/contracts/operations/HederaBlockHashOperationTest.java b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/contracts/operations/HederaBlockHashOperationTest.java index a47e6e8bb8f..71748e1bae4 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/contracts/operations/HederaBlockHashOperationTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/contracts/operations/HederaBlockHashOperationTest.java @@ -56,7 +56,7 @@ void setup() { void testTooLargeValuePassedReturnsZero() { given(messageFrame.popStackItem()).willReturn(Bytes.of(0xa, 0xb, 0xa, 0xb, 0xa, 0xb, 0xa, 0xb, 0xa)); - var result = subject.executeFixedCostOperation(messageFrame, evm); + subject.executeFixedCostOperation(messageFrame, evm); verify(messageFrame, times(1)).pushStackItem(UInt256.ZERO); } diff --git a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/CachingStateFrameTest.java b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/CachingStateFrameTest.java index 052c59cbb9d..2d3e67d0804 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/CachingStateFrameTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/CachingStateFrameTest.java @@ -218,7 +218,9 @@ public BareCachingStateFrame( } @Override - public void updatesFromDownstream(@NonNull final CachingStateFrame childFrame) {} + public void updatesFromDownstream(@NonNull final CachingStateFrame childFrame) { + throw new UnsupportedOperationException("Missing implementation"); + } @NonNull @Override @@ -232,11 +234,15 @@ protected void setValue( @NonNull final Class klass, @NonNull final UpdatableReferenceCache cache, @NonNull final K key, - @NonNull final Object value) {} + @NonNull final Object value) { + // No op + } @Override protected void deleteValue( - @NonNull final Class klass, @NonNull final UpdatableReferenceCache cache, @NonNull final K key) {} + @NonNull final Class klass, @NonNull final UpdatableReferenceCache cache, @NonNull final K key) { + // No op + } } /** A spying `CachingStateFrame` that records accesses to the methods underlying value accessors */ diff --git a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/UpdatableReferenceCacheSpy.java b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/UpdatableReferenceCacheSpy.java index 7b8811ec6c8..b162ef86ce0 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/UpdatableReferenceCacheSpy.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/UpdatableReferenceCacheSpy.java @@ -32,8 +32,6 @@ public class UpdatableReferenceCacheSpy extends UpdatableReferenceCache public static final Class VALUE_CLASS = Long.class; - public UpdatableReferenceCacheSpy() {} - @NonNull public UpdatableReferenceCacheSpy addToOriginal(@NonNull final String k, final long v) { original.put(k, v); diff --git a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/UpdatableReferenceCacheTest.java b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/UpdatableReferenceCacheTest.java index 0636c880602..17f46f5ba8e 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/UpdatableReferenceCacheTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/UpdatableReferenceCacheTest.java @@ -51,12 +51,10 @@ class UpdatableReferenceCacheTest { void setInitialCacheLineState(@NonNull final ValueIs originalValueIs, @NonNull final ValueIs currentValueIs) { switch (originalValueIs) { - case MISSING -> {} case NULL -> sut.addNullToOriginal(THIS_KEY); case NON_NULL -> sut.addToOriginal(THIS_KEY, ORIGINAL_VALUE); } switch (currentValueIs) { - case MISSING -> {} case NULL -> sut.addNullToCurrent(THIS_KEY); case NON_NULL -> sut.addToCurrent(THIS_KEY, UPDATED_VALUE); } diff --git a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/contract/MockLedgerWorldUpdater.java b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/contract/MockLedgerWorldUpdater.java index 5b68a389af5..777f0b90332 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/contract/MockLedgerWorldUpdater.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/evm/store/contract/MockLedgerWorldUpdater.java @@ -55,5 +55,7 @@ public MutableAccount getSenderAccount(MessageFrame frame) { } @Override - public void commit() {} + public void commit() { + // No op + } } diff --git a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/repository/TokenAllowanceRepositoryTest.java b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/repository/TokenAllowanceRepositoryTest.java index 907b763342c..ae792792705 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/repository/TokenAllowanceRepositoryTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/repository/TokenAllowanceRepositoryTest.java @@ -290,7 +290,7 @@ void findByOwnerAndTimestampWithHistoryTransferOverlaps() { .timestampRange(historyRange)) .persist(); - var tokenTransfer1 = domainBuilder + domainBuilder .tokenTransfer() .customize(t -> t.isApproval(true) .amount(amountForTransfer) @@ -486,7 +486,7 @@ void findByOwnerAndTimestampWithContractTransfer() { .build())) .persist(); - final var contractResult = domainBuilder + domainBuilder .contractResult() .customize(c -> c.consensusTimestamp(tokenTransferTimestamp).senderId(EntityId.of(senderId))) .persist(); @@ -546,7 +546,6 @@ void findByOwnerAndTimestampWithContractTransferAfterBlockTimestamp() { void findByOwnerAndTimestampWithRegularTokenTransfersAndContractTokenTransfers() { long ownerId = 100L; long tokenId = 200L; - long spenderId = 300L; long senderId = 400L; long tokenAllowanceTimestamp = System.currentTimeMillis(); long tokenTransferTimestamp = tokenAllowanceTimestamp + 100; diff --git a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/repository/TokenBalanceRepositoryTest.java b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/repository/TokenBalanceRepositoryTest.java index 39f1d70c70e..6a3d2a9f1cb 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/repository/TokenBalanceRepositoryTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/mirror/web3/repository/TokenBalanceRepositoryTest.java @@ -164,7 +164,6 @@ void findHistoricalBalanceIfTokenBalanceIsMissing() { .entity() .customize(a -> a.id(accountId.getAccountId().getId())) .persist(); - long accountCreationTimestamp = account.getCreatedTimestamp(); // not persisted var tokenBalance1 = domainBuilder .tokenBalance() diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/contracts/execution/LivePricesSourceTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/contracts/execution/LivePricesSourceTest.java index efbdf01b1a3..4cb87f7791f 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/contracts/execution/LivePricesSourceTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/contracts/execution/LivePricesSourceTest.java @@ -72,14 +72,14 @@ void setUp() { @Test void getsExpectedGasPriceWithReasonableMultiplier() { - givenCollabsWithMultiplier(REASONABLE_MULTIPLIER); + givenCollabsWithMultiplier(); final var expected = getTinybarsFromTinyCents(ACTIVE_RATE, GAS_PRICE_TINYBARS) * REASONABLE_MULTIPLIER; assertEquals(expected, subject.currentGasPrice(NOW, ContractCall)); } - private void givenCollabsWithMultiplier(final long multiplier) { + private void givenCollabsWithMultiplier() { given(exchange.rate(TIME_NOW)).willReturn(ACTIVE_RATE); given(usagePrices.defaultPricesGiven(ContractCall, TIME_NOW)).willReturn(PROVIDER_PRICES); } diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/UsageBasedFeeCalculatorTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/UsageBasedFeeCalculatorTest.java index 3d02589fe9d..3d57d4c7b3b 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/UsageBasedFeeCalculatorTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/UsageBasedFeeCalculatorTest.java @@ -234,12 +234,11 @@ private Transaction.Builder signableTxn(final long fee) { } private TransactionBody.Builder baseTxn() { - final TransactionBody.Builder txn = TransactionBody.newBuilder() + return TransactionBody.newBuilder() .setNodeAccountID(asAccount("0.0.3")) .setTransactionValidDuration( Duration.newBuilder().setSeconds(68).build()) .setMemo("memo"); - return txn; } private void givenApplicableButUnusableCalculator() { diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/utils/AccessorBasedUsagesTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/utils/AccessorBasedUsagesTest.java index 966cfcb0c60..e4c1092f50f 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/utils/AccessorBasedUsagesTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/utils/AccessorBasedUsagesTest.java @@ -310,9 +310,9 @@ void worksAsExpectedForCryptoUpdateWithAutoRenewEnabled() { subject.assess(sigUsage, txnAccessor, accumulator); - long THREE_MONTHS_IN_SECONDS = 7776000L; + long threeMonthsInSeconds = 7776000L; verify(cryptoOpsUsage) - .cryptoUpdateUsage(sigUsage, baseMeta, opMeta, cryptoContext, accumulator, THREE_MONTHS_IN_SECONDS); + .cryptoUpdateUsage(sigUsage, baseMeta, opMeta, cryptoContext, accumulator, threeMonthsInSeconds); } @Test diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/utils/OpUsageCtxHelperTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/utils/OpUsageCtxHelperTest.java index d338b239112..ae770d27da3 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/utils/OpUsageCtxHelperTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/calculation/utils/OpUsageCtxHelperTest.java @@ -16,7 +16,6 @@ package com.hedera.services.fees.calculation.utils; -import static com.hedera.services.utils.EntityIdUtils.asTypedEvmAddress; import static com.hedera.services.utils.IdUtils.asAccount; import static com.hedera.services.utils.IdUtils.asToken; import static com.hedera.services.utils.MiscUtils.asUsableFcKey; @@ -29,7 +28,6 @@ import com.google.protobuf.ByteString; import com.hedera.mirror.web3.evm.account.MirrorEvmContractAliases; import com.hedera.mirror.web3.evm.store.Store; -import com.hedera.mirror.web3.evm.store.Store.OnMissing; import com.hedera.node.app.service.evm.store.tokens.TokenType; import com.hedera.services.store.models.Account; import com.hedera.services.store.models.FcTokenAllowanceId; @@ -188,8 +186,6 @@ void getMetaForTokenMintWorks() { given(accessor.getTxn()).willReturn(txn); given(accessor.getSubType()).willReturn(TOKEN_NON_FUNGIBLE_UNIQUE); - given(store.getToken(asTypedEvmAddress(target), OnMissing.THROW)).willReturn(extant); - final var tokenMintMeta = subject.metaForTokenMint(accessor); // then: diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/usage/state/UsageAccumulatorTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/usage/state/UsageAccumulatorTest.java index 4f29aab0165..e9ad46c233a 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/usage/state/UsageAccumulatorTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/usage/state/UsageAccumulatorTest.java @@ -41,7 +41,9 @@ class UsageAccumulatorTest { private final UsageAccumulator subject = new UsageAccumulator(); @BeforeEach - void setUp() {} + void setUp() { + // No op + } @Test void understandsNetworkPartitioning() { diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/usage/token/TokenOpsUsageUtilsTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/usage/token/TokenOpsUsageUtilsTest.java index 4111d66579f..f6169e2ea1e 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/fees/usage/token/TokenOpsUsageUtilsTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/fees/usage/token/TokenOpsUsageUtilsTest.java @@ -168,8 +168,7 @@ void tokenBurnNonFungibleUniqueWorks() { void tokenMintFungibleCommonWorks() { final var txn = givenTokenMintWith(FUNGIBLE_COMMON); - final TokenMintMeta tokenMintMeta = - TOKEN_OPS_USAGE_UTILS.tokenMintUsageFrom(txn, TOKEN_FUNGIBLE_COMMON, 72000L); + final TokenMintMeta tokenMintMeta = TOKEN_OPS_USAGE_UTILS.tokenMintUsageFrom(txn, TOKEN_FUNGIBLE_COMMON); assertEquals(0, tokenMintMeta.getRbs()); assertEquals(32, tokenMintMeta.getBpt()); @@ -180,8 +179,7 @@ void tokenMintFungibleCommonWorks() { void tokenMintNonFungibleUniqueWorks() { final var txn = givenTokenMintWith(NON_FUNGIBLE_UNIQUE); - final TokenMintMeta tokenMintMeta = - TOKEN_OPS_USAGE_UTILS.tokenMintUsageFrom(txn, TOKEN_NON_FUNGIBLE_UNIQUE, 72000L); + final TokenMintMeta tokenMintMeta = TOKEN_OPS_USAGE_UTILS.tokenMintUsageFrom(txn, TOKEN_NON_FUNGIBLE_UNIQUE); assertEquals(0, tokenMintMeta.getRbs()); assertEquals(2, tokenMintMeta.getBpt()); @@ -298,7 +296,7 @@ private TransactionBody givenTokenMintWith(final TokenType type) { .build(); } - public static Key A_THRESHOLD_KEY = Key.newBuilder() + public static final Key A_THRESHOLD_KEY = Key.newBuilder() .setThresholdKey(ThresholdKey.newBuilder() .setThreshold(2) .setKeys(KeyList.newBuilder() @@ -331,7 +329,7 @@ private TransactionBody givenTokenMintWith(final TokenType type) { .setEd25519(ByteString.copyFrom("cccccccccccccccccccccccccccccccc".getBytes())))) .build(); - public static Key A_COMPLEX_KEY = Key.newBuilder() + public static final Key A_COMPLEX_KEY = Key.newBuilder() .setThresholdKey(ThresholdKey.newBuilder() .setThreshold(2) .setKeys(KeyList.newBuilder() @@ -352,7 +350,7 @@ private TransactionBody givenTokenMintWith(final TokenType type) { .addKeys(A_COMPLEX_KEY))) .build(); - public static Key B_COMPLEX_KEY = Key.newBuilder() + public static final Key B_COMPLEX_KEY = Key.newBuilder() .setThresholdKey(ThresholdKey.newBuilder() .setThreshold(2) .setKeys(KeyList.newBuilder() @@ -363,7 +361,7 @@ private TransactionBody givenTokenMintWith(final TokenType type) { .addKeys(A_COMPLEX_KEY))) .build(); - public static Key C_COMPLEX_KEY = Key.newBuilder() + public static final Key C_COMPLEX_KEY = Key.newBuilder() .setThresholdKey(ThresholdKey.newBuilder() .setThreshold(2) .setKeys(KeyList.newBuilder() @@ -375,7 +373,7 @@ private TransactionBody givenTokenMintWith(final TokenType type) { .build(); private static final Key wipeKey = C_COMPLEX_KEY; - public static Key A_KEY_LIST = Key.newBuilder() + public static final Key A_KEY_LIST = Key.newBuilder() .setKeyList(KeyList.newBuilder() .addKeys(Key.newBuilder() .setEd25519(ByteString.copyFrom("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".getBytes()))) diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/hapi/fees/usage/crypto/CryptoDeleteAllowanceMetaTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/hapi/fees/usage/crypto/CryptoDeleteAllowanceMetaTest.java index 0e225baf6fb..fd034071706 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/hapi/fees/usage/crypto/CryptoDeleteAllowanceMetaTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/hapi/fees/usage/crypto/CryptoDeleteAllowanceMetaTest.java @@ -40,7 +40,9 @@ class CryptoDeleteAllowanceMetaTest { .build(); @BeforeEach - void setUp() {} + void setUp() { + // No op + } @Test void allGettersAndToStringWork() { diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/SyntheticTxnFactoryTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/SyntheticTxnFactoryTest.java index 3f73c9ef701..ddbc069960f 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/SyntheticTxnFactoryTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/SyntheticTxnFactoryTest.java @@ -39,8 +39,6 @@ import com.google.protobuf.ByteString; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.GrantRevokeKycWrapper; import com.hedera.node.app.service.evm.store.contracts.precompile.codec.TokenFreezeUnfreezeWrapper; -import com.hedera.node.app.service.evm.utils.EthSigsUtils; -import com.hedera.services.jproto.JKey; import com.hedera.services.store.contracts.precompile.codec.ApproveWrapper; import com.hedera.services.store.contracts.precompile.codec.BurnWrapper; import com.hedera.services.store.contracts.precompile.codec.Dissociation; @@ -126,8 +124,6 @@ void createsExpectedCryptoCreateWithECKeyAlias() throws InvalidKeyException { final Key key = Key.newBuilder().setECDSASecp256K1(ByteString.copyFrom(bytes)).build(); final var alias = key.toByteString(); - final var evmAddress = ByteString.copyFrom( - EthSigsUtils.recoverAddressFromPubKey(JKey.mapKey(key).getECDSASecp256k1Key())); final var result = subject.createAccount(alias, key, balance, 0); final var txnBody = result.build(); diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TokenUpdateKeysPrecompileTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TokenUpdateKeysPrecompileTest.java index 0a8e1523404..6056b8f7a5b 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TokenUpdateKeysPrecompileTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TokenUpdateKeysPrecompileTest.java @@ -17,7 +17,6 @@ package com.hedera.services.store.contracts.precompile; import static com.hedera.mirror.web3.common.PrecompileContext.PRECOMPILE_CONTEXT; -import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.FUNGIBLE; import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.contractAddress; import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.failResult; import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.sender; @@ -44,20 +43,15 @@ import com.hedera.services.fees.HbarCentExchange; import com.hedera.services.fees.calculation.UsagePricesProvider; import com.hedera.services.fees.pricing.AssetsLoader; -import com.hedera.services.store.contracts.precompile.codec.KeyValueWrapper; -import com.hedera.services.store.contracts.precompile.codec.TokenKeyWrapper; -import com.hedera.services.store.contracts.precompile.codec.TokenUpdateKeysWrapper; import com.hedera.services.store.contracts.precompile.impl.TokenUpdateKeysPrecompile; import com.hedera.services.store.contracts.precompile.utils.PrecompilePricingUtils; import com.hedera.services.txns.validation.OptionValidator; -import com.hedera.services.utils.EntityIdUtils; import com.hedera.services.utils.accessors.AccessorFactory; import com.hederahashgraph.api.proto.java.ExchangeRate; import com.hederahashgraph.api.proto.java.Timestamp; import com.hederahashgraph.api.proto.java.TokenUpdateTransactionBody; import com.hederahashgraph.api.proto.java.TransactionBody; import java.util.Deque; -import java.util.List; import java.util.Set; import org.apache.tuweni.bytes.Bytes; import org.hyperledger.besu.datatypes.Wei; @@ -281,13 +275,4 @@ private void givenPricingUtilsContext() { given(worldUpdater.permissivelyUnaliased(any())) .willAnswer(invocationOnMock -> invocationOnMock.getArgument(0)); } - - private TokenUpdateKeysWrapper getUpdateWrapper() { - final var adminKey = new KeyValueWrapper( - false, null, new byte[] {}, new byte[] {}, EntityIdUtils.contractIdFromEvmAddress(contractAddress)); - final var multiKey = new KeyValueWrapper( - false, EntityIdUtils.contractIdFromEvmAddress(contractAddress), new byte[] {}, new byte[] {}, null); - return new TokenUpdateKeysWrapper( - FUNGIBLE, List.of(new TokenKeyWrapper(112, multiKey), new TokenKeyWrapper(1, adminKey))); - } } diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TokenUpdateWrapperTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TokenUpdateWrapperTest.java index 787387b98ca..3bcc524532e 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TokenUpdateWrapperTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TokenUpdateWrapperTest.java @@ -35,15 +35,15 @@ class TokenUpdateWrapperTest { @Test void createsExpectedTokenUpdateCallForNonFungible() { // given - final var ComplexKey = new KeyValueWrapper( + final var complexKey = new KeyValueWrapper( false, null, new byte[] {}, new byte[] {}, contractIdFromEvmAddress(contractAddress.toArrayUnsafe())); final var multiKey = new KeyValueWrapper( false, contractIdFromEvmAddress(contractAddress.toArrayUnsafe()), new byte[] {}, new byte[] {}, null); final var wrapper = createNonFungibleTokenUpdateWrapperWithKeys(List.of( new TokenKeyWrapper(112, multiKey), - new TokenKeyWrapper(2, ComplexKey), - new TokenKeyWrapper(4, ComplexKey), - new TokenKeyWrapper(8, ComplexKey))); + new TokenKeyWrapper(2, complexKey), + new TokenKeyWrapper(4, complexKey), + new TokenKeyWrapper(8, complexKey))); // when final var result = createTokenUpdate(wrapper); diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TransferPrecompileTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TransferPrecompileTest.java index 43fdede668a..7b17f458a16 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TransferPrecompileTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/store/contracts/precompile/TransferPrecompileTest.java @@ -17,7 +17,6 @@ package com.hedera.services.store.contracts.precompile; import static com.hedera.mirror.web3.common.PrecompileContext.PRECOMPILE_CONTEXT; -import static com.hedera.services.hapi.utils.ByteStringUtils.wrapUnsafely; import static com.hedera.services.store.contracts.precompile.AbiConstants.ABI_ID_CRYPTO_TRANSFER; import static com.hedera.services.store.contracts.precompile.AbiConstants.ABI_ID_CRYPTO_TRANSFER_V2; import static com.hedera.services.store.contracts.precompile.AbiConstants.ABI_ID_TRANSFER_NFTS; @@ -40,7 +39,6 @@ import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.TEST_CONSENSUS_TIME; import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.contractAddress; import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.receiverAliased; -import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.recipientAddress; import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.sender; import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.successResult; import static com.hedera.services.store.contracts.precompile.HTSTestsUtil.timestamp; @@ -77,7 +75,6 @@ import com.hedera.mirror.web3.evm.store.contract.HederaEvmStackedWorldStateUpdater; import com.hedera.node.app.service.evm.store.contracts.precompile.EvmInfrastructureFactory; import com.hedera.node.app.service.evm.store.tokens.TokenAccessor; -import com.hedera.services.hapi.utils.ByteStringUtils; import com.hedera.services.ledger.TransferLogic; import com.hedera.services.store.contracts.precompile.codec.BodyParams; import com.hedera.services.store.contracts.precompile.codec.TransferParams; @@ -85,9 +82,7 @@ import com.hedera.services.store.contracts.precompile.utils.PrecompilePricingUtils; import com.hedera.services.txns.crypto.AutoCreationLogic; import com.hedera.services.txns.validation.ContextOptionValidator; -import com.hedera.services.utils.EntityIdUtils; import com.hederahashgraph.api.proto.java.AccountAmount; -import com.hederahashgraph.api.proto.java.AccountID; import com.hederahashgraph.api.proto.java.CryptoTransferTransactionBody; import com.hederahashgraph.api.proto.java.NftTransfer; import com.hederahashgraph.api.proto.java.ResponseCodeEnum; @@ -778,9 +773,6 @@ void decodeTransferTokensPositiveAmounts() { final var fungibleTransfers = decodedInput.tokenTransferWrappers().get(0).fungibleTransfers(); - final var nonLongZeroAlias = ByteStringUtils.wrapUnsafely( - java.util.HexFormat.of().parseHex("0000000000000000001000000000000000000441")); - assertEquals(2, fungibleTransfers.size()); assertTrue(fungibleTransfers.get(0).getDenomination().getTokenNum() > 0); assertTrue(fungibleTransfers.get(1).getDenomination().getTokenNum() > 0); @@ -804,13 +796,6 @@ void decodeTransferTokensPositiveAmountsWithAliases() { final var fungibleTransfers = decodedInput.tokenTransferWrappers().get(0).fungibleTransfers(); - final var longZeroAlias = wrapUnsafely(EntityIdUtils.asTypedEvmAddress( - AccountID.newBuilder().setAccountNum(1089).build()) - .toArrayUnsafe()); - - final var nonLongZeroAlias = - wrapUnsafely(java.util.HexFormat.of().parseHex("0000000000000000001000000000000000000441")); - assertEquals(2, fungibleTransfers.size()); assertTrue(fungibleTransfers.get(0).getDenomination().getTokenNum() > 0); assertTrue(fungibleTransfers.get(1).getDenomination().getTokenNum() > 0); @@ -881,11 +866,6 @@ void decodeTransferNFTsInput() { final var nonFungibleTransfers = decodedInput.tokenTransferWrappers().get(0).nftExchanges(); - final var nonLongZeroAlias = - wrapUnsafely(java.util.HexFormat.of().parseHex("000000000000000000000010000000000000047c")); - final var expectedReceiver = - AccountID.newBuilder().setAlias(nonLongZeroAlias).build(); - assertEquals(2, nonFungibleTransfers.size()); assertTrue(nonFungibleTransfers.get(0).asGrpc().getSenderAccountID().getAccountNum() > 0); assertTrue(nonFungibleTransfers.get(1).asGrpc().getSenderAccountID().getAccountNum() > 0); @@ -915,18 +895,9 @@ void decodeTransferNFTsInputWithAlias() { final var nonFungibleTransfers = decodedInput.tokenTransferWrappers().get(0).nftExchanges(); - final var alias = wrapUnsafely(EntityIdUtils.asTypedEvmAddress( - AccountID.newBuilder().setAccountNum(1148).build()) - .toArrayUnsafe()); - final var nonLongZeroAlias = - wrapUnsafely(java.util.HexFormat.of().parseHex("000000000000000000000010000000000000047c")); - assertEquals(2, nonFungibleTransfers.size()); assertTrue(nonFungibleTransfers.get(0).asGrpc().getSenderAccountID().getAccountNum() > 0); assertTrue(nonFungibleTransfers.get(1).asGrpc().getSenderAccountID().getAccountNum() > 0); - final var expectedReceiver = AccountID.newBuilder().setAlias(alias).build(); - final var secondExpectedReceiver = - AccountID.newBuilder().setAlias(nonLongZeroAlias).build(); assertTrue(nonFungibleTransfers.get(0).getTokenType().getTokenNum() > 0); assertTrue(nonFungibleTransfers.get(1).getTokenType().getTokenNum() > 0); assertEquals(123, nonFungibleTransfers.get(0).asGrpc().getSerialNumber()); @@ -1122,11 +1093,6 @@ private void givenMinimalFrameContext() { given(frame.getValue()).willReturn(Wei.ZERO); } - private void givenIfDelegateCall() { - given(frame.getContractAddress()).willReturn(contractAddress); - given(frame.getRecipientAddress()).willReturn(recipientAddress); - } - private boolean existsMock(Address address) { return true; } diff --git a/hedera-mirror-web3/src/test/java/com/hedera/services/utils/MiscUtilsTest.java b/hedera-mirror-web3/src/test/java/com/hedera/services/utils/MiscUtilsTest.java index 56c3cb13507..a4f360172ed 100644 --- a/hedera-mirror-web3/src/test/java/com/hedera/services/utils/MiscUtilsTest.java +++ b/hedera-mirror-web3/src/test/java/com/hedera/services/utils/MiscUtilsTest.java @@ -53,7 +53,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.protobuf.ByteString; -import com.google.protobuf.GeneratedMessageV3; +import com.google.protobuf.GeneratedMessage; import com.hederahashgraph.api.proto.java.ContractCallTransactionBody; import com.hederahashgraph.api.proto.java.ContractCreateTransactionBody; import com.hederahashgraph.api.proto.java.ContractDeleteTransactionBody; @@ -88,7 +88,7 @@ import com.hederahashgraph.api.proto.java.TransactionBody; import com.hederahashgraph.api.proto.java.TransactionBody.Builder; import java.lang.reflect.Method; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Map; import java.util.stream.Stream; import org.junit.jupiter.api.Assertions; @@ -162,37 +162,38 @@ void testAsPrimitiveKeyUnchecked() { @Test void getsExpectedTxnFunctionality() { - final Map> setters = new HashMap<>() { - { - put(ContractCall, new BodySetter<>(ContractCallTransactionBody.class)); - put(ContractCreate, new BodySetter<>(ContractCreateTransactionBody.class)); - put(EthereumTransaction, new BodySetter<>(EthereumTransactionBody.class)); - put(ContractUpdate, new BodySetter<>(ContractUpdateTransactionBody.class)); - put(CryptoAddLiveHash, new BodySetter<>(CryptoAddLiveHashTransactionBody.class)); - put(CryptoCreate, new BodySetter<>(CryptoCreateTransactionBody.class)); - put(CryptoDelete, new BodySetter<>(CryptoDeleteTransactionBody.class)); - put(CryptoDeleteLiveHash, new BodySetter<>(CryptoDeleteLiveHashTransactionBody.class)); - put(CryptoTransfer, new BodySetter<>(CryptoTransferTransactionBody.class)); - put(CryptoUpdate, new BodySetter<>(CryptoUpdateTransactionBody.class)); - put(ContractDelete, new BodySetter<>(ContractDeleteTransactionBody.class)); - put(TokenCreate, new BodySetter<>(TokenCreateTransactionBody.class)); - put(TokenFreezeAccount, new BodySetter<>(TokenFreezeAccountTransactionBody.class)); - put(TokenUnfreezeAccount, new BodySetter<>(TokenUnfreezeAccountTransactionBody.class)); - put(TokenGrantKycToAccount, new BodySetter<>(TokenGrantKycTransactionBody.class)); - put(TokenRevokeKycFromAccount, new BodySetter<>(TokenRevokeKycTransactionBody.class)); - put(TokenDelete, new BodySetter<>(TokenDeleteTransactionBody.class)); - put(TokenUpdate, new BodySetter<>(TokenUpdateTransactionBody.class)); - put(TokenMint, new BodySetter<>(TokenMintTransactionBody.class)); - put(TokenBurn, new BodySetter<>(TokenBurnTransactionBody.class)); - put(TokenAccountWipe, new BodySetter<>(TokenWipeAccountTransactionBody.class)); - put(TokenAssociateToAccount, new BodySetter<>(TokenAssociateTransactionBody.class)); - put(TokenDissociateFromAccount, new BodySetter<>(TokenDissociateTransactionBody.class)); - put(TokenUnpause, new BodySetter<>(TokenUnpauseTransactionBody.class)); - put(TokenPause, new BodySetter<>(TokenPauseTransactionBody.class)); - put(Freeze, new BodySetter<>(FreezeTransactionBody.class)); - put(CryptoApproveAllowance, new BodySetter<>(CryptoApproveAllowanceTransactionBody.class)); - } - }; + final Map> setters = + new EnumMap<>(HederaFunctionality.class) { + { + put(ContractCall, new BodySetter<>(ContractCallTransactionBody.class)); + put(ContractCreate, new BodySetter<>(ContractCreateTransactionBody.class)); + put(EthereumTransaction, new BodySetter<>(EthereumTransactionBody.class)); + put(ContractUpdate, new BodySetter<>(ContractUpdateTransactionBody.class)); + put(CryptoAddLiveHash, new BodySetter<>(CryptoAddLiveHashTransactionBody.class)); + put(CryptoCreate, new BodySetter<>(CryptoCreateTransactionBody.class)); + put(CryptoDelete, new BodySetter<>(CryptoDeleteTransactionBody.class)); + put(CryptoDeleteLiveHash, new BodySetter<>(CryptoDeleteLiveHashTransactionBody.class)); + put(CryptoTransfer, new BodySetter<>(CryptoTransferTransactionBody.class)); + put(CryptoUpdate, new BodySetter<>(CryptoUpdateTransactionBody.class)); + put(ContractDelete, new BodySetter<>(ContractDeleteTransactionBody.class)); + put(TokenCreate, new BodySetter<>(TokenCreateTransactionBody.class)); + put(TokenFreezeAccount, new BodySetter<>(TokenFreezeAccountTransactionBody.class)); + put(TokenUnfreezeAccount, new BodySetter<>(TokenUnfreezeAccountTransactionBody.class)); + put(TokenGrantKycToAccount, new BodySetter<>(TokenGrantKycTransactionBody.class)); + put(TokenRevokeKycFromAccount, new BodySetter<>(TokenRevokeKycTransactionBody.class)); + put(TokenDelete, new BodySetter<>(TokenDeleteTransactionBody.class)); + put(TokenUpdate, new BodySetter<>(TokenUpdateTransactionBody.class)); + put(TokenMint, new BodySetter<>(TokenMintTransactionBody.class)); + put(TokenBurn, new BodySetter<>(TokenBurnTransactionBody.class)); + put(TokenAccountWipe, new BodySetter<>(TokenWipeAccountTransactionBody.class)); + put(TokenAssociateToAccount, new BodySetter<>(TokenAssociateTransactionBody.class)); + put(TokenDissociateFromAccount, new BodySetter<>(TokenDissociateTransactionBody.class)); + put(TokenUnpause, new BodySetter<>(TokenUnpauseTransactionBody.class)); + put(TokenPause, new BodySetter<>(TokenPauseTransactionBody.class)); + put(Freeze, new BodySetter<>(FreezeTransactionBody.class)); + put(CryptoApproveAllowance, new BodySetter<>(CryptoApproveAllowanceTransactionBody.class)); + } + }; setters.forEach((function, setter) -> { final var txn = TransactionBody.newBuilder();