As a user, I want better visibility and control of the available rewards program.
High level
Changing the design of the deposit widget to expose more data that is relevant to the pool and rewards, and adding a management tool to the token portfolio page.
display APR = total APR (which means that if there is auto compounding, it will be included in the value)
IF autoCompoundingRewardsActive = true
-- add gift icon
-- add tooltip with APR breakdown:
--- Fees: TradingFees APR
--- Rewards: AutoCompounding APR
BNT rewards
IF isProgramActive() = true
-- add BNT rewards section
BNT rewards section
--- BNT rewards: StandardRewards APR
--- toggle (default to "on") -> this should trigger "depositAndJoin" function
--- tooltip: "When you deposit tokens into Bancor, you get corresponding pool tokens (bnTKN) which represents your share of the pool. You can earn more by staking (with additional gas) these tokens into a rewards program. You will need to remove the bnTKN from the rewards program before you can withdraw"
--- End date: follow this and pull the value indicating the end date docs
--- line break - after "BNT rewards", always include a line break
Vault balance
same data as we currently expose. notice the updated design.
External Liquidity Protection
IF externalIlVault contract has token balance
tooltip: The $ amount available to compensate for pool deficits during a withdrawal, provided by {tkn}
Flow - A user enters the token page -> Presses the "Manage" button
Widget display currency
The rewards widget data should be affected if the user changes his currency preference #573
1. Join section
Show user available bnTKN
IF (a token has an active standard rewards program) AND (user has available bnTKN in his wallet) Show Join button
To determine if a program is active
use isProgramActive() function in StandardRewards contract
Clicking the "Join" button activates the "join rewards" flow
Show this section only if the user has holdings in active or old tokens' standard rewards program
For determining whether a user has funds in a standard rewards program use
StandardRewards.read.providerStake(user, programId)
If there is more than one program, order them from active with the most funds to inactive with the least funds
If the program is active add APR
APR calculation = ((rewardsAmount24h.tkn * 365) / programStake.tkn * 100)
*Add end time to each program if it still active add start time
Clicking the "Remove" button activates the "leave rewards" flow
As a user, I want better visibility and control of the available rewards program.
High level
Changing the design of the deposit widget to expose more data that is relevant to the pool and rewards, and adding a management tool to the token portfolio page.
Deposit widget
Mockup
https://www.figma.com/file/fwADI9wqDrRAdlMX8EddCw/Bancor-v3?node-id=16685%3A246219
Section and Data
isProgramActive()
= true -- add BNT rewards section BNT rewards section --- BNT rewards: StandardRewards APR --- toggle (default to "on") -> this should trigger "depositAndJoin" function --- tooltip:"When you deposit tokens into Bancor, you get corresponding pool tokens (bnTKN) which represents your share of the pool. You can earn more by staking (with additional gas) these tokens into a rewards program. You will need to remove the bnTKN from the rewards program before you can withdraw"
--- End date: follow this and pull the value indicating the end date docs --- line break - after "BNT rewards", always include a line breakThe $ amount available to compensate for pool deficits during a withdrawal, provided by {tkn}
Manage rewards widget
Mockups
Widget display currency
The rewards widget data should be affected if the user changes his currency preference #573
1. Join section
use isProgramActive() function in StandardRewards contract
Join Rewards Flow mockup: https://www.figma.com/file/fwADI9wqDrRAdlMX8EddCw/Bancor-v3?node-id=16702%3A246100 exposing data that is also available in the deposit flow.
2. Remove section
StandardRewards.read.providerStake(user, programId)
APR calculation = ((rewardsAmount24h.tkn * 365) / programStake.tkn * 100)
*Add end time to each program if it still active add start time