@@ -188,7 +188,8 @@ public FileCreateResult executeFileCreateTransaction(@NonNull final FileCreateRe
188188 transaction .setExpirationTime (request .expirationTime ());
189189 }
190190
191- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
191+ final TransactionReceipt receipt =
192+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .FILE_CREATE );
192193 return new FileCreateResult (receipt .transactionId , receipt .status , receipt .fileId );
193194 }
194195
@@ -215,7 +216,8 @@ public FileUpdateResult executeFileUpdateRequestTransaction(
215216 if (request .expirationTime () != null ) {
216217 transaction .setExpirationTime (request .expirationTime ());
217218 }
218- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
219+ final TransactionReceipt receipt =
220+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .FILE_UPDATE );
219221 return new FileUpdateResult (receipt .transactionId , receipt .status );
220222 }
221223
@@ -238,7 +240,8 @@ public FileAppendResult executeFileAppendRequestTransaction(
238240 .setContents (request .contents ())
239241 .setTransactionMemo (request .fileMemo ());
240242
241- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
243+ final TransactionReceipt receipt =
244+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .FILE_APPEND );
242245 return new FileAppendResult (receipt .transactionId , receipt .status );
243246 }
244247
@@ -250,7 +253,8 @@ public FileDeleteResult executeFileDeleteTransaction(@NonNull final FileDeleteRe
250253 .setMaxTransactionFee (request .maxTransactionFee ())
251254 .setTransactionValidDuration (request .transactionValidDuration ())
252255 .setFileId (request .fileId ());
253- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
256+ final TransactionReceipt receipt =
257+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .FILE_DELETE );
254258 return new FileDeleteResult (receipt .transactionId , receipt .status );
255259 }
256260
@@ -266,7 +270,8 @@ public ContractCreateResult executeContractCreateTransaction(
266270 .setBytecodeFileId (request .fileId ())
267271 .setGas (DEFAULT_GAS )
268272 .setConstructorParameters (constructorParams );
269- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
273+ final TransactionReceipt receipt =
274+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .CONTRACT_CREATE );
270275 return new ContractCreateResult (receipt .transactionId , receipt .status , receipt .contractId );
271276 }
272277
@@ -285,7 +290,8 @@ public ContractDeleteResult executeContractDeleteTransaction(
285290 if (request .transferFeeToAccountId () != null ) {
286291 transaction .setTransferAccountId (request .transferFeeToAccountId ());
287292 }
288- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
293+ final TransactionReceipt receipt =
294+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .CONTRACT_DELETE );
289295 return new ContractDeleteResult (receipt .transactionId , receipt .status );
290296 }
291297
@@ -302,7 +308,8 @@ public ContractCallResult executeContractCallTransaction(
302308 .setContractId (request .contractId ())
303309 .setFunction (request .functionName (), functionParams )
304310 .setGas (DEFAULT_GAS );
305- final TransactionRecord record = executeTransactionAndWaitOnRecord (transaction );
311+ final TransactionRecord record =
312+ executeTransactionAndWaitOnRecord (transaction , TransactionType .CONTRACT_CALL );
306313 return new ContractCallResult (
307314 record .transactionId ,
308315 record .receipt .status ,
@@ -325,7 +332,8 @@ public AccountCreateResult executeAccountCreateTransaction(
325332 .setTransactionValidDuration (request .transactionValidDuration ())
326333 .setKey (publicKey )
327334 .setInitialBalance (request .initialBalance ());
328- final TransactionRecord record = executeTransactionAndWaitOnRecord (transaction );
335+ final TransactionRecord record =
336+ executeTransactionAndWaitOnRecord (transaction , TransactionType .ACCOUNT_CREATE );
329337 final Account newAccount = Account .of (record .receipt .accountId , publicKey , privateKey );
330338 return new AccountCreateResult (
331339 record .transactionId ,
@@ -359,7 +367,8 @@ public AccountDeleteResult executeAccountDeleteTransaction(
359367 request .toDelete ().privateKey (),
360368 hieroContext .getOperatorAccount ().privateKey ());
361369 }
362- final TransactionRecord record = executeTransactionAndWaitOnRecord (transaction );
370+ final TransactionRecord record =
371+ executeTransactionAndWaitOnRecord (transaction , TransactionType .ACCOUNT_DELETE );
363372 return new AccountDeleteResult (
364373 record .transactionId ,
365374 record .receipt .status ,
@@ -387,7 +396,8 @@ public TopicCreateResult executeTopicCreateTransaction(@NonNull final TopicCreat
387396 transaction .setSubmitKey (request .submitKey ());
388397 }
389398 sign (transaction , request .adminKey ());
390- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
399+ final TransactionReceipt receipt =
400+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOPIC_CREATE );
391401 return new TopicCreateResult (receipt .transactionId , receipt .status , receipt .topicId );
392402 } catch (final Exception e ) {
393403 throw new HieroException ("Failed to execute create topic transaction" , e );
@@ -421,7 +431,8 @@ public TopicCreateResult executeTopicCreateTransaction(@NonNull final TopicCreat
421431 } else {
422432 sign (transaction , request .adminKey ());
423433 }
424- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
434+ final TransactionReceipt receipt =
435+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOPIC_UPDATE );
425436 return new TopicUpdateResult (receipt .transactionId , receipt .status );
426437 } catch (final Exception e ) {
427438 throw new HieroException ("Failed to execute update topic transaction" , e );
@@ -438,7 +449,8 @@ public TopicDeleteResult executeTopicDeleteTransaction(@NonNull final TopicDelet
438449 .setTransactionValidDuration (request .transactionValidDuration ())
439450 .setTopicId (request .topicId ());
440451 sign (transaction , request .adminKey ());
441- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
452+ final TransactionReceipt receipt =
453+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOPIC_DELETE );
442454 return new TopicDeleteResult (receipt .transactionId , receipt .status );
443455 } catch (final Exception e ) {
444456 throw new HieroException ("Failed to execute delete topic transaction" , e );
@@ -458,7 +470,8 @@ public TopicSubmitMessageResult executeTopicMessageSubmitTransaction(
458470 if (request .submitKey () != null ) {
459471 sign (transaction , request .submitKey ());
460472 }
461- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
473+ final TransactionReceipt receipt =
474+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOPIC_MESSAGE_SUBMIT );
462475 return new TopicSubmitMessageResult (receipt .transactionId , receipt .status );
463476 } catch (final Exception e ) {
464477 throw new HieroException ("Failed to execute submit message transaction" , e );
@@ -502,7 +515,8 @@ public TokenCreateResult executeTokenCreateTransaction(@NonNull final TokenCreat
502515 .setTokenType (request .tokenType ())
503516 .setSupplyKey (request .supplyKey ());
504517 sign (transaction , request .treasuryKey (), request .supplyKey ());
505- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
518+ final TransactionReceipt receipt =
519+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOKEN_CREATE );
506520 return new TokenCreateResult (receipt .transactionId , receipt .status , receipt .tokenId );
507521 } catch (final Exception e ) {
508522 throw new HieroException ("Failed to execute create token transaction" , e );
@@ -520,7 +534,8 @@ public TokenAssociateResult executeTokenAssociateTransaction(
520534 .setTokenIds (request .tokenIds ())
521535 .setAccountId (request .accountId ());
522536 sign (transaction , request .accountPrivateKey ());
523- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
537+ final TransactionReceipt receipt =
538+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOKEN_ASSOCIATE );
524539 return new TokenAssociateResult (receipt .transactionId , receipt .status );
525540 } catch (final Exception e ) {
526541 throw new HieroException ("Failed to execute associate token transaction" , e );
@@ -539,7 +554,8 @@ public TokenAssociateResult executeTokenAssociateTransaction(
539554 .setAccountId (request .accountId ())
540555 .setTokenIds (request .tokenIds ());
541556 sign (transaction , request .accountKey ());
542- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
557+ final TransactionReceipt receipt =
558+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOKEN_DISSOCIATE );
543559 return new TokenDissociateResult (receipt .transactionId , receipt .status );
544560 } catch (final Exception e ) {
545561 throw new HieroException ("Failed to execute dissociate token transaction" , e );
@@ -563,7 +579,8 @@ public TokenBurnResult executeBurnTokenTransaction(@NonNull final TokenBurnReque
563579 throw new IllegalArgumentException ("either amount or serial must be provided" );
564580 }
565581
566- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
582+ final TransactionReceipt receipt =
583+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOKEN_BURN );
567584 return new TokenBurnResult (receipt .transactionId , receipt .status , receipt .totalSupply );
568585 } catch (final Exception e ) {
569586 throw new HieroException ("Failed to execute burn token transaction" , e );
@@ -587,7 +604,8 @@ public TokenMintResult executeMintTokenTransaction(@NonNull final TokenMintReque
587604 throw new IllegalArgumentException ("either amount or metadata must be provided" );
588605 }
589606 sign (transaction , request .supplyKey ());
590- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
607+ final TransactionReceipt receipt =
608+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .TOKEN_MINT );
591609 return new TokenMintResult (
592610 receipt .transactionId , receipt .status , receipt .serials , receipt .totalSupply );
593611 } catch (final Exception e ) {
@@ -619,7 +637,8 @@ public TokenTransferResult executeTransferTransaction(@NonNull final TokenTransf
619637 throw new IllegalArgumentException ("either amount or serial must be provided" );
620638 }
621639 sign (transaction , request .senderKey ());
622- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
640+ final TransactionReceipt receipt =
641+ executeTransactionAndWaitOnReceipt (transaction , TransactionType .CRYPTO_TRANSFER );
623642 return new TokenTransferResult (receipt .transactionId , receipt .status );
624643 } catch (final Exception e ) {
625644 throw new HieroException ("Failed to execute transfer nft transaction" , e );
@@ -651,15 +670,16 @@ private ContractFunctionParameters createParameters(
651670
652671 @ NonNull
653672 private <T extends Transaction <T >> TransactionReceipt executeTransactionAndWaitOnReceipt (
654- @ NonNull final T transaction ) throws HieroException {
673+ @ NonNull final T transaction , @ NonNull final TransactionType type ) throws HieroException {
655674 Objects .requireNonNull (transaction , "transaction must not be null" );
675+ Objects .requireNonNull (type , "type must not be null" );
656676 try {
657677 log .debug ("Sending transaction of type {}" , transaction .getClass ().getSimpleName ());
658678 final TransactionResponse response = transaction .execute (hieroContext .getClient ());
659679 listeners .forEach (
660680 listener -> {
661681 try {
662- listener .transactionSubmitted (TransactionType . ACCOUNT_CREATE , response .transactionId );
682+ listener .transactionSubmitted (type , response .transactionId );
663683 } catch (Exception e ) {
664684 log .error ("Failed to notify listener" , e );
665685 }
@@ -673,8 +693,7 @@ private <T extends Transaction<T>> TransactionReceipt executeTransactionAndWaitO
673693 listeners .forEach (
674694 listener -> {
675695 try {
676- listener .transactionHandled (
677- TransactionType .ACCOUNT_CREATE , response .transactionId , receipt .status );
696+ listener .transactionHandled (type , response .transactionId , receipt .status );
678697 } catch (Exception e ) {
679698 log .error ("Failed to notify listener" , e );
680699 }
@@ -696,8 +715,8 @@ private <T extends Transaction<T>> TransactionReceipt executeTransactionAndWaitO
696715
697716 @ NonNull
698717 private <T extends Transaction <T >> TransactionRecord executeTransactionAndWaitOnRecord (
699- @ NonNull final T transaction ) throws HieroException {
700- final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction );
718+ @ NonNull final T transaction , @ NonNull final TransactionType type ) throws HieroException {
719+ final TransactionReceipt receipt = executeTransactionAndWaitOnReceipt (transaction , type );
701720 try {
702721 log .debug (
703722 "Waiting for record of transaction '{}' of type {}" ,
0 commit comments