@@ -10,7 +10,7 @@ use crate::indexer::tests::helpers::{
10
10
accounts, bitcoin_blocks, stacks_blocks, transactions:: generate_test_tx_stacks_contract_call,
11
11
} ;
12
12
use crate :: observer:: {
13
- start_observer_commands_handler, ApiKey , ChainhookStore , EventObserverConfig , ObserverCommand ,
13
+ start_observer_commands_handler, ChainhookStore , EventObserverConfig , ObserverCommand ,
14
14
} ;
15
15
use crate :: utils:: { AbstractBlock , Context } ;
16
16
use chainhook_types:: {
@@ -25,30 +25,24 @@ use std::sync::{Arc, RwLock};
25
25
use super :: ObserverEvent ;
26
26
27
27
fn generate_test_config ( ) -> ( EventObserverConfig , ChainhookStore ) {
28
- let operators = HashSet :: new ( ) ;
29
- let config = EventObserverConfig {
30
- hooks_enabled : true ,
28
+ let config: EventObserverConfig = EventObserverConfig {
31
29
chainhook_config : Some ( ChainhookConfig :: new ( ) ) ,
32
30
bitcoin_rpc_proxy_enabled : false ,
33
31
event_handlers : vec ! [ ] ,
34
32
ingestion_port : 0 ,
35
- control_port : 0 ,
36
- control_api_enabled : false ,
37
33
bitcoind_rpc_username : "user" . into ( ) ,
38
34
bitcoind_rpc_password : "user" . into ( ) ,
39
35
bitcoind_rpc_url : "http://localhost:18443" . into ( ) ,
40
36
stacks_node_rpc_url : "http://localhost:20443" . into ( ) ,
41
- operators,
42
37
display_logs : false ,
43
38
bitcoin_block_signaling : BitcoinBlockSignaling :: Stacks ( "http://localhost:20443" . into ( ) ) ,
44
39
cache_path : "cache" . into ( ) ,
45
40
bitcoin_network : BitcoinNetwork :: Regtest ,
46
41
stacks_network : StacksNetwork :: Devnet ,
47
42
hord_config : None ,
48
43
} ;
49
- let mut entries = HashMap :: new ( ) ;
50
- entries. insert ( ApiKey ( None ) , ChainhookConfig :: new ( ) ) ;
51
- let chainhook_store = ChainhookStore { entries } ;
44
+ let predicates = ChainhookConfig :: new ( ) ;
45
+ let chainhook_store = ChainhookStore { predicates } ;
52
46
( config, chainhook_store)
53
47
}
54
48
@@ -128,19 +122,17 @@ fn generate_and_register_new_stacks_chainhook(
128
122
let contract_identifier = format ! ( "{}.{}" , accounts:: deployer_stx_address( ) , contract_name) ;
129
123
let chainhook = stacks_chainhook_contract_call ( id, & contract_identifier, None , method) ;
130
124
let _ = observer_commands_tx. send ( ObserverCommand :: RegisterPredicate (
131
- ChainhookFullSpecification :: Stacks ( chainhook. clone ( ) ) ,
132
- ApiKey ( None ) ,
125
+ ChainhookFullSpecification :: Stacks ( chainhook. clone ( ) )
133
126
) ) ;
134
127
let mut chainhook = chainhook
135
128
. into_selected_network_specification ( & StacksNetwork :: Devnet )
136
129
. unwrap ( ) ;
137
130
chainhook. enabled = true ;
138
131
let _ = observer_commands_tx. send ( ObserverCommand :: EnablePredicate (
139
- ChainhookSpecification :: Stacks ( chainhook. clone ( ) ) ,
140
- ApiKey ( None ) ,
132
+ ChainhookSpecification :: Stacks ( chainhook. clone ( ) )
141
133
) ) ;
142
134
assert ! ( match observer_events_rx. recv( ) {
143
- Ok ( ObserverEvent :: PredicateRegistered ( registered_chainhook, ApiKey ( None ) ) ) => {
135
+ Ok ( ObserverEvent :: PredicateRegistered ( registered_chainhook) ) => {
144
136
// assert_eq!(
145
137
// ChainhookSpecification::Stacks(chainhook.clone()),
146
138
// registered_chainhook
@@ -150,9 +142,18 @@ fn generate_and_register_new_stacks_chainhook(
150
142
_ => false ,
151
143
} ) ;
152
144
let _ = observer_commands_tx. send ( ObserverCommand :: EnablePredicate (
153
- ChainhookSpecification :: Stacks ( chainhook. clone ( ) ) ,
154
- ApiKey ( None ) ,
145
+ ChainhookSpecification :: Stacks ( chainhook. clone ( ) )
155
146
) ) ;
147
+ assert ! ( match observer_events_rx. recv( ) {
148
+ Ok ( ObserverEvent :: PredicateEnabled ( registered_chainhook) ) => {
149
+ // assert_eq!(
150
+ // ChainhookSpecification::Bitcoin(chainhook.clone()),
151
+ // registered_chainhook
152
+ // );
153
+ true
154
+ }
155
+ _ => false ,
156
+ } ) ;
156
157
chainhook
157
158
}
158
159
@@ -165,19 +166,27 @@ fn generate_and_register_new_bitcoin_chainhook(
165
166
) -> BitcoinChainhookSpecification {
166
167
let chainhook = bitcoin_chainhook_p2pkh ( id, & p2pkh_address, expire_after_occurrence) ;
167
168
let _ = observer_commands_tx. send ( ObserverCommand :: RegisterPredicate (
168
- ChainhookFullSpecification :: Bitcoin ( chainhook. clone ( ) ) ,
169
- ApiKey ( None ) ,
169
+ ChainhookFullSpecification :: Bitcoin ( chainhook. clone ( ) )
170
170
) ) ;
171
171
let mut chainhook = chainhook
172
172
. into_selected_network_specification ( & BitcoinNetwork :: Regtest )
173
173
. unwrap ( ) ;
174
174
chainhook. enabled = true ;
175
175
let _ = observer_commands_tx. send ( ObserverCommand :: EnablePredicate (
176
- ChainhookSpecification :: Bitcoin ( chainhook. clone ( ) ) ,
177
- ApiKey ( None ) ,
176
+ ChainhookSpecification :: Bitcoin ( chainhook. clone ( ) )
178
177
) ) ;
179
178
assert ! ( match observer_events_rx. recv( ) {
180
- Ok ( ObserverEvent :: PredicateRegistered ( registered_chainhook, ApiKey ( None ) ) ) => {
179
+ Ok ( ObserverEvent :: PredicateRegistered ( registered_chainhook) ) => {
180
+ // assert_eq!(
181
+ // ChainhookSpecification::Bitcoin(chainhook.clone()),
182
+ // registered_chainhook
183
+ // );
184
+ true
185
+ }
186
+ _ => false ,
187
+ } ) ;
188
+ assert ! ( match observer_events_rx. recv( ) {
189
+ Ok ( ObserverEvent :: PredicateEnabled ( registered_chainhook) ) => {
181
190
// assert_eq!(
182
191
// ChainhookSpecification::Bitcoin(chainhook.clone()),
183
192
// registered_chainhook
@@ -198,11 +207,10 @@ fn test_stacks_chainhook_register_deregister() {
198
207
let ( config, chainhook_store) = generate_test_config ( ) ;
199
208
let _ = hiro_system_kit:: nestable_block_on ( start_observer_commands_handler (
200
209
config,
201
- Arc :: new ( RwLock :: new ( chainhook_store) ) ,
210
+ chainhook_store,
202
211
observer_commands_rx,
203
212
Some ( observer_events_tx) ,
204
213
None ,
205
- None ,
206
214
Context :: empty ( ) ,
207
215
) ) ;
208
216
} ) ;
@@ -231,6 +239,12 @@ fn test_stacks_chainhook_register_deregister() {
231
239
confirmed_blocks : vec ! [ ] ,
232
240
} ) ;
233
241
let _ = observer_commands_tx. send ( ObserverCommand :: PropagateStacksChainEvent ( chain_event) ) ;
242
+ // Should signal that no hook were triggered
243
+ assert ! ( match observer_events_rx. recv( ) {
244
+ Ok ( ObserverEvent :: PredicateEnabled ( _) ) => true ,
245
+ _ => false ,
246
+ } ) ;
247
+
234
248
// Should signal that no hook were triggered
235
249
assert ! ( match observer_events_rx. recv( ) {
236
250
Ok ( ObserverEvent :: HooksTriggered ( len) ) => {
@@ -348,7 +362,6 @@ fn test_stacks_chainhook_register_deregister() {
348
362
// Deregister the hook
349
363
let _ = observer_commands_tx. send ( ObserverCommand :: DeregisterStacksPredicate (
350
364
chainhook. uuid . clone ( ) ,
351
- ApiKey ( None ) ,
352
365
) ) ;
353
366
assert ! ( match observer_events_rx. recv( ) {
354
367
Ok ( ObserverEvent :: PredicateDeregistered ( deregistered_chainhook) ) => {
@@ -436,11 +449,10 @@ fn test_stacks_chainhook_auto_deregister() {
436
449
let ( config, chainhook_store) = generate_test_config ( ) ;
437
450
let _ = hiro_system_kit:: nestable_block_on ( start_observer_commands_handler (
438
451
config,
439
- Arc :: new ( RwLock :: new ( chainhook_store) ) ,
452
+ chainhook_store,
440
453
observer_commands_rx,
441
454
Some ( observer_events_tx) ,
442
455
None ,
443
- None ,
444
456
Context :: empty ( ) ,
445
457
) ) ;
446
458
} ) ;
@@ -450,18 +462,16 @@ fn test_stacks_chainhook_auto_deregister() {
450
462
let chainhook = stacks_chainhook_contract_call ( 0 , & contract_identifier, Some ( 1 ) , "increment" ) ;
451
463
let _ = observer_commands_tx. send ( ObserverCommand :: RegisterPredicate (
452
464
ChainhookFullSpecification :: Stacks ( chainhook. clone ( ) ) ,
453
- ApiKey ( None ) ,
454
465
) ) ;
455
466
let mut chainhook = chainhook
456
467
. into_selected_network_specification ( & StacksNetwork :: Devnet )
457
468
. unwrap ( ) ;
458
469
chainhook. enabled = true ;
459
470
let _ = observer_commands_tx. send ( ObserverCommand :: EnablePredicate (
460
471
ChainhookSpecification :: Stacks ( chainhook. clone ( ) ) ,
461
- ApiKey ( None ) ,
462
472
) ) ;
463
473
assert ! ( match observer_events_rx. recv( ) {
464
- Ok ( ObserverEvent :: PredicateRegistered ( registered_chainhook, ApiKey ( None ) ) ) => {
474
+ Ok ( ObserverEvent :: PredicateRegistered ( registered_chainhook) ) => {
465
475
// assert_eq!(
466
476
// ChainhookSpecification::Stacks(chainhook.clone()),
467
477
// registered_chainhook
@@ -487,11 +497,20 @@ fn test_stacks_chainhook_auto_deregister() {
487
497
} ) ;
488
498
let _ = observer_commands_tx. send ( ObserverCommand :: PropagateStacksChainEvent ( chain_event) ) ;
489
499
// Should signal that no hook were triggered
500
+ assert ! ( match observer_events_rx. recv( ) {
501
+ Ok ( ObserverEvent :: PredicateEnabled ( _) ) => true ,
502
+ _ => false ,
503
+ } ) ;
504
+
490
505
assert ! ( match observer_events_rx. recv( ) {
491
506
Ok ( ObserverEvent :: HooksTriggered ( len) ) => {
492
507
assert_eq!( len, 0 ) ;
493
508
true
494
509
}
510
+ Ok ( e) => {
511
+ println!( "{:?}" , e) ;
512
+ true
513
+ }
495
514
_ => false ,
496
515
} ) ;
497
516
// Should propagate block
@@ -601,11 +620,10 @@ fn test_bitcoin_chainhook_register_deregister() {
601
620
let ( config, chainhook_store) = generate_test_config ( ) ;
602
621
let _ = hiro_system_kit:: nestable_block_on ( start_observer_commands_handler (
603
622
config,
604
- Arc :: new ( RwLock :: new ( chainhook_store) ) ,
623
+ chainhook_store,
605
624
observer_commands_rx,
606
625
Some ( observer_events_tx) ,
607
626
None ,
608
- None ,
609
627
Context :: empty ( ) ,
610
628
) ) ;
611
629
} ) ;
@@ -756,7 +774,6 @@ fn test_bitcoin_chainhook_register_deregister() {
756
774
// Deregister the hook
757
775
let _ = observer_commands_tx. send ( ObserverCommand :: DeregisterBitcoinPredicate (
758
776
chainhook. uuid . clone ( ) ,
759
- ApiKey ( None ) ,
760
777
) ) ;
761
778
assert ! ( match observer_events_rx. recv( ) {
762
779
Ok ( ObserverEvent :: PredicateDeregistered ( deregistered_chainhook) ) => {
@@ -843,11 +860,10 @@ fn test_bitcoin_chainhook_auto_deregister() {
843
860
let ( config, chainhook_store) = generate_test_config ( ) ;
844
861
let _ = hiro_system_kit:: nestable_block_on ( start_observer_commands_handler (
845
862
config,
846
- Arc :: new ( RwLock :: new ( chainhook_store) ) ,
863
+ chainhook_store,
847
864
observer_commands_rx,
848
865
Some ( observer_events_tx) ,
849
866
None ,
850
- None ,
851
867
Context :: empty ( ) ,
852
868
) ) ;
853
869
} ) ;
0 commit comments