@@ -5,7 +5,7 @@ import variables from '../../../utils/variables';
55import totalTokens from '../../../assets/userDetails/totalTokens.png' ;
66import stakedTokens from '../../../assets/userDetails/stakedTokens.png' ;
77import NamadaLogo from '../../../assets/masp/namada_logo.svg' ;
8- // import unStake from '../../../assets/userDetails/unstake.png';
8+ import unStake from '../../../assets/userDetails/unstake.png' ;
99import rewardsIcon from '../../../assets/userDetails/rewards.svg' ;
1010import { connect } from 'react-redux' ;
1111import StakeTokensButton from './StakeTokensButton' ;
@@ -46,32 +46,13 @@ const TokenDetails = (props) => {
4646 return null ;
4747 } ) ;
4848
49- // let shieldedBalance = null;
50- // props.shieldedBalance && props.shieldedBalance.length && props.shieldedBalance.map((val) => {
51- // if (val && val.length) {
52- // val.map((value) => {
53- // if (value === config.TOKEN_ADDRESS) {
54- // shieldedBalance = val[1];
55- // }
56- // });
57- // }
58-
59- // return null;
60- // });
61-
6249 const available = balance && balance / 10 ** config . COIN_DECIMALS ;
63- // const shieldedAvailable = shieldedBalance && shieldedBalance / 10 ** config.COIN_DECIMALS;
64- let unStaked = 0 ;
65- props . unBondingDelegations && props . unBondingDelegations . length &&
66- props . unBondingDelegations . map ( ( delegation ) => {
67- delegation . entries && delegation . entries . length &&
68- delegation . entries . map ( ( entry ) => {
69- unStaked = unStaked + Number ( entry . balance ) ;
70-
71- return null ;
72- } ) ;
73- return null ;
74- } ) ;
50+ let unStaked = props . unBondingDelegations && props . unBondingDelegations . reduce ( ( accumulator , currentValue ) => {
51+ if ( currentValue && currentValue . minDenomAmount ) {
52+ return accumulator + Number ( currentValue . minDenomAmount ) ;
53+ }
54+ } , 0 ) ;
55+ unStaked = unStaked && unStaked / 10 ** config . COIN_DECIMALS ;
7556
7657 // const gasValue = (gas.claim_reward + gas.delegate) * config.GAS_PRICE_STEP_AVERAGE;
7758 let rewards = props . rewards && props . rewards . length &&
@@ -82,8 +63,6 @@ const TokenDetails = (props) => {
8263 } , 0 ) ;
8364 rewards = rewards ? rewards / 10 ** config . COIN_DECIMALS : 0 ;
8465
85- const shieldedRewards = props . shieldedRewards && props . shieldedRewards / 10 ** config . COIN_DECIMALS ;
86-
8766 const handleTransfer = ( ) => {
8867 const value = {
8968 name : 'Transparent Namada' ,
@@ -129,13 +108,6 @@ const TokenDetails = (props) => {
129108 < StakeTokensButton />
130109 </ div >
131110 </ div >
132- { /* <div className="chip_info">
133- <p>{variables[props.lang]['shielded_available_tokens']}</p>
134- <div className="chip">
135- <img alt="available tokens" src={totalTokens}/>
136- <p>{shieldedAvailable || 0}</p>
137- </div>
138- </div> */ }
139111 < div className = "chip_info" >
140112 < p > { variables [ props . lang ] [ 'staked_tokens' ] } </ p >
141113 { props . delegatedValidatorListInProgress ? (
@@ -184,13 +156,20 @@ const TokenDetails = (props) => {
184156 <ClaimButton disable={rewards <= 0}/>
185157 </div>
186158 </div> */ }
187- { /* <div className="chip_info"> */ }
188- { /* <p>{variables[props.lang]['un_staked_tokens']}</p> */ }
189- { /* <div className="chip"> */ }
190- { /* <img alt="unstaked tokens" src={unStake}/> */ }
191- { /* <p>{unStaked}</p> */ }
192- { /* </div> */ }
193- { /* </div> */ }
159+ < div className = "chip_info" >
160+ < p > { variables [ props . lang ] [ 'unbounding' ] } </ p >
161+ < div className = "chip" >
162+ < img alt = "unstaked tokens" src = { unStake } />
163+ < p > { unStaked } </ p >
164+ </ div >
165+ </ div >
166+ { props . actualAPR
167+ ? < div className = "chip_info" >
168+ < p > { variables [ props . lang ] [ 'staking_apr' ] } </ p >
169+ < div className = "chip" >
170+ < p > { props . actualAPR . toFixed ( 2 ) + ' %' } </ p >
171+ </ div >
172+ </ div > : null }
194173 </ div >
195174 ) ;
196175} ;
@@ -213,6 +192,7 @@ TokenDetails.propTypes = {
213192 showTransparentTokensTransferDialog : PropTypes . func . isRequired ,
214193 shieldedRewards : PropTypes . object . isRequired ,
215194 shieldedRewardsInProgress : PropTypes . bool . isRequired ,
195+ actualAPR : PropTypes . number ,
216196 shieldedBalance : PropTypes . array ,
217197 shieldedBalanceInProgress : PropTypes . bool ,
218198 unBondingDelegations : PropTypes . arrayOf (
@@ -229,6 +209,7 @@ TokenDetails.propTypes = {
229209
230210const stateToProps = ( state ) => {
231211 return {
212+ actualAPR : state . stake . apr . apr ,
232213 delegations : state . accounts . delegations . result ,
233214 delegatedValidatorList : state . stake . delegatedValidators . list ,
234215 delegatedValidatorListInProgress : state . stake . delegatedValidators . inProgress ,
@@ -237,8 +218,8 @@ const stateToProps = (state) => {
237218 balanceInProgress : state . accounts . balance . inProgress ,
238219 shieldedBalance : state . accounts . shieldedBalance . result ,
239220 shieldedBalanceInProgress : state . accounts . shieldedBalance . inProgress ,
240- unBondingDelegations : state . accounts . unBondingDelegations . result ,
241- unBondingDelegationsInProgress : state . accounts . unBondingDelegations . inProgress ,
221+ unBondingDelegations : state . stake . unBondingValidators . list ,
222+ unBondingDelegationsInProgress : state . stake . unBondingValidators . inProgress ,
242223 rewards : state . accounts . rewards . result ,
243224 rewardsInProgress : state . accounts . rewards . inProgress ,
244225 shieldedRewards : state . accounts . shieldedRewards . result ,
0 commit comments