Skip to content

Commit

Permalink
Add WIP redeem functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
xdzurman committed Aug 3, 2020
1 parent 9c01f91 commit c76f2aa
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 4 deletions.
32 changes: 32 additions & 0 deletions app/frontend/actions.ts
Expand Up @@ -810,6 +810,37 @@ export default ({setState, getState}: {setState: SetStateFn; getState: GetStateF
stopLoadingAction(state, {})
}

const redeemRewards = async (state) => {
loadingAction(state, 'Preparing transaction...')
const address = await wallet.getChangeAddress()
const coins = state.shelleyBalances.rewardsAccountBalance
const balance = state.balance
let plan
try {
plan = await prepareTxPlan({
address,
coins,
txType: 'redeem',
})
} catch (e) {
setErrorState('transactionSubmissionError', e, {
shouldShowTransactionErrorModal: true,
})
return
}
if (balance < (plan.fee || plan.estimatedFee)) {
setErrorState('transactionSubmissionError', NamedError('NonStakingConversionError'))
setState({
shouldShowTransactionErrorModal: true,
})
stopLoadingAction(state, {})
return
}
setTransactionSummary('stake', plan, coins)
confirmTransaction(getState(), 'convert')
stopLoadingAction(state, {})
}

const updateDonation = (state, e) => {
if (state.checkedDonationType === e.target.id && e.target.id !== 'custom') {
// when clicking already selected button
Expand Down Expand Up @@ -1215,5 +1246,6 @@ export default ({setState, getState}: {setState: SetStateFn; getState: GetStateF
selectAdaliteStakepool,
convertNonStakingUtxos,
loadErrorBannerContent,
redeemRewards,
}
}
Expand Up @@ -12,6 +12,7 @@ const shelleyBalances = ({
balance,
reloadWalletInfo,
convertNonStakingUtxos,
redeemRewards,
}) => (
<div className="rewards card">
<h2 className="card-title staking-balances-title">
Expand Down Expand Up @@ -71,7 +72,7 @@ const shelleyBalances = ({
: `${printAda(rewardsAccountBalance)}`}
<AdaIcon />
</div>
<button disabled className="button stake-pool" onClick={null} style="color:gray;">
<button className="button stake-pool" onClick={redeemRewards}>
Redeem
</button>
</div>
Expand Down
5 changes: 3 additions & 2 deletions app/frontend/wallet/shelley-wallet.ts
Expand Up @@ -333,7 +333,8 @@ const ShelleyWallet = ({config, randomInputSeed, randomChangeSeed, cryptoProvide
changeAddress,
accountAddress,
poolHash,
!stakingKeyRegistered
!stakingKeyRegistered,
txType === 'redeem'
)
return plan
}
Expand Down Expand Up @@ -365,7 +366,7 @@ const ShelleyWallet = ({config, randomInputSeed, randomChangeSeed, cryptoProvide
sendAda: utxoTxPlanner,
convert: utxoTxPlanner,
delegate: utxoTxPlanner,
// redeem: accountTxPlanner,
redeem: utxoTxPlanner,
}
return await txPlanners[args.txType](args, accountAddress)
}
Expand Down
3 changes: 2 additions & 1 deletion app/frontend/wallet/shelley/shelley-transaction-planner.ts
Expand Up @@ -216,7 +216,8 @@ export function selectMinimalTxPlan(
changeAddress,
accountAddress,
poolHash = null,
registerStakingKey = false
registerStakingKey = false,
isRedeem = false
): TxPlan | NoTxPlan {
const certs = []
if (poolHash && registerStakingKey) {
Expand Down

0 comments on commit c76f2aa

Please sign in to comment.