@@ -21,7 +21,7 @@ use katana_pool::ordering::FiFo;
2121use katana_pool:: pool:: Pool ;
2222use katana_pool:: validation:: NoopValidator ;
2323use katana_primitives:: transaction:: ExecutableTxWithHash ;
24- use katana_primitives:: Felt ;
24+ use katana_primitives:: { felt , Felt } ;
2525use katana_provider:: test_utils:: test_provider;
2626use katana_rpc_server:: middleware:: cartridge:: ControllerDeploymentLayer ;
2727use katana_rpc_server:: starknet:: { PendingBlockProvider , StarknetApi , StarknetApiConfig } ;
@@ -49,18 +49,17 @@ use url::Url;
4949async fn estimate_fee_forwards_when_no_controllers ( ) {
5050 let inner_responses = {
5151 let mut m = HashMap :: new ( ) ;
52- // Return a valid fee estimate response for 1 transaction.
5352 m. insert (
5453 "starknet_estimateFee" . to_string ( ) ,
55- json ! ( [ {
56- " l1_gas_consumed" : "0x1" ,
57- " l1_gas_price" : "0x2" ,
58- " l2_gas_consumed" : "0x3" ,
59- " l2_gas_price" : "0x4" ,
60- " l1_data_gas_consumed" : "0x5" ,
61- " l1_data_gas_price" : "0x6" ,
62- " overall_fee" : "0x7"
63- } ] ) ,
54+ vec ! [ FeeEstimate {
55+ l1_gas_consumed: felt! ( "1" ) ,
56+ l1_gas_price: felt! ( "2" ) ,
57+ l2_gas_consumed: felt! ( "3" ) ,
58+ l2_gas_price: felt! ( "4" ) ,
59+ l1_data_gas_consumed: felt! ( "5" ) ,
60+ l1_data_gas_price: felt! ( "6" ) ,
61+ overall_fee: felt! ( "7" ) ,
62+ } ] ,
6463 ) ;
6564 m
6665 } ;
@@ -107,26 +106,26 @@ async fn estimate_fee_prepends_deploy_tx_for_controller() {
107106 // The inner service will receive 2 txs (1 deploy + 1 original).
108107 m. insert (
109108 "starknet_estimateFee" . to_string ( ) ,
110- json ! ( [
111- {
112- " l1_gas_consumed" : "0xa" ,
113- " l1_gas_price" : "0xb" ,
114- " l2_gas_consumed" : "0xc" ,
115- " l2_gas_price" : "0xd" ,
116- " l1_data_gas_consumed" : "0xe" ,
117- " l1_data_gas_price" : "0xf" ,
118- " overall_fee" : "0x10"
109+ vec ! [
110+ FeeEstimate {
111+ l1_gas_consumed: felt! ( "0xa" ) ,
112+ l1_gas_price: felt! ( "0xb" ) ,
113+ l2_gas_consumed: felt! ( "0xc" ) ,
114+ l2_gas_price: felt! ( "0xd" ) ,
115+ l1_data_gas_consumed: felt! ( "0xe" ) ,
116+ l1_data_gas_price: felt! ( "0xf" ) ,
117+ overall_fee: felt! ( "0x10" ) ,
119118 } ,
120- {
121- " l1_gas_consumed" : "0x1" ,
122- " l1_gas_price" : "0x2" ,
123- " l2_gas_consumed" : "0x3" ,
124- " l2_gas_price" : "0x4" ,
125- " l1_data_gas_consumed" : "0x5" ,
126- " l1_data_gas_price" : "0x6" ,
127- " overall_fee" : "0x7"
128- }
129- ] ) ,
119+ FeeEstimate {
120+ l1_gas_consumed: felt! ( "1" ) ,
121+ l1_gas_price: felt! ( "2" ) ,
122+ l2_gas_consumed: felt! ( "3" ) ,
123+ l2_gas_price: felt! ( "4" ) ,
124+ l1_data_gas_consumed: felt! ( "5" ) ,
125+ l1_data_gas_price: felt! ( "6" ) ,
126+ overall_fee: felt! ( "7" ) ,
127+ } ,
128+ ] ,
130129 ) ;
131130 m
132131 } ;
@@ -177,15 +176,15 @@ async fn estimate_fee_forwards_for_non_controller() {
177176 let mut m = HashMap :: new ( ) ;
178177 m. insert (
179178 "starknet_estimateFee" . to_string ( ) ,
180- json ! ( [ {
181- " l1_gas_consumed" : "0x1" ,
182- " l1_gas_price" : "0x2" ,
183- " l2_gas_consumed" : "0x3" ,
184- " l2_gas_price" : "0x4" ,
185- " l1_data_gas_consumed" : "0x5" ,
186- " l1_data_gas_price" : "0x6" ,
187- " overall_fee" : "0x7"
188- } ] ) ,
179+ vec ! [ FeeEstimate {
180+ l1_gas_consumed: felt! ( "1" ) ,
181+ l1_gas_price: felt! ( "2" ) ,
182+ l2_gas_consumed: felt! ( "3" ) ,
183+ l2_gas_price: felt! ( "4" ) ,
184+ l1_data_gas_consumed: felt! ( "5" ) ,
185+ l1_data_gas_price: felt! ( "6" ) ,
186+ overall_fee: felt! ( "7" ) ,
187+ } ] ,
189188 ) ;
190189 m
191190 } ;
@@ -228,17 +227,22 @@ async fn estimate_fee_deduplicates_same_controller() {
228227 m
229228 } ;
230229
230+ let zero_fee = FeeEstimate {
231+ l1_gas_consumed : felt ! ( "0" ) ,
232+ l1_gas_price : felt ! ( "0" ) ,
233+ l2_gas_consumed : felt ! ( "0" ) ,
234+ l2_gas_price : felt ! ( "0" ) ,
235+ l1_data_gas_consumed : felt ! ( "0" ) ,
236+ l1_data_gas_price : felt ! ( "0" ) ,
237+ overall_fee : felt ! ( "0" ) ,
238+ } ;
239+
231240 let inner_responses = {
232241 let mut m = HashMap :: new ( ) ;
233242 // Inner service receives 4 txs (1 deploy + 3 original).
234243 m. insert (
235244 "starknet_estimateFee" . to_string ( ) ,
236- json ! ( [
237- { "l1_gas_consumed" : "0x0" , "l1_gas_price" : "0x0" , "l2_gas_consumed" : "0x0" , "l2_gas_price" : "0x0" , "l1_data_gas_consumed" : "0x0" , "l1_data_gas_price" : "0x0" , "overall_fee" : "0x0" } ,
238- { "l1_gas_consumed" : "0x0" , "l1_gas_price" : "0x0" , "l2_gas_consumed" : "0x0" , "l2_gas_price" : "0x0" , "l1_data_gas_consumed" : "0x0" , "l1_data_gas_price" : "0x0" , "overall_fee" : "0x0" } ,
239- { "l1_gas_consumed" : "0x0" , "l1_gas_price" : "0x0" , "l2_gas_consumed" : "0x0" , "l2_gas_price" : "0x0" , "l1_data_gas_consumed" : "0x0" , "l1_data_gas_price" : "0x0" , "overall_fee" : "0x0" } ,
240- { "l1_gas_consumed" : "0x0" , "l1_gas_price" : "0x0" , "l2_gas_consumed" : "0x0" , "l2_gas_price" : "0x0" , "l1_data_gas_consumed" : "0x0" , "l1_data_gas_price" : "0x0" , "overall_fee" : "0x0" }
241- ] ) ,
245+ vec ! [ zero_fee. clone( ) , zero_fee. clone( ) , zero_fee. clone( ) , zero_fee] ,
242246 ) ;
243247 m
244248 } ;
@@ -600,11 +604,11 @@ struct MockRpcService {
600604 /// Records all calls.
601605 calls : Arc < Mutex < Vec < RecordedCall > > > ,
602606 /// Pre-configured response JSON per method name.
603- responses : Arc < HashMap < String , serde_json :: Value > > ,
607+ responses : Arc < HashMap < String , Vec < FeeEstimate > > > ,
604608}
605609
606610impl MockRpcService {
607- fn new ( responses : HashMap < String , serde_json :: Value > ) -> Self {
611+ fn new ( responses : HashMap < String , Vec < FeeEstimate > > ) -> Self {
608612 Self { calls : Arc :: new ( Mutex :: new ( Vec :: new ( ) ) ) , responses : Arc :: new ( responses) }
609613 }
610614
@@ -748,7 +752,7 @@ struct TestSetup {
748752
749753async fn setup_test (
750754 cartridge_api_responses : HashMap < String , serde_json:: Value > ,
751- inner_rpc_responses : HashMap < String , serde_json :: Value > ,
755+ inner_rpc_responses : HashMap < String , Vec < FeeEstimate > > ,
752756) -> TestSetup {
753757 let ( mock_url, mock_api_state) = start_mock_cartridge_api ( cartridge_api_responses) . await ;
754758
0 commit comments