1010 token_info:: TokenInfoFetching ,
1111 } ,
1212 anyhow:: { Context , Result , anyhow, ensure} ,
13- contracts:: { BalancerV3Vault } ,
13+ contracts:: BalancerV3Vault ,
1414 ethcontract:: { BlockId , H160 , U256 } ,
1515 futures:: { FutureExt as _, future:: BoxFuture } ,
1616 std:: { collections:: BTreeMap , future:: Future , sync:: Arc } ,
@@ -82,8 +82,10 @@ impl<Factory> PoolInfoFetcher<Factory> {
8282 // Get the pool ID from the pool address (for V3, pool ID is the pool address)
8383 let pool_id = pool_address;
8484
85- // Use V3 vault getPoolTokenInfo to get the tokens in the pool as well as the rate providers
86- let ( tokens, token_infos, _, _) = self . vault . get_pool_token_info ( pool_address) . call ( ) . await ?;
85+ // Use V3 vault getPoolTokenInfo to get the tokens in the pool as well as the
86+ // rate providers
87+ let ( tokens, token_infos, _, _) =
88+ self . vault . get_pool_token_info ( pool_address) . call ( ) . await ?;
8789
8890 // Get the rate providers from the token infos
8991 let rate_providers = token_infos
@@ -113,13 +115,21 @@ impl<Factory> PoolInfoFetcher<Factory> {
113115 let fetch_paused = self . vault . is_pool_paused ( pool. address ) . block ( block) . call ( ) ;
114116
115117 // Use V3 Vault getStaticSwapFeePercentage to get the swap fee
116- let fetch_swap_fee = self . vault . get_static_swap_fee_percentage ( pool. address ) . block ( block) . call ( ) ;
118+ let fetch_swap_fee = self
119+ . vault
120+ . get_static_swap_fee_percentage ( pool. address )
121+ . block ( block)
122+ . call ( ) ;
117123
118124 // Use V3 Vault getPoolData to get the pool data
119125 let fetch_pool_data = self . vault . get_pool_data ( pool. address ) . block ( block) . call ( ) ;
120126
121- let fetch_token_rates = self . vault . get_pool_token_rates ( pool. address ) . block ( block) . call ( ) ;
122-
127+ let fetch_token_rates = self
128+ . vault
129+ . get_pool_token_rates ( pool. address )
130+ . block ( block)
131+ . call ( ) ;
132+
123133 // Because of a `mockall` limitation, we **need** the future returned
124134 // here to be `'static`. This requires us to clone and move `pool` into
125135 // the async closure - otherwise it would only live for as long as
@@ -128,17 +138,22 @@ impl<Factory> PoolInfoFetcher<Factory> {
128138
129139 async move {
130140 // Get the paused status, swap fee, and pool data
131- let ( paused, swap_fee, pool_data, token_rates) =
132- futures:: try_join!( fetch_paused, fetch_swap_fee, fetch_pool_data, fetch_token_rates) ?;
133-
141+ let ( paused, swap_fee, pool_data, token_rates) = futures:: try_join!(
142+ fetch_paused,
143+ fetch_swap_fee,
144+ fetch_pool_data,
145+ fetch_token_rates
146+ ) ?;
147+
134148 // Convert the swap fee to a Bfp
135149 let swap_fee = Bfp :: from_wei ( swap_fee) ;
136150
137- // Pool Data: (pool_config_bits, tokens, token_infos, balances_raw, balances_live_scaled18, token_rates, decimal_scaling_factors)
151+ // Pool Data: (pool_config_bits, tokens, token_infos, balances_raw,
152+ // balances_live_scaled18, token_rates, decimal_scaling_factors)
138153 let ( _, tokens, _, balances, _, _, _) = pool_data;
139154
140155 let ( _, token_rates) = token_rates;
141-
156+
142157 // Ensure the number of balances matches the number of tokens
143158 ensure ! (
144159 pool. tokens. len( ) == tokens. len( ) ,
@@ -371,8 +386,8 @@ mod tests {
371386 } ,
372387 token_info:: { MockTokenInfoFetching , TokenInfo } ,
373388 } ,
374- ethcontract:: { U256 , Bytes } ,
375389 contracts:: BalancerV3WeightedPool ,
390+ ethcontract:: { Bytes , U256 } ,
376391 ethcontract_mock:: Mock ,
377392 futures:: future,
378393 maplit:: { btreemap, hashmap} ,
@@ -393,8 +408,9 @@ mod tests {
393408 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_token_info ( ) )
394409 . predicate ( ( predicate:: eq ( pool. address ( ) ) , ) )
395410 . returns ( (
396- tokens. to_vec ( ) , // tokens
397- vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 3 ] , // token_infos: (tokenType, rateProvider, paysYieldFees)
411+ tokens. to_vec ( ) , // tokens
412+ vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 3 ] , /* token_infos: (tokenType, rateProvider,
413+ * paysYieldFees) */
398414 vec ! [ U256 :: zero( ) , U256 :: zero( ) , U256 :: zero( ) ] , // balances_raw
399415 vec ! [ U256 :: zero( ) , U256 :: zero( ) , U256 :: zero( ) ] , // last_balances_live_scaled18
400416 ) ) ;
@@ -458,10 +474,11 @@ mod tests {
458474 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_data ( ) )
459475 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
460476 . returns ( (
461- Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
462- tokens. to_vec ( ) , // tokens
463- vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 3 ] , // token_infos: (tokenType, rateProvider, paysYieldFees)
464- balances. to_vec ( ) , // balances_raw
477+ Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
478+ tokens. to_vec ( ) , // tokens
479+ vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 3 ] , /* token_infos: (tokenType, rateProvider,
480+ * paysYieldFees) */
481+ balances. to_vec ( ) , // balances_raw
465482 vec ! [ U256 :: zero( ) , U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
466483 vec ! [ U256 :: zero( ) , U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
467484 vec ! [ U256 :: zero( ) , U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
@@ -546,19 +563,19 @@ mod tests {
546563 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_data ( ) )
547564 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
548565 . returns ( (
549- Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
550- vec ! [ H160 ( [ 1 ; 20 ] ) , H160 ( [ 2 ; 20 ] ) ] , // Only 2 tokens instead of 3
566+ Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
567+ vec ! [ H160 ( [ 1 ; 20 ] ) , H160 ( [ 2 ; 20 ] ) ] , // Only 2 tokens instead of 3
551568 vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 2 ] , // token_infos
552- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_raw
553- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
554- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
555- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
569+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_raw
570+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
571+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
572+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
556573 ) ) ;
557574 vault
558575 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_token_rates ( ) )
559576 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
560577 . returns ( (
561- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
578+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
562579 vec ! [ U256 :: exp10( 18 ) , U256 :: exp10( 18 ) ] , // token_rates
563580 ) ) ;
564581
@@ -610,19 +627,19 @@ mod tests {
610627 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_data ( ) )
611628 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
612629 . returns ( (
613- Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
614- tokens. to_vec ( ) , // tokens
630+ Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
631+ tokens. to_vec ( ) , // tokens
615632 vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 2 ] , // token_infos
616- balances. to_vec ( ) , // balances_raw
617- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
618- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
619- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
633+ balances. to_vec ( ) , // balances_raw
634+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
635+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
636+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
620637 ) ) ;
621638 vault
622639 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_token_rates ( ) )
623640 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
624641 . returns ( (
625- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
642+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
626643 vec ! [ U256 :: exp10( 18 ) , U256 :: exp10( 18 ) ] , // token_rates
627644 ) ) ;
628645
@@ -722,19 +739,19 @@ mod tests {
722739 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_data ( ) )
723740 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
724741 . returns ( (
725- Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
726- vec ! [ H160 ( [ 1 ; 20 ] ) , H160 ( [ 2 ; 20 ] ) ] , // tokens
742+ Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
743+ vec ! [ H160 ( [ 1 ; 20 ] ) , H160 ( [ 2 ; 20 ] ) ] , // tokens
727744 vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 2 ] , // token_infos
728- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_raw
729- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
730- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
731- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
745+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_raw
746+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
747+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
748+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
732749 ) ) ;
733750 vault
734751 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_token_rates ( ) )
735752 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
736753 . returns ( (
737- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
754+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
738755 vec ! [ U256 :: exp10( 18 ) , U256 :: exp10( 18 ) ] , // token_rates
739756 ) ) ;
740757
@@ -803,19 +820,19 @@ mod tests {
803820 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_data ( ) )
804821 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
805822 . returns ( (
806- Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
807- tokens. to_vec ( ) , // tokens
823+ Bytes ( [ 0u8 ; 32 ] ) , // pool_config_bits
824+ tokens. to_vec ( ) , // tokens
808825 vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 2 ] , // token_infos
809- balances. to_vec ( ) , // balances_raw
810- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
811- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
812- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
826+ balances. to_vec ( ) , // balances_raw
827+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_live_scaled18
828+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // token_rates
829+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
813830 ) ) ;
814831 vault
815832 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_token_rates ( ) )
816833 . predicate ( ( predicate:: eq ( mock_pool. address ( ) ) , ) )
817834 . returns ( (
818- vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
835+ vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // decimal_scaling_factors
819836 vec ! [ U256 :: exp10( 18 ) , U256 :: exp10( 18 ) ] , // token_rates
820837 ) ) ;
821838
@@ -871,8 +888,9 @@ mod tests {
871888 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_token_info ( ) )
872889 . predicate ( ( predicate:: eq ( pool. address ( ) ) , ) )
873890 . returns ( (
874- tokens. to_vec ( ) , // tokens
875- vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 2 ] , // token_infos: (tokenType, rateProvider, paysYieldFees)
891+ tokens. to_vec ( ) , // tokens
892+ vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 2 ] , /* token_infos: (tokenType, rateProvider,
893+ * paysYieldFees) */
876894 vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_raw
877895 vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // last_balances_live_scaled18
878896 ) ) ;
@@ -908,8 +926,9 @@ mod tests {
908926 . expect_call ( BalancerV3Vault :: signatures ( ) . get_pool_token_info ( ) )
909927 . predicate ( ( predicate:: eq ( pool. address ( ) ) , ) )
910928 . returns ( (
911- tokens. to_vec ( ) , // tokens
912- vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 2 ] , // token_infos: (tokenType, rateProvider, paysYieldFees)
929+ tokens. to_vec ( ) , // tokens
930+ vec ! [ ( 0u8 , H160 :: zero( ) , false ) ; 2 ] , /* token_infos: (tokenType, rateProvider,
931+ * paysYieldFees) */
913932 vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // balances_raw
914933 vec ! [ U256 :: zero( ) , U256 :: zero( ) ] , // last_balances_live_scaled18
915934 ) ) ;
0 commit comments