@@ -98,36 +98,6 @@ impl HttpRequest for RPCGetClarityMetadataRequestHandler {
98
98
99
99
let contract_identifier = request:: get_contract_address ( captures, "address" , "contract" ) ?;
100
100
101
- // Validate that the metadata key is well-formed. It must be of data type:
102
- // DataMapMeta (5) | VariableMeta (6) | FungibleTokenMeta (7) | NonFungibleTokenMeta (8)
103
- // or Contract (9) followed by a valid contract metadata name
104
- match captures
105
- . name ( "data_type" )
106
- . and_then ( |data_type| StoreType :: try_from ( data_type. as_str ( ) ) . ok ( ) )
107
- {
108
- Some ( data_type) => match data_type {
109
- StoreType :: DataMapMeta
110
- | StoreType :: VariableMeta
111
- | StoreType :: FungibleTokenMeta
112
- | StoreType :: NonFungibleTokenMeta => { }
113
- StoreType :: Contract => {
114
- if captures
115
- . name ( "var_name" )
116
- . and_then ( |var_name| ContractDataVarName :: try_from ( var_name. as_str ( ) ) . ok ( ) )
117
- . is_none ( )
118
- {
119
- return Err ( Error :: DecodeError ( "Invalid metadata var name" . to_string ( ) ) ) ;
120
- }
121
- }
122
- _ => {
123
- return Err ( Error :: DecodeError ( "Invalid metadata type" . to_string ( ) ) ) ;
124
- }
125
- } ,
126
- None => {
127
- return Err ( Error :: DecodeError ( "Invalid metadata type" . to_string ( ) ) ) ;
128
- }
129
- }
130
-
131
101
let metadata_key = match captures. name ( "clarity_metadata_key" ) {
132
102
Some ( key_str) => key_str. as_str ( ) . to_string ( ) ,
133
103
None => {
@@ -137,6 +107,42 @@ impl HttpRequest for RPCGetClarityMetadataRequestHandler {
137
107
}
138
108
} ;
139
109
110
+ if metadata_key != "analysis" {
111
+ // Validate that the metadata key is well-formed. It must be of data type:
112
+ // DataMapMeta (5) | VariableMeta (6) | FungibleTokenMeta (7) | NonFungibleTokenMeta (8)
113
+ // or Contract (9) followed by a valid contract metadata name
114
+ match captures
115
+ . name ( "data_type" )
116
+ . and_then ( |data_type| StoreType :: try_from ( data_type. as_str ( ) ) . ok ( ) )
117
+ {
118
+ Some ( data_type) => match data_type {
119
+ StoreType :: DataMapMeta
120
+ | StoreType :: VariableMeta
121
+ | StoreType :: FungibleTokenMeta
122
+ | StoreType :: NonFungibleTokenMeta => { }
123
+ StoreType :: Contract => {
124
+ if captures
125
+ . name ( "var_name" )
126
+ . and_then ( |var_name| {
127
+ ContractDataVarName :: try_from ( var_name. as_str ( ) ) . ok ( )
128
+ } )
129
+ . is_none ( )
130
+ {
131
+ return Err ( Error :: DecodeError (
132
+ "Invalid metadata var name" . to_string ( ) ,
133
+ ) ) ;
134
+ }
135
+ }
136
+ _ => {
137
+ return Err ( Error :: DecodeError ( "Invalid metadata type" . to_string ( ) ) ) ;
138
+ }
139
+ } ,
140
+ None => {
141
+ return Err ( Error :: DecodeError ( "Invalid metadata type" . to_string ( ) ) ) ;
142
+ }
143
+ }
144
+ }
145
+
140
146
self . contract_identifier = Some ( contract_identifier) ;
141
147
self . clarity_metadata_key = Some ( metadata_key) ;
142
148
0 commit comments