@@ -16,7 +16,7 @@ mod swap_info {
1616 pub decimals : u8 ,
1717 }
1818
19- #[ program:: extension_fn( extension_id = 17401483330909459524u64 , fn_index = 0 ) ]
19+ #[ program:: extension_fn( extension_id = 15900548380266538526u64 , fn_index = 0 ) ]
2020 fn quote_price_tokens_for_exact_tokens (
2121 asset1 : AssetId ,
2222 asset2 : AssetId ,
@@ -25,7 +25,7 @@ mod swap_info {
2525 ) -> Option < Balance > {
2626 }
2727
28- #[ program:: extension_fn( extension_id = 17401483330909459524u64 , fn_index = 1 ) ]
28+ #[ program:: extension_fn( extension_id = 15900548380266538526u64 , fn_index = 1 ) ]
2929 fn quote_price_exact_tokens_for_tokens (
3030 asset1 : AssetId ,
3131 asset2 : AssetId ,
@@ -34,15 +34,18 @@ mod swap_info {
3434 ) -> Option < Balance > {
3535 }
3636
37- #[ program:: extension_fn( extension_id = 17401483330909459524u64 , fn_index = 2 ) ]
37+ #[ program:: extension_fn( extension_id = 15900548380266538526u64 , fn_index = 2 ) ]
3838 fn get_liquidity_pool ( asset1 : AssetId , asset2 : AssetId ) -> Option < ( Balance , Balance ) > { }
3939
40- #[ program:: extension_fn( extension_id = 17401483330909459524u64 , fn_index = 3 ) ]
40+ #[ program:: extension_fn( extension_id = 15900548380266538526u64 , fn_index = 3 ) ]
4141 fn list_pools ( ) -> alloc:: vec:: Vec < ( AssetId , AssetId ) > { }
4242
43- #[ program:: extension_fn( extension_id = 17401483330909459524u64 , fn_index = 4 ) ]
43+ #[ program:: extension_fn( extension_id = 15900548380266538526u64 , fn_index = 4 ) ]
4444 fn asset_info ( asset : AssetId ) -> Option < AssetInfo > { }
4545
46+ #[ program:: extension_fn( extension_id = 15900548380266538526u64 , fn_index = 5 ) ]
47+ fn assets_info ( ) -> alloc:: collections:: BTreeMap < AssetId , AssetInfo > { }
48+
4649 #[ program:: entrypoint]
4750 fn entrypoint_quote_price_exact_tokens_for_tokens (
4851 asset1 : AssetId ,
@@ -70,9 +73,10 @@ mod swap_info {
7073 fn entrypoint_list_pools ( ) -> alloc:: vec:: Vec < ( AssetInfo , AssetInfo ) > {
7174 let pools = list_pools ( ) ;
7275 let mut result = alloc:: vec:: Vec :: new ( ) ;
76+ let assets_info = assets_info ( ) ;
7377 for pool in pools {
74- let asset1_info = asset_info ( pool. 0 . clone ( ) ) ;
75- let asset2_info = asset_info ( pool. 1 . clone ( ) ) ;
78+ let asset1_info = assets_info . get ( & pool. 0 ) . cloned ( ) ;
79+ let asset2_info = assets_info . get ( & pool. 1 ) . cloned ( ) ;
7680 if let ( Some ( a1) , Some ( a2) ) = ( asset1_info, asset2_info) {
7781 result. push ( ( a1, a2) ) ;
7882 }
0 commit comments