15
15
16
16
use std:: net:: { IpAddr , Ipv4Addr , SocketAddr } ;
17
17
18
- use clarity:: vm:: types:: { QualifiedContractIdentifier , StacksAddressExtensions } ;
18
+ use clarity:: vm:: database:: { ClaritySerializable , DataMapMetadata , DataVariableMetadata } ;
19
+ use clarity:: vm:: types:: { QualifiedContractIdentifier , StacksAddressExtensions , TypeSignature } ;
19
20
use clarity:: vm:: { ClarityName , ContractName } ;
21
+ use serde_json:: json;
20
22
use stacks_common:: codec:: StacksMessageCodec ;
21
23
use stacks_common:: types:: chainstate:: StacksAddress ;
22
24
use stacks_common:: types:: net:: PeerHost ;
@@ -211,7 +213,7 @@ fn test_try_make_response() {
211
213
212
214
let mut requests = vec ! [ ] ;
213
215
214
- // query existing
216
+ // query existing contract size metadata
215
217
let request = StacksHttpRequest :: new_getclaritymetadata (
216
218
addr. into ( ) ,
217
219
StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
@@ -221,16 +223,51 @@ fn test_try_make_response() {
221
223
) ;
222
224
requests. push ( request) ;
223
225
226
+ // query existing data var metadata
227
+ let request = StacksHttpRequest :: new_getclaritymetadata (
228
+ addr. into ( ) ,
229
+ StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
230
+ "hello-world" . try_into ( ) . unwrap ( ) ,
231
+ "vm-metadata::5::test-map" . to_string ( ) ,
232
+ TipRequest :: UseLatestAnchoredTip ,
233
+ ) ;
234
+ requests. push ( request) ;
235
+
236
+ // query existing data map metadata
237
+ let request = StacksHttpRequest :: new_getclaritymetadata (
238
+ addr. into ( ) ,
239
+ StacksAddress :: from_string ( "ST2DS4MSWSGJ3W9FBC6BVT0Y92S345HY8N3T6AV7R" ) . unwrap ( ) ,
240
+ "hello-world" . try_into ( ) . unwrap ( ) ,
241
+ "vm-metadata::6::bar" . to_string ( ) ,
242
+ TipRequest :: UseLatestAnchoredTip ,
243
+ ) ;
244
+ requests. push ( request) ;
245
+
224
246
let mut responses = test_rpc ( function_name ! ( ) , requests) ;
225
247
226
- // latest data
248
+ // contract size metadata
227
249
let response = responses. remove ( 0 ) ;
228
-
229
250
assert_eq ! (
230
251
response. preamble( ) . get_canonical_stacks_tip_height( ) ,
231
252
Some ( 1 )
232
253
) ;
233
-
234
254
let resp = response. decode_clarity_metadata_response ( ) . unwrap ( ) ;
235
255
assert_eq ! ( resp. data, "1432" ) ;
256
+
257
+ // data map metadata
258
+ let response = responses. remove ( 0 ) ;
259
+ let resp = response. decode_clarity_metadata_response ( ) . unwrap ( ) ;
260
+ let expected = DataMapMetadata {
261
+ key_type : TypeSignature :: UIntType ,
262
+ value_type : TypeSignature :: UIntType ,
263
+ } ;
264
+ assert_eq ! ( resp. data, expected. serialize( ) ) ;
265
+
266
+ // data var metadata
267
+ let response = responses. remove ( 0 ) ;
268
+ let resp = response. decode_clarity_metadata_response ( ) . unwrap ( ) ;
269
+ let expected = DataVariableMetadata {
270
+ value_type : TypeSignature :: IntType ,
271
+ } ;
272
+ assert_eq ! ( resp. data, expected. serialize( ) ) ;
236
273
}
0 commit comments