@@ -71,20 +71,19 @@ public class ScheduleFeature extends AbstractFeature {
71
71
"I successfully schedule a HBAR transfer from treasury to {account} with expiration time {string} and wait for expiry {string}" )
72
72
public void createNewHBarTransferSchedule (
73
73
AccountNameEnum accountName , String expirationTimeInSeconds , String waitForExpiry ) {
74
- Instant expirationTime = null ;
75
-
76
- if (expirationTimeInSeconds != null && !expirationTimeInSeconds .equals ("null" )) {
77
- Duration expirationOffset = DurationStyle .detectAndParse (expirationTimeInSeconds );
78
- expirationTime = Instant .now ().plus (expirationOffset );
79
- }
80
-
81
- currentSignersCount = SIGNATORY_COUNT_OFFSET ;
74
+ currentSignersCount = SIGNATORY_COUNT_OFFSET ;
82
75
var recipient = accountClient .getAccount (accountName );
83
76
var scheduledTransaction = accountClient .getCryptoTransferTransaction (
84
77
accountClient .getTokenTreasuryAccount ().getAccountId (),
85
78
recipient .getAccountId (),
86
79
Hbar .fromTinybars (DEFAULT_TINY_HBAR ));
87
80
81
+ Instant expirationTime = null ;
82
+ if (expirationTimeInSeconds != null && !expirationTimeInSeconds .equals ("null" )) {
83
+ Duration expirationOffset = DurationStyle .detectAndParse (expirationTimeInSeconds );
84
+ expirationTime = Instant .now ().plus (expirationOffset );
85
+ }
86
+
88
87
createNewSchedule (scheduledTransaction , expirationTime , Boolean .parseBoolean (waitForExpiry ));
89
88
}
90
89
@@ -103,6 +102,12 @@ public void waitForScheduleToExpire() {
103
102
} catch (Exception e ) {
104
103
log .info ("Dummy transaction fails but triggers the schedule execution" );
105
104
}
105
+
106
+ //Wait until the transaction is executed and has a valid executed timestamp
107
+ await ().atMost (Duration .ofSeconds (30 ))
108
+ .pollDelay (Duration .ofMillis (100 ))
109
+ .pollInterval (Duration .ofMillis (100 ))
110
+ .untilAsserted (() -> assertThat (mirrorClient .getScheduleInfo (scheduleId .toString ()).getExecutedTimestamp ()).isNotNull ());
106
111
}
107
112
108
113
private void createNewSchedule (Transaction <?> transaction , Instant expirationTime , boolean waitForExpiry ) {
0 commit comments