Skip to content

Commit

Permalink
Rewards/MyRewards: add etherscan link: get tx hash from past events i…
Browse files Browse the repository at this point in the history
…n store
  • Loading branch information
e18r committed Nov 26, 2019
1 parent b4b6c3a commit 227107f
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 13 deletions.
10 changes: 2 additions & 8 deletions apps/rewards/app/components/App/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ class App extends React.Component {
this.state = {
selected: 0,
tabs: [ 'Overview', 'My Rewards' ],
claimHashes: {},
}
this.updateRewards()
}
Expand Down Expand Up @@ -197,12 +196,7 @@ class App extends React.Component {
}

claimReward = reward => {
this.props.api.claimReward(reward.rewardId + reward.claims)
.subscribe(claimHash => {
const { claimHashes } = this.state
claimHashes[reward.rewardId] = claimHash
this.setState({ claimHashes })
})
this.props.api.claimReward(reward.rewardId + reward.claims).toPromise()
}

openDetailsView = reward => {
Expand Down Expand Up @@ -279,7 +273,7 @@ class App extends React.Component {
isMyReward: true
})}
claimReward={this.claimReward}
claimHashes={this.state.claimHashes}
claimHashes={this.props.claims.claimHashes}
/>
) : (
<Overview
Expand Down
13 changes: 11 additions & 2 deletions apps/rewards/app/store/events.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@ import { addressesEqual } from '../utils/web3-utils'
import { INITIALIZATION_TRIGGER } from './'

export const handleEvent = async (state, event, settings) => {
const { event: eventName, returnValues, address: eventAddress, } = event
const {
event: eventName,
returnValues,
address: eventAddress,
transactionHash,
} = event
const { vault } = settings

let nextState = { ...state, }
Expand All @@ -25,7 +30,11 @@ export const handleEvent = async (state, event, settings) => {
nextState.isSyncing = false
break
case 'RewardClaimed':
nextState = await onRewardClaimed(nextState, returnValues)
nextState = await onRewardClaimed(
nextState,
returnValues,
transactionHash
)
break
case 'RewardAdded':
nextState = await onRewardAdded(nextState, returnValues, settings)
Expand Down
12 changes: 9 additions & 3 deletions apps/rewards/app/store/reward.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,16 @@ export async function onRewardAdded({ rewards = [], refTokens = [], balances = [
return { rewards, refTokens }
}

export async function onRewardClaimed({ rewards = [], claims = {} }, { rewardId }) {
export async function onRewardClaimed(
{ rewards = [], claims = {} },
{ rewardId },
transactionHash
) {
rewards[rewardId] = await getRewardById(rewardId)

let { claimsByToken = [], totalClaimsMade = 0 } = claims
let { claimsByToken = [], totalClaimsMade = 0, claimHashes = {}, } = claims

claimHashes[rewardId] = transactionHash

const tokenIndex = claimsByToken.findIndex(token => addressesEqual(token.address, rewards[rewardId].rewardToken))

Expand All @@ -40,7 +46,7 @@ export async function onRewardClaimed({ rewards = [], claims = {} }, { rewardId

totalClaimsMade = await getTotalClaims()

return { rewards, claims: { claimsByToken, totalClaimsMade } }
return { rewards, claims: { claimsByToken, totalClaimsMade, claimHashes } }

}

Expand Down

0 comments on commit 227107f

Please sign in to comment.