@@ -5,7 +5,7 @@ use crate::types::{
55 Operation , OperationIdentifier , OperationStatusKind , OperationType , StacksBlockData ,
66 StacksBlockMetadata , StacksTransactionData , StacksTransactionMetadata , TransactionIdentifier ,
77} ;
8- use crate :: utils:: stacks:: { transactions , StacksRpc } ;
8+ use crate :: utils:: stacks:: StacksRpc ;
99use clarity_repl:: clarity:: codec:: transaction:: TransactionPayload ;
1010use clarity_repl:: clarity:: codec:: { StacksMessageCodec , StacksTransaction } ;
1111use clarity_repl:: clarity:: types:: Value as ClarityValue ;
@@ -299,62 +299,33 @@ pub fn get_standardized_fungible_currency_from_asset_class_id(
299299 None => {
300300 let comps = asset_class_id. split ( "::" ) . collect :: < Vec < & str > > ( ) ;
301301 let principal = comps[ 0 ] . split ( "." ) . collect :: < Vec < & str > > ( ) ;
302-
303- let get_symbol_request_url = format ! (
304- "{}/v2/contracts/call-read/{}/{}/get-symbol" ,
305- node_url, principal[ 0 ] , principal[ 1 ] ,
306- ) ;
307-
308- println ! ( "get_standardized_fungible_currency_from_asset_class_id" ) ;
309-
310- let symbol_res: ContractReadonlyCall = reqwest:: blocking:: get ( & get_symbol_request_url)
311- . expect ( "Unable to retrieve account" )
312- . json ( )
313- . expect ( "Unable to parse contract" ) ;
314-
315- let raw_value = match symbol_res. result . strip_prefix ( "0x" ) {
316- Some ( raw_value) => raw_value,
317- _ => panic ! ( ) ,
318- } ;
319- let value_bytes = match hex_bytes ( & raw_value) {
320- Ok ( bytes) => bytes,
321- _ => panic ! ( ) ,
322- } ;
323-
324- let symbol = match ClarityValue :: consensus_deserialize ( & mut Cursor :: new ( & value_bytes) ) {
325- Ok ( value) => value. expect_result_ok ( ) . expect_u128 ( ) ,
326- _ => panic ! ( ) ,
327- } ;
328-
329- let get_decimals_request_url = format ! (
330- "{}/v2/contracts/call-read/{}/{}/get-decimals" ,
331- node_url, principal[ 0 ] , principal[ 1 ] ,
332- ) ;
333-
334- let decimals_res: ContractReadonlyCall =
335- reqwest:: blocking:: get ( & get_decimals_request_url)
336- . expect ( "Unable to retrieve account" )
337- . json ( )
338- . expect ( "Unable to parse contract" ) ;
339-
340- let raw_value = match decimals_res. result . strip_prefix ( "0x" ) {
341- Some ( raw_value) => raw_value,
342- _ => panic ! ( ) ,
343- } ;
344- let value_bytes = match hex_bytes ( & raw_value) {
345- Ok ( bytes) => bytes,
346- _ => panic ! ( ) ,
347- } ;
348-
349- let value = match ClarityValue :: consensus_deserialize ( & mut Cursor :: new ( & value_bytes) ) {
350- Ok ( value) => value. expect_result_ok ( ) . expect_u128 ( ) ,
351- _ => panic ! ( ) ,
352- } ;
353-
354- let entry = AssetClassCache {
355- symbol : format ! ( "{}" , symbol) ,
356- decimals : value as u8 ,
357- } ;
302+ let contract_address = principal[ 0 ] ;
303+ let contract_name = principal[ 1 ] ;
304+
305+ let stacks_rpc = StacksRpc :: new ( & node_url) ;
306+ let value = stacks_rpc
307+ . call_read_only_fn (
308+ & contract_address,
309+ & contract_name,
310+ "get-symbol" ,
311+ vec ! [ ] ,
312+ contract_address,
313+ )
314+ . expect ( "Unable to retrieve symbol" ) ;
315+ let symbol = value. expect_result_ok ( ) . expect_ascii ( ) ;
316+
317+ let value = stacks_rpc
318+ . call_read_only_fn (
319+ & contract_address,
320+ & contract_name,
321+ "get-decimals" ,
322+ vec ! [ ] ,
323+ & contract_address,
324+ )
325+ . expect ( "Unable to retrieve decimals" ) ;
326+ let decimals = value. expect_result_ok ( ) . expect_u128 ( ) as u8 ;
327+
328+ let entry = AssetClassCache { symbol, decimals } ;
358329
359330 let currency = Currency {
360331 symbol : entry. symbol . clone ( ) ,
@@ -385,7 +356,7 @@ pub fn get_standardized_fungible_currency_from_asset_class_id(
385356pub fn get_standardized_non_fungible_currency_from_asset_class_id (
386357 asset_class_id : & str ,
387358 asset_id : & str ,
388- asset_class_cache : & mut HashMap < String , AssetClassCache > ,
359+ _asset_class_cache : & mut HashMap < String , AssetClassCache > ,
389360) -> Currency {
390361 Currency {
391362 symbol : asset_class_id. into ( ) ,
0 commit comments