@@ -5,7 +5,7 @@ use core::byte_array::ByteArray;
5
5
6
6
use snforge_std :: {
7
7
declare, start_cheat_caller_address, stop_cheat_caller_address, ContractClassTrait ,
8
- DeclareResultTrait , spy_events, EventSpyAssertionsTrait
8
+ DeclareResultTrait , spy_events, EventSpyAssertionsTrait ,
9
9
};
10
10
11
11
use starknet :: {ContractAddress , get_block_timestamp};
@@ -16,8 +16,6 @@ use weaver_contract::weaver::Weaver::{Event};
16
16
use weaver_contract :: weaver :: Weaver :: {UserRegistered , ProtocolRegistered , TaskMinted };
17
17
18
18
19
- const ADMIN : felt252 = ' ADMIN' ;
20
-
21
19
fn OWNER () -> ContractAddress {
22
20
' owner' . try_into (). unwrap ()
23
21
}
@@ -26,42 +24,43 @@ fn USER() -> ContractAddress {
26
24
' recipient' . try_into (). unwrap ()
27
25
}
28
26
29
- fn __setup__ () -> ( ContractAddress , ContractAddress ) {
27
+ fn __setup__ () -> ContractAddress {
30
28
let class_hash = declare (" Weaver" ). unwrap (). contract_class ();
31
-
32
- let nft_address = __deploy_WeaverNFT__ ();
33
-
34
29
let mut calldata = array! [];
35
30
OWNER (). serialize (ref calldata );
36
- nft_address . serialize (ref calldata );
37
31
let (contract_address , _ ) = class_hash . deploy (@ calldata ). unwrap ();
32
+ let nft_address = __deploy_WeaverNFT__ (contract_address );
33
+ let weaver_contract = IWeaverDispatcher { contract_address : contract_address };
34
+ start_cheat_caller_address (contract_address , OWNER ());
35
+ weaver_contract . set_erc721 (nft_address );
36
+ stop_cheat_caller_address (contract_address );
38
37
39
- ( contract_address , nft_address )
38
+ return contract_address ;
40
39
}
41
40
42
- fn __deploy_WeaverNFT__ () -> ContractAddress {
41
+ fn __deploy_WeaverNFT__ (admin : ContractAddress ) -> ContractAddress {
43
42
let nft_class_hash = declare (" WeaverNFT" ). unwrap (). contract_class ();
43
+ let mut calldata = array! [];
44
+ admin . serialize (ref calldata );
44
45
45
- let mut events_constructor_calldata : Array <felt252 > = array! [ADMIN ];
46
- let (nft_contract_address , _ ) = nft_class_hash . deploy (@ events_constructor_calldata ). unwrap ();
46
+ let (nft_contract_address , _ ) = nft_class_hash . deploy (@ calldata ). unwrap ();
47
47
48
48
return (nft_contract_address );
49
49
}
50
50
51
51
52
52
#[test]
53
53
fn test_weaver_constructor () {
54
- let ( weaver_contract_address , nft_address ) = __setup__ ();
54
+ let weaver_contract_address = __setup__ ();
55
55
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
56
56
57
57
assert_eq! (weaver_contract . owner (), OWNER ());
58
- assert! (weaver_contract . erc_721 () == nft_address , " wrong erc721 address" );
59
58
}
60
59
61
60
62
61
#[test]
63
62
fn test_register_user () {
64
- let ( weaver_contract_address , _ ) = __setup__ ();
63
+ let weaver_contract_address = __setup__ ();
65
64
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
66
65
67
66
let user : ContractAddress = USER ();
@@ -79,7 +78,7 @@ fn test_register_user() {
79
78
80
79
#[test]
81
80
fn test_register_user_emit_event () {
82
- let ( weaver_contract_address , _ ) = __setup__ ();
81
+ let weaver_contract_address = __setup__ ();
83
82
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
84
83
85
84
let mut spy = spy_events ();
@@ -103,7 +102,7 @@ fn test_register_user_emit_event() {
103
102
#[test]
104
103
#[should_panic(expected: ' user already registered' )]
105
104
fn test_already_registered_should_panic () {
106
- let ( weaver_contract_address , _ ) = __setup__ ();
105
+ let weaver_contract_address = __setup__ ();
107
106
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
108
107
109
108
let user : ContractAddress = USER ();
@@ -126,7 +125,7 @@ fn test_already_registered_should_panic() {
126
125
#[test]
127
126
#[should_panic(expected: ' USER_NOT_REGISTERED' )] // Case-sensitive match
128
127
fn test_mint_unregistered_user_panics () {
129
- let ( weaver_contract_address , _ ) = __setup__ ();
128
+ let weaver_contract_address = __setup__ ();
130
129
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
131
130
132
131
let unregistered_user = USER (); // Uses the numeric address now
@@ -140,7 +139,7 @@ fn test_mint_unregistered_user_panics() {
140
139
141
140
#[test]
142
141
fn test_protocol_register () {
143
- let ( weaver_contract_address , _ ) = __setup__ ();
142
+ let weaver_contract_address = __setup__ ();
144
143
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
145
144
146
145
let user : ContractAddress = USER ();
@@ -158,7 +157,7 @@ fn test_protocol_register() {
158
157
159
158
#[test]
160
159
fn test_protocol_register_emit_event () {
161
- let ( weaver_contract_address , _ ) = __setup__ ();
160
+ let weaver_contract_address = __setup__ ();
162
161
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
163
162
164
163
let user : ContractAddress = USER ();
@@ -180,9 +179,9 @@ fn test_protocol_register_emit_event() {
180
179
181
180
#[test]
182
181
fn test_nft_minted_on_protocol_register () {
183
- let ( weaver_contract_address , nft_address ) = __setup__ ();
182
+ let weaver_contract_address = __setup__ ();
184
183
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
185
- let nft_dispatcher = IWeaverNFTDispatcher { contract_address : nft_address };
184
+ let nft_dispatcher = IWeaverNFTDispatcher { contract_address : weaver_contract . erc_721 () };
186
185
187
186
let user : ContractAddress = USER ();
188
187
start_cheat_caller_address (weaver_contract_address , user );
@@ -206,7 +205,7 @@ fn test_nft_minted_on_protocol_register() {
206
205
#[test]
207
206
#[should_panic(expected: ' PROTOCOL_ALREADY_REGISTERED' )]
208
207
fn test_protocol_register_already_registered () {
209
- let ( weaver_contract_address , _ ) = __setup__ ();
208
+ let weaver_contract_address = __setup__ ();
210
209
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
211
210
212
211
let user : ContractAddress = USER ();
@@ -223,7 +222,7 @@ fn test_protocol_register_already_registered() {
223
222
#[test]
224
223
#[should_panic(expected: ' INVALID_PROTOCOL_NAME' )]
225
224
fn test_invalid_protocol_name_should_panic () {
226
- let ( weaver_contract_address , _ ) = __setup__ ();
225
+ let weaver_contract_address = __setup__ ();
227
226
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
228
227
229
228
let user : ContractAddress = USER ();
@@ -238,10 +237,10 @@ fn test_invalid_protocol_name_should_panic() {
238
237
#[test]
239
238
#[should_panic(expected: ' TASK_ALREADY_EXISTS' )]
240
239
fn test_mint_nft_duplicate_id_should_panic () {
241
- let ( weaver_contract_address , nft_address ) = __setup__ ();
240
+ let weaver_contract_address = __setup__ ();
242
241
243
242
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
244
- let nft_dispatcher = IWeaverNFTDispatcher { contract_address : nft_address };
243
+ let nft_dispatcher = IWeaverNFTDispatcher { contract_address : weaver_contract . erc_721 () };
245
244
let user : ContractAddress = USER ();
246
245
247
246
start_cheat_caller_address (weaver_contract_address , user );
@@ -266,10 +265,10 @@ fn test_mint_nft_duplicate_id_should_panic() {
266
265
267
266
#[test]
268
267
fn test_mint_nft () {
269
- let ( weaver_contract_address , nft_address ) = __setup__ ();
268
+ let weaver_contract_address = __setup__ ();
270
269
271
270
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
272
- let nft_dispatcher = IWeaverNFTDispatcher { contract_address : nft_address };
271
+ let nft_dispatcher = IWeaverNFTDispatcher { contract_address : weaver_contract . erc_721 () };
273
272
274
273
let mut spy = spy_events ();
275
274
let user : ContractAddress = USER ();
@@ -305,7 +304,7 @@ fn test_mint_nft() {
305
304
#[test]
306
305
#[should_panic(expected: " Task should NOT be completed" )]
307
306
fn test_mint_nft_task_not_completed_should_panic () {
308
- let ( weaver_contract_address , _ ) = __setup__ ();
307
+ let weaver_contract_address = __setup__ ();
309
308
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
310
309
let user : ContractAddress = USER ();
311
310
@@ -335,9 +334,9 @@ fn test_mint_nft_task_not_completed_should_panic() {
335
334
#[test]
336
335
fn test_mint_nft_after_task_completed () {
337
336
// Set up the contracts
338
- let ( weaver_contract_address , nft_address ) = __setup__ ();
337
+ let weaver_contract_address = __setup__ ();
339
338
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
340
- let nft_dispatcher = IWeaverNFTDispatcher { contract_address : nft_address };
339
+ let nft_dispatcher = IWeaverNFTDispatcher { contract_address : weaver_contract . erc_721 () };
341
340
342
341
// Define the user address
343
342
let user : ContractAddress = USER ();
@@ -395,7 +394,7 @@ fn test_mint_nft_after_task_completed() {
395
394
#[test]
396
395
#[should_panic(expected: ' TASK_ALREADY_EXISTS' )]
397
396
fn test_mint_task_already_exists () {
398
- let ( weaver_contract_address , _ ) = __setup__ ();
397
+ let weaver_contract_address = __setup__ ();
399
398
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
400
399
let user : ContractAddress = USER ();
401
400
@@ -423,9 +422,9 @@ fn test_mint_task_already_exists() {
423
422
424
423
#[test]
425
424
fn test_nft_was_minted_after_user_registers () {
426
- let ( weaver_contract_address , nft_address ) = __setup__ ();
425
+ let weaver_contract_address = __setup__ ();
427
426
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
428
- let nft_dispatcher = IWeaverNFTDispatcher { contract_address : nft_address };
427
+ let nft_dispatcher = IWeaverNFTDispatcher { contract_address : weaver_contract . erc_721 () };
429
428
430
429
let user : ContractAddress = USER ();
431
430
start_cheat_caller_address (weaver_contract_address , user );
@@ -449,9 +448,9 @@ fn test_nft_was_minted_after_user_registers() {
449
448
450
449
#[test]
451
450
fn test_nft_was_minted_after_protocol_registers () {
452
- let ( weaver_contract_address , nft_address ) = __setup__ ();
451
+ let weaver_contract_address = __setup__ ();
453
452
let weaver_contract = IWeaverDispatcher { contract_address : weaver_contract_address };
454
- let nft_dispatcher = IWeaverNFTDispatcher { contract_address : nft_address };
453
+ let nft_dispatcher = IWeaverNFTDispatcher { contract_address : weaver_contract . erc_721 () };
455
454
456
455
let user : ContractAddress = USER ();
457
456
start_cheat_caller_address (weaver_contract_address , user );
0 commit comments