diff --git a/src/components/icons/phantom.svg b/src/components/icons/phantom.svg new file mode 100644 index 00000000..95e08c2d --- /dev/null +++ b/src/components/icons/phantom.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/screens/staking/lib/staking_sdk/context/selectors.ts b/src/screens/staking/lib/staking_sdk/context/selectors.ts index aa54a8e6..cc728cbf 100644 --- a/src/screens/staking/lib/staking_sdk/context/selectors.ts +++ b/src/screens/staking/lib/staking_sdk/context/selectors.ts @@ -272,7 +272,7 @@ export const getAllRewards = ( if (!rewards) return acc; const newValue = rewards.reduce((acc2, reward) => { - const normalised = normaliseCoin(reward); + const normalised = normaliseCoin(reward.coin); const coinPrice = state.coinsPrices[normalised.denom as CoinDenom]; diff --git a/src/screens/staking/lib/staking_sdk/staking_client.ts b/src/screens/staking/lib/staking_sdk/staking_client.ts index d32c856e..a826ea79 100644 --- a/src/screens/staking/lib/staking_sdk/staking_client.ts +++ b/src/screens/staking/lib/staking_sdk/staking_client.ts @@ -32,16 +32,18 @@ const rewardsDivisor = new BigNumber(10).pow(18); const parseStakingRewards = async (res: ClaimableRewardsResponse) => Array.isArray(res) - ? res - .map((coin) => { - const num = new BigNumber(coin.amount); + ? res.map((reward) => { + const { coin } = reward; + const num = new BigNumber(coin.amount); - return { + return { + ...reward, + coin: normaliseCoin({ amount: num.dividedBy(rewardsDivisor).toString(), denom: coin.denom, - }; - }) - .map(normaliseCoin) + }), + }; + }) : res; type StakeResponse = { diff --git a/src/screens/staking/lib/staking_sdk/staking_client_types.ts b/src/screens/staking/lib/staking_sdk/staking_client_types.ts index 47076249..cd3260c1 100644 --- a/src/screens/staking/lib/staking_sdk/staking_client_types.ts +++ b/src/screens/staking/lib/staking_sdk/staking_client_types.ts @@ -46,4 +46,9 @@ export type AccountDetailResponse = { unbonding: Unbonding[]; }; -export type ClaimableRewardsResponse = Coin[] | Record; +type Reward = { + address: string; + coin: Coin; +}; + +export type ClaimableRewardsResponse = Record | Reward[]; diff --git a/src/screens/staking/lib/staking_sdk/utils/accounts.ts b/src/screens/staking/lib/staking_sdk/utils/accounts.ts index 4713e601..e26c299e 100644 --- a/src/screens/staking/lib/staking_sdk/utils/accounts.ts +++ b/src/screens/staking/lib/staking_sdk/utils/accounts.ts @@ -80,8 +80,8 @@ export const sortAccounts = (a: Account, b: Account) => { export const getClaimableRewardsForAccount = (start: Coin, account: Account) => (Array.isArray(account.rewards) ? account.rewards : []).reduce( (acc2, reward) => { - if (start.denom?.toUpperCase() === reward.denom?.toUpperCase()) { - return sumCoins(acc2, reward); + if (start.denom?.toUpperCase() === reward.coin.denom?.toUpperCase()) { + return sumCoins(acc2, reward.coin); } return acc2; diff --git a/src/screens/staking/lib/wallet_info.ts b/src/screens/staking/lib/wallet_info.ts index ce83f159..85bbc85a 100644 --- a/src/screens/staking/lib/wallet_info.ts +++ b/src/screens/staking/lib/wallet_info.ts @@ -1,9 +1,9 @@ import type { Translate } from "next-translate"; import type { FC } from "react"; -import IconPhantom from "@src/components/icons/icon_search.svg"; import IconKeplr from "@src/components/icons/keplr.svg"; import IconLeap from "@src/components/icons/leap.svg"; +import IconPhantom from "@src/components/icons/phantom.svg"; import IconSolflare from "@src/components/icons/solana_wallet.svg"; import { WalletId } from "./staking_sdk/core/base";