-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: new assets REG, REG Vote Power, RWA realtime price, Settings updates #91
Feature: new assets REG, REG Vote Power, RWA realtime price, Settings updates #91
Conversation
'other' assets = tokens others than RealTokens = RWA, REG, ... - Display switch for hiding 'other' assets in table rows - 'other' assets figures added to Summary section
not fully tested
Everythings seems good to me, i just added a check for fetching other assets balances only if the addressList is not empty for avoid a double request on app initialization Despite this, there are still a large number of RPC requests going out, but it seems to be related to the RPC initialization mechanism to look for a working one, so out of the scope of this PR (maybe we need another PR to improve this part) @NandyBa I'll let you review it on your side too, and approve if everything is good for you (I can't since I committed) |
- Check Providers ability to handle requests - Additionnal providers https://rpc.ankr.com/eth and https://eth-pokt.nodies.app currently fail to handle concurrent requests
|
- Both SummaryCard and AssetsView use the same hooks for getting their data, leading to duplicate web3 requests Moving hooks in parent components prevents this form happening.
Hooks calls are duplicated in 2 components (SummaryCard and AssetsView) so the same requests are made when fetching data. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When loading the dashboard locally I got 18 properties instead of 20. And when I try a search of RWA on the search bar I don't have it.
filter has to be in assetsView/AssetsView.tsx
Fixed ser, thanks for your findings and pointing out |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OtherAssets filtering was improperly implemented into the map loops by skipping non "others assets" value, causing holes in display (missing cards). Filtering is now done in AssetsView where it should have been in the first place
Should be fixed now, translated paging labels at the same time |
rpcThresholdValue = await testRpcThresholds( | ||
provider, | ||
REG_ContractAddress, | ||
5, | ||
5, | ||
5, | ||
150, | ||
) | ||
if (rpcThresholdValue < 1) { | ||
// Throw error if the threshold is 0 | ||
// Means the provider is not able to handle required concurrent requests number | ||
// skip it and try next one | ||
throw new Error('rpcThresholdValue returned 0') | ||
} | ||
// If any error has occurred before, log the successful connection | ||
if (failedRpcErrorCount > 0) { | ||
console.info( | ||
`Successfully connected to ${url} after ${failedRpcErrorCount} failed attempts`, | ||
) | ||
} | ||
return provider | ||
} catch (error) { | ||
console.error(`Failed to connect to ${url}, trying next one...`) | ||
failedRpcErrorCount++ | ||
if (!rpcConnectOk) { | ||
// Connection error | ||
console.error(`Failed to connect to ${url}, trying next one...`, error) | ||
} else if (rpcThresholdValue < 1) { | ||
// Threshold error | ||
console.error( | ||
`Successfull connection to ${url} BUT failed to test rpcThresholdValue, trying next one...`, | ||
error, | ||
) | ||
} else { | ||
// General error | ||
console.error(`Failed to connect to ${url}, trying next one...`, error) | ||
} | ||
} | ||
} | ||
throw new Error(`All RPC URLs (${urls?.length}) failed`) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This part slow down the page loading
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend to run it appart from the front
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll see if i can improve things but if these tests aren't run then there's no garantee next batchs requests will succeed and nothing will be loaded if the rpc can't support multiple requests at the same time (like https://rpc.ankr.com/eth seems like not supporting it)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we populate the code with test results and run tests only for new RPCs, instead of running all tests every time? I don’t want to block the PR, but I think merging it like this is manageable in the develop branch. However, it might create blockers later when escalating to preprod and prod.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Checks for testing rpc ability to handle batch requests only run once for each rpc, one after the other like it is already the case.
Currently rpc connection checks take around 700ms, additionnal batch check requires 100-150 ms more.
If the first rpcs fails to respond and to handle batch request, the second is tested and so on.
@NandyBa Where are we now? Are there any requests that don't concern the original PR, if I understand correctly? |
??? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved. We will revisit the RPC test if we find it annoying
* Change NS for RealToken (#89) * chore: install required sharp dependency for production * chore(deps): bump body-parser from 1.20.2 to 1.20.3 (#87) Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.2 to 1.20.3. - [Release notes](https://github.com/expressjs/body-parser/releases) - [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md) - [Commits](expressjs/body-parser@1.20.2...1.20.3) --- updated-dependencies: - dependency-name: body-parser dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: add new assets REG, REG Vote Power (#91) * first version : Assets as rows * 'other' assets display switch; 'other' assets shown in Summary 'other' assets = tokens others than RealTokens = RWA, REG, ... - Display switch for hiding 'other' assets in table rows - 'other' assets figures added to Summary section * contracts utils * use contract utils for fetching balances * Eth provider removed: REG Voting Power is not deployed on Eth * batchCallOneFunction not fully tested * error args * comments * wrong 'inheritance' * smol fix: properly throw 'User not found' error * style/comments * settings labels and icons * unitIcon: optional + alignment with other units * Filter 'other' assets in Grid view * Settings: switch icons, section names * fix: lint warning * fix: lint warning * fix: build error ? * fix: build error #2 ? * fix: build error #3 ? * fix: build error #4 ? * fix: build error #5 ? * Fix: existing filter error when filtering on "Owned on" * fix: avoid fetching others assets balances if user wallet was not set * feat: add other token price on cards and fix decimals rounds for total invest * fix: improve subsudy filter for exclude other realtokens * fix: fix last changes filter and use correct typing in filters for avoid futurs errors * feat: set initial launch date for RWA token * feat: initialize rpc provider only once * feat: include reg tokens locked inside the incentive vault * fix: fix eslint warnings and add missing translations * Update .gitignore exclude pnpm lockfile * Create .nvmrc add .nvmrc for switching between node versions * Update contract.ts optional parameters for customizing batch calls: batch max and min size, number of attempts before giving up * Regvotingpower: icon orange, size grows depending on amount * unused import * Usdc currency/rate * Voting power size & fill color depending on power amount * Voting power size & fill color depending on power amount * Fixes: token prices in USD, avoid fetching REG vault balances on Eth - Tokens values fix: Updated assets prices by using currenciesRates and user currency rate (previously considering usdc = usd and xdai = usd as well), now assets prices are converted from their respective currencies (e.g. usdc, xdai) to usd, then total value is priced in user choosen currency. - Smol fix: getAddressesLockedBalances was fetching vault balances on Eth, throwing errors as there is not such vault on Eth. Added parameters for fetching any number of vault by provider(s). * comment * Check Providers ability to handle requests - Check Providers ability to handle requests - Additionnal providers https://rpc.ankr.com/eth and https://eth-pokt.nodies.app currently fail to handle concurrent requests * Assets hooks moved in index for avoiding duplicate requests - Both SummaryCard and AssetsView use the same hooks for getting their data, leading to duplicate web3 requests Moving hooks in parent components prevents this form happening. * prettier * Avoid divide by zero in case asset.totalUnits is unknown/zero * "Clean" scripts * Assets filtering moved to the right place filter has to be in assetsView/AssetsView.tsx * Paging translation labels: placeholder, All * simplify pageSize handling * Assets filtering fix (causing pagination issues) OtherAssets filtering was improperly implemented into the map loops by skipping non "others assets" value, causing holes in display (missing cards). Filtering is now done in AssetsView where it should have been in the first place * Revert changes: realtime/global labels for rents calculation switch --------- Co-authored-by: Jycssu <[email protected]> * fix: API URLs issue #97 (#98) * addresses issue #97 Moves api urls to (.)ENV set utls to new api.realtoken.community domain (previously api.realt.community) * Update .env.sample missing update of sample .env * Update .env.sample * NEXT_PUBLIC_ prefix removed for REALTOKENAPI ENV vars * feat: update yarn lock (#99) * feat: add new API urls to deployment workflow (#100) * feat: pass new env variables to docker env (#101) * fix: unchecked asset filters (#95) * merge master in develop (#103) * Revert "Master" * merge preprod <> master (#67) * add dropdown * simplify selector and add all token option * feat: change allPage value to Infinity * feat: estimate the fully rented rent * feat: add fully rented estimation to asset cards * refactor: move hook calls to top of the page * fix: propInfo definition * fix: last rent condition * feat: add estimation for property with not fully rented history * feat: get fully rented APR * apply max APR method * rename variable and functions * feat: add RWA token * feat: re-enable property onClick * feat: add rwa valuation on the rwa card * fix: missing property * feat: add rwa to summary card * define useRWA * take into account user currency * feat: add RWA value to net value calculation * remove comment * refactor: clean imports * feat: include RWA on Ethereum * fix: en communs * feat: update filter to support RWA token * fix: prettier * fix: other prettier errors * let prettier add strange semi-column * fix: imports * use hook * add fallback * switch for a useMemo * feat: add real time fully rented APR * feat: add gloabl metric fully rented APR * feat: add disclaimer * feat: add disclaimer * feat: update disclaimer message * fix: disclaimer message * improve message * feat: create yam statics stics page * feat: add yam statistics for all RealT Tokens on Gnosis (who have Gnosis chain contract prop) * feat: mask tokens with no volume * fix: add token name * feat: add pagination * feat: improve style * feat: change token per page to 100 * feat: add fully rented APR to asset grid * refactor: remove logs * feat: add fully rented APR to property details * fix: reset current page when tokens changed * fix: reset current page when user change page size * feat: add translation for YAM statistics hearder label * fix: yamStatistics: use selected currency for token price * feat: yamStatistics: add owned | all filter * feat: yamStatistics: add subsidized, fullySubsidized and notSubsidized filters * add additional fallbacks RPC URLs * fix: RPC initialization on currencies file --------- Co-authored-by: Nandy Bâ <[email protected]> * merge preprod <> master (#77) * add dropdown * simplify selector and add all token option * feat: change allPage value to Infinity * feat: estimate the fully rented rent * feat: add fully rented estimation to asset cards * refactor: move hook calls to top of the page * fix: propInfo definition * fix: last rent condition * feat: add estimation for property with not fully rented history * feat: get fully rented APR * apply max APR method * rename variable and functions * feat: add RWA token * feat: re-enable property onClick * feat: add rwa valuation on the rwa card * fix: missing property * feat: add rwa to summary card * define useRWA * take into account user currency * feat: add RWA value to net value calculation * remove comment * refactor: clean imports * feat: include RWA on Ethereum * fix: en communs * feat: update filter to support RWA token * fix: prettier * fix: other prettier errors * let prettier add strange semi-column * fix: imports * use hook * add fallback * switch for a useMemo * feat: add real time fully rented APR * feat: add gloabl metric fully rented APR * feat: add disclaimer * feat: add disclaimer * feat: update disclaimer message * fix: disclaimer message * improve message * feat: create yam statics stics page * feat: add yam statistics for all RealT Tokens on Gnosis (who have Gnosis chain contract prop) * feat: mask tokens with no volume * fix: add token name * feat: add pagination * feat: improve style * feat: change token per page to 100 * feat: add fully rented APR to asset grid * refactor: remove logs * feat: add fully rented APR to property details * fix: reset current page when tokens changed * fix: reset current page when user change page size * feat: add translation for YAM statistics hearder label * fix: yamStatistics: use selected currency for token price * feat: yamStatistics: add owned | all filter * feat: yamStatistics: add subsidized, fullySubsidized and notSubsidized filters * add additional fallbacks RPC URLs * fix: RPC initialization on currencies file * feat: YamStatistic: add Yamp Volume's number of days * fix: fullyRentedAPR: fix french disclaimer text * fix: second disclaimer text small error * feat: fullyRentedAPR: manage VEFA properties * refactore: improve comment * feat: show VEFA properties forced fully rented APR only if property do not have tenants * fix: RWA table view * feat: add bridge link on header (#74) * fix: VEFA Realtime APR --------- Co-authored-by: Nandy Bâ <[email protected]> Co-authored-by: Yohann Durand <[email protected]> * Revert "merge preprod <> master (#77)" This reverts commit 68daad5. * fix: APY fully rented for properties before start rent day (#85) Co-authored-by: alex <[email protected]> * Change NS for RealToken (#89) (#90) --------- Co-authored-by: Sigri <[email protected]> Co-authored-by: Kurtisone <[email protected]> Co-authored-by: jycssu-com <[email protected]> Co-authored-by: alex <[email protected]> Co-authored-by: Jycssu <[email protected]> Co-authored-by: Yohann Durand <[email protected]> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Sigri <[email protected]> Co-authored-by: Jycssu <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: BenoistP <[email protected]> Co-authored-by: Kurtisone <[email protected]> Co-authored-by: jycssu-com <[email protected]> Co-authored-by: alex <[email protected]> Co-authored-by: Yohann Durand <[email protected]>
* Change NS for RealToken (#89) * chore: install required sharp dependency for production * chore(deps): bump body-parser from 1.20.2 to 1.20.3 (#87) Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.2 to 1.20.3. - [Release notes](https://github.com/expressjs/body-parser/releases) - [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md) - [Commits](expressjs/body-parser@1.20.2...1.20.3) --- updated-dependencies: - dependency-name: body-parser dependency-type: indirect ... * feat: add new assets REG, REG Vote Power (#91) * first version : Assets as rows * 'other' assets display switch; 'other' assets shown in Summary 'other' assets = tokens others than RealTokens = RWA, REG, ... - Display switch for hiding 'other' assets in table rows - 'other' assets figures added to Summary section * contracts utils * use contract utils for fetching balances * Eth provider removed: REG Voting Power is not deployed on Eth * batchCallOneFunction not fully tested * error args * comments * wrong 'inheritance' * smol fix: properly throw 'User not found' error * style/comments * settings labels and icons * unitIcon: optional + alignment with other units * Filter 'other' assets in Grid view * Settings: switch icons, section names * fix: lint warning * fix: lint warning * fix: build error ? * fix: build error #2 ? * fix: build error #3 ? * fix: build error #4 ? * fix: build error #5 ? * Fix: existing filter error when filtering on "Owned on" * fix: avoid fetching others assets balances if user wallet was not set * feat: add other token price on cards and fix decimals rounds for total invest * fix: improve subsudy filter for exclude other realtokens * fix: fix last changes filter and use correct typing in filters for avoid futurs errors * feat: set initial launch date for RWA token * feat: initialize rpc provider only once * feat: include reg tokens locked inside the incentive vault * fix: fix eslint warnings and add missing translations * Update .gitignore exclude pnpm lockfile * Create .nvmrc add .nvmrc for switching between node versions * Update contract.ts optional parameters for customizing batch calls: batch max and min size, number of attempts before giving up * Regvotingpower: icon orange, size grows depending on amount * unused import * Usdc currency/rate * Voting power size & fill color depending on power amount * Voting power size & fill color depending on power amount * Fixes: token prices in USD, avoid fetching REG vault balances on Eth - Tokens values fix: Updated assets prices by using currenciesRates and user currency rate (previously considering usdc = usd and xdai = usd as well), now assets prices are converted from their respective currencies (e.g. usdc, xdai) to usd, then total value is priced in user choosen currency. - Smol fix: getAddressesLockedBalances was fetching vault balances on Eth, throwing errors as there is not such vault on Eth. Added parameters for fetching any number of vault by provider(s). * comment * Check Providers ability to handle requests - Check Providers ability to handle requests - Additionnal providers https://rpc.ankr.com/eth and https://eth-pokt.nodies.app currently fail to handle concurrent requests * Assets hooks moved in index for avoiding duplicate requests - Both SummaryCard and AssetsView use the same hooks for getting their data, leading to duplicate web3 requests Moving hooks in parent components prevents this form happening. * prettier * Avoid divide by zero in case asset.totalUnits is unknown/zero * "Clean" scripts * Assets filtering moved to the right place filter has to be in assetsView/AssetsView.tsx * Paging translation labels: placeholder, All * simplify pageSize handling * Assets filtering fix (causing pagination issues) OtherAssets filtering was improperly implemented into the map loops by skipping non "others assets" value, causing holes in display (missing cards). Filtering is now done in AssetsView where it should have been in the first place * Revert changes: realtime/global labels for rents calculation switch --------- * fix: API URLs issue #97 (#98) * addresses issue #97 Moves api urls to (.)ENV set utls to new api.realtoken.community domain (previously api.realt.community) * Update .env.sample missing update of sample .env * Update .env.sample * NEXT_PUBLIC_ prefix removed for REALTOKENAPI ENV vars * feat: update yarn lock (#99) * feat: add new API urls to deployment workflow (#100) * feat: pass new env variables to docker env (#101) * fix: unchecked asset filters (#95) * merge master in develop (#103) * Revert "Master" * merge preprod <> master (#67) * add dropdown * simplify selector and add all token option * feat: change allPage value to Infinity * feat: estimate the fully rented rent * feat: add fully rented estimation to asset cards * refactor: move hook calls to top of the page * fix: propInfo definition * fix: last rent condition * feat: add estimation for property with not fully rented history * feat: get fully rented APR * apply max APR method * rename variable and functions * feat: add RWA token * feat: re-enable property onClick * feat: add rwa valuation on the rwa card * fix: missing property * feat: add rwa to summary card * define useRWA * take into account user currency * feat: add RWA value to net value calculation * remove comment * refactor: clean imports * feat: include RWA on Ethereum * fix: en communs * feat: update filter to support RWA token * fix: prettier * fix: other prettier errors * let prettier add strange semi-column * fix: imports * use hook * add fallback * switch for a useMemo * feat: add real time fully rented APR * feat: add gloabl metric fully rented APR * feat: add disclaimer * feat: add disclaimer * feat: update disclaimer message * fix: disclaimer message * improve message * feat: create yam statics stics page * feat: add yam statistics for all RealT Tokens on Gnosis (who have Gnosis chain contract prop) * feat: mask tokens with no volume * fix: add token name * feat: add pagination * feat: improve style * feat: change token per page to 100 * feat: add fully rented APR to asset grid * refactor: remove logs * feat: add fully rented APR to property details * fix: reset current page when tokens changed * fix: reset current page when user change page size * feat: add translation for YAM statistics hearder label * fix: yamStatistics: use selected currency for token price * feat: yamStatistics: add owned | all filter * feat: yamStatistics: add subsidized, fullySubsidized and notSubsidized filters * add additional fallbacks RPC URLs * fix: RPC initialization on currencies file --------- * merge preprod <> master (#77) * add dropdown * simplify selector and add all token option * feat: change allPage value to Infinity * feat: estimate the fully rented rent * feat: add fully rented estimation to asset cards * refactor: move hook calls to top of the page * fix: propInfo definition * fix: last rent condition * feat: add estimation for property with not fully rented history * feat: get fully rented APR * apply max APR method * rename variable and functions * feat: add RWA token * feat: re-enable property onClick * feat: add rwa valuation on the rwa card * fix: missing property * feat: add rwa to summary card * define useRWA * take into account user currency * feat: add RWA value to net value calculation * remove comment * refactor: clean imports * feat: include RWA on Ethereum * fix: en communs * feat: update filter to support RWA token * fix: prettier * fix: other prettier errors * let prettier add strange semi-column * fix: imports * use hook * add fallback * switch for a useMemo * feat: add real time fully rented APR * feat: add gloabl metric fully rented APR * feat: add disclaimer * feat: add disclaimer * feat: update disclaimer message * fix: disclaimer message * improve message * feat: create yam statics stics page * feat: add yam statistics for all RealT Tokens on Gnosis (who have Gnosis chain contract prop) * feat: mask tokens with no volume * fix: add token name * feat: add pagination * feat: improve style * feat: change token per page to 100 * feat: add fully rented APR to asset grid * refactor: remove logs * feat: add fully rented APR to property details * fix: reset current page when tokens changed * fix: reset current page when user change page size * feat: add translation for YAM statistics hearder label * fix: yamStatistics: use selected currency for token price * feat: yamStatistics: add owned | all filter * feat: yamStatistics: add subsidized, fullySubsidized and notSubsidized filters * add additional fallbacks RPC URLs * fix: RPC initialization on currencies file * feat: YamStatistic: add Yamp Volume's number of days * fix: fullyRentedAPR: fix french disclaimer text * fix: second disclaimer text small error * feat: fullyRentedAPR: manage VEFA properties * refactore: improve comment * feat: show VEFA properties forced fully rented APR only if property do not have tenants * fix: RWA table view * feat: add bridge link on header (#74) * fix: VEFA Realtime APR --------- * Revert "merge preprod <> master (#77)" This reverts commit 68daad5. * fix: APY fully rented for properties before start rent day (#85) * Change NS for RealToken (#89) (#90) --------- --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Sigri <[email protected]> Co-authored-by: Jycssu <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: BenoistP <[email protected]> Co-authored-by: Kurtisone <[email protected]> Co-authored-by: jycssu-com <[email protected]> Co-authored-by: alex <[email protected]> Co-authored-by: Yohann Durand <[email protected]>
next.config.js
src/components/assetsView/AssetsViewSearch.tsx
consts/otherTokens.ts