Skip to content

Commit

Permalink
[release] Interlay 2.37.0 (#1510)
Browse files Browse the repository at this point in the history
* feat: redirect when access from forbidden country is detected (#1209)

* Feature/updated transfer UI (#876)

* refactor: use updated tab component

* refactor: duplicated form titles

* refactor: remove redundant hook calls

* refactor: prefer title case

* wip: XCM transfer form UI

* wip: updated form UI

* wip: account selector placeholder component

* wip: account selector modal

* wip: modal open and close actions

* wip: update modal type

* wip: get accounts

* wip: add identicon and rename component for consistency

* wip: account input component

* fix: remove redundant icons prop

* feat: implement with SelectTrigger

* wip: styling and account selection value

* wip: handle setting account data

* refactor: better naming

* wip: address list styling

* refactor: rename defaultAccount

* wip: chain selector placeholder component

* wip: duplicate account component and rename

* chore: delete redundant legacy component

* wip: logic for fetching and rendering chain ids

* wip: chain item styling

* wip: selected chain styling

* chore: add comment

* refactor: pass through native token to icon component

* feature: add chain icon component

* chore: add comment

* chore: correct file name casing

* refactor: improve folder structure

* wip: form layout styling

* chore: add arrow icon

* chore: add logos and correct svg titles

* chore: remove redundant svg prop

* chore: rename arrow icon

* chore: consistent use of styled components

* refactor: remove padding from modal body

* wip: formik integration work

* wip: extend useXCMBridge to return available chains and utility methods

* chore: move Chain and Chains types to types directory

* feat: layout and form implementation

* feat: add schema

* feat: final

* wip: refactor useXCMBridge hook

* refactor: add endpoints type

* refactor: wrap methods in useCallback

* refactor: fix bug in hook method

* chore: bump bridge version

* wip: set originating and destination chain values

* refactor: set from chain value on field change

* wip: set originating chain value

* refactor: mergeProps to set field value

* refactor: handle setting origin/destination chain values

* wip: get tokens method

* wip: first iteration of balances function

* wip: handle tokens array

* wip: set token value

* wip: get token balances

* wip: return token and balances in single method

* wip: mapped tokens

* refactor: handle default chain values

* refactor: better organised function order

* wip: handle change events

* wip: handle setting tokens

* wip: handle fetching tokens and balances

* wip: convert input configs

* wip: handle token change

* wip: get token USD price

* Trigger Build

* chore: remove unused import

* chore: correct eslintignore syntax

* wip: handle breaking changes

* wip: disable token input when select items value is 1

* chore: set first token item as variable

* wip: handle setting and changing values

* chire: add loading spinner

* refactor: add loading state

* refactor: filter destination chains

* chore: remove console log

* chore: bump XCM bridge version

* chore: update config

* refactor: configure validation

* chore: revert change to useForm hook

* wip: form validation

* wip: working form validation

* wip: undefined validation parameters

* refactor: return dest fee estimate from bridge hook

* feature: show fees and fee estimates

* chore: conditional operators

* refactor: handle ticker change correctly

* wip: sendTransaction method

* Revert "wip: sendTransaction method"

This reverts commit 3ade26d.

* fix: USD amounts

* wip: send transactions

* refactor: bump bridge and use getNativeToken method

* chore: bump bridge

* refactor: move submit logic to useMutation hook

* fix: type mismatches

* refactor: white space/comments

* refactor: add transaction fee validation

* chore: typo

* chore: remove console log

* refactor: remove duplicated monetary conversion

* refactor: remove duplicate code

* Revert "refactor: remove duplicate code"

This reverts commit bd29f8c.

* Revert "refactor: remove duplicated monetary conversion"

This reverts commit 5fd3d64.

* refactor: use monetaryAmount when constructing transaction

* refactor: remove duplicated code for fetching tokens

* refactor: default XCM origin

* Revert "refactor: remove duplicated code for fetching tokens"

This reverts commit 8f31ee8.

* chore: remove comment

* chore: fix errors

* fix: set default value to empty string to prevent React error

* refactor: removed unwanted force validation parameters

* refactor: remove redundant method

* refactor: add method return type

* refactor: add method return type

* refactor: correct type error

* refactor: fix destFee type error

* refactor: remove fees validation and revert destFee return value

* chore: remove console log

* refactor: remove redundant method

* refactor: disable validation on change

* chore: remove commented out code

* wip: use select component for chain selector

* fix: handle chain select functions

* refactor: type chain id as ChainName

* Revert "refactor: type chain id as ChainName"

This reverts commit d05e012.

* chore: remove unused component files

* refactor: remove duplicated transaction logic

* fix: make to/from field types more specific

* fix: revert yup.custom changes and cast validation

* fix: set correct destination chain

* refator: handle token data

* refactor: add use callback

* fix: correct rendering logic

* fix: update dependencies

* chore: delete unused styles

* chore: fix merge issue with transfer form

* fix: change validation handling

* Revert "fix: change validation handling"

This reverts commit c0cb306.

* refactor: only display transfer amount if amount has been entered

* chore: config changes

* chore: add missing icons

* chore: Hydra chain icon

* fix: add error text to CTA

* Tom/xcm fixes (#1213)

* refactor: specify endpoints and remove unnecessary logic

* fix: save file before committing

* fix: disable refetch

* chore: update endpoints

* chore: remove log

* chore: rename file

* chore: add additional acala/karura endpoints

---------

Co-authored-by: Rui Simão <[email protected]>

* chore: release v2.32.0

* Update API healthchecks (#778)

* Chore - add vault healthcheck

* Chore - add vault healthcheck

* Chore - add vault healthcheck

* [earn strategies] placeholder page, nav and feature flag (#1216)

* chore: bump icons dependency

* feature: earn strategies placeholder page and feature flag

* feat: add useTransaction (#1189)

* chore: update monetary to latest 0.7.3 (#1214)

* chore: update monetary to latest 0.7.3

* chore: update lib

* chore: bump lib and bridge (#1219)

* chore: release v2.32.1

* fix: add missing icons and remove erroring RPC (#1222)

* fix: add missing icons and remove erroring RPC

* Update src/pages/Transfer/CrossChainTransferForm/components/ChainIcon/icons/Acala.tsx

Co-authored-by: Peter Slaný <[email protected]>

* Update src/pages/Transfer/CrossChainTransferForm/components/ChainIcon/icons/Astar.tsx

Co-authored-by: Peter Slaný <[email protected]>

* Update src/pages/Transfer/CrossChainTransferForm/components/ChainIcon/icons/Parallel.tsx

Co-authored-by: Peter Slaný <[email protected]>

---------

Co-authored-by: Peter Slaný <[email protected]>

* chore: release v2.32.2

* fix: compare input configs with method not operator (#1225)

* refactor: reset selected account on account change (#1226)

* chore: release v2.32.3

* feature: add geoblock feature flag (#1230)

* chore: release v2.32.4

* chore: bump bridge (#1233)

* chore: release v2.32.5

* Peter/earn strategies feat deposit withdraw form (#1229)

* chore: update monetary to latest 0.7.3

* wip

* feat(earn-strategies): add deposit and withdrawal form components

* refactor: add padding under tabs in earn strategy forms

* chore(earn-strategies): change file structure

* feat: add Popover, Underlay and ProgressBar. Changes to Dialog, Modal and Overlay. (#1236)

* fix: Dialog, Modal and Popover (#1245)

* chore: rename strategies feature (#1247)

* chore: release v2.32.6

* Fix: back button behaviour from bridge page (#1246)

* fix: use history replace instead of push to fix looping of bridge page

* chore: clean up and bump version

---------

Co-authored-by: tomjeatt <[email protected]>

* feat: add transaction notifications (#1177)

* chore: remove console.log (#1262)

* fix(TokenInput): adorment ticker (#1257)

* fix: get vesting data (#1264)

* Peter/chore update lib 2.3.0 (#1267)

* chore: update monetary to latest 0.7.3

* chore: update lib version

* fix: sort notifications (#1270)

* fix: transaction none (#1271)

* fix(Loans): apy label (#1275)

* Peter/loans fix subsidy rewards (#1276)

* chore: update monetary to latest 0.7.3

* fix(loans): display correct subsidy rewards accrued amount and APY

* chore: console log cleanup

* chore: replace GOVERNANCE_TOKEN_SYMBOL with GOVERNANCE_TOKEN.ticker

* Peter/fix loans incentive apr computation (#1256)

* chore: update monetary to latest 0.7.3

* fix: convert incentives apr computation to percentage

* fix: change loans incentives annualized return to have label APR

* chore: release v2.33.0

* Peter/chore update lib 2.3.3 (#1282)

* chore: update monetary to latest 0.7.3

* chore: update lib to 2.3.3.

* fix: enable faucet on Interlay testnet (#1289)

* fix: enable faucet on Interlay testnet

* fix: prefer governance token ticker to symbol

* chore: bump bridge (#1285)

* fix(Swap): update trade object on each block (#1297)

* api: use diadata as main datasource (#1277)

* api: use diadata as main datasource

* api: add header to select price source

---------

Co-authored-by: tomjeatt <[email protected]>

* Peter/fix interlay issues (#1300)

* chore: update monetary to latest 0.7.3

* fix: add missing translation and fix lend APY display

* refactor: bring back formatting with 0 amount case covered

* refactor: code review

* refactor: code review

* api: select price source via query param and ticker renaming (#1307)

* api: fix tether label for dia (#1309)

* chore: release v2.34.0

* chore: update XCM RPCs (#1324)

* chore: release v2.34.1

* fix: correct wallet balance (#1334)

* api: switch to coingecko pro url (#1321)

* Peter/feat tx fee with swapped currency (#1340)

* chore: update monetary to latest 0.7.3

* feat: refactor Transfer and theme (#1244)

* wip: initial changes to move table

* chore: remove unused component

* Revert "chore: remove unused component"

This reverts commit 0db71a1.

* chore: remove unused component

* chore: use translation file

* fix: add missing p tags

* wip

* feat: refactor Transfer and theme (#1244)

* feat(Bridge): revamp Issue and Redeem (#1279)

* wip

* feat(TransactionDetails): extend component to support fee selector (#1292)

* feat: add tx fee estimation and swap for tx fee payment integration

* fix: remove impossible condition

* feat: integrate use-transaction with TransactionFeeDetails (#1294)

* feat: integrate use-transaction with TransactionFeeDetails

* fix: code review

* refactor: code review

* feat: add fee estimate loading state

* Rui/fee estimate transfer form (#1296)

* feat: add fee estimate to transfer form

* Update src/pages/Transfer/TransferForms/components/TransferForm/TransferForm.tsx

Co-authored-by: Peter Slaný <[email protected]>

---------

Co-authored-by: Peter Slaný <[email protected]>

* Feature/UI updates/navigation styling (#1293)

* wip: initial navigation styling

* refactor: remove icons from secondary navigation items

* refactor: split navigation into primary/secondary

* fix: add bg colour to nav to prevent problems on small screens

* refactor: update accordion styles

* refactor: remove redundant code and console log

* refactor: change Kintsugi background colour

* fix: show navigation item names

* fix: remove redundant conditional

* fix: code

* fix: changes to list style and disable 0 balance fee tokens

* feat(bringyourownfee): add check for existing trade path

* Update src/utils/hooks/transaction/use-transaction.ts

Co-authored-by: Dominik Harz <[email protected]>

* Update src/utils/hooks/transaction/use-transaction.ts

Co-authored-by: Dominik Harz <[email protected]>

* refactor: move multiplier to constant

* feat: add fee validation and other improvements to form validation (#1303)

* Peter/feat griefing collateral multicurrency (#1310)

* feat: add selectable griefing collateral currency to issue request form

* feat: add oracle currency hook and wrap up griefing collateral work

* feat(Swap): add custom fee (#1315)

* Peter/feat byof bridge page (#1328)

* wip

* refactor: issue page with griefing collateral select

* feat(bringyourownfees): redeem form

* refactor: renaming

* feat: add redeem request to getActionAmount

* feat(Pools): add fee estimate (#1322)

* feat(Loans): add fee estimate (#1332)

* feat(Vaults): add fee estimate to vault creation (#1333)

* fix(Redeem): add missing BTC address validation (#1336)

* fix: redeem getActionAmount type mismatch

* Tom/UI updates/minor changes (#1308)

* refactor: add vault table background colour

* fix: typo

* refactor: styled card for vault selector

* refactor: wrap vault transaction tables in card component

* fix: typo

* refactor: add shadowed prop to card component

* refactor: use card component for transactions table

* refactor: move request id in legacy issue/request modal

* refactor: use request id dictionary item

* chore: update Interlay logo

* refactor: update icon and logo colours

* feature: add bg image

* wip: add background image to Layout component

* refactor: add Wrapper component

* wip: initial values for background image position

* refactor: minor styling changes

* refactor: revert unneeded change

* refactor: move and rename Transaction component

* feat: sort currencies by balance (#1338)

---------

Co-authored-by: Peter <[email protected]>
Co-authored-by: Thomas Jeatt <[email protected]>
Co-authored-by: Peter Slaný <[email protected]>
Co-authored-by: tomjeatt <[email protected]>
Co-authored-by: Dominik Harz <[email protected]>

* chore: release v2.35.0

* Tom/feature/wallet buttons (#1346)

* refactor: add tab props

* feature: add bridge button to assets table

* refactor: don't show buy button for wrapped token

* [wallet] add default currencies to wallet (#1335)

* refactor: add default currencies to wallet

* refactor: use NATIVE_CURRENCIES

* chore: update navigation (#1344)

* refatctor: remove LBANK configuration and assets (#1355)

* feature: add LDOT icon (#1356)

* Peter/refactor fetch oracle status from chain (#1359)

* chore: update monetary to latest 0.7.3

* refactor: fetch oracle status from chain

* chore: remove commented-out code

* Peter/fix add wrapped currency as security deposit option (#1360)

* chore: update monetary to latest 0.7.3

* fix: add wrapped token to useGetOracleCurrencies result

* chore: update price impact warning copy (#1358)

* [transfer/bridge] open correct tab (#1366)

* fix: bridge query parameter

* fix: revert to previous tab name

* refactor: close redeem modal (#1367)

* refactor: close redeem modal

* fix: correct user messaging copy

* fix: remove unnecessary translation

* fix: correct copy

* feat: change LoadingSpinner styles and CTA loading spinner (#1372)

* feat: replace legacy toast with new notification toast (#1370)

* fix: UI styling bugs (#1371)

* fix: change broken gradient id ref

* refactor: add opacity value to navigation separator

* fix: update padding

* fix: border opacity

* fix: use transaction details component

* refactor: change how padding is set

* Peter/fix bridge dust value validation (#1374)

* chore: update monetary to latest 0.7.3

* fix: dust value calculation

* feat(Wallet): add USDT and change switch label (#1363)

* fix(Modal): prevent user from clicking when closed (#1364)

* fix(Swap): handle when schema params are undefined (#1375)

* feat(Wallet): add welcome banner (#1337)

* fix: correct subscan link (#1378)

* fix: select token modal list style (#1382)

* fix: improve issue form insufficient funds notice (#1380)

* feature: add tooltip to asset cell (#1345)

* feature: add tooltip to asset cell

* fix: typo

* wip: ReactNode tooltip so that we can pass in link

* feature: add fee asset tooltip

* update text link component

* fix: revert changes to text links

* revert changes to text links

* fix: maintain compatibility with existing text links

* use correct location variable

* fix: remove log

* fix: tooltip const

* Onboarding page (#1373)

* feat: add draft of onboarding page

* chore: update t&c links

* feat: add guided tour through app

* fix: typos and eslint warnings

* restrict width of onboarding cards

* feat: replace  UI faucet with discord link

* feat: improve CTA

* feat: add link to onboarding page

---------

Co-authored-by: Thomas Jeatt <[email protected]>

* fix: disable fetch on focus (#1386)

* fix(Onboarding): improve styles, semantics and file structure (#1387)

Co-authored-by: Dominik Harz <[email protected]>

* fix: typo (#1392)

* Peter/feat pools trading fee apr (#1389)

* chore: update monetary to latest 0.7.3

* feat(pools): add trading fee APR

* refactor: clean-up naming

* Peter/ choreupdate lib 2.3.5 (#1393)

* chore: update monetary to latest 0.7.3

* chore: update lib to 2.3.5

* chore: release v2.35.1

* fix: onboarding and empty fee selector (#1396)

* Onboarding feature flag (#1398)

* refactor: add feature flag

* fix: update dependencies

* add onboarding to env file

* chore: release v2.35.2

* api: add dia asset ids to market data endpoint (#1400)

* chore: release v2.35.3

* api: add dia asset ids to market data endpoint (#1403)

* chore: release v2.35.4

* fix(Wallet): add missing guide link (#1406)

* fix(Wallet): add missing guide link

* Update WelcomeBanner.tsx

* feat(Wallet): update welcome banner svg (#1407)

* wip: add T&Cs version (#1409)

* chore: release v2.35.5

* api: add support for multiple version of terms and conditions (#1411)

* api: add support for multiple version of terms and conditions

* api: add support for multiple version of terms and conditions

* chore: release v2.35.6

* feat: add parity signer companion for polkadot vault support (#1417)

* Tom/xcm copy changes (#1391)

* fix: typos

* refactor: pass chain data to transaction instead of chain id

* refactor: remove unused feature foags (#1402)

* Peter/fix pools daily volumes (#1421)

* chore: update monetary to latest 0.7.3

* fix: change pools fetching query to work when first record is younger than requested period

* fix(Pools): deposit validation (#1419)

* fix: various issues picked up from testing (#1414)

* fix: prefetching fee scenarios (#1384)

* fix: hide onboarding button when onboarding disabled (#1418)

* chore: release v2.35.7

* apply hotfix (#1428)

* Peter/fix byof not working (#1430)

* chore: update monetary to latest 0.7.3

* fix(byof): use correct field props getter for fee token select

* chore: release v2.35.8

* api: add support ethereum and karura (#1435)

* Tom/updated directory names (#1434)

* refactor: rename Bridge -> BTC

* refactor: transfer -> send and receive

* fix: rename Transfer component

* revert change to tab name

* refactor: update translation references

* update schemas

* update directory and file casing

* casing

* casing

* casing

* casing

* casing

* chore: split AMM pages into seperate folders (#1436)

* feat: check signature version (#1429)

* Fix Storybook (#1443)

* fix display name syntax

* disable snapshots

* Trigger build

* Update routes (#1442)

* update routes

* redirect crossChainTransfer query parameter

* fix redirect syntax

* fix redirect syntax

* redirect cross chain transfer

* tab redirects

* correct redirect syntax

* Peter/fix q token vaults support (#1445)

* chore: update monetary to latest 0.7.3

* wip

* wip: update lib version

* chore: install deps

* chore: fix test pipelines (#1379)

* fix(Redeem): redeem limit when there is not capcity (#1451)

* fix(Redeem): premium redeem (#1454)

* Peter/feat loans q token handle edge cases (#1449)

* chore: update monetary to latest 0.7.3

* feat(loans): handle lend position when qToken is used as vault collateral

* chore: update lib

* add nova wallet (#1453)

* add nova wallet

* delete unused config and update polkadot name

* move constant and delete redundant file

* feat: add query params handling (#1347)

* feat: add estimate fee hook and action amount deduction (#1433)

* Update number of wallets in test (#1462)

* Update number of wallets in test

* fix: remove parentheses from wallet name

* Support Banxa on Interlay (#1458)

* refactor: remove redundant env variable and UI component

* refactor: remove redundant URL parameter

* update translation file

* revert change to wallet parameter

* update translation parameter

* fix: missed file save

* chore: release v2.36.0

* fix(Swap): add missing scenario for re-computing trade obj (#1464)

* fix: use correct value for vault capacity indicator (#1465)

* fix: use correct value for vault capacity indicator

* fix: capacity ratio when there are no backed tokens

* revert version bump

* chore: release v2.36.0

* api: add fallback to coingecko for missing assets on dia (#1467)

* revert version bump

* chore: release v2.36.0

* fix: fee affecting action amount calculation (#1472)

* chore: release v2.36.1

* feat(Strategies): add landing page (#1466)

* feat(Strategies): add landing page

* fix: code review

* chore: improve translactions (#1447)

* feat: add tooltip to pools and refactor loans tooltip (#1424)

* feat: add tooltip to pools and refactor loans tooltip

* fix: code review

* fix: code reivew

---------

Co-authored-by: Thomas Jeatt <[email protected]>

* fix(Loans): simplify form and hook (#1476)

* Rui/loans modals lose close animation due to conditional render (#1460)

* wip

* feat: continue

* fix: code review

* fix:merge

---------

Co-authored-by: Thomas Jeatt <[email protected]>

* fix: loan tests (#1425)

* Tom/update bg image (#1481)

* update bg svg

* swap file

* minify

* Tom/xcm updates (#1480)

* wip: refactor account select

* refactor: update component names

* Revert "refactor: update component names"

This reverts commit c80ca13.

* fix: rename components without breaking feature

* disable all data refetching

* wip: render xcm form when no wallet connected

* remove redundant legacy component

* workaround for account selection issue

* Tidying up

* handle TODO relating to SelectObject

* remove comment

* casing

* selected styling

* improvements

* Add comment

* fix: organize files (#1483)

* refactor: Layout and MainContainer (#1489)

* refactor: add block height, parachain status and locked tokens hooks (#1486)

* refactor: replace old faucet approach with use-faucet (#1484)

* Peter/feat dry running (#1499)

* chore: update monetary to latest 0.7.3

* feat(transaction): dry-run transaction before submission and revert execution if dry-running fails

* test: mock submittable extrinsic

* refactor: rename to dryRun and document functionality

* refactor: move submission code to separate folder

* Peter/feat simple passive income strategy page (#1473)

* chore: update monetary to latest 0.7.3

* wip: feat(strategies): add simple BTC strategy

* refactor(strategies): merge landing page with strategy page

* wip: strategy page infographics

* feat(loans): add earned amount to lend positions

* feat: changes to loans and strategies (#1498)

---------

Co-authored-by: Daniel Simão <[email protected]>

* fix(Strategies): improve responsiveness and add form link (#1503)

* fix: correct feature flag name (#1504)

* chore: release v2.36.2

* feat(Slider): add component (#1502)

* fix: use route instead of redirect (#1507)

* chore: release v2.37.0

* fix conflicts

---------

Co-authored-by: Peter Slaný <[email protected]>
Co-authored-by: Rui Simão <[email protected]>
Co-authored-by: ns212 <[email protected]>
Co-authored-by: Chanakya Kilaru <[email protected]>
Co-authored-by: Peter <[email protected]>
Co-authored-by: Dominik Harz <[email protected]>
Co-authored-by: sander2 <[email protected]>
  • Loading branch information
8 people authored Aug 7, 2023
1 parent 1021024 commit 3ea693e
Show file tree
Hide file tree
Showing 394 changed files with 4,847 additions and 4,496 deletions.
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "interbtc-ui",
"version": "2.36.1",
"version": "2.37.0",
"private": true,
"dependencies": {
"@craco/craco": "^6.1.1",
Expand All @@ -19,6 +19,7 @@
"@react-aria/dialog": "^3.3.1",
"@react-aria/focus": "^3.6.1",
"@react-aria/gridlist": "^3.1.2",
"@react-aria/i18n": "^3.8.0",
"@react-aria/interactions": "^3.11.0",
"@react-aria/label": "^3.4.3",
"@react-aria/link": "^3.4.0",
Expand All @@ -28,6 +29,7 @@
"@react-aria/progress": "^3.4.1",
"@react-aria/select": "^3.9.0",
"@react-aria/separator": "^3.2.5",
"@react-aria/slider": "^3.5.0",
"@react-aria/switch": "^3.2.4",
"@react-aria/table": "^3.4.0",
"@react-aria/tabs": "^3.5.0",
Expand All @@ -39,6 +41,7 @@
"@react-stately/list": "^3.6.1",
"@react-stately/overlays": "^3.5.1",
"@react-stately/select": "^3.4.0",
"@react-stately/slider": "^3.4.0",
"@react-stately/table": "^3.3.0",
"@react-stately/tabs": "^3.4.0",
"@react-stately/toggle": "^3.4.2",
Expand Down
225 changes: 74 additions & 151 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,33 +1,30 @@
import './i18n';

import { FaucetClient, SecurityStatusCode } from '@interlay/interbtc-api';
import { Keyring } from '@polkadot/keyring';
import * as React from 'react';
import { useErrorHandler, withErrorBoundary } from 'react-error-boundary';
import { useQuery } from 'react-query';
import { useDispatch, useSelector } from 'react-redux';
import { Redirect, Route, Switch } from 'react-router-dom';
import { Route, Switch } from 'react-router-dom';

import { initGeneralDataAction, isFaucetLoaded, isVaultClientLoaded } from '@/common/actions/general.actions';
import { ParachainStatus, StoreType } from '@/common/types/util.types';
import { GOVERNANCE_TOKEN, RELAY_CHAIN_NATIVE_TOKEN, WRAPPED_TOKEN } from '@/config/relay-chains';
import { isVaultClientLoaded } from '@/common/actions/general.actions';
import { StoreType } from '@/common/types/util.types';
import ErrorFallback from '@/legacy-components/ErrorFallback';
import FullLoadingSpinner from '@/legacy-components/FullLoadingSpinner';
import { useSubstrate, useSubstrateSecureState } from '@/lib/substrate';
import Layout from '@/parts/Layout';
import Wrapper from '@/parts/Wrapper';
import graphqlFetcher, { GRAPHQL_FETCHER, GraphqlReturn } from '@/services/fetchers/graphql-fetcher';
import vaultsByAccountIdQuery from '@/services/queries/vaults-by-accountId-query';
import { BitcoinNetwork } from '@/types/bitcoin';
import { PAGES } from '@/utils/constants/links';

import { TransactionModal } from './components/TransactionModal';
import { Layout, TransactionModal } from './components';
import * as constants from './constants';
import { FeatureFlags, useFeatureFlag } from './hooks/use-feature-flag';
import TestnetBanner from './legacy-components/TestnetBanner';
import { FeatureFlags, useFeatureFlag } from './utils/hooks/use-feature-flag';

const BTC = React.lazy(() => import(/* webpackChunkName: 'btc' */ '@/pages/BTC'));
const Strategies = React.lazy(() => import(/* webpackChunkName: 'strategies' */ '@/pages/Strategies'));
const Strategy = React.lazy(() => import(/* webpackChunkName: 'strategy' */ '@/pages/Strategies/Strategy'));
const SendAndReceive = React.lazy(() => import(/* webpackChunkName: 'sendAndReceive' */ '@/pages/SendAndReceive'));
const TX = React.lazy(() => import(/* webpackChunkName: 'tx' */ '@/pages/TX'));
const Staking = React.lazy(() => import(/* webpackChunkName: 'staking' */ '@/pages/Staking'));
Expand All @@ -52,30 +49,6 @@ const App = (): JSX.Element => {
const isStrategiesEnabled = useFeatureFlag(FeatureFlags.STRATEGIES);
const isOnboardingEnabled = useFeatureFlag(FeatureFlags.ONBOARDING);

// Loads the connection to the faucet - only for testnet purposes
const loadFaucet = React.useCallback(async (): Promise<void> => {
try {
window.faucet = new FaucetClient(window.bridge.api, constants.FAUCET_URL);
dispatch(isFaucetLoaded(true));
} catch (error) {
console.log('[loadFaucet] error.message => ', error.message);
}
}, [dispatch]);

// Loads the faucet
React.useEffect(() => {
if (!bridgeLoaded) return;
// if (process.env.REACT_APP_BITCOIN_NETWORK === BitcoinNetwork.Mainnet) return;

(async () => {
try {
await loadFaucet();
} catch (error) {
console.log('[App React.useEffect 8] error.message => ', error.message);
}
})();
}, [bridgeLoaded, loadFaucet]);

// Detects if the connected account is a vault operator
const { error: vaultsError } = useQuery<GraphqlReturn<any>, Error>(
[GRAPHQL_FETCHER, vaultsByAccountIdQuery(selectedAccount?.address ?? '')],
Expand All @@ -93,58 +66,6 @@ const App = (): JSX.Element => {
);
useErrorHandler(vaultsError);

// Initializes data on app bootstrap
React.useEffect(() => {
if (!dispatch) return;
if (!bridgeLoaded) return;

(async () => {
try {
const [
totalWrappedTokenAmount,
totalLockedCollateralTokenAmount,
totalGovernanceTokenAmount,
btcRelayHeight,
bitcoinHeight,
state
] = await Promise.all([
window.bridge.tokens.total(WRAPPED_TOKEN),
window.bridge.tokens.total(RELAY_CHAIN_NATIVE_TOKEN),
window.bridge.tokens.total(GOVERNANCE_TOKEN),
window.bridge.btcRelay.getLatestBlockHeight(),
window.bridge.electrsAPI.getLatestBlockHeight(),
window.bridge.system.getStatusCode()
]);

const parachainStatus = (state: SecurityStatusCode) => {
if (state.isError) {
return ParachainStatus.Error;
} else if (state.isRunning) {
return ParachainStatus.Running;
} else if (state.isShutdown) {
return ParachainStatus.Shutdown;
} else {
return ParachainStatus.Loading;
}
};

dispatch(
initGeneralDataAction(
totalWrappedTokenAmount,
totalLockedCollateralTokenAmount,
totalGovernanceTokenAmount,
btcRelayHeight,
bitcoinHeight,
parachainStatus(state)
)
);
} catch (error) {
// TODO: should add error handling
console.log('[App React.useEffect 2] error.message => ', error.message);
}
})();
}, [dispatch, bridgeLoaded]);

React.useEffect(() => {
if (!setSelectedAccount) return;

Expand All @@ -158,77 +79,79 @@ const App = (): JSX.Element => {
}, [setSelectedAccount, extensions.length]);

return (
<Wrapper>
<Layout>
{process.env.REACT_APP_BITCOIN_NETWORK === BitcoinNetwork.Testnet && <TestnetBanner />}
<Route
render={({ location }) => (
<React.Suspense fallback={<FullLoadingSpinner />}>
{bridgeLoaded ? (
<Switch location={location}>
<Route exact path={PAGES.VAULTS}>
<Vaults />
</Route>
<Route exact path={PAGES.VAULT}>
<Vault />
</Route>
<Route path={PAGES.VAULT}>
<Vaults />
</Route>
<Route path={PAGES.DASHBOARD}>
<Dashboard />
</Route>
<Route path={PAGES.STAKING}>
<Staking />
</Route>
<Route path={PAGES.TX}>
<TX />
</Route>
<Route path={PAGES.BTC}>
<BTC />
</Route>
<Route path={PAGES.SEND_AND_RECEIVE}>
<SendAndReceive />
</Route>
<Route path={PAGES.LOANS}>
<Loans />
</Route>
<Route path={PAGES.SWAP}>
<Swap />
</Route>
<Route path={PAGES.POOLS}>
<Pools />
</Route>
<Route path={PAGES.WALLET}>
<Wallet />
</Route>
{isStrategiesEnabled && (
<Route path={PAGES.STRATEGIES}>
<Layout>
{process.env.REACT_APP_BITCOIN_NETWORK === BitcoinNetwork.Testnet && <TestnetBanner />}
<Route
render={({ location }) => (
<React.Suspense fallback={<FullLoadingSpinner />}>
{bridgeLoaded ? (
<Switch location={location}>
<Route exact path={PAGES.VAULTS}>
<Vaults />
</Route>
<Route exact path={PAGES.VAULT}>
<Vault />
</Route>
<Route path={PAGES.VAULT}>
<Vaults />
</Route>
<Route path={PAGES.DASHBOARD}>
<Dashboard />
</Route>
<Route path={PAGES.STAKING}>
<Staking />
</Route>
<Route path={PAGES.TX}>
<TX />
</Route>
<Route path={PAGES.BTC}>
<BTC />
</Route>
<Route path={PAGES.SEND_AND_RECEIVE}>
<SendAndReceive />
</Route>
<Route path={PAGES.LOANS}>
<Loans />
</Route>
<Route path={PAGES.SWAP}>
<Swap />
</Route>
<Route path={PAGES.POOLS}>
<Pools />
</Route>
<Route path={[PAGES.HOME, PAGES.WALLET]}>
<Wallet />
</Route>
{isStrategiesEnabled && (
<>
<Route exact path={PAGES.STRATEGIES}>
<Strategies />
</Route>
)}
{isOnboardingEnabled && (
<Route path={PAGES.ONBOARDING}>
<Onboarding />
<Route path={PAGES.STRATEGY}>
<Strategy />
</Route>
)}
<Route path={PAGES.ACTIONS}>
<Actions />
</Route>
<Redirect exact from={PAGES.HOME} to={PAGES.WALLET} />
<Route path='*'>
<NoMatch />
</>
)}
{isOnboardingEnabled && (
<Route path={PAGES.ONBOARDING}>
<Onboarding />
</Route>
</Switch>
) : (
<FullLoadingSpinner />
)}
</React.Suspense>
)}
/>
</Layout>
)}
<Route path={PAGES.ACTIONS}>
<Actions />
</Route>
<Route path='*'>
<NoMatch />
</Route>
</Switch>
) : (
<FullLoadingSpinner />
)}
</React.Suspense>
)}
/>
<TransactionModal />
</Wrapper>
</Layout>
);
};

Expand Down
25 changes: 25 additions & 0 deletions src/assets/icons/ArrowPathRoundedSquare.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { forwardRef } from 'react';

import { Icon, IconProps } from '@/component-library/Icon';

const ArrowPathRoundedSquare = forwardRef<SVGSVGElement, IconProps>((props, ref) => (
<Icon
ref={ref}
xmlns='http://www.w3.org/2000/svg'
fill='none'
viewBox='0 0 24 24'
strokeWidth='1.5'
stroke='currentColor'
{...props}
>
<path
strokeLinecap='round'
strokeLinejoin='round'
d='M19.5 12c0-1.232-.046-2.453-.138-3.662a4.006 4.006 0 00-3.7-3.7 48.678 48.678 0 00-7.324 0 4.006 4.006 0 00-3.7 3.7c-.017.22-.032.441-.046.662M19.5 12l3-3m-3 3l-3-3m-12 3c0 1.232.046 2.453.138 3.662a4.006 4.006 0 003.7 3.7 48.656 48.656 0 007.324 0 4.006 4.006 0 003.7-3.7c.017-.22.032-.441.046-.662M4.5 12l3 3m-3-3l-3 3'
/>
</Icon>
));

ArrowPathRoundedSquare.displayName = 'ArrowPathRoundedSquare';

export { ArrowPathRoundedSquare };
25 changes: 25 additions & 0 deletions src/assets/icons/PresentationChartBar.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { forwardRef } from 'react';

import { Icon, IconProps } from '@/component-library/Icon';

const PresentationChartBar = forwardRef<SVGSVGElement, IconProps>((props, ref) => (
<Icon
ref={ref}
xmlns='http://www.w3.org/2000/svg'
stroke='currentColor'
viewBox='0 0 24 24'
strokeWidth={1.5}
fill='none'
{...props}
>
<path
strokeLinecap='round'
strokeLinejoin='round'
d='M3.75 3v11.25A2.25 2.25 0 006 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0118 16.5h-2.25m-7.5 0h7.5m-7.5 0l-1 3m8.5-3l1 3m0 0l.5 1.5m-.5-1.5h-9.5m0 0l-.5 1.5M9 11.25v1.5M12 9v3.75m3-6v6'
/>
</Icon>
));

PresentationChartBar.displayName = 'PresentationChartBar';

export { PresentationChartBar };
2 changes: 2 additions & 0 deletions src/assets/icons/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export { ArrowPathRoundedSquare } from './ArrowPathRoundedSquare';
export { ArrowRight } from './ArrowRight';
export { ArrowRightCircle } from './ArrowRightCircle';
export { ArrowsUpDown } from './ArrowsUpDown';
Expand All @@ -10,6 +11,7 @@ export { InformationCircle } from './InformationCircle';
export { ListBullet } from './ListBullet';
export { PencilSquare } from './PencilSquare';
export { PlusCircle } from './PlusCircle';
export { PresentationChartBar } from './PresentationChartBar';
export { Warning } from './Warning';
export { XCircle } from './XCircle';
export { XMark } from './XMark';
2 changes: 1 addition & 1 deletion src/assets/img/dysonsphere.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

1 comment on commit 3ea693e

@vercel
Copy link

@vercel vercel bot commented on 3ea693e Aug 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.