@@ -213,6 +213,16 @@ fn test_try_make_response() {
213
213
214
214
let mut requests = vec ! [ ] ;
215
215
216
+ // query invalid metadata key (wrong store type)
217
+ let request = StacksHttpRequest :: new_getclaritymetadata (
218
+ addr. into ( ) ,
219
+ StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
220
+ "hello-world" . try_into ( ) . unwrap ( ) ,
221
+ "vm-metadata::2::bar" . to_string ( ) ,
222
+ TipRequest :: UseLatestAnchoredTip ,
223
+ ) ;
224
+ requests. push ( request) ;
225
+
216
226
// query existing contract size metadata
217
227
let request = StacksHttpRequest :: new_getclaritymetadata (
218
228
addr. into ( ) ,
@@ -223,7 +233,7 @@ fn test_try_make_response() {
223
233
) ;
224
234
requests. push ( request) ;
225
235
226
- // query existing data var metadata
236
+ // query existing data map metadata
227
237
let request = StacksHttpRequest :: new_getclaritymetadata (
228
238
addr. into ( ) ,
229
239
StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
@@ -233,7 +243,7 @@ fn test_try_make_response() {
233
243
) ;
234
244
requests. push ( request) ;
235
245
236
- // query existing data map metadata
246
+ // query existing data var metadata
237
247
let request = StacksHttpRequest :: new_getclaritymetadata (
238
248
addr. into ( ) ,
239
249
StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
@@ -243,22 +253,32 @@ fn test_try_make_response() {
243
253
) ;
244
254
requests. push ( request) ;
245
255
246
- // query undeclared var metadata
256
+ // query existing data var metadata
247
257
let request = StacksHttpRequest :: new_getclaritymetadata (
248
258
addr. into ( ) ,
249
259
StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
250
260
"hello-world" . try_into ( ) . unwrap ( ) ,
251
- "vm-metadata::6::non-existing-var " . to_string ( ) ,
261
+ "vm-metadata::6::bar " . to_string ( ) ,
252
262
TipRequest :: UseLatestAnchoredTip ,
253
263
) ;
254
264
requests. push ( request) ;
255
265
256
- // query invalid metadata key (wrong store type)
266
+ // query existing data var metadata
257
267
let request = StacksHttpRequest :: new_getclaritymetadata (
258
268
addr. into ( ) ,
259
269
StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
260
270
"hello-world" . try_into ( ) . unwrap ( ) ,
261
- "vm-metadata::2::bar" . to_string ( ) ,
271
+ "vm-metadata::6::bar" . to_string ( ) ,
272
+ TipRequest :: UseLatestAnchoredTip ,
273
+ ) ;
274
+ requests. push ( request) ;
275
+
276
+ // query undeclared var metadata
277
+ let request = StacksHttpRequest :: new_getclaritymetadata (
278
+ addr. into ( ) ,
279
+ StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
280
+ "hello-world" . try_into ( ) . unwrap ( ) ,
281
+ "vm-metadata::6::non-existing-var" . to_string ( ) ,
262
282
TipRequest :: UseLatestAnchoredTip ,
263
283
) ;
264
284
requests. push ( request) ;
@@ -273,8 +293,23 @@ fn test_try_make_response() {
273
293
) ;
274
294
requests. push ( request) ;
275
295
296
+ // query invalid metadata key (wrong store type)
297
+ let request = StacksHttpRequest :: new_getclaritymetadata (
298
+ addr. into ( ) ,
299
+ StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
300
+ "hello-world" . try_into ( ) . unwrap ( ) ,
301
+ "vm-metadata::2::bar" . to_string ( ) ,
302
+ TipRequest :: UseLatestAnchoredTip ,
303
+ ) ;
304
+ requests. push ( request) ;
305
+
276
306
let mut responses = test_rpc ( function_name ! ( ) , requests) ;
277
307
308
+ // unknwnon data var
309
+ let response = responses. remove ( 0 ) ;
310
+ let ( preamble, body) = response. destruct ( ) ;
311
+ assert_eq ! ( preamble. status_code, 400 ) ;
312
+
278
313
// contract size metadata
279
314
let response = responses. remove ( 0 ) ;
280
315
assert_eq ! (
@@ -301,11 +336,36 @@ fn test_try_make_response() {
301
336
} ;
302
337
assert_eq ! ( resp. data, expected. serialize( ) ) ;
303
338
339
+ // data var metadata
340
+ let response = responses. remove ( 0 ) ;
341
+ let resp = response. decode_clarity_metadata_response ( ) . unwrap ( ) ;
342
+ let expected = DataVariableMetadata {
343
+ value_type : TypeSignature :: IntType ,
344
+ } ;
345
+ assert_eq ! ( resp. data, expected. serialize( ) ) ;
346
+
347
+ // data var metadata
348
+ let response = responses. remove ( 0 ) ;
349
+ let resp = response. decode_clarity_metadata_response ( ) . unwrap ( ) ;
350
+ let expected = DataVariableMetadata {
351
+ value_type : TypeSignature :: IntType ,
352
+ } ;
353
+ assert_eq ! ( resp. data, expected. serialize( ) ) ;
354
+
304
355
// invalid metadata key
305
356
let response = responses. remove ( 0 ) ;
306
357
let ( preamble, body) = response. destruct ( ) ;
307
358
assert_eq ! ( preamble. status_code, 404 ) ;
308
359
360
+ // contract size metadata
361
+ let response = responses. remove ( 0 ) ;
362
+ assert_eq ! (
363
+ response. preamble( ) . get_canonical_stacks_tip_height( ) ,
364
+ Some ( 1 )
365
+ ) ;
366
+ let resp = response. decode_clarity_metadata_response ( ) . unwrap ( ) ;
367
+ assert_eq ! ( resp. data, "1432" ) ;
368
+
309
369
// unknwnon data var
310
370
let response = responses. remove ( 0 ) ;
311
371
let ( preamble, body) = response. destruct ( ) ;
0 commit comments