File tree Expand file tree Collapse file tree
components/molecules/select-opportunity-list-item
pages/details/earn-page/state Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ---
2+ " @stakekit/widget " : patch
3+ ---
4+
5+ fix(yields): allow whitelisted zero-rate yields
Original file line number Diff line number Diff line change @@ -9,7 +9,7 @@ import { Box } from "../../atoms/box";
99import { SelectModalItem } from "../../atoms/select-modal" ;
1010import { ProviderIcon } from "../../atoms/token-icon/provider-icon" ;
1111import { Text } from "../../atoms/typography/text" ;
12- import { selectItemText } from "./styles.css" ;
12+ import { noWrap , selectItemText } from "./styles.css" ;
1313
1414export const SelectOpportunityListItem = ( {
1515 item,
@@ -53,7 +53,7 @@ export const SelectOpportunityListItem = ({
5353 </ Box >
5454
5555 < Box >
56- < Text >
56+ < Text className = { noWrap } >
5757 { getRewardRateFormatted ( {
5858 rewardRate : item . rewardRate ,
5959 rewardType : item . rewardType ,
Original file line number Diff line number Diff line change @@ -7,3 +7,7 @@ export const selectItemText = style([
77 fontWeight : "tokenSelect" ,
88 } ) ,
99] ) ;
10+
11+ export const noWrap = style ( {
12+ whiteSpace : "nowrap" ,
13+ } ) ;
Original file line number Diff line number Diff line change @@ -179,6 +179,14 @@ export const isEthenaUsdeStaking = (yieldId: string) =>
179179export const isBittensorStaking = ( yieldId : string ) =>
180180 yieldId === "bittensor-native-staking" ;
181181
182+ const zeroRewardRateYieldIdWhitelist = new Set < string > ( [
183+ "optimism-usdc-gtusdcb-0x4ffc4e5f1f1f5c43dc9bc27b53728da13b02be35-4626-vault" ,
184+ ] ) ;
185+
186+ export const isNonZeroRewardRateYield = (
187+ yieldDto : Pick < YieldDto , "id" | "rewardRate" >
188+ ) => yieldDto . rewardRate > 0 || zeroRewardRateYieldIdWhitelist . has ( yieldDto . id ) ;
189+
182190export const getComputedRewardRate = ( yieldDto : YieldDto ) => {
183191 const liveFeeConfigurations = yieldDto . feeConfigurations . filter (
184192 ( fc ) => fc . status === "LIVE"
Original file line number Diff line number Diff line change @@ -31,7 +31,10 @@ import {
3131 type PreferredTokenYieldsPerNetwork ,
3232} from "../../domain/types/stake" ;
3333import type { SKWallet } from "../../domain/types/wallet" ;
34- import type { ValidatorsConfig } from "../../domain/types/yields" ;
34+ import {
35+ isNonZeroRewardRateYield ,
36+ type ValidatorsConfig ,
37+ } from "../../domain/types/yields" ;
3538import { useSKQueryClient } from "../../providers/query-client" ;
3639import { useSKWallet } from "../../providers/sk-wallet" ;
3740import { useSavedRef } from "../use-saved-ref" ;
@@ -192,7 +195,9 @@ const firstEligibleYield$ = (args: {
192195
193196 const successStream = multipleYields$ ( args ) . pipe (
194197 tap ( ( v ) => {
195- defaultYield = v ;
198+ if ( isNonZeroRewardRateYield ( v ) || ! defaultYield ) {
199+ defaultYield = v ;
200+ }
196201 } ) ,
197202 filter ( ( y ) => {
198203 const preferredYieldId = Maybe . fromNullable (
Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ import {
3232 getYieldTypeLabels ,
3333 getYieldTypesSortRank ,
3434 isBittensorStaking ,
35+ isNonZeroRewardRateYield ,
3536} from "../../../../domain/types/yields" ;
3637import { useDefaultTokens } from "../../../../hooks/api/use-default-tokens" ;
3738import { useStreamMultiYields } from "../../../../hooks/api/use-multi-yields" ;
@@ -236,7 +237,7 @@ export const EarnPageContextProvider = ({ children }: PropsWithChildren) => {
236237 ( ) =>
237238 Maybe . of ( multiYields )
238239 . map ( ( val ) => [ ...val ] . sort ( ( a , b ) => b . rewardRate - a . rewardRate ) )
239- . map ( ( val ) => val . filter ( ( v ) => v . rewardRate > 0 ) )
240+ . map ( ( val ) => val . filter ( isNonZeroRewardRateYield ) )
240241 . chain ( ( yieldDtos ) =>
241242 Maybe . of ( deferredStakeSearch )
242243 . chain ( ( val ) =>
You can’t perform that action at this time.
0 commit comments