@@ -25,9 +25,9 @@ use cosmwasm_vm::{
25
25
call_execute, from_slice,
26
26
testing:: {
27
27
execute, instantiate, migrate, mock_env, mock_info, mock_instance,
28
- mock_instance_with_balances, query, sudo, test_io, MOCK_CONTRACT_ADDR ,
28
+ mock_instance_with_balances, query, sudo, test_io, MockApi , MOCK_CONTRACT_ADDR ,
29
29
} ,
30
- Storage , VmError ,
30
+ Instance , Querier , Storage , VmError ,
31
31
} ;
32
32
33
33
use hackatom:: msg:: { ExecuteMsg , InstantiateMsg , MigrateMsg , QueryMsg , SudoMsg } ;
@@ -37,10 +37,12 @@ static WASM: &[u8] = include_bytes!("../target/wasm32-unknown-unknown/release/ha
37
37
38
38
const DESERIALIZATION_LIMIT : usize = 20_000 ;
39
39
40
- fn make_init_msg ( ) -> ( InstantiateMsg , String ) {
41
- let verifier = String :: from ( "verifies" ) ;
42
- let beneficiary = String :: from ( "benefits" ) ;
43
- let creator = String :: from ( "creator" ) ;
40
+ fn make_init_msg < S : Storage + ' static , Q : Querier + ' static > (
41
+ deps : & Instance < MockApi , S , Q > ,
42
+ ) -> ( InstantiateMsg , String ) {
43
+ let verifier = deps. api ( ) . addr_make ( "verifies" ) . to_string ( ) ;
44
+ let beneficiary = deps. api ( ) . addr_make ( "benefits" ) . to_string ( ) ;
45
+ let creator = deps. api ( ) . addr_make ( "creator" ) . to_string ( ) ;
44
46
(
45
47
InstantiateMsg {
46
48
verifier,
@@ -55,9 +57,9 @@ fn proper_initialization() {
55
57
let mut deps = mock_instance ( WASM , & [ ] ) ;
56
58
assert_eq ! ( deps. required_capabilities( ) . len( ) , 0 ) ;
57
59
58
- let verifier = String :: from ( "verifies" ) ;
59
- let beneficiary = String :: from ( "benefits" ) ;
60
- let creator = String :: from ( "creator" ) ;
60
+ let verifier = deps . api ( ) . addr_make ( "verifies" ) . to_string ( ) ;
61
+ let beneficiary = deps . api ( ) . addr_make ( "benefits" ) . to_string ( ) ;
62
+ let creator = deps . api ( ) . addr_make ( "creator" ) . to_string ( ) ;
61
63
let expected_state = State {
62
64
verifier : Addr :: unchecked ( & verifier) ,
63
65
beneficiary : Addr :: unchecked ( & beneficiary) ,
@@ -91,11 +93,11 @@ fn proper_initialization() {
91
93
fn instantiate_and_query ( ) {
92
94
let mut deps = mock_instance ( WASM , & [ ] ) ;
93
95
94
- let verifier = String :: from ( "verifies" ) ;
95
- let beneficiary = String :: from ( "benefits" ) ;
96
- let creator = String :: from ( "creator" ) ;
96
+ let verifier = deps . api ( ) . addr_make ( "verifies" ) . to_string ( ) ;
97
+ let beneficiary = deps . api ( ) . addr_make ( "benefits" ) . to_string ( ) ;
98
+ let creator = deps . api ( ) . addr_make ( "creator" ) . to_string ( ) ;
97
99
let msg = InstantiateMsg {
98
- verifier,
100
+ verifier : verifier . clone ( ) ,
99
101
beneficiary,
100
102
} ;
101
103
let info = mock_info ( & creator, & coins ( 1000 , "earth" ) ) ;
@@ -104,7 +106,10 @@ fn instantiate_and_query() {
104
106
105
107
// now let's query
106
108
let query_response = query ( & mut deps, mock_env ( ) , QueryMsg :: Verifier { } ) . unwrap ( ) ;
107
- assert_eq ! ( query_response. as_slice( ) , b"{\" verifier\" :\" verifies\" }" ) ;
109
+ assert_eq ! (
110
+ query_response,
111
+ format!( "{{\" verifier\" :\" {verifier}\" }}" ) . as_bytes( )
112
+ ) ;
108
113
109
114
// bad query returns parse error (pass wrong type - this connection is not enforced)
110
115
let qres = query ( & mut deps, mock_env ( ) , ExecuteMsg :: Release { } ) ;
@@ -116,11 +121,11 @@ fn instantiate_and_query() {
116
121
fn migrate_verifier ( ) {
117
122
let mut deps = mock_instance ( WASM , & [ ] ) ;
118
123
119
- let verifier = String :: from ( "verifies" ) ;
120
- let beneficiary = String :: from ( "benefits" ) ;
121
- let creator = String :: from ( "creator" ) ;
124
+ let verifier = deps . api ( ) . addr_make ( "verifies" ) . to_string ( ) ;
125
+ let beneficiary = deps . api ( ) . addr_make ( "benefits" ) . to_string ( ) ;
126
+ let creator = deps . api ( ) . addr_make ( "creator" ) . to_string ( ) ;
122
127
let msg = InstantiateMsg {
123
- verifier,
128
+ verifier : verifier . clone ( ) ,
124
129
beneficiary,
125
130
} ;
126
131
let info = mock_info ( & creator, & [ ] ) ;
@@ -129,30 +134,34 @@ fn migrate_verifier() {
129
134
130
135
// check it is 'verifies'
131
136
let query_response = query ( & mut deps, mock_env ( ) , QueryMsg :: Verifier { } ) . unwrap ( ) ;
132
- assert_eq ! ( query_response. as_slice( ) , b"{\" verifier\" :\" verifies\" }" ) ;
137
+ assert_eq ! (
138
+ query_response,
139
+ format!( "{{\" verifier\" :\" {verifier}\" }}" ) . as_bytes( )
140
+ ) ;
133
141
134
142
// change the verifier via migrate
143
+ let someone_else = deps. api ( ) . addr_make ( "someone else" ) . to_string ( ) ;
135
144
let msg = MigrateMsg {
136
- verifier : String :: from ( "someone else" ) ,
145
+ verifier : someone_else . clone ( ) ,
137
146
} ;
138
147
let res: Response = migrate ( & mut deps, mock_env ( ) , msg) . unwrap ( ) ;
139
148
assert_eq ! ( 0 , res. messages. len( ) ) ;
140
149
141
150
// check it is 'someone else'
142
151
let query_response = query ( & mut deps, mock_env ( ) , QueryMsg :: Verifier { } ) . unwrap ( ) ;
143
152
assert_eq ! (
144
- query_response. as_slice ( ) ,
145
- b"{ \" verifier\" :\" someone else \" }"
153
+ query_response,
154
+ format! ( "{{ \" verifier\" :\" {someone_else} \" }}" ) . as_bytes ( )
146
155
) ;
147
156
}
148
157
149
158
#[ test]
150
159
fn sudo_can_steal_tokens ( ) {
151
160
let mut deps = mock_instance ( WASM , & [ ] ) ;
152
161
153
- let verifier = String :: from ( "verifies" ) ;
154
- let beneficiary = String :: from ( "benefits" ) ;
155
- let creator = String :: from ( "creator" ) ;
162
+ let verifier = deps . api ( ) . addr_make ( "verifies" ) . to_string ( ) ;
163
+ let beneficiary = deps . api ( ) . addr_make ( "benefits" ) . to_string ( ) ;
164
+ let creator = deps . api ( ) . addr_make ( "creator" ) . to_string ( ) ;
156
165
let msg = InstantiateMsg {
157
166
verifier,
158
167
beneficiary,
@@ -162,7 +171,7 @@ fn sudo_can_steal_tokens() {
162
171
assert_eq ! ( 0 , res. messages. len( ) ) ;
163
172
164
173
// sudo takes any tax it wants
165
- let to_address = String :: from ( "community-pool" ) ;
174
+ let to_address = deps . api ( ) . addr_make ( "community-pool" ) . to_string ( ) ;
166
175
let amount = coins ( 700 , "gold" ) ;
167
176
let sys_msg = SudoMsg :: StealFunds {
168
177
recipient : to_address. clone ( ) ,
@@ -176,7 +185,7 @@ fn sudo_can_steal_tokens() {
176
185
177
186
#[ test]
178
187
fn querier_callbacks_work ( ) {
179
- let rich_addr = String :: from ( "foobar " ) ;
188
+ let rich_addr = String :: from ( "cosmwasm1qqvk2mde " ) ;
180
189
let rich_balance = coins ( 10000 , "gold" ) ;
181
190
let mut deps = mock_instance_with_balances ( WASM , & [ ( & rich_addr, & rich_balance) ] ) ;
182
191
@@ -211,9 +220,9 @@ fn execute_release_works() {
211
220
let mut deps = mock_instance ( WASM , & [ ] ) ;
212
221
213
222
// initialize the store
214
- let creator = String :: from ( "creator" ) ;
215
- let verifier = String :: from ( "verifies" ) ;
216
- let beneficiary = String :: from ( "benefits" ) ;
223
+ let creator = deps . api ( ) . addr_make ( "creator" ) . to_string ( ) ;
224
+ let verifier = deps . api ( ) . addr_make ( "verifies" ) . to_string ( ) ;
225
+ let beneficiary = deps . api ( ) . addr_make ( "benefits" ) . to_string ( ) ;
217
226
218
227
let instantiate_msg = InstantiateMsg {
219
228
verifier : verifier. clone ( ) ,
@@ -241,13 +250,13 @@ fn execute_release_works() {
241
250
assert_eq ! (
242
251
msg,
243
252
& SubMsg :: new( BankMsg :: Send {
244
- to_address: beneficiary,
253
+ to_address: beneficiary. clone ( ) ,
245
254
amount: coins( 1000 , "earth" ) ,
246
255
} ) ,
247
256
) ;
248
257
assert_eq ! (
249
258
execute_res. attributes,
250
- vec![ ( "action" , "release" ) , ( "destination" , "benefits" ) ] ,
259
+ vec![ ( "action" , "release" ) , ( "destination" , beneficiary . as_str ( ) ) ] ,
251
260
) ;
252
261
assert_eq ! ( execute_res. data, Some ( vec![ 0xF0 , 0x0B , 0xAA ] . into( ) ) ) ;
253
262
}
@@ -257,9 +266,9 @@ fn execute_release_fails_for_wrong_sender() {
257
266
let mut deps = mock_instance ( WASM , & [ ] ) ;
258
267
259
268
// initialize the store
260
- let creator = String :: from ( "creator" ) ;
261
- let verifier = String :: from ( "verifies" ) ;
262
- let beneficiary = String :: from ( "benefits" ) ;
269
+ let creator = deps . api ( ) . addr_make ( "creator" ) . to_string ( ) ;
270
+ let verifier = deps . api ( ) . addr_make ( "verifies" ) . to_string ( ) ;
271
+ let beneficiary = deps . api ( ) . addr_make ( "benefits" ) . to_string ( ) ;
263
272
264
273
let instantiate_msg = InstantiateMsg {
265
274
verifier : verifier. clone ( ) ,
@@ -310,7 +319,7 @@ fn execute_release_fails_for_wrong_sender() {
310
319
fn execute_cpu_loop ( ) {
311
320
let mut deps = mock_instance ( WASM , & [ ] ) ;
312
321
313
- let ( instantiate_msg, creator) = make_init_msg ( ) ;
322
+ let ( instantiate_msg, creator) = make_init_msg ( & deps ) ;
314
323
let init_info = mock_info ( creator. as_str ( ) , & [ ] ) ;
315
324
let init_res: Response =
316
325
instantiate ( & mut deps, mock_env ( ) , init_info, instantiate_msg) . unwrap ( ) ;
@@ -332,7 +341,7 @@ fn execute_cpu_loop() {
332
341
fn execute_storage_loop ( ) {
333
342
let mut deps = mock_instance ( WASM , & [ ] ) ;
334
343
335
- let ( instantiate_msg, creator) = make_init_msg ( ) ;
344
+ let ( instantiate_msg, creator) = make_init_msg ( & deps ) ;
336
345
let init_info = mock_info ( creator. as_str ( ) , & [ ] ) ;
337
346
let init_res: Response =
338
347
instantiate ( & mut deps, mock_env ( ) , init_info, instantiate_msg) . unwrap ( ) ;
@@ -354,7 +363,7 @@ fn execute_storage_loop() {
354
363
fn execute_memory_loop ( ) {
355
364
let mut deps = mock_instance ( WASM , & [ ] ) ;
356
365
357
- let ( instantiate_msg, creator) = make_init_msg ( ) ;
366
+ let ( instantiate_msg, creator) = make_init_msg ( & deps ) ;
358
367
let init_info = mock_info ( creator. as_str ( ) , & [ ] ) ;
359
368
let init_res: Response =
360
369
instantiate ( & mut deps, mock_env ( ) , init_info, instantiate_msg) . unwrap ( ) ;
@@ -379,7 +388,7 @@ fn execute_memory_loop() {
379
388
fn execute_allocate_large_memory ( ) {
380
389
let mut deps = mock_instance ( WASM , & [ ] ) ;
381
390
382
- let ( instantiate_msg, creator) = make_init_msg ( ) ;
391
+ let ( instantiate_msg, creator) = make_init_msg ( & deps ) ;
383
392
let init_info = mock_info ( creator. as_str ( ) , & [ ] ) ;
384
393
let init_res: Response =
385
394
instantiate ( & mut deps, mock_env ( ) , init_info, instantiate_msg) . unwrap ( ) ;
@@ -435,7 +444,7 @@ fn execute_allocate_large_memory() {
435
444
fn execute_panic ( ) {
436
445
let mut deps = mock_instance ( WASM , & [ ] ) ;
437
446
438
- let ( instantiate_msg, creator) = make_init_msg ( ) ;
447
+ let ( instantiate_msg, creator) = make_init_msg ( & deps ) ;
439
448
let init_info = mock_info ( creator. as_str ( ) , & [ ] ) ;
440
449
let init_res: Response =
441
450
instantiate ( & mut deps, mock_env ( ) , init_info, instantiate_msg) . unwrap ( ) ;
@@ -466,7 +475,7 @@ fn execute_panic() {
466
475
fn execute_user_errors_in_api_calls ( ) {
467
476
let mut deps = mock_instance ( WASM , & [ ] ) ;
468
477
469
- let ( instantiate_msg, creator) = make_init_msg ( ) ;
478
+ let ( instantiate_msg, creator) = make_init_msg ( & deps ) ;
470
479
let init_info = mock_info ( creator. as_str ( ) , & [ ] ) ;
471
480
let _init_res: Response =
472
481
instantiate ( & mut deps, mock_env ( ) , init_info, instantiate_msg) . unwrap ( ) ;
0 commit comments