@@ -5909,6 +5909,15 @@ fn clarity_burn_state() {
5909
5909
} )
5910
5910
. unwrap ( ) ;
5911
5911
5912
+ // in the first tenure, make sure that the contracts are published
5913
+ if tenure_ix == 0 {
5914
+ wait_for ( 30 , || {
5915
+ let cur_sender_nonce = get_account ( & http_origin, & to_addr ( & sender_sk) ) . nonce ;
5916
+ Ok ( cur_sender_nonce >= sender_nonce)
5917
+ } )
5918
+ . expect ( "Timed out waiting for contracts to publish" ) ;
5919
+ }
5920
+
5912
5921
let info = get_chain_info ( & naka_conf) ;
5913
5922
burn_block_height = info. burn_block_height as u128 ;
5914
5923
info ! ( "Expecting burn block height to be {}" , burn_block_height) ;
@@ -7100,14 +7109,24 @@ fn check_block_times() {
7100
7109
contract3_name,
7101
7110
contract_clarity3,
7102
7111
) ;
7103
- sender_nonce += 1 ;
7104
7112
submit_tx ( & http_origin, & contract_tx3) ;
7113
+ sender_nonce += 1 ;
7114
+
7115
+ // sleep to ensure seconds have changed
7116
+ thread:: sleep ( Duration :: from_secs ( 3 ) ) ;
7105
7117
7106
7118
next_block_and_process_new_stacks_block ( & mut btc_regtest_controller, 60 , & coord_channel)
7107
7119
. unwrap ( ) ;
7108
7120
7121
+ // make sure that the contracts are published
7122
+ wait_for ( 30 , || {
7123
+ let cur_sender_nonce = get_account ( & http_origin, & to_addr ( & sender_sk) ) . nonce ;
7124
+ Ok ( cur_sender_nonce >= sender_nonce)
7125
+ } )
7126
+ . expect ( "Timed out waiting for contracts to publish" ) ;
7127
+
7109
7128
let info = get_chain_info_result ( & naka_conf) . unwrap ( ) ;
7110
- info ! ( "Chain info: {:?}" , info) ;
7129
+ info ! ( "Chain info: {:?}" , info. stacks_tip_height ) ;
7111
7130
let last_stacks_block_height = info. stacks_tip_height as u128 ;
7112
7131
let last_tenure_height = last_stacks_block_height as u128 ;
7113
7132
@@ -7116,7 +7135,7 @@ fn check_block_times() {
7116
7135
& sender_addr,
7117
7136
contract0_name,
7118
7137
"get-time" ,
7119
- vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 1 ) ] ,
7138
+ vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 2 ) ] ,
7120
7139
) ;
7121
7140
let time0 = time0_value
7122
7141
. expect_optional ( )
@@ -7130,7 +7149,7 @@ fn check_block_times() {
7130
7149
& sender_addr,
7131
7150
contract1_name,
7132
7151
"get-time" ,
7133
- vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 1 ) ] ,
7152
+ vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 2 ) ] ,
7134
7153
) ;
7135
7154
let time1 = time1_value
7136
7155
. expect_optional ( )
@@ -7148,7 +7167,7 @@ fn check_block_times() {
7148
7167
& sender_addr,
7149
7168
contract3_name,
7150
7169
"get-tenure-time" ,
7151
- vec ! [ & clarity:: vm:: Value :: UInt ( last_tenure_height - 1 ) ] ,
7170
+ vec ! [ & clarity:: vm:: Value :: UInt ( last_tenure_height - 2 ) ] ,
7152
7171
) ;
7153
7172
let time3_tenure = time3_tenure_value
7154
7173
. expect_optional ( )
@@ -7166,7 +7185,7 @@ fn check_block_times() {
7166
7185
& sender_addr,
7167
7186
contract3_name,
7168
7187
"get-block-time" ,
7169
- vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 1 ) ] ,
7188
+ vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 2 ) ] ,
7170
7189
) ;
7171
7190
let time3_block = time3_block_value
7172
7191
. expect_optional ( )
@@ -7176,34 +7195,26 @@ fn check_block_times() {
7176
7195
. unwrap ( ) ;
7177
7196
7178
7197
// Sleep to ensure the seconds have changed
7179
- thread:: sleep ( Duration :: from_secs ( 1 ) ) ;
7198
+ thread:: sleep ( Duration :: from_secs ( 2 ) ) ;
7180
7199
7181
7200
// Mine a Nakamoto block
7182
7201
info ! ( "Mining Nakamoto block" ) ;
7183
- let blocks_processed_before = coord_channel
7184
- . lock ( )
7185
- . expect ( "Mutex poisoned" )
7186
- . get_stacks_blocks_processed ( ) ;
7187
7202
7188
7203
// submit a tx so that the miner will mine an extra block
7189
7204
let transfer_tx =
7190
7205
make_stacks_transfer ( & sender_sk, sender_nonce, send_fee, & recipient, send_amt) ;
7191
7206
sender_nonce += 1 ;
7192
7207
submit_tx ( & http_origin, & transfer_tx) ;
7193
7208
7194
- loop {
7195
- let blocks_processed = coord_channel
7196
- . lock ( )
7197
- . expect ( "Mutex poisoned" )
7198
- . get_stacks_blocks_processed ( ) ;
7199
- if blocks_processed > blocks_processed_before {
7200
- break ;
7201
- }
7202
- thread:: sleep ( Duration :: from_millis ( 100 ) ) ;
7203
- }
7209
+ // make sure that the contracts are published
7210
+ wait_for ( 30 , || {
7211
+ let cur_sender_nonce = get_account ( & http_origin, & to_addr ( & sender_sk) ) . nonce ;
7212
+ Ok ( cur_sender_nonce >= sender_nonce)
7213
+ } )
7214
+ . expect ( "Timed out waiting for transfer to complete" ) ;
7204
7215
7205
7216
let info = get_chain_info_result ( & naka_conf) . unwrap ( ) ;
7206
- info ! ( "Chain info: {:?}" , info) ;
7217
+ info ! ( "Chain info: {:?}" , info. stacks_tip_height ) ;
7207
7218
let last_stacks_block_height = info. stacks_tip_height as u128 ;
7208
7219
7209
7220
let time0a_value = call_read_only (
@@ -7221,7 +7232,7 @@ fn check_block_times() {
7221
7232
. unwrap ( ) ;
7222
7233
assert ! (
7223
7234
time0a - time0 >= 1 ,
7224
- "get-block-info? time should have changed"
7235
+ "get-block-info? time should have changed. time_0 = {time0}. time_0_a = {time0a} "
7225
7236
) ;
7226
7237
7227
7238
let time1a_value = call_read_only (
@@ -7598,9 +7609,19 @@ fn check_block_info() {
7598
7609
sender_nonce += 1 ;
7599
7610
submit_tx ( & http_origin, & contract_tx3) ;
7600
7611
7612
+ // sleep to ensure seconds have changed
7613
+ thread:: sleep ( Duration :: from_secs ( 3 ) ) ;
7614
+
7601
7615
next_block_and_process_new_stacks_block ( & mut btc_regtest_controller, 60 , & coord_channel)
7602
7616
. unwrap ( ) ;
7603
7617
7618
+ // make sure that the contracts are published
7619
+ wait_for ( 30 , || {
7620
+ let cur_sender_nonce = get_account ( & http_origin, & to_addr ( & sender_sk) ) . nonce ;
7621
+ Ok ( cur_sender_nonce >= sender_nonce)
7622
+ } )
7623
+ . expect ( "Timed out waiting for contracts to publish" ) ;
7624
+
7604
7625
let info = get_chain_info_result ( & naka_conf) . unwrap ( ) ;
7605
7626
info ! ( "Chain info: {:?}" , info) ;
7606
7627
let last_stacks_block_height = info. stacks_tip_height as u128 ;
@@ -7610,7 +7631,7 @@ fn check_block_info() {
7610
7631
& sender_addr,
7611
7632
contract0_name,
7612
7633
"get-info" ,
7613
- vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 1 ) ] ,
7634
+ vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 2 ) ] ,
7614
7635
) ;
7615
7636
let tuple0 = result0. expect_tuple ( ) . unwrap ( ) . data_map ;
7616
7637
assert_block_info ( & tuple0, & miner, & miner_spend) ;
@@ -7620,7 +7641,7 @@ fn check_block_info() {
7620
7641
& sender_addr,
7621
7642
contract1_name,
7622
7643
"get-info" ,
7623
- vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 1 ) ] ,
7644
+ vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 2 ) ] ,
7624
7645
) ;
7625
7646
let tuple1 = result1. expect_tuple ( ) . unwrap ( ) . data_map ;
7626
7647
assert_eq ! ( tuple0, tuple1) ;
@@ -7630,7 +7651,7 @@ fn check_block_info() {
7630
7651
& sender_addr,
7631
7652
contract3_name,
7632
7653
"get-tenure-info" ,
7633
- vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 1 ) ] ,
7654
+ vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 2 ) ] ,
7634
7655
) ;
7635
7656
let tuple3_tenure0 = result3_tenure. expect_tuple ( ) . unwrap ( ) . data_map ;
7636
7657
assert_eq ! (
@@ -7661,7 +7682,7 @@ fn check_block_info() {
7661
7682
& sender_addr,
7662
7683
contract3_name,
7663
7684
"get-block-info" ,
7664
- vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 1 ) ] ,
7685
+ vec ! [ & clarity:: vm:: Value :: UInt ( last_stacks_block_height - 2 ) ] ,
7665
7686
) ;
7666
7687
let tuple3_block1 = result3_block. expect_tuple ( ) . unwrap ( ) . data_map ;
7667
7688
assert_eq ! (
0 commit comments