pickle-finance / pickle-ui Goto Github PK
View Code? Open in Web Editor NEWUI to interact with the PICKLE protocol
Home Page: https://app.pickle.finance
UI to interact with the PICKLE protocol
Home Page: https://app.pickle.finance
List of items to work on per feedback from @mannyreimi88 in https://hackmd.io/XByWjrBhTCeXUa2zvJmxbw for PR #6.
/dill
, the actual DILL received upon locking does not reflect the estimates on the UI. The calculation should be fixed./dill
, radio button option should be given for extending lock time/dill
, ensure that locking period on UI cannot exceed max imposed by contract (4 years)'/gauge
, consider/apply the UI changes suggested by @mannyreimi88Would you be open to a small pull request to add a link to the contract from the farms?
Something like the below. It's not critical & I'm not offended if you don't want it. Just thought it was nice to have. In the below screenshot you'll see the "View Contract" link I added, which links to the Etherscan representation of each contract:
Users want pickle-eth visible again
MC2Farm.tsx linking new masterchef pickle-eth deposit url as https://analytics.sushi.com/pairs/0x269db91fc3c7fcc275c2e6f22e5552504512811c
Most jars use the following pattern for deposit tokens: https://app.sushi.com/add/0x4e3fbd56cd56c3e72c1403e103b45db9da5b9d2b/ETH
We should standardize on one format or the other, not mix and match. Should we link to add-liquidity? Or pair data?
Some of the values in the day, week and month APY columns have way too many decimal places making the table too wide to fit nicely on the screen and forcing me to scroll horizontally.
Issue is coming from pages/Info.tsx lines 211, 234 and 258 toFixed(2) method. going to look into Math.round() and other alternatives.
Recently fixed the back end so mstonks are actually accurate. But front end includes several random *2 values
When I have pToken in my wallet, the UI doesn't report my pToken balance.
I want to see my pToken balance in UI.
So that I can stake in the farm or withdraw my underlying lpTokens.
silencio: On the farm page, for UNI PICKLE/ETH there isn't a link, but I've seen people get tripped up trying to create an LP themselves. A couple of have come into support asking why they can't deposit
bwar — the issue as i see it is that the farms assume the jar was the pre-step. pickle-eth is unique and so might need a ui override where it looks more like a jar or links to the underlying LP.
Can add the complete file ?
Yearn jars should not be uncompounded in mouseover. There is no 'magic' there.
6,050 DAI
This challenge is about creating an informative, dynamic, and intuitive dashboard for the users of DILL, the vote-locking mechanism by which $PICKLE token holders can participate in our DAO governance.
DILL
(also known as vePICKLE
) is a non-tradeable token that decays linearly. If you're familiar with Curve's CRV
DAO token and it's veCRV
vote-locked counterpart, the governance mechanism will be very familiar. In short, DILL gives 3 benefits to Pickle holders:
Our DILL participants lock in order to get these benefits (particularly the revenue-sharing) and so they share similar questions: "What will the revenue sharing be next week?", "How many DILL existed at the beginning of this week?", "What was the revenue x weeks ago? What's the trend?". We want these and other DILL questions to be answered for them in a single place within our app.
A valid submission consists of a dashboard that integrates seamlessly into our app's current design, UI, and UX. Once you push your code, our CI/CD (Vercel) will take care of the build. Please include a demo with your PR/submission.
Feel free to include any and all information you would feel to be relevant if you were a DILL vote-locker, a PICKLE holder potentially thinking of locking for DILL, or just a noob to Pickle trying to understand the utility of the governance token. Some suggestions (in no particular order):
The following resources should help with the challenge:
VotingEscrow.vy
GaugeProxy.sol
FeeDistributor.vy
The deadline for submissions will be Tuesday, 11 May, 2021 at 1AM GMT.
Our whole team will judge each submission and choose the best one as the winner, which we will merge into our application. We will judge the submission based on:
The winner will receive the full Prize Bounty. We reserve the right to provide honourable mentions in case there other worthy submissions that miss out on winning narrowly.
We will announce the winner at the latest 24 hours after the submission deadline, i.e. Wednesday, 12 May, 2021 at 1AM GMT or before.
Is it possible to have thegraph tickled on tsuke harvests instead of being required to wait for deposits / withdraws? If it's technically possible at all, it might definitely be worth the effort.
TVL listed in the 200m range. It's wrong.
Here's a list of files we're working with. I'll use it to track progress of which ones are i18n-ready (all strings fetched from locale files).
For future reference, output of:
find ./components ./features ./pages -type f -exec stat -f "- [ ] \`%N\`" {} \;
./components/TokenIcon.tsx
./components/Brining.js
❌ removed./components/JarValueChart.js
./components/EarnRow.js
./components/ThemedTable.js
./components/DayPicker.tsx
./components/JarPerformanceChart.js
./components/Support.js
❌ removed./components/SelectPeriod.tsx
❌ removed./components/PercentageInput.tsx
./components/Dashboard.js
❌ removed./components/InfoCardContent.js
./components/PickleIcon.tsx
./features/Footer/Footer.tsx
./features/Prices/Prices.tsx
./features/Connection/types.d.ts
./features/Connection/MobileNetworkIndicator.tsx
./features/Connection/Web3Modal/index.js
./features/Connection/Web3Modal/useEagerConnect.js
./features/Connection/Web3Modal/ConnectorItem.tsx
./features/Connection/Web3Modal/Web3Modal.tsx
./features/Connection/Web3Modal/Connectors.ts
./features/Connection/DesktopNetworkIndicator.tsx
./features/Connection/MobileConnect.tsx
./features/Connection/DesktopConnect.tsx
./features/Zap/DepositZap.tsx
./features/Zap/tokens.tsx
./features/Zap/useBalance.ts
./features/Zap/useInfoAPYs.ts
❌ removed./features/Zap/useExitToToken.ts
❌ removed./features/Zap/Info.tsx
❌ removed./features/Zap/Deposit.tsx
❌ removed./features/Zap/ExitToToken.tsx
❌ removed./features/Zap/Withdraw.tsx
❌ removed./features/Zap/useZapper.tsx
./features/Zap/ExitToJar.tsx
❌ removed./features/Zap/useFarmBalances.ts
❌ removed./features/Zap/getAPYTooltip.tsx
❌ removed./features/Zap/farms.ts
❌ removed./features/Zap/useExitToJar.ts
❌ removed./features/Zap/constants.ts
./features/Zap/useDeposit.ts
❌ removed./features/InfoBar/InfoBar.tsx
./features/MasterchefV2/MC2Farm.tsx
./features/Farms/UseMigrate.ts
./features/Farms/SummaryCard.tsx
❌ removed./features/Farms/FarmList.tsx
./features/Farms/FarmCollapsible.tsx
only used on old-farms page./features/Collapsible/Expand.tsx
./features/Collapsible/useRealShape.ts
./features/Collapsible/Collapse.tsx
./features/Collapsible/withDefaults.ts
./features/Collapsible/CollapseIcon.tsx
./features/Collapsible/CollapseContext.ts
./features/MiniFarms/MiniFarmList.tsx
./features/MiniFarms/MiniFarmCollapsible.tsx
./features/MiniFarms/JarMiniFarmCollapsible.tsx
./features/Balances/Balances.tsx
./features/Balances/usePendingPickles.ts
./features/Balances/useBalances.ts
./features/TopBar/TopBar.tsx
./features/TopBar/Logo.tsx
./features/TopBar/NavItems.tsx
./features/Gauges/VoteCollapsible.tsx
./features/Gauges/BProtocol.tsx
./features/Gauges/GaugeList.tsx
./features/Gauges/useJarData.ts
./features/Gauges/JarGaugeCollapsible.tsx
./features/Gauges/SummaryCard.tsx
❌ removed./features/Gauges/GaugeChartCollapsible.tsx
./features/Gauges/GaugeInfo.js
./features/Gauges/GaugeCollapsible.tsx
./features/DILL/Balances.tsx
./features/DILL/Claim.tsx
./features/DILL/CalcCollapsible.tsx
./features/DILL/FeeDistributionsChart.tsx
./features/DILL/Lock/IncreaseTime.tsx
./features/DILL/Lock/Withdraw.tsx
./features/DILL/Lock/IncreaseAmount.tsx
./features/DILL/Lock/CreateLock.tsx
./features/DILL/Lock/LockDurationChart.tsx
./features/DILL/DillStats.tsx
./features/DILL/DILL.tsx
./features/DILL/Interaction.tsx
./pages/index.tsx
./features/PickleFarms/BalFarm.tsx
./pages/info.tsx
./pages/_document.tsx
./pages/info/jars.js
./pages/info/earn.js
./pages/info/stats.js
./pages/dill.tsx
./pages/_app.tsx
./pages/farms.tsx
./pages/old-farms.tsx
Currently, when voting on which jars and farms should get a certain percentage of the total boost vote available (100%) if you select a jar/farm and give it 5% of the vote, then unselect that jar, the 5% is still attributed to that jar/farm and you must locate it, change the percent to 0 and then go about your business.
It would be best if the percent you typed cleared when a jar/farm is unselected from the dropdown select element to increase ease of use for voters.
As the chart currently exists, it is useless. Many lines have the same color, making them indistinguishable from each other. In addition there are far too many lines to easily see what is going on and lastly there are some data anomalies showing what appear to be negative values or something like that.
renbtc is showing 0% on crv rewards. A clone of the logic indicates it should be about 1.86...% This appears to be a race condition where not all resources are loaded, and by the time the crv rewards do load, the UI never gets updated. This enhances my belief that the model should be generated all at once in the background or fetched via pickle-api.
Also, the UI appears to be reloading jars and farms almost every 3 seconds, according to existing console logs.
Important excerpt here:
Debugging renCRV useJarsWithAPYEth.ts:1064:18
[{"lp":3.556766713074011},{"crv":0,"apr":0}] useJarsWithAPYEth.ts:1065:18
Post Map useJarsWithAPYEth.ts:1075:18
apr is 0 useJarsWithAPYEth.ts:1076:18
[{"lp":3.556766713074011},{"crv":0,"apr":0}] useJarsWithAPYEth.ts:1077:18
Post Map2 useJarsWithAPYEth.ts:1087:18
apr is 0 useJarsWithAPYEth.ts:1088:18
lp is 3.556766713074011 useJarsWithAPYEth.ts:1089:18
[{"lp":3.556766713074011},{"crv":0,"apr":0}] useJarsWithAPYEth.ts:1090:18
Post Compound useJarsWithAPYEth.ts:1098:18
apr is 0 useJarsWithAPYEth.ts:1099:18
lp is 3.556766713074011 useJarsWithAPYEth.ts:1100:18
total is 3.556766713074011 useJarsWithAPYEth.ts:1101:18
[{"lp":3.556766713074011},{"crv":0,"apr":0}] useJarsWithAPYEth.ts:1102:18
---------------- some time later
Debugging renCRV useJarsWithAPYEth.ts:1064:18
[{"lp":3.556766713074011},{"crv":1.8695090402250703,"apr":1.8522955112553108}] useJarsWithAPYEth.ts:1065:18
Post Map useJarsWithAPYEth.ts:1075:18
apr is 1.8522955112553108 useJarsWithAPYEth.ts:1076:18
[{"lp":3.556766713074011},{"crv":1.8695090402250703}] useJarsWithAPYEth.ts:1077:18
Post Map2 useJarsWithAPYEth.ts:1087:18
apr is 1.8522955112553108 useJarsWithAPYEth.ts:1088:18
lp is 3.556766713074011 useJarsWithAPYEth.ts:1089:18
[{"lp":3.556766713074011},{"crv":1.8695090402250703}] useJarsWithAPYEth.ts:1090:18
Post Compound useJarsWithAPYEth.ts:1098:18
apr is 1.8522955112553108 useJarsWithAPYEth.ts:1099:18
lp is 3.556766713074011 useJarsWithAPYEth.ts:1100:18
total is 5.426275753299081 useJarsWithAPYEth.ts:1101:18
[{"lp":3.556766713074011},{"crv":1.8695090402250703}] useJarsWithAPYEth.ts:1102:18
Full log below.
Debugging renCRV useJarsWithAPYEth.ts:1064:18
[{"lp":3.556766713074011},{"crv":0,"apr":0}] useJarsWithAPYEth.ts:1065:18
Post Map useJarsWithAPYEth.ts:1075:18
apr is 0 useJarsWithAPYEth.ts:1076:18
[{"lp":3.556766713074011},{"crv":0,"apr":0}] useJarsWithAPYEth.ts:1077:18
Post Map2 useJarsWithAPYEth.ts:1087:18
apr is 0 useJarsWithAPYEth.ts:1088:18
lp is 3.556766713074011 useJarsWithAPYEth.ts:1089:18
[{"lp":3.556766713074011},{"crv":0,"apr":0}] useJarsWithAPYEth.ts:1090:18
Post Compound useJarsWithAPYEth.ts:1098:18
apr is 0 useJarsWithAPYEth.ts:1099:18
lp is 3.556766713074011 useJarsWithAPYEth.ts:1100:18
total is 3.556766713074011 useJarsWithAPYEth.ts:1101:18
[{"lp":3.556766713074011},{"crv":0,"apr":0}] useJarsWithAPYEth.ts:1102:18
Jars successfully (re)loaded, Jar count: 36 2 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 31 4 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Farms successfully (re)loaded, Farm count: 31 6 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
[Fast Refresh] rebuilding hot-dev-client.js:158:24
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
[Fast Refresh] done in 1232ms hot-dev-client.js:140:16
Farms successfully (re)loaded, Farm count: 31 6 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 6 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 6 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 2 UserFarms.ts:72:12
Farms successfully (re)loaded, Farm count: 31 6 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 2 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Farms successfully (re)loaded, Farm count: 31 4 Gauges.ts:26:12
Debugging renCRV useJarsWithAPYEth.ts:1064:18
[{"lp":3.556766713074011},{"crv":1.8695090402250703,"apr":1.8522955112553108}] useJarsWithAPYEth.ts:1065:18
Post Map useJarsWithAPYEth.ts:1075:18
apr is 1.8522955112553108 useJarsWithAPYEth.ts:1076:18
[{"lp":3.556766713074011},{"crv":1.8695090402250703}] useJarsWithAPYEth.ts:1077:18
Post Map2 useJarsWithAPYEth.ts:1087:18
apr is 1.8522955112553108 useJarsWithAPYEth.ts:1088:18
lp is 3.556766713074011 useJarsWithAPYEth.ts:1089:18
[{"lp":3.556766713074011},{"crv":1.8695090402250703}] useJarsWithAPYEth.ts:1090:18
Post Compound useJarsWithAPYEth.ts:1098:18
apr is 1.8522955112553108 useJarsWithAPYEth.ts:1099:18
lp is 3.556766713074011 useJarsWithAPYEth.ts:1100:18
total is 5.426275753299081 useJarsWithAPYEth.ts:1101:18
[{"lp":3.556766713074011},{"crv":1.8695090402250703}] useJarsWithAPYEth.ts:1102:18
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 3 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
Farms successfully (re)loaded, Farm count: 38 UserFarms.ts:72:12
Farms successfully (re)loaded, Farm count: 31 6 Gauges.ts:26:12
Jars successfully (re)loaded, Jar count: 36 Jars.ts:24:12
Farms successfully (re)loaded, Farm count: 31 Gauges.ts:26:12
cstampar
—
Today at 2:22 PM
so i went to deposit some USDC into the pYUSDC jar....a few months ago i set an approval limit when i first deposited, which i forgot about, and i was trying to deposit more than what i had approved. the pJar catches this error, but the "deposit" button just flashes to "depositing" quickly and then nothing happens. i had to figure out what the error was, with some help from you all, but the UI doesn't inform you, or give you a way to increase your approval limit, so without direct contract interaction, there is no way on Pickle to increase your spending limit so you can deposit more into a jar. I first tried calling approve() and increaseAllowance() on the pJar contract, but that was only increasing the spend limit for pUSDC, not USDC itself, so i was still limited and not allowed to deposit anymore to the jar. the solution was to go on etherscan to the USDC contract and "write as proxy" and call approve() with my eth address as owner and the pJar contract as spender, which effectively increased my USDC spend limit and i was able to deposit all that i wanted to the pJar and farm :Thumb:
my suggestion is (1) when a user tries to deposit more than they have previously approved, a message should pop up informing that the user is exceeding their approval limit (2) it should provide a button which calls the approve() function on each jars underlying token so the user can increase their limit and deposit as they please to pickle :PepePray: @Bwar @sevenz @larry the Cucumber @cipio
silencio — Yesterday at 10:42 PM
All the Uni LP links on the jar page point to UniV3 which is misleading, i.e. https://app.uniswap.org/#/add/0x13B02c8dE71680e71F0820c996E4bE43c2F57d15/0xa47c8bf37f92aBed4A126BDA807A7b7498661acD
This can be switched to UniV2 by adding v2 after the add - https://app.uniswap.org/#/add/v2/0x13B02c8dE71680e71F0820c996E4bE43c2F57d15/0xa47c8bf37f92aBed4A126BDA807A7b7498661acD
Also, the buy pickle link on the front page points to UniV3 - https://app.uniswap.org/#/swap?inputCurrency=ETH&outputCurrency=0x429881672b9ae42b8eba0e26cd9c73711b891ca5 and ought to be https://app.uniswap.org/#/swap?inputCurrency=ETH&outputCurrency=0x429881672b9ae42b8eba0e26cd9c73711b891ca5&use=V2. Anyone trying to enter the pickle/eth farm should be made aware that liquidity should be provided to https://app.uniswap.org/#/add/v2/ETH/0x429881672B9AE42b8EbA0E26cD9C73711b891Ca5
The Pickle-Eth link at the bottom pointing to https://info.uniswap.org/pair/0xdc98556Ce24f007A5eF6dC1CE96322d65832A819 comes up with a blank page, and should be https://v2.info.uniswap.org/pair/0xdc98556ce24f007a5ef6dc1ce96322d65832a819
In an attempt to get the weekly revenue projections, the dill page first accesses https://stkpowy01i.execute-api.us-west-1.amazonaws.com/prod/protocol/pools
to get a list of jars + farms and their apy.
This response includes the following:
identifier "alcx-eth"
liquidity_locked 26180312.73
apy 175.25
The apy
listed here matches the 3-day-farm apy from https://stkpowy01i.execute-api.us-west-1.amazonaws.com/prod/protocol/jar/alcx-eth/performance
The dill page then iterates through these assets and runs a separate request to the above performance url in order to fetch the 3-day JAR apy (which is NOT included in the original request). The number of requests done here is equal to the number of jar assets that were returned in the first request. The dill page then does math on this to get the revenues.
These 20+ requests could be completely avoided if prod/protocol/pools
returned both the 3-day farm apy AND the 3-day jar apy.
Due to a change at Convex's API at https://www.convexfinance.com/api/curve-apys, which we were relying on for obtaining extra reward APRs (such as those for LDO or SPELL), those APYs are no longer being displayed.
The fix will comprise querying on-chain reward data rather than relying on the Convex API.
The names used in the pickle boost calculator are currently using farm nicknames or some other value that is not easy to understand. The proposal from 2weiX in the discord is to use the pJar 0.X naming convention.
0xAnon
—
Yesterday at 11:35 PM
@here getting these issues trying to connect to jars/farms page on mainnet
https://media.discordapp.net/attachments/787554412398641173/887542158930878485/unknown.png
"Daily Emission" on info/profit tab does not factor dill boosts. This means it is using the farm's average rate. For people with little to no dill, the resulting value is about double what it should be.
Several sushiswap jars have deposit links that no longer work. They all start with https://exchange.sushiswapclassic.org/#/add
The redirects that occur link to a generic swap
interface (not add
) with only eth
pre-loaded in the dropdown.
Polygon farms are displaying very incorrect values for pickle rewards on the merged jar/farm page.
Take jar as an example, polyjar 7a:
minichef is 0x20B2a3fc7B13cA0cCf7AF81A68a14CB3116E8749
polyjar 7a is 0xC8450922d18793AD97C401D65BaE8A83aE5353a8
lp token is 0x3324af8417844e70b81555A6D1568d78f4D4Bf1f
https://polygonscan.com/address/0x20B2a3fc7B13cA0cCf7AF81A68a14CB3116E8749#readContract
picklesPerSecond is 7692307690000000 which is really .007692307690000000
pool 12 has lp token equal to polyjar 7a's jar address
pool 12 has allocPoint allocPoint uint64 : 10
total alloc points are 130. 10/130 = .0769
poolPicklesPerYear = poolShareOfPickles * ONE_YEAR_IN_SECONDS * picklePerSecond
= 0.07692307692307693 x 60 x 60 x 24 x 365 x 0.00769230769 = 18660
So this pool gets 18,660 pickles per year
pickles per year times pickle-price divided by farm size
18660 x 10.37 / 40277.80753853763 = 4.8 which is 480%
The accurate farm rewards for this jar are 480% based on current deposits.
The UI displays 178%.
The offending code is below. It tries to "uncompound" the various APRs. This is wrong on a bunch of levels. First, LP fees should not be uncompounded because they were never compounded. Second, farm rewards should not be uncompounded because they were never compounded.
const tooltipText = [
`Base APRs:`,
...APYs.map((x) => {
const k = Object.keys(x)[0];
const v = uncompoundAPY(Object.values(x)[0]);
return `${k}: ${v.toFixed(2)}%`;
}),
Fixed code would be:
const tooltipText = [
`Base APRs:`,
...APYs.map((x) => {
const k = Object.keys(x)[0];
const v = (k === 'pickle' ? Object.values(x)[0] : uncompoundAPY(Object.values(x)[0]));
return `${k}: ${v.toFixed(2)}%`;
}),
This is a pretty significant issue.
can be reorganized into functions.
pfcore added an enablement flag for closing-only (as opposed to fully disabled) so that when a jar gets disabled, it doesn't suddenly disappear and go to the inactive jar section.
0 alloc points are not being respected in UI
Sushi jars and Uniswap jars are not showing LP fees in the apy breakdown. In some cases, this can be very substantial.
Sushi's page on what these fees are does not exactly seem accurate. The fees themselves seem accurate but the percentage they have next to them seem a bit off. But even still, our UI is not showing ANY lp fees in the APR for sushi / uniswap. It's only sushi reward tokens.
Even tracing into the function that's supposed to add the daily LP fees (I think?) getSushiPairDayAPY
, it doesn't seem to work the way it was expected to? After it queries the graph for the data, this is an excerpt of the result:
{"data":{"pairDayDatas":[{"pair":{"id":"0x269db91fc3c7fcc275c2e6f22e5552504512811c"},"reserveUSD":"2393641.952145832492224018925613596","volumeUSD":"106928.0678502322846893665467183976"},{"pair":{"id":"0x269db91fc3c7fcc275c2e6f22e5552504512811c"},"reserveUSD":"2504036.531082513023962311454570537","volumeUSD":"236824.672974688769003646485812937"},{"pair":{"id":"0x269db91fc3c7fcc275c2e6f22e5552504512811c"},"reserveUSD":"2347583.483670300446900031753870915","volumeUSD":"88952.49869973355941798436233027874"},{"pair":{"id":"0x269db91fc3c7fcc275c2e6f22e5552504512811c"},"reserveUSD":"2233423.003315021578083511648384892","volumeUSD":"665719.8234879982689881028503417846"},{"pair":{"id":"0x269db91fc3c7fcc275c2e6f22e5552504512811c"},"reserveUSD":"2318836.680087592009286081814761041","volumeUSD":"128671.0392579104317158532860705157"},{"pair":{"id":"0x269db91fc3c7fcc275c2e6f22e5552504512811c"},"reserveUSD":"2317505.675252081955351996230651443","volumeUSD":"95357.94792795641670875181095144785"},{"pair":
As you can see, the graph is returning different values with the same key. So the graph query must be very very wrong. But even if the query was fixed, I'm not convinced useJarsWithApyEth
would be set up to handle it properly?
Anyway, this is a pretty big issue. In some cases, huge portions of the APY users can expect to earn just aren't showing at all.
Issue is likely caused because JAR_renCRV does not have a farm, and farms.tsx logic presents by gauge.
pjar 0c and pjar 0d are both visible but they have farms. pjar 0a is not visible but it is disabled so is not a valid data point.
When I connect my wallet to the pickle site
I want to see my share of pending harvests that involve jars and farms I have deposited or staked money in
So that I can determine how much money is coming my way from that harvest.
Bayes — Yesterday at 8:22 PM
Voting is pretty wasteful - it sends every pair in the array - probably to make sure previous votes get zeroed. I was able to clear out all the other pairs and vote with way less gas
It could fetch the existing votes for the wallet addr and only set changed pairs
not a huge deal though
If gas get super expensive again, it'd be worth it
Currently there are the columns Day, Week, and Month. This does not clearly equate to "APY based on performance over the past day, week, month." I think it would make sense to at least add APY to the column headers. It might also be a good idea to include a footnote on the charts to give a full description of the data in those columns.
On the Jars & Farms page, based on pf-core output, pJar 0.99m3 is active, but it is not being displayed on the page unless you select "Show Inactive Farms."
In this snippet
Lines 103 to 115 in 4f9397a
user
is undefined so it always throws an error, sometimes causing issues.
error occurs because APYs is undefined on some inactive jars
some endpoints (like protocol/reward) have been removed. The pickle-ui repo still references these endpoints. See util/api.js
Discord suggest i use https://matic-mainnet.chainstacklabs.com/ as my rpc.
The error message on the pickle app does not mention this rpc. This may trip up new users or discourage them entirely.
Don't know if this is a global but this is coming back undefined form me:
pickle-ui/features/Gauges/JarCollapsible.tsx
Line 519 in 8031e85
On Firefox. On Eth mainnet.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.