* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------

Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* 🐛 fix build

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* post update hotfixes (#580)

* fix: fixed showing 0 on farm page if no desposited vaults

* fix: chnage USDC’s name to Noble

* v2.0.1 (#579) (#582)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Linkie Link <linkielink.dev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* v2.0.1 (#579) (#583)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* Asset select overflow (#584)

* v2.0.1 (#579)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------

Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* 🐛 fix build

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------

Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* 🐛 fix build

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* post update hotfixes (#580)

* fix: fixed showing 0 on farm page if no desposited vaults

* fix: chnage USDC’s name to Noble

* v2.0.1 (#579) (#582)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Linkie Link <linkielink.dev@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* v2.0.1 (#579) (#583)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* fix: fixed the asset select overflow

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* fix: fixed the AccountDetails position

* fix: update

* Hotfixes v2.0.1 (#581) (#585)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





* post update hotfixes (#580)

* fix: fixed showing 0 on farm page if no desposited vaults

* fix: chnage USDC’s name to Noble

* v2.0.1 (#579) (#582)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------





* v2.0.1 (#579) (#583)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------





* Asset select overflow (#584)

* v2.0.1 (#579)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------





* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* post update hotfixes (#580)

* fix: fixed showing 0 on farm page if no desposited vaults

* fix: chnage USDC’s name to Noble

* v2.0.1 (#579) (#582)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------





* v2.0.1 (#579) (#583)

* Build(deps): bump @splinetool/runtime from 0.9.477 to 0.9.482 (#544)

Bumps @splinetool/runtime from 0.9.477 to 0.9.482.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...




* Build(deps-dev): bump @types/node from 20.7.0 to 20.8.6 (#548)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.7.0 to 20.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...




* Build(deps): bump @sentry/nextjs from 7.73.0 to 7.74.0 (#545)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.73.0 to 7.74.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.73.0...7.74.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




* Mp 3245 usehlsvaults hook (#541)

*  routing and pages for HLS

*  create hooks for fetching HLS vaults and Strategies

* Share accounts (#539)

* feat: do not redirect to wallet on portfolio page

* fix: use connected wallet for AccountMenu

* fix: fixed ghost AccountDetails

* feat: created ShareBar and share functionality

* fix: don’t show shareBar if no address is present

* fix: stupid 'next/navigation'

* tidy: format

* fix: fixed tests

*  routing and pages for HLS (#538)

* 🐛 use useAccountIds

* fix: fixed the tests

* fix: accountIds is now a suspense

---------



* 🐛 fix build

---------



* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* added hatched health masks (#552)

* added hatched health masks

* Mp 2837 pre commit hook (#549)

* MP-2837: added husys and lint-staged

* MP-2837: enabled lint-staged

* MP-2837: setup .prettierignore

* MP-2837: setup .prettierignore

* MP-3483: all Depo. Caps are now % filled (#551)

* MP-3487: changed the copy of the bridging intro screen (#553)

* MP-3482: replaced Max LTV with Max. Leverage (#550)

* sneak: change filled to used

* fix: fixed the foregroundColor on increase and my ocd

* ♻️ refactor table (Farm) (#555)

* ♻️ refactor table (Farm)

* 🧽 clean up PR

* 🧽 clean up PR

* Build(deps): bump @babel/traverse from 7.21.2 to 7.23.2 (#554)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.2 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...




* fix: rename withdraw to unlend (#557)

* Full refactor tables (#556)

* 📈 Improve structure generic Table component

* ♻️ Update Borrow Table and overall structure of Table comp

* ♻️ Update Lend table

*  add loading state for lend table

* 🧪 Fix unit tests

*  Add available HLS Vaults page (#558)

* Table updates (#559)

* fix: adjusted table colors and hover interactions

* fix: added actionButtons back and changed lend to APY

* fix: build update

* tidy: fixed the CircularProgress indicators on the loading  modals

* fix: relative import

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* Mp 3480 persist last trading pair (#578)

* MP-3480: remove favourite asset and prepare localStore

* env: updated shuttle, keplr and version (#566)

* fix: fixed dust left when trying to buy max amount without leverage (#565)

* feat: added squidrouter to the bridges (#561)

* feat: added squidrouter to the bridges

* fix: copy update

* MP-3521: updated the APR calculation (#572)

* Table fixes (#563)

* fix: fixed the sorting of the tables

* fix: added sorting functions

* fix: farm sorting for deposit cap

* fix: fixed Row types

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.5 to 0.5.6 (#567)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...




* Build(deps): bump react-router-dom from 6.16.0 to 6.17.0 (#571)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.17.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...




*  HLS: Add info modal (#573)

* MP-3484: remember summaryAccount tabs and auto expand both (#574)

* User feedback (#575)

* feat: added debt indicator and adjusted the borrowModal

* fix: wallet interaction fix

* Add usdc noble (#576)

* env: added USDC.n

* env: updated usdc noble variables

* fix: fixed the pool on USDC for devnet purposes

* 🐛 Fix initial status of chart (#577)

* MP-3480: persist trading pair

* fix: updated according to feedback

* fix:  remove pair from Trading View header

---------





---------





* fix: fixed the asset select overflow

---------





* fix: fixed the AccountDetails position

* fix: update

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: prevent permanent account updates by trade page (#587)

* fix: keep the selected accountId if its present int the url (#588)

* Link changelog (#589)

* env: update RPC endpoint

* feat: added changelog link to the footer version

* Refactor balances table (#590)

* env: update env.example after last sync

* tidy: refactored AccountBalancesTable

* fix: updated isCard to hideCard

* fix: do update the health on sliding the margin back to 0 (#593)

* fix: disable highlighting on non-expandable rows (#592)

* Healthfactor adjustments (#594)

* fix: do update the health on sliding the margin back to 0

* MP-3531: first updates on the health bars

* fix: added exponential function for health percentage

* fix: build fix

* tidy: refactor

* tidy: cleanup

* feat: added new curve

* fix: base set to 3.5

* env: version update

* 🌟 Add HLS Vault Modal (#595)

* 🌟 Add HLS Vault Modal

* 🛠️ Fix failing build

* fix: keep the selected accountId if its present int the url (#588)

* Link changelog (#589)

* env: update RPC endpoint

* feat: added changelog link to the footer version

* Refactor balances table (#590)

* env: update env.example after last sync

* tidy: refactored AccountBalancesTable

* fix: updated isCard to hideCard

* fix: do update the health on sliding the margin back to 0 (#593)

* fix: disable highlighting on non-expandable rows (#592)

* Healthfactor adjustments (#594)

* fix: do update the health on sliding the margin back to 0

* MP-3531: first updates on the health bars

* fix: added exponential function for health percentage

* fix: build fix

* tidy: refactor

* tidy: cleanup

* feat: added new curve

* fix: base set to 3.5

* env: version update

* 🌟 Add HLS Vault Modal

* Use `DisplayCurrency` in subtitle header

* 🔥Remove redundant component

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* fix: if HF > 1 and health === 0, return health 1 (#601)

* MP-3540: added liquidity warning (#605)

* Oracle update button (#606)

* feat: added a resync button to the header

* fix: updated the text

* fix: remove pulsing

* fix: fixed the checkbox not being clickable after select (#608)

* Mp 3360 create vault position (#607)

* 🔧 Small fixes

*  Deposit into HLS Vault + Groudnwork for HLS Staking

* Adjusted according to feedback

* Adjusted according to feedback

* Build(deps-dev): bump eslint-config-next from 13.5.4 to 14.0.0 (#599)

Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 13.5.4 to 14.0.0.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v14.0.0/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump recharts from 2.8.0 to 2.9.0 (#598)

Bumps [recharts](https://github.com/recharts/recharts) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/recharts/recharts/releases)
- [Changelog](https://github.com/recharts/recharts/blob/master/CHANGELOG.md)
- [Commits](https://github.com/recharts/recharts/compare/v2.8.0...v2.9.0)

---
updated-dependencies:
- dependency-name: recharts
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/react from 18.2.28 to 18.2.33 (#596)

Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.28 to 18.2.33.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump crypto-js from 4.1.1 to 4.2.0 (#591)

Bumps [crypto-js](https://github.com/brix/crypto-js) from 4.1.1 to 4.2.0.
- [Commits](https://github.com/brix/crypto-js/compare/4.1.1...4.2.0)

---
updated-dependencies:
- dependency-name: crypto-js
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/lodash.throttle from 4.1.7 to 4.1.8 (#569)

Bumps [@types/lodash.throttle](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash.throttle) from 4.1.7 to 4.1.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash.throttle)

---
updated-dependencies:
- dependency-name: "@types/lodash.throttle"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: waiting for script to be ready (#609)

* fix: show a loading state of the trading chart (#610)

* fix: show a loading state of the trading chart

* tidy: refactor

* Feedback implementation (#611)

* env: update wallet volnurabilities

* fix: always render TradingChart container

* fix: amounts can be a fraction of MIN_AMOUNT

* feat: added clickaway handler

* tidy: refactor

* fix: size below 0.00001 is possible for BTC and WETH

* fix: fixed tests

* Mp 3367 staking interactions (#613)

* ♻️ Refactor borrowRate to be in full numbers

* Enter into HLS Staking strategy

* HLS Staking deposited table + Portfolio pages

* tidy: refactored the masks for HealthBar

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Added dropdown button (#614)

* Add basic modal for HLS staking (#615)

* Hls staking manage actions (#622)

* Add basic modal for HLS staking

* UI components for Manage

* All Manage actions (except change lev)

* 🐛hls intro icons + checkbox, hide repay when no debt, clickable dropdown

* fix build

* Pyth history feed (#623)

* MP-3556: first PythDataFeed class

* fix: fixed the timestamp

* fix: fixed the chart data

* fix: fixed the prices

* fix: fixed the math and decimal scale

* tidy: refactor

* fix: update the pythFeedId

* fix: updated OsmosisTheGraphDataFeed

* fix: add a fallback for non pyth data

* tidy: refactor

* fix: adjusted to feedback

* Tia and stosmo (#627)

* feat: listed TIA and stOSMO

* fix: fixed USDC

* tidy: refactor the token logos

* Hls leverage (#628)

* Add basic modal for HLS staking

* UI components for Manage

* All Manage actions (except change lev)

* 🐛hls intro icons + checkbox, hide repay when no debt, clickable dropdown

* fix build

* finish all actiosn for HLS staking

* 🐛clean up tooltip props

* tidy: updated the token logos (#629)

* tidy: updated the token logos

* feat: added dydx

* hotfix: quickfix for Trade

* fix: inverted the charts

* fix: fixed the chart description

* fix: assets

* Build(deps): bump @keplr-wallet/cosmos from 0.12.39 to 0.12.42 (#634)

Bumps @keplr-wallet/cosmos from 0.12.39 to 0.12.42.

---
updated-dependencies:
- dependency-name: "@keplr-wallet/cosmos"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Borrow Rate to APY (#632)

* fix: changed Borrow Rate to Borrow Rate APY

* fix: regarding feedback

* Auto repay on trade (#631)

* fix: fixed the trading chart load

* fix: prevent wrapped checkboxes to be double clicked

* fix: refactored funding account modal

* fix: fixed modal classes

* fix: adjusted width classes

* fix: fixed updating states

* tidy: format

* fix: fixed the slider masks

* fix: fixed the slider masks

* listed: TIA and USDT

* fix: fixed the slider initial position

* env: version update

* fix: fixed priceFeedIds

* Hls latest (#637)

* env: enable HLS

* feat: added background and orb fading

* tidy: updated the token logos (#629)

* tidy: updated the token logos

* feat: added dydx

* fix: increase load spead of trading charts

* feat: first version of the UI shift

* Deployment for HLS testing

*  add APY to HLS staking

*  add APY account overview and summary

* fix: fixed the intro component visibility

*  add warning messages HLS

* fix: menu order

*  implement live APRs

* auto-select first account, add no balance message

* enable tabs for hls, fix net APY for deposit

* fix button for hls, sorting apy and console warnings

* disable feature flag HLS

* fix slider

* update routing

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Build(deps): bump postcss from 8.4.23 to 8.4.31 (#624)

Bumps [postcss](https://github.com/postcss/postcss) from 8.4.23 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.23...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump zustand from 4.4.3 to 4.4.6 (#621)

Bumps [zustand](https://github.com/pmndrs/zustand) from 4.4.3 to 4.4.6.
- [Release notes](https://github.com/pmndrs/zustand/releases)
- [Commits](https://github.com/pmndrs/zustand/compare/v4.4.3...v4.4.6)

---
updated-dependencies:
- dependency-name: zustand
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @sentry/nextjs from 7.74.0 to 7.77.0 (#625)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.74.0 to 7.77.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.74.0...7.77.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/react-dom from 18.2.13 to 18.2.15 (#633)

Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 18.2.13 to 18.2.15.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump eslint from 8.51.0 to 8.53.0 (#620)

Bumps [eslint](https://github.com/eslint/eslint) from 8.51.0 to 8.53.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.51.0...v8.53.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump eslint-plugin-import from 2.28.1 to 2.29.0 (#617)

Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.28.1 to 2.29.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.28.1...v2.29.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* MP-3564: added navigation dropdown and Governance NavLink (#639)

* MP-2887: added ICNS and ICP support (#638)

* MP-2887: added ICNS and ICP support

:

* fix: removed unessecary package

* Build(deps): bump recharts from 2.9.0 to 2.10.1 (#640)

Bumps [recharts](https://github.com/recharts/recharts) from 2.9.0 to 2.10.1.
- [Release notes](https://github.com/recharts/recharts/releases)
- [Changelog](https://github.com/recharts/recharts/blob/master/CHANGELOG.md)
- [Commits](https://github.com/recharts/recharts/compare/v2.9.0...v2.10.1)

---
updated-dependencies:
- dependency-name: recharts
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump eslint from 8.53.0 to 8.54.0 (#641)

Bumps [eslint](https://github.com/eslint/eslint) from 8.53.0 to 8.54.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.53.0...v8.54.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/react-helmet from 6.1.7 to 6.1.9 (#642)

Bumps [@types/react-helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-helmet) from 6.1.7 to 6.1.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-helmet)

---
updated-dependencies:
- dependency-name: "@types/react-helmet"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/lodash.debounce from 4.0.7 to 4.0.9 (#643)

Bumps [@types/lodash.debounce](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash.debounce) from 4.0.7 to 4.0.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash.debounce)

---
updated-dependencies:
- dependency-name: "@types/lodash.debounce"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update HC for Margin trade and HLS (#645)

* Update HC for Margin trade and HLS

* fix relative imports

* fix: added clickaway handler and fixed z-index issues (#646)

* v2.0.6 and use feature flag for auto repay (#650)

* 🐛incorrect deposit cap utilization (#647)

* Initialize perps (#648)

* setup routing

* add basic perps interface

* small fix

* feat: listed dydx and AKT (#652)

* Deposit Cap and Utilization Fix (#654)

* fix: fixed the deposit cap and total supplied / utilization rate

* fix: fixed build

* fix: fixed build

* fix: avoid deposit cap usage over 100%

* refactor market data apy/ltv

* fix: fixed the withdraw from vaults modal

* tidy: refactor

---------

Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* stATOM and stOSMO TradingView support (#653)

* feat: listed dydx and AKT

* fix: removed theGraph support for now

* finish adding liquidation price (#649)

* finish adding liquidation price

* fix minor issues

* v2.0.6 and use feature flag for auto repay (#650)

* 🐛incorrect deposit cap utilization (#647)

* Initialize perps (#648)

* setup routing

* add basic perps interface

* small fix

* feat: listed dydx and AKT (#652)

* Deposit Cap and Utilization Fix (#654)

* fix: fixed the deposit cap and total supplied / utilization rate

* fix: fixed build

* fix: fixed build

* fix: avoid deposit cap usage over 100%

* refactor market data apy/ltv

* fix: fixed the withdraw from vaults modal

* tidy: refactor

---------

Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* stATOM and stOSMO TradingView support (#653)

* feat: listed dydx and AKT

* fix: removed theGraph support for now

* adjust liq price loading and null/0 values

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Auto Lend Switch (#660)

* refactor: moved the autolend logic to the switch

* tidy: update default value

* adjust logic of auto-lend for switch component

---------

Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* temp: remove liquidation price (#661)

* Revert "temp: remove liquidation price (#661)" (#663)

This reverts commit 0cba668c82.

* 🐛 fix liquidation price (#664)

* Hls text fixes (#667)

* 🐛 incorrect vault values calc

* 🐛 incorrect message for no balance in wallet hls

* 🐛 hls message on keep leverage

* update to correct wasm files

* update to correct wasm files

* v2.1.0 (#669)

* Repay from Wallet (#673)

* feat: added repay from wallet

* tidy: refactor

* UX/UI finetuning (#672)

* feat: added Buy/Sell token ratio to the TradingView header

* fix: changed the order in the trading view description

* feat: added minute timeframe to the chart

* fix: changed WBTC to WBTC/USD pyth price feed

* fix: adjusted HLS health curve

* fix: made HLS accounts unselectable

* copy: changed the APY range and Strategy text

* tidy: fix the tables layout to be more readable

* fix: change the precision of the Trading chart header

* feat: added summary collapsable

* fix: removed Debt Column for active HLS positions

* fix: added Memo to TVChart

* fix: adjust Trade page layout

* tidy: refactor table meta

* fix: DisplayCurrency is able to take options now

* tidy: remove unneeded typesafety

* fix: adjusted according feedback

* env: enabled autoRepay and updated version

* fix: auto-repay

* fix: disable lend on auto repay on trade

* tidy: refactor

* feat: make USDC the standard secondary asset (for trade) (#681)

* Add usePerpsMarket hook and adjust routing (#680)

* Add usePerpsMarket hook and adjust routing

* fix: enable 7 links in the header

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Liq price in balances (#679)

* add liquidation price to balances table trade

* add depositcap to HLS

* fix: add width classes to the balances table, remove abbreviation, remove flicker

* fix: fixed the account selection and added a tooltip

* fix wasm file for debt liquidation price

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* added sharp (#682)

* env: added sharp

* fix: use dvh over vh

* add cache for asset params (#683)

* Build(deps): bump @sentry/nextjs from 7.77.0 to 7.84.0 (#677)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.77.0 to 7.84.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.77.0...7.84.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @splinetool/runtime from 0.9.482 to 0.9.516 (#676)

Bumps @splinetool/runtime from 0.9.482 to 0.9.516.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/react from 18.2.33 to 18.2.41 (#675)

Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.33 to 18.2.41.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump react-helmet-async from 1.3.0 to 2.0.3 (#674)

Bumps [react-helmet-async](https://github.com/staylor/react-helmet-async) from 1.3.0 to 2.0.3.
- [Release notes](https://github.com/staylor/react-helmet-async/releases)
- [Commits](https://github.com/staylor/react-helmet-async/commits)

---
updated-dependencies:
- dependency-name: react-helmet-async
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @adobe/css-tools from 4.3.1 to 4.3.2 (#671)

Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2.
- [Changelog](https://github.com/adobe/css-tools/blob/main/History.md)
- [Commits](https://github.com/adobe/css-tools/commits)

---
updated-dependencies:
- dependency-name: "@adobe/css-tools"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/debounce-promise from 3.1.7 to 3.1.9 (#659)

Bumps [@types/debounce-promise](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/debounce-promise) from 3.1.7 to 3.1.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/debounce-promise)

---
updated-dependencies:
- dependency-name: "@types/debounce-promise"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Simple spot trading (#684)

* env: added sharp

* fix: use dvh over vh

* feat: prepared the trade view for perps and spot

* fix: adjusted heights for Trade

* feat: added Navigation submenu

* feat: added first interface itteration

* feat: added logic

* feat: added pairsList

* feat: finished Trade Spot Simple

* fix: fixed Sell button

* fix: adjusted capLeft logic and added sorting util

* fix: order of values

* fix: fixed the autoLend switch to be deselectable

* env: bump version

* fix: changes according to feedback

* fix: fixed naming

* tidy: refactor

* fix: set default stable to USDC.axl

* Build(deps): bump @splinetool/runtime from 0.9.516 to 0.9.521 (#690)

Bumps @splinetool/runtime from 0.9.516 to 0.9.521.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump eslint-config-next from 14.0.0 to 14.0.4 (#687)

Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 14.0.0 to 14.0.4.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v14.0.4/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/react-helmet from 6.1.9 to 6.1.11 (#688)

Bumps [@types/react-helmet](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-helmet) from 6.1.9 to 6.1.11.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-helmet)

---
updated-dependencies:
- dependency-name: "@types/react-helmet"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump lint-staged from 15.0.1 to 15.2.0 (#689)

Bumps [lint-staged](https://github.com/okonet/lint-staged) from 15.0.1 to 15.2.0.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/master/CHANGELOG.md)
- [Commits](https://github.com/okonet/lint-staged/compare/v15.0.1...v15.2.0)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: fixed deposit cap being negative

* add execute message page (#694)

* fix negative deposit cap, make trade pair selected button (#695)

* fix: fixed the swap message for multihop swaps (#701)

* fix: fixed the swap message for multihop swaps

* fix: according to feedback

* feat: added PYTH logo to the trade chart (#705)

* Added chain agnostic v2 (#710)

* update assets config and chains

* make clients dynamic

* feat: formatted ChainSelect

* fix infinite rerender on trade page

* feat: added NTRN icon

* fix: fixed ChainInfoID

* fix: fixed autoLendEnabled for NTRN

* fix: fixed the navigation and dependencies

* fix: fixed the pricefeed id

* fix: fixed the header menu

* fix: fixed the trading charts

* fix: fixed the healthbars

* fix: fixed naming of pion-1

* feast: updated xdefi image

* env: updated contracts

* make localStorage chain agnostic

* fix: made the selected chain persistant

* fix: fixed the wallet providers

* fix: updated auto connect

* fix: fixed auto connecting

* fix: added ChainSelect to focusMode

* store raw strings in localstorage

* 🔥 remnove tests

* update caching keys + disconnect wallet on change chain

* fix: fixed the chain select

* env: bumped version

---------

Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>

* Build(deps): bump zustand from 4.4.6 to 4.4.7 (#699)

Bumps [zustand](https://github.com/pmndrs/zustand) from 4.4.6 to 4.4.7.
- [Release notes](https://github.com/pmndrs/zustand/releases)
- [Commits](https://github.com/pmndrs/zustand/compare/v4.4.6...v4.4.7)

---
updated-dependencies:
- dependency-name: zustand
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/node from 20.8.6 to 20.10.6 (#707)

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.8.6 to 20.10.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @sentry/nextjs from 7.84.0 to 7.91.0 (#704)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.84.0 to 7.91.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.84.0...7.91.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Perp queries (#711)

* update assets config and chains

* make clients dynamic

* feat: formatted ChainSelect

* fix infinite rerender on trade page

* feat: added NTRN icon

* fix: fixed ChainInfoID

* fix: fixed autoLendEnabled for NTRN

* fix: fixed the navigation and dependencies

* fix: fixed the pricefeed id

* fix: fixed the header menu

* fix: fixed the trading charts

* fix: fixed the healthbars

* fix: fixed naming of pion-1

* feast: updated xdefi image

* env: updated contracts

* make localStorage chain agnostic

* fix: made the selected chain persistant

* fix: fixed the wallet providers

* fix: updated auto connect

* fix: fixed auto connecting

* fix: added ChainSelect to focusMode

* store raw strings in localstorage

* 🔥 remnove tests

* update caching keys + disconnect wallet on change chain

* update contract types and add perps asset select overlay

* fix build + add perps positions to accounts

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Perp queries (#712)

* update assets config and chains

* make clients dynamic

* feat: formatted ChainSelect

* fix infinite rerender on trade page

* feat: added NTRN icon

* fix: fixed ChainInfoID

* fix: fixed autoLendEnabled for NTRN

* fix: fixed the navigation and dependencies

* fix: fixed the pricefeed id

* fix: fixed the header menu

* fix: fixed the trading charts

* fix: fixed the healthbars

* fix: fixed naming of pion-1

* feast: updated xdefi image

* env: updated contracts

* make localStorage chain agnostic

* fix: made the selected chain persistant

* fix: fixed the wallet providers

* fix: updated auto connect

* fix: fixed auto connecting

* fix: added ChainSelect to focusMode

* store raw strings in localstorage

* 🔥 remnove tests

* update caching keys + disconnect wallet on change chain

* update contract types and add perps asset select overlay

* fix build + add perps positions to accounts

* fix healthcomputer errors

* fix healthcomputer errors

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Cleanup env variables (#713)

* fix: cleaned up env variables and disabled chain selector if there is only one chain

* env: update .env.example

* Add perps balances table (#714)

* Add perps balances table

* fix: updated svg

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* fix: fixed unlend on withdraw with borrow (#720)

* fix: fixed unlend on withdraw with borrow

* fix: fixed the logic

* fix: lending on funding

* Extend perps (#721)

* Build(deps): bump @cosmjs/cosmwasm-stargate from 0.31.1 to 0.32.2 (#719)

Bumps [@cosmjs/cosmwasm-stargate](https://github.com/cosmos/cosmjs) from 0.31.1 to 0.32.2.
- [Changelog](https://github.com/cosmos/cosmjs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/cosmos/cosmjs/compare/v0.31.1...v0.32.2)

---
updated-dependencies:
- dependency-name: "@cosmjs/cosmwasm-stargate"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Build(deps-dev): bump eslint from 8.54.0 to 8.56.0 (#715)

Bumps [eslint](https://github.com/eslint/eslint) from 8.54.0 to 8.56.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.54.0...v8.56.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Build(deps): bump sharp from 0.33.0 to 0.33.1 (#717)

Bumps [sharp](https://github.com/lovell/sharp) from 0.33.0 to 0.33.1.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.33.0...v0.33.1)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* Build(deps): bump follow-redirects from 1.15.2 to 1.15.4 (#722)

Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.2 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.2...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Pyth price fetching (#723)

* env: remove testing library

* fix: use pyth over oracle

* fix: fix the endpoints

* fix: fix build

* tidy: refactor

* fix: fixed account fetching

* fix: made all queries chain agnostic

* fix: fixed the chart position

* fix swap fee for osmosis (#725)

* Websocket implementation (#726)

* feat: first steps

* feat: added websocket support and set the TradingChart to USD

* fix: oracle staleness button

* fix: set the background to solid and overide backgroundGradient settings (#727)

* Edit perps position (#728)

* add functional funding rate + selector (#729)

* add functional funding rate + selector

* Edit perps position (#728)

* refactor components folder (#734)

* refactor components folder

* create leverage slider variants

* Deposit cap highlighting (#735)

* feat: added depositCap highlighting

* feat: added depositCap highlighting

* Custom Pyth Endpoint & Price Data on Tx's (#736)

* env: remove testing library

* fix: use pyth over oracle

* fix: fix the endpoints

* fix: fix build

* tidy: refactor

* fix: fixed account fetching

* fix: made all queries chain agnostic

* fix: fixed the chart position

* feat: added basic auth

* fix: added env validation

* fix: added ‘no-cors’ and included credentials

* fix: removed ‘no-cors’ mode

* fix: change the isLessThanACent logic

* tidy: console log

* fix: added fallback api

* feat: progress on pythVaas

* fix: getting prices

* fix: try catch

* feat: add pythPriceData to transactions based on setting

* fix: disable Pyth Update when user uses Ledger

* tidy: copy

* Miscellaneous (#737)

* fix: sorted assets by value

* tidy: refactored AssetsSelectTable

* fix: fixed the multipleVaultWithdraw Modal

* change labels for leverage slider (#738)

* Build(deps): bump sharp from 0.33.1 to 0.33.2 (#731)

Bumps [sharp](https://github.com/lovell/sharp) from 0.33.1 to 0.33.2.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.33.1...v0.33.2)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: added external links and marked them accordingly (#740)

* Build(deps-dev): bump prettier from 3.0.3 to 3.2.4 (#741)

Bumps [prettier](https://github.com/prettier/prettier) from 3.0.3 to 3.2.4.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.0.3...3.2.4)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @sentry/nextjs from 7.91.0 to 7.94.1 (#743)

Bumps [@sentry/nextjs](https://github.com/getsentry/sentry-javascript) from 7.91.0 to 7.94.1.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.91.0...7.94.1)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump react-router-dom from 6.17.0 to 6.21.3 (#744)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.17.0 to 6.21.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.21.3/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* add hooks to fetch route (#739)

* add hooks to fetch route

* add missing routes endpoint for pion1

* feat: created AccountPerpsPositions for the AccountDetails component (#745)

* feat: created AccountPerpsPositions for the AccountDetails component

* fix: type fixing

* feat: added ToolTip

* tidy: refactor

* fix: added unrealized PnL placeholder

* tidy: finetune on the border color

* fix: fixed tables

* fix: adjustments according to feedback

* fix: fixed lent assets table

* fix: fixed typing

* refactor: streamline size to amount

* tidy: remove console.log

* fixed refetchgin of account data (#747)

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* fix: fixed merge issues

* fix: hide Perp Positions on Osmosis

* tidy: refactor

* Moved Markets data to SWR (#749)

* Build(deps-dev): bump prettier-plugin-tailwindcss from 0.5.6 to 0.5.11 (#751)

Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.6 to 0.5.11.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.6...v0.5.11)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump autoprefixer from 10.4.16 to 10.4.17 (#753)

Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.16 to 10.4.17.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.16...10.4.17)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump eslint-plugin-import from 2.29.0 to 2.29.1 (#752)

Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.29.0 to 2.29.1.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.29.0...v2.29.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump dotenv from 16.3.1 to 16.4.1 (#754)

Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.3.1 to 16.4.1.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.3.1...v16.4.1)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Linkie Link <linkielink.dev@gmail.com>

* fix: replaces the store with useChainConfig (#755)

* Withdraw and fund fix (#756)

* fix: fixed markets.find(byDenom())

* fix: fixed the account Summary in modals

* fix: fixed the withdraw lent assets logic

* Perps account preview (#750)

* fix: fixed the Liquidation Price inside the TradeSummary

* feat: added account preview

* tidy: refactor

* feat: added HLS intro

* fix: closing the wallet select focusComponent

* fix: added perps position update to edit as well

* fix: fix update perp

* fix: fail catch

* fix: implemented suggest changes

* tidy: fix

* fix: unfix

* fix: created helper function

* tidy: console.log

* Mp 2182 convert api folder to swr hooks (#758)

* moved api/openingFee to hook

* moved api/icns and api/balances to hooks

* moved api/assetIncentivesApy to hooks

* moved api/incentives to hooks

* fix relative import

* List milkTIA (#757)

* tidy: update svgs

* feat: list milkTIA

* env: updated the version

* fix: fixed null return of RedBank

* fix: useMarketEnabledAssets

* fix: fixed merge errors

* fix: fixed the useSWR key for vaults

* update osmosis nodes to Rhino (#762)

* perps: remove modify module and adjust main module (#761)

* perps: remove modify module and adjust main module

* fix build

* Build(deps): bump react-toastify from 9.1.3 to 10.0.4 (#764)

Bumps [react-toastify](https://github.com/fkhadra/react-toastify) from 9.1.3 to 10.0.4.
- [Release notes](https://github.com/fkhadra/react-toastify/releases)
- [Commits](https://github.com/fkhadra/react-toastify/compare/v9.1.3...v10.0.4)

---
updated-dependencies:
- dependency-name: react-toastify
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @tanstack/react-table from 8.11.7 to 8.11.8 (#765)

Bumps [@tanstack/react-table](https://github.com/TanStack/table/tree/HEAD/packages/react-table) from 8.11.7 to 8.11.8.
- [Release notes](https://github.com/TanStack/table/releases)
- [Commits](https://github.com/TanStack/table/commits/v8.11.8/packages/react-table)

---
updated-dependencies:
- dependency-name: "@tanstack/react-table"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): bump @splinetool/runtime from 0.9.526 to 1.0.47 (#766)

Bumps @splinetool/runtime from 0.9.526 to 1.0.47.

---
updated-dependencies:
- dependency-name: "@splinetool/runtime"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump @types/react-dom from 18.2.15 to 18.2.18 (#767)

Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 18.2.15 to 18.2.18.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): bump typescript from 5.2.2 to 5.3.3 (#768)

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.2.2 to 5.3.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.2.2...v5.3.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: use the chartView LocalStore to load the last set resolution (#769)

* fix: fixed favorite asset select (#770)

* Morph summary (#763)

* fix: fixed mobile issues with SVGs

* feat: first morphing AccountDetails

* tidy: composition refresh

* tidy: fine adjusting

* fix: svg fixes

* feat: updated summary structure

* feat: overall layout adjustments

* fix: fixed svg adjustments

* feat: finished AccountSummary update

* fix: fixed build

* tidy: refactor

* fix: fix enourmous APYs

* fix: don’t abbreviate APYs

* tidy: console.log

* fix: fix borrow Rate sorting

* fix: fixed scrollbars

* fix: hide scrollbars

* fix: resolved feedback

* fix: amount not size

* feat: only show credit account number outside of modals

* fix: added missing Strategies to PortfolioAccount

* fix: save some space

* feat: preperations for open sourcing the repo (#771)

* feat: preperations for open sourcing the repo

* fix: don’t use an apikey if there is none set

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bob van der Helm <34470358+bobthebuidlr@users.noreply.github.com>
This commit is contained in:
Linkie Link 2024-02-06 11:07:22 +01:00 committed by GitHub
parent ae04164d6f
commit 580727187f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
105 changed files with 1467 additions and 732 deletions

View File

@ -1,16 +1,16 @@
## Mandatory Environment Variables
NEXT_PUBLIC_NETWORK=mainnet NEXT_PUBLIC_NETWORK=mainnet
NEXT_PUBLIC_WALLET_CONNECT_ID=abcdefghijklmnopqrstuvwxyz
NEXT_PUBLIC_OSMOSIS_RPC=https://osmosis-node.marsprotocol.io/GGSFGSFGFG34/osmosis-rpc-front/ ### Optional Environment Variables
NEXT_PUBLIC_OSMOSIS_REST=https://osmosis-node.marsprotocol.io/GGSFGSFGFG34/osmosis-lcd-front/ NEXT_PUBLIC_OSMOSIS_RPC=https://rpc-osmosis.blockapsis.com/
NEXT_PUBLIC_OSMOSIS_REST=https://lcd-osmosis.blockapsis.com/
NEXT_PUBLIC_OSMOSIS_TEST_RPC=https://rpc.devnet.osmosis.zone/ NEXT_PUBLIC_OSMOSIS_TEST_RPC=https://rpc.devnet.osmosis.zone/
NEXT_PUBLIC_OSMOSIS_TEST_REST=https://lcd.devnet.osmosis.zone/ NEXT_PUBLIC_OSMOSIS_TEST_REST=https://lcd.devnet.osmosis.zone/
NEXT_PUBLIC_NEUTRON_TEST_RPC=https://rpc-palvus.pion-1.ntrn.tech/ NEXT_PUBLIC_NEUTRON_TEST_RPC=https://rpc-palvus.pion-1.ntrn.tech/
NEXT_PUBLIC_NEUTRON_TEST_REST=https://rest-palvus.pion-1.ntrn.tech/ NEXT_PUBLIC_NEUTRON_TEST_REST=https://rest-palvus.pion-1.ntrn.tech/
NEXT_PUBLIC_WALLET_CONNECT_ID=d93fdffb159bae5ec87d8fee4cdbb045 ### Enable the following environment variables if you have access to the charting library
CHARTING_LIBRARY_USERNAME=git_username CHARTING_LIBRARY_USERNAME=git_username
CHARTING_LIBRARY_ACCESS_TOKEN=access_token CHARTING_LIBRARY_ACCESS_TOKEN=access_token
CHARTING_LIBRARY_REPOSITORY=github.com/tradingview/charting_library/ CHARTING_LIBRARY_REPOSITORY=github.com/tradingview/charting_library/
NEXT_PUBLIC_PYTH_API=https://mars.rpc.p2p.world/api

View File

@ -1,6 +1,6 @@
{ {
"name": "mars-v2-frontend", "name": "mars-v2-frontend",
"version": "2.2.1", "version": "2.2.2",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "yarn validate-env && next build", "build": "yarn validate-env && next build",
@ -25,9 +25,9 @@
"@keplr-wallet/cosmos": "^0.12.42", "@keplr-wallet/cosmos": "^0.12.42",
"@sentry/nextjs": "^7.94.1", "@sentry/nextjs": "^7.94.1",
"@splinetool/react-spline": "^2.2.6", "@splinetool/react-spline": "^2.2.6",
"@splinetool/runtime": "^0.9.521", "@splinetool/runtime": "^1.0.47",
"@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/container-queries": "^0.1.1",
"@tanstack/react-table": "^8.10.6", "@tanstack/react-table": "^8.11.8",
"@tippyjs/react": "^4.2.6", "@tippyjs/react": "^4.2.6",
"bignumber.js": "^9.1.2", "bignumber.js": "^9.1.2",
"classnames": "^2.3.2", "classnames": "^2.3.2",
@ -45,7 +45,7 @@
"react-qr-code": "^2.0.12", "react-qr-code": "^2.0.12",
"react-router-dom": "^6.21.3", "react-router-dom": "^6.21.3",
"react-spring": "^9.7.3", "react-spring": "^9.7.3",
"react-toastify": "^9.1.3", "react-toastify": "^10.0.4",
"react-use-clipboard": "^1.0.9", "react-use-clipboard": "^1.0.9",
"recharts": "^2.10.1", "recharts": "^2.10.1",
"sharp": "^0.33.2", "sharp": "^0.33.2",
@ -60,7 +60,7 @@
"@types/lodash.throttle": "^4.1.8", "@types/lodash.throttle": "^4.1.8",
"@types/node": "^20.10.6", "@types/node": "^20.10.6",
"@types/react": "18.2.41", "@types/react": "18.2.41",
"@types/react-dom": "18.2.15", "@types/react-dom": "18.2.18",
"@types/react-helmet": "^6.1.11", "@types/react-helmet": "^6.1.11",
"autoprefixer": "^10.4.17", "autoprefixer": "^10.4.17",
"dotenv": "^16.4.1", "dotenv": "^16.4.1",
@ -75,6 +75,6 @@
"prettier-plugin-tailwindcss": "^0.5.11", "prettier-plugin-tailwindcss": "^0.5.11",
"shelljs": "^0.8.5", "shelljs": "^0.8.5",
"tailwindcss": "^3.3.3", "tailwindcss": "^3.3.3",
"typescript": "5.2.2" "typescript": "5.3.3"
} }
} }

View File

@ -1,7 +1,7 @@
import { useCallback, useState } from 'react' import { useCallback, useState } from 'react'
import Modal from 'components/Modals/Modal' import Modal from 'components/Modals/Modal'
import CurrentAccountSummary from 'components/account/CurrentAccountSummary' import AccountSummaryInModal from 'components/account/AccountSummary/AccountSummaryInModal'
import Button from 'components/common/Button' import Button from 'components/common/Button'
import Card from 'components/common/Card' import Card from 'components/common/Card'
import Divider from 'components/common/Divider' import Divider from 'components/common/Divider'
@ -10,6 +10,7 @@ import Text from 'components/common/Text'
import TokenInputWithSlider from 'components/common/TokenInput/TokenInputWithSlider' import TokenInputWithSlider from 'components/common/TokenInput/TokenInputWithSlider'
import AssetImage from 'components/common/assets/AssetImage' import AssetImage from 'components/common/assets/AssetImage'
import { BN_ZERO } from 'constants/math' import { BN_ZERO } from 'constants/math'
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
import { BNCoin } from 'types/classes/BNCoin' import { BNCoin } from 'types/classes/BNCoin'
import { byDenom } from 'utils/array' import { byDenom } from 'utils/array'
import { BN } from 'utils/helpers' import { BN } from 'utils/helpers'
@ -38,7 +39,7 @@ export default function AssetAmountSelectActionModal(props: Props) {
} = props } = props
const [amount, setAmount] = useState(BN_ZERO) const [amount, setAmount] = useState(BN_ZERO)
const maxAmount = BN(coinBalances.find(byDenom(asset.denom))?.amount ?? 0) const maxAmount = BN(coinBalances.find(byDenom(asset.denom))?.amount ?? 0)
const account = useCurrentAccount()
const handleAmountChange = useCallback( const handleAmountChange = useCallback(
(value: BigNumber) => { (value: BigNumber) => {
setAmount(value) setAmount(value)
@ -51,6 +52,7 @@ export default function AssetAmountSelectActionModal(props: Props) {
onAction(amount, amount.isEqualTo(maxAmount)) onAction(amount, amount.isEqualTo(maxAmount))
}, [amount, maxAmount, onAction]) }, [amount, maxAmount, onAction])
if (!account) return
return ( return (
<Modal <Modal
onClose={onClose} onClose={onClose}
@ -87,7 +89,7 @@ export default function AssetAmountSelectActionModal(props: Props) {
rightIcon={<ArrowRight />} rightIcon={<ArrowRight />}
/> />
</Card> </Card>
<CurrentAccountSummary /> <AccountSummaryInModal account={account} />
</div> </div>
</Modal> </Modal>
) )

View File

@ -29,6 +29,7 @@ import { byDenom } from 'utils/array'
import { formatPercent } from 'utils/formatters' import { formatPercent } from 'utils/formatters'
import { BN } from 'utils/helpers' import { BN } from 'utils/helpers'
import { getDebtAmountWithInterest } from 'utils/tokens' import { getDebtAmountWithInterest } from 'utils/tokens'
import AccountSummaryInModal from 'components/account/AccountSummary/AccountSummaryInModal'
interface Props { interface Props {
account: Account account: Account
@ -347,7 +348,7 @@ function BorrowModal(props: Props) {
rightIcon={<ArrowRight />} rightIcon={<ArrowRight />}
/> />
</Card> </Card>
<AccountSummary account={account} /> <AccountSummaryInModal account={account} />
</div> </div>
</Modal> </Modal>
) )

View File

@ -1,5 +1,4 @@
import classNames from 'classnames' import classNames from 'classnames'
import React from 'react'
import DisplayCurrency from 'components/common/DisplayCurrency' import DisplayCurrency from 'components/common/DisplayCurrency'
import { ExclamationMarkTriangle } from 'components/common/Icons' import { ExclamationMarkTriangle } from 'components/common/Icons'
@ -40,8 +39,10 @@ export function CollateralSubTitle(props: CollateralSubTitleProps) {
if (!props.isOpen && props.amount.isZero()) { if (!props.isOpen && props.amount.isZero()) {
return ( return (
<div className='flex gap-2'> <div className='flex gap-2'>
<ExclamationMarkTriangle width={24} className='text-warning' /> <div className='w-6'>
<Text className='text-warning mt-1' size='xs' tag='span'> <ExclamationMarkTriangle className='text-warning' />
</div>
<Text className='mt-1 text-warning' size='xs' tag='span'>
You have not provided any collateral. You have not provided any collateral.
</Text> </Text>
</div> </div>
@ -111,8 +112,10 @@ export function SelectAccountSubTitle(props: SelectAccountSubTitleProps) {
if (!props.selectedAccountId && props.isSummaryOpen) { if (!props.selectedAccountId && props.isSummaryOpen) {
return ( return (
<div className='flex gap-2'> <div className='flex gap-2'>
<ExclamationMarkTriangle width={24} className='text-warning' /> <div className='w-6'>
<Text className='text-warning mt-1' size='xs' tag='span'> <ExclamationMarkTriangle className='text-warning' />
</div>
<Text className='mt-1 text-warning' size='xs' tag='span'>
You need to {props.type} an account You need to {props.type} an account
</Text> </Text>
</div> </div>

View File

@ -1,10 +1,10 @@
import classNames from 'classnames' import classNames from 'classnames'
import React from 'react' import React from 'react'
import AccountSummary from 'components/account/AccountSummary'
import Card from 'components/common/Card' import Card from 'components/common/Card'
import { CircularProgress } from 'components/common/CircularProgress' import { CircularProgress } from 'components/common/CircularProgress'
import Modal, { ModalProps } from 'components/Modals/Modal' import Modal, { ModalProps } from 'components/Modals/Modal'
import AccountSummaryInModal from 'components/account/AccountSummary/AccountSummaryInModal'
interface Props extends ModalProps { interface Props extends ModalProps {
isHls?: boolean isHls?: boolean
@ -46,7 +46,7 @@ export default function ModalContentWithSummary(props: Props) {
> >
{props.subHeader && props.subHeader} {props.subHeader && props.subHeader}
{modalContent(props.content, props.isContentCard, props.account)} {modalContent(props.content, props.isContentCard, props.account)}
{props.account && <AccountSummary account={props.account} isHls={props.isHls} />} {props.account && <AccountSummaryInModal account={props.account} isHls={props.isHls} />}
</Modal> </Modal>
) )
} }

View File

@ -1,11 +1,11 @@
import { useCallback, useMemo, useState } from 'react' import { useCallback, useMemo, useState } from 'react'
import Accordion from 'components/common/Accordion'
import AccountSummary from 'components/account/AccountSummary'
import VaultBorrowings from 'components/Modals/Vault/VaultBorrowings' import VaultBorrowings from 'components/Modals/Vault/VaultBorrowings'
import VaultBorrowingsSubTitle from 'components/Modals/Vault/VaultBorrowingsSubTitle' import VaultBorrowingsSubTitle from 'components/Modals/Vault/VaultBorrowingsSubTitle'
import VaultDeposit from 'components/Modals/Vault/VaultDeposits' import VaultDeposit from 'components/Modals/Vault/VaultDeposits'
import VaultDepositSubTitle from 'components/Modals/Vault/VaultDepositsSubTitle' import VaultDepositSubTitle from 'components/Modals/Vault/VaultDepositsSubTitle'
import AccountSummaryInModal from 'components/account/AccountSummary/AccountSummaryInModal'
import Accordion from 'components/common/Accordion'
import Text from 'components/common/Text' import Text from 'components/common/Text'
import { BN_ZERO } from 'constants/math' import { BN_ZERO } from 'constants/math'
import useAllAssets from 'hooks/assets/useAllAssets' import useAllAssets from 'hooks/assets/useAllAssets'
@ -177,8 +177,7 @@ export default function VaultModalContent(props: Props) {
}, },
]} ]}
/> />
<AccountSummaryInModal account={props.account} />
<AccountSummary account={props.account} />
</div> </div>
) )
} }

View File

@ -28,7 +28,7 @@ export default function WalletConnectButton(props: Props) {
return ( return (
<Button <Button
variant={props.variant ?? 'solid'} variant={props.variant ?? 'solid'}
color={props.color ?? 'tertiary'} color={props.color ?? 'secondary'}
size={props.size ?? 'sm'} size={props.size ?? 'sm'}
disabled={props.disabled} disabled={props.disabled}
onClick={handleClick} onClick={handleClick}

View File

@ -17,7 +17,7 @@ import { FC } from 'react'
import chains from 'configs/chains' import chains from 'configs/chains'
import { WALLETS } from 'constants/wallets' import { WALLETS } from 'constants/wallets'
import { ChainInfoID, WalletID } from 'types/enums/wallet' import { WalletID } from 'types/enums/wallet'
type Props = { type Props = {
children?: React.ReactNode children?: React.ReactNode
@ -37,23 +37,6 @@ function mapChainConfigToChainInfo(chainConfig: ChainConfig): ChainInfo {
features: ['ibc-transfer', 'ibc-go'], features: ['ibc-transfer', 'ibc-go'],
} }
switch (chainConfig.id) {
case ChainInfoID.Osmosis1:
chainInfo.rpc = process.env.NEXT_PUBLIC_OSMOSIS_RPC ?? chainInfo.rpc
chainInfo.rest = process.env.NEXT_PUBLIC_OSMOSIS_REST ?? chainInfo.rpc
break
case ChainInfoID.OsmosisDevnet:
chainInfo.rpc = process.env.NEXT_PUBLIC_OSMOSIS_TEST_RPC ?? chainInfo.rpc
chainInfo.rest = process.env.NEXT_PUBLIC_OSMOSIS_TEST_REST ?? chainInfo.rpc
break
case ChainInfoID.Pion1:
chainInfo.rpc = process.env.NEXT_PUBLIC_NEUTRON_TEST_RPC ?? chainInfo.rpc
chainInfo.rest = process.env.NEXT_PUBLIC_NEUTRON_TEST_REST ?? chainInfo.rpc
break
}
return chainInfo return chainInfo
} }

View File

@ -144,7 +144,7 @@ export default function WalletConnectedButton() {
<Button <Button
variant='solid' variant='solid'
leftIcon={<Wallet />} leftIcon={<Wallet />}
color='tertiary' color='secondary'
onClick={() => { onClick={() => {
setShowDetails(!showDetails) setShowDetails(!showDetails)
}} }}

View File

@ -1,3 +1,5 @@
import classNames from 'classnames'
import AssetRate from 'components/common/assets/AssetRate' import AssetRate from 'components/common/assets/AssetRate'
export const APY_META = { accessorKey: 'apy', header: 'APY', meta: { className: 'w-30' } } export const APY_META = { accessorKey: 'apy', header: 'APY', meta: { className: 'w-30' } }
@ -12,13 +14,18 @@ interface Props {
export default function Apr(props: Props) { export default function Apr(props: Props) {
const { markets, type, denom, apy } = props const { markets, type, denom, apy } = props
if (apy === 0) return <p className='w-full text-xs text-right number'>&ndash;</p> if (apy === 0)
return (
<p className={classNames('w-full text-xs text-right number', type === 'vault' && 'pb-4')}>
&ndash;
</p>
)
const isEnabled = const isEnabled =
markets.find((market) => market.asset.denom === props.denom)?.borrowEnabled ?? false markets.find((market) => market.asset.denom === props.denom)?.borrowEnabled ?? false
return ( return (
<AssetRate <AssetRate
className='justify-end text-xs' className={classNames('justify-end text-xs', type === 'vault' && 'pb-4')}
rate={apy} rate={apy}
isEnabled={type !== 'lend' || isEnabled} isEnabled={type !== 'lend' || isEnabled}
type='apy' type='apy'

View File

@ -1,5 +1,12 @@
import Text from 'components/common/Text' import Text from 'components/common/Text'
export const ASSET_META = { accessorKey: 'symbol', header: 'Asset', id: 'symbol' } import AssetImage from 'components/common/assets/AssetImage'
import useAllAssets from 'hooks/assets/useAllAssets'
export const ASSET_META = {
accessorKey: 'symbol',
header: 'Asset',
id: 'symbol',
meta: { className: 'w-40' },
}
interface Props { interface Props {
symbol: string symbol: string
@ -8,12 +15,18 @@ interface Props {
export default function Asset(props: Props) { export default function Asset(props: Props) {
const { symbol, type } = props const { symbol, type } = props
const assets = useAllAssets()
const asset = assets.find((asset) => asset.symbol === symbol) ?? assets[0]
return ( return (
<Text size='xs'> <div className='flex gap-2'>
{symbol} <AssetImage asset={asset} size={16} className='w-4 h-4' />
{type === 'borrow' && <span className='ml-1 text-loss'>(debt)</span>} <Text size='xs' className='text-white'>
{type === 'lend' && <span className='ml-1 text-profit'>(lent)</span>} {asset.symbol}
{type === 'vault' && <span className='ml-1 text-profit'>(farm)</span>} {type === 'borrow' && <span className='ml-1 text-loss'>(debt)</span>}
</Text> {type === 'lend' && <span className='ml-1 text-profit'>(lent)</span>}
{type === 'vault' && <span className='ml-1 text-profit'>(farm)</span>}
</Text>
</div>
) )
} }

View File

@ -1,4 +1,3 @@
import { BN_ZERO } from 'constants/math'
import { BNCoin } from 'types/classes/BNCoin' import { BNCoin } from 'types/classes/BNCoin'
import { demagnify, getCoinValue } from 'utils/formatters' import { demagnify, getCoinValue } from 'utils/formatters'
@ -26,37 +25,6 @@ export function getAssetAccountBalanceRow(
} }
} }
export function getVaultAccountBalanceRow(
vault: DepositedVault,
apy: number,
prev?: DepositedVault,
): AccountBalanceRow {
const { name } = vault
const previous = prev || vault
const totalLockedValue = vault.values.primary.plus(vault.values.secondary)
const totalValue = totalLockedValue.plus(vault.values.unlocked).plus(vault.values.unlocking)
const prevTotalValue = previous.values.primary
.plus(previous.values.secondary)
.plus(previous.values.unlocked)
.plus(previous.values.unlocking)
const amountChange = !prev ? totalValue : totalValue.minus(prevTotalValue)
if (totalLockedValue.isLessThan(totalValue)) {
apy = totalLockedValue.dividedBy(totalValue).times(apy).toNumber()
}
return {
type: 'vault',
symbol: name,
size: 0,
value: totalValue.toString(),
denom: vault.denoms.lp,
amount: BN_ZERO,
apy,
amountChange,
}
}
export function getAmountChangeColor(type: PositionType, amount: BigNumber) { export function getAmountChangeColor(type: PositionType, amount: BigNumber) {
if (type === 'borrow') { if (type === 'borrow') {
if (amount.isGreaterThan(0)) return 'text-loss' if (amount.isGreaterThan(0)) return 'text-loss'

View File

@ -1,9 +1,6 @@
import { useMemo } from 'react' import { useMemo } from 'react'
import { import { getAssetAccountBalanceRow } from 'components/account/AccountBalancesTable/functions'
getAssetAccountBalanceRow,
getVaultAccountBalanceRow,
} from 'components/account/AccountBalancesTable/functions'
import useAllAssets from 'hooks/assets/useAllAssets' import useAllAssets from 'hooks/assets/useAllAssets'
import useHLSStakingAssets from 'hooks/useHLSStakingAssets' import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
import usePrices from 'hooks/usePrices' import usePrices from 'hooks/usePrices'
@ -54,14 +51,6 @@ export default function useAccountBalanceData(props: Props) {
return getAssetAccountBalanceRow('lend', asset, prices, assets, lending, apy, prevLending) return getAssetAccountBalanceRow('lend', asset, prices, assets, lending, apy, prevLending)
}) })
const vaults = accountVaults.map((vault) => {
const apy = vault.apy ?? 0
const prevVault = updatedAccount
? account?.vaults.find((position) => position.name === vault.name)
: vault
return getVaultAccountBalanceRow(vault, apy, prevVault)
})
const debts = accountDebts.map((debt) => { const debts = accountDebts.map((debt) => {
const asset = assets.find(byDenom(debt.denom)) ?? assets[0] const asset = assets.find(byDenom(debt.denom)) ?? assets[0]
const apy = borrowingData.find((market) => market.asset.denom === debt.denom)?.apy.borrow ?? 0 const apy = borrowingData.find((market) => market.asset.denom === debt.denom)?.apy.borrow ?? 0
@ -70,7 +59,7 @@ export default function useAccountBalanceData(props: Props) {
: debt : debt
return getAssetAccountBalanceRow('borrow', asset, prices, assets, debt, apy, prevDebt) return getAssetAccountBalanceRow('borrow', asset, prices, assets, debt, apy, prevDebt)
}) })
return [...deposits, ...lends, ...vaults, ...debts] return [...deposits, ...lends, ...debts]
}, [ }, [
updatedAccount, updatedAccount,
account, account,

View File

@ -15,11 +15,7 @@ import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
import usePrices from 'hooks/usePrices' import usePrices from 'hooks/usePrices'
import useStore from 'store' import useStore from 'store'
import { BNCoin } from 'types/classes/BNCoin' import { BNCoin } from 'types/classes/BNCoin'
import { import { calculateAccountApr, getAccountPositionValues } from 'utils/accounts'
calculateAccountApr,
calculateAccountBalanceValue,
getAccountPositionValues,
} from 'utils/accounts'
interface Props { interface Props {
account: Account account: Account
@ -70,15 +66,6 @@ export default function AccountComposition(props: Props) {
return [updatedPositionValue, updatedDebtsBalance] return [updatedPositionValue, updatedDebtsBalance]
}, [updatedAccount, prices, assets]) }, [updatedAccount, prices, assets])
const netWorth = useMemo(
() => calculateAccountBalanceValue(account, prices, assets),
[account, assets, prices],
)
const updatedTotalBalance = useMemo(
() => (updatedAccount ? calculateAccountBalanceValue(updatedAccount, prices, assets) : BN_ZERO),
[updatedAccount, prices, assets],
)
const apr = useMemo( const apr = useMemo(
() => () =>
calculateAccountApr( calculateAccountApr(
@ -131,17 +118,11 @@ export default function AccountComposition(props: Props) {
className='pb-3' className='pb-3'
isDecrease isDecrease
/> />
<Item
title='Net worth'
current={netWorth}
change={hasChanged ? updatedTotalBalance : netWorth}
className='py-3 font-bold border border-transparent border-y-white/20'
/>
<Item <Item
title='APR' title='APR'
current={apr} current={apr}
change={hasChanged ? updatedApr : apr} change={hasChanged ? updatedApr : apr}
className='py-3' className='pb-3'
isPercentage isPercentage
/> />
</div> </div>
@ -167,6 +148,7 @@ function Item(props: ItemProps) {
suffix: '%', suffix: '%',
minDecimals: 2, minDecimals: 2,
maxDecimals: current.abs().isLessThan(0.1) ? MAX_AMOUNT_DECIMALS : 2, maxDecimals: current.abs().isLessThan(0.1) ? MAX_AMOUNT_DECIMALS : 2,
abbreviated: false,
}} }}
className='text-sm' className='text-sm'
animate animate
@ -175,6 +157,7 @@ function Item(props: ItemProps) {
<DisplayCurrency <DisplayCurrency
coin={BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, current)} coin={BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, current)}
className='text-sm' className='text-sm'
options={{ abbreviated: false }}
/> />
)} )}
{current.toFixed(2) !== change.toFixed(2) && ( {current.toFixed(2) !== change.toFixed(2) && (
@ -197,6 +180,7 @@ function Item(props: ItemProps) {
<DisplayCurrency <DisplayCurrency
coin={BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, change)} coin={BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, change)}
className={classNames('text-sm', increase ? 'text-profit' : 'text-loss')} className={classNames('text-sm', increase ? 'text-profit' : 'text-loss')}
options={{ abbreviated: false }}
/> />
)} )}
</> </>

View File

@ -1,54 +0,0 @@
import classNames from 'classnames'
import { FormattedNumber } from 'components/common/FormattedNumber'
import { ArrowRight } from 'components/common/Icons'
interface Props {
leverage: number
updatedLeverage: number | null
}
export default function AccountDetailsLeverage(props: Props) {
const { leverage, updatedLeverage } = props
if (!updatedLeverage) {
return (
<FormattedNumber
className={'w-full text-center text-2xs'}
amount={isNaN(leverage) ? 0 : leverage}
options={{
maxDecimals: 2,
minDecimals: 2,
suffix: 'x',
}}
animate
/>
)
}
return (
<div className='flex'>
<FormattedNumber
className={'w-full text-center text-2xs'}
amount={isNaN(leverage) ? 1 : leverage}
options={{
maxDecimals: 1,
minDecimals: 1,
rounded: true,
}}
animate
/>
<ArrowRight width={12} />
<FormattedNumber
className={classNames(
'w-full text-center text-2xs',
updatedLeverage > leverage && 'text-loss',
updatedLeverage < leverage && 'text-profit',
)}
amount={isNaN(updatedLeverage) ? 0 : updatedLeverage}
options={{ maxDecimals: 1, minDecimals: 1, rounded: true }}
animate
/>
</div>
)
}

View File

@ -1,17 +1,13 @@
import classNames from 'classnames' import classNames from 'classnames'
import { useCallback, useMemo } from 'react' import { useMemo } from 'react'
import { useLocation } from 'react-router-dom' import { useLocation } from 'react-router-dom'
import AccountBalancesTable from 'components/account/AccountBalancesTable'
import AccountComposition from 'components/account/AccountComposition'
import AccountDetailsLeverage from 'components/account/AccountDetails/AccountDetailsLeverage'
import Skeleton from 'components/account/AccountDetails/Skeleton' import Skeleton from 'components/account/AccountDetails/Skeleton'
import AccountPerpPositionTable from 'components/account/AccountPerpPositionTable' import AccountSummary from 'components/account/AccountSummary'
import AccountSummaryLeverage from 'components/account/AccountSummary/AccountSummaryLeverage'
import { HealthGauge } from 'components/account/Health/HealthGauge' import { HealthGauge } from 'components/account/Health/HealthGauge'
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData' import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
import EscButton from 'components/common/Button/EscButton'
import { glowElement } from 'components/common/Button/utils' import { glowElement } from 'components/common/Button/utils'
import Card from 'components/common/Card'
import DisplayCurrency from 'components/common/DisplayCurrency' import DisplayCurrency from 'components/common/DisplayCurrency'
import { FormattedNumber } from 'components/common/FormattedNumber' import { FormattedNumber } from 'components/common/FormattedNumber'
import { ThreeDots } from 'components/common/Icons' import { ThreeDots } from 'components/common/Icons'
@ -26,8 +22,8 @@ import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
import useAllAssets from 'hooks/assets/useAllAssets' import useAllAssets from 'hooks/assets/useAllAssets'
import useLocalStorage from 'hooks/localStorage/useLocalStorage' import useLocalStorage from 'hooks/localStorage/useLocalStorage'
import useAccountId from 'hooks/useAccountId' import useAccountId from 'hooks/useAccountId'
import useHealthComputer from 'hooks/useHealthComputer'
import useHLSStakingAssets from 'hooks/useHLSStakingAssets' import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
import useHealthComputer from 'hooks/useHealthComputer'
import usePrices from 'hooks/usePrices' import usePrices from 'hooks/usePrices'
import useStore from 'store' import useStore from 'store'
import { BNCoin } from 'types/classes/BNCoin' import { BNCoin } from 'types/classes/BNCoin'
@ -40,7 +36,7 @@ import {
export default function AccountDetailsController() { export default function AccountDetailsController() {
const address = useStore((s) => s.address) const address = useStore((s) => s.address)
const isHLS = useStore((s) => s.isHLS) const isHLS = useStore((s) => s.isHLS)
const { data: accounts, isLoading } = useAccounts('default', address) const { data: _, isLoading } = useAccounts('default', address)
const { data: accountIds } = useAccountIds(address, false, true) const { data: accountIds } = useAccountIds(address, false, true)
const accountId = useAccountId() const accountId = useAccountId()
@ -120,19 +116,6 @@ function AccountDetails(props: Props) {
location.pathname === '/' || location.pathname === '/' ||
location.pathname.includes('perps') location.pathname.includes('perps')
function AccountDetailsHeader() {
const onClose = useCallback(() => useStore.setState({ accountDetailsExpanded: false }), [])
return (
<div className='flex items-center justify-between w-full p-4 bg-white/10 '>
<Text size='lg' className='flex items-center flex-grow font-semibold'>
{`Credit Account ${account.id}`}
</Text>
<EscButton onClick={onClose} hideText className='w-6 h-6' />
</div>
)
}
return ( return (
<> <>
{!isFullWidth && accountDetailsExpanded && ( {!isFullWidth && accountDetailsExpanded && (
@ -144,57 +127,87 @@ function AccountDetails(props: Props) {
<div <div
data-testid='account-details' data-testid='account-details'
className={classNames( className={classNames(
accountDetailsExpanded ? 'right-4' : '-right-90', accountDetailsExpanded ? 'right-4' : '-right-74',
'w-110 flex items-start gap-4 absolute top-6', 'w-94 flex items-start gap-4 absolute top-6',
!reduceMotion && 'transition-all duration-300', !reduceMotion && 'transition-all duration-500',
)} )}
> >
<div <div
className={classNames( className={classNames(
'flex flex-wrap min-w-16 w-16 group/accountdetail relative', 'group/accountdetail relative min-h-75',
'border rounded-base border-white/20', 'border rounded-base border-white/20',
'bg-white/5 backdrop-blur-sticky z-2', 'backdrop-blur-sticky z-2',
!reduceMotion && 'transition-colors duration-300', !reduceMotion && 'transition-all duration-500',
'hover:bg-white/10 hover:cursor-pointer ', accountDetailsExpanded
? 'is-expanded w-full h-auto'
: 'w-16 hover:bg-white/10 hover:cursor-pointer bg-white/5',
)} )}
onClick={() => useStore.setState({ accountDetailsExpanded: !accountDetailsExpanded })} onClick={() => {
if (accountDetailsExpanded) return
useStore.setState({ accountDetailsExpanded: true })
}}
> >
<div className='flex flex-wrap justify-center w-full py-4'> <div
<HealthGauge className={classNames(
health={health} 'w-16 pr-[1px]',
updatedHealth={updatedHealth} accountDetailsExpanded
healthFactor={healthFactor} ? 'opacity-0 absolute inset-0 -z-1'
updatedHealthFactor={updatedHealthFactor} : 'transition-opacity opacity-100 duration-300 delay-200',
/> )}
<Text size='2xs' className='mb-0.5 mt-1 w-full text-center text-white/50'> >
Health <div className='flex flex-wrap justify-center w-full py-4'>
</Text> <HealthGauge
health={health}
updatedHealth={updatedHealth}
healthFactor={healthFactor}
updatedHealthFactor={updatedHealthFactor}
/>
<Text size='2xs' className='mb-0.5 mt-1 w-full text-center text-white/50'>
Health
</Text>
</div>
<div className='w-full py-4 border-t border-white/20'>
<Text
size='2xs'
className='mb-0.5 w-full text-center text-white/50 whitespace-nowrap'
>
Net worth
</Text>
<DisplayCurrency coin={coin} className='w-full text-center truncate text-2xs ' />
</div>
<div className='w-full py-4 border-t border-white/20'>
<Text size='2xs' className='mb-0.5 w-full text-center text-white/50'>
Leverage
</Text>
<AccountSummaryLeverage
leverage={leverage.toNumber() || 1}
updatedLeverage={updatedLeverage?.toNumber() || null}
/>
</div>
<div className='w-full py-4 border-t border-white/20'>
<Text size='2xs' className='mb-0.5 w-full text-center text-white/50'>
APR
</Text>
<FormattedNumber
className={'w-full text-center text-2xs'}
amount={apr.toNumber()}
options={{ maxDecimals: 2, minDecimals: 2, suffix: '%' }}
animate
/>
</div>
</div> </div>
<div className='w-full py-4 border-t border-white/20'> <div
<Text size='2xs' className='mb-0.5 w-full text-center text-white/50 whitespace-nowrap'> className={classNames(
Net worth 'grid',
</Text> !reduceMotion && 'transition-[grid-template-rows,opacity]',
<DisplayCurrency coin={coin} className='w-full text-center truncate text-2xs ' /> accountDetailsExpanded
</div> ? 'transition-[grid-template-rows,opacity] opacity-100 delay-500 duration-600 grid-rows-[1fr]'
<div className='w-full py-4 border-t border-white/20'> : 'transition-opacity opacity-0 duration-300 grid-rows-[0fr]',
<Text size='2xs' className='mb-0.5 w-full text-center text-white/50'> )}
Leverage >
</Text> <div className='overflow-hidden'>
<AccountDetailsLeverage <AccountSummary account={account} isAccountDetails />
leverage={leverage.toNumber() || 1} </div>
updatedLeverage={updatedLeverage?.toNumber() || null}
/>
</div>
<div className='w-full py-4 border-t border-white/20'>
<Text size='2xs' className='mb-0.5 w-full text-center text-white/50'>
APR
</Text>
<FormattedNumber
className={'w-full text-center text-2xs'}
amount={apr.toNumber()}
options={{ maxDecimals: 2, minDecimals: 2, suffix: '%' }}
animate
/>
</div> </div>
<div <div
className={classNames( className={classNames(
@ -209,24 +222,6 @@ function AccountDetails(props: Props) {
{glowElement(!reduceMotion)} {glowElement(!reduceMotion)}
</div> </div>
<div className='flex w-90 backdrop-blur-sticky z-2'>
<Card className='w-90 bg-white/5' title={<AccountDetailsHeader />}>
<AccountComposition account={account} />
<Text className='w-full px-4 py-2 text-white bg-white/10'>Balances</Text>
<AccountBalancesTable
account={account}
borrowingData={borrowAssetsData}
lendingData={lendingAssetsData}
hideCard
/>
{account.perps.length > 0 && (
<>
<Text className='w-full px-4 py-2 text-white bg-white/10'>Perp Positions</Text>
<AccountPerpPositionTable account={account} hideCard />
</>
)}
</Card>
</div>
</div> </div>
</> </>
) )

View File

@ -46,12 +46,7 @@ export default function Skeleton(props: Props) {
<Text size='xs' className='w-auto mr-1 text-white/70'> <Text size='xs' className='w-auto mr-1 text-white/70'>
Health Health
</Text> </Text>
<HealthBar <HealthBar health={health} healthFactor={healthFactor} className='w-[92px] h-0.5' />
health={health}
healthFactor={healthFactor}
className='w-[92px] h-0.5'
hasLabel
/>
</div> </div>
</div> </div>
</div> </div>

View File

@ -103,7 +103,7 @@ export default function AccountMenuContent() {
id={ACCOUNT_MENU_BUTTON_ID} id={ACCOUNT_MENU_BUTTON_ID}
onClick={handleCreateAccountClick} onClick={handleCreateAccountClick}
leftIcon={hasCreditAccounts ? <Account /> : <PlusCircled />} leftIcon={hasCreditAccounts ? <Account /> : <PlusCircled />}
color={hasCreditAccounts ? 'tertiary' : 'primary'} color={hasCreditAccounts ? 'secondary' : 'primary'}
hasFocus={showMenu} hasFocus={showMenu}
hasSubmenu={hasCreditAccounts} hasSubmenu={hasCreditAccounts}
> >

View File

@ -4,17 +4,28 @@ import DisplayCurrency from 'components/common/DisplayCurrency'
import { FormattedNumber } from 'components/common/FormattedNumber' import { FormattedNumber } from 'components/common/FormattedNumber'
import Text from 'components/common/Text' import Text from 'components/common/Text'
import { Tooltip } from 'components/common/Tooltip' import { Tooltip } from 'components/common/Tooltip'
import AssetImage from 'components/common/assets/AssetImage'
import TradeDirection from 'components/perps/BalancesTable/Columns/TradeDirection' import TradeDirection from 'components/perps/BalancesTable/Columns/TradeDirection'
import { BN_ZERO } from 'constants/math' import { BN_ZERO } from 'constants/math'
import usePerpsEnabledAssets from 'hooks/assets/usePerpsEnabledAssets' import usePerpsEnabledAssets from 'hooks/assets/usePerpsEnabledAssets'
import { BNCoin } from 'types/classes/BNCoin' import { BNCoin } from 'types/classes/BNCoin'
import { demagnify } from 'utils/formatters' import { demagnify } from 'utils/formatters'
export const ASSET_META = { accessorKey: 'symbol', header: 'Asset', id: 'symbol' } export const ASSET_META = {
accessorKey: 'symbol',
header: 'Asset',
id: 'symbol',
meta: { className: 'w-40' },
}
interface Props { interface Props {
row: AccountPerpRow row: AccountPerpRow
} }
interface TooltipProps {
row: AccountPerpRow
asset: Asset
}
function LabelAndValue(props: { label: string; children: ReactNode; className?: string }) { function LabelAndValue(props: { label: string; children: ReactNode; className?: string }) {
const { label, children } = props const { label, children } = props
@ -28,11 +39,8 @@ function LabelAndValue(props: { label: string; children: ReactNode; className?:
) )
} }
function TooltipContent(props: Props) { function TooltipContent(props: TooltipProps) {
const { row } = props const { row, asset } = props
const assets = usePerpsEnabledAssets()
const asset = assets.find((asset) => asset.symbol === row.symbol)
if (!asset) return null
return ( return (
<div className='flex flex-col flex-wrap gap-1 w-50'> <div className='flex flex-col flex-wrap gap-1 w-50'>
@ -58,10 +66,14 @@ function TooltipContent(props: Props) {
export default function Asset(props: Props) { export default function Asset(props: Props) {
const { row } = props const { row } = props
const assets = usePerpsEnabledAssets()
const asset = assets.find((asset) => asset.symbol === row.symbol)
if (!asset) return null
return ( return (
<Tooltip content={<TooltipContent row={row} />} type='info'> <Tooltip content={<TooltipContent row={row} asset={asset} />} type='info'>
<Text size='xs' className='flex items-center gap-1 no-wrap group/asset hover:cursor-help'> <Text size='xs' className='flex items-center gap-2 no-wrap group/asset hover:cursor-help'>
<AssetImage asset={asset} size={16} className='w-4 h-4' />
<span className='pb-[1px] border-b border-white/20 border-dashed group-hover/asset:border-transparent'> <span className='pb-[1px] border-b border-white/20 border-dashed group-hover/asset:border-transparent'>
{row.symbol} {row.symbol}
</span> </span>

View File

@ -0,0 +1,67 @@
import { useEffect, useMemo, useState } from 'react'
import DisplayCurrency from 'components/common/DisplayCurrency'
import { InfoCircle } from 'components/common/Icons'
import Text from 'components/common/Text'
import { Tooltip } from 'components/common/Tooltip'
import useLiquidationPrice from 'hooks/useLiquidationPrice'
import { BNCoin } from 'types/classes/BNCoin'
import { LiquidationPriceKind } from 'utils/health_computer'
import { BN } from 'utils/helpers'
export const LIQ_META = {
accessorKey: 'symbol',
header: 'Liquidation Price',
id: 'liqPrice',
meta: { className: 'w-40' },
}
interface Props {
amount: number
computeLiquidationPrice: (denom: string, kind: LiquidationPriceKind) => number | null
denom: string
type: PositionType
account: Account
}
export default function LiqPrice(props: Props) {
const { denom, type, amount, account, computeLiquidationPrice } = props
const [lastLiquidationPrice, setLastLiquidationPrice] = useState<number | null>(null)
const hasDebt = account.debts.length > 0
const liqPrice = useMemo(() => {
if (type === 'vault' || amount === 0) return 0
return computeLiquidationPrice(denom, type === 'borrow' ? 'debt' : 'asset')
}, [amount, computeLiquidationPrice, denom, type])
const { liquidationPrice } = useLiquidationPrice(liqPrice)
useEffect(() => {
if (lastLiquidationPrice !== liqPrice && liqPrice !== null) setLastLiquidationPrice(liqPrice)
}, [liqPrice, lastLiquidationPrice])
const tooltipText = useMemo(() => {
if (type === 'vault')
return 'Liquidation prices cannot be calculated for farm positions. But it a drop in price of the underlying assets can still cause a liquidation.'
if (!hasDebt) return 'Your position cannot be liquidated as you currently have no debt.'
return 'The position size is too small to liquidate the account, even if the price goes to $0.00.'
}, [type, hasDebt])
if (!lastLiquidationPrice || (liquidationPrice === 0 && lastLiquidationPrice === 0))
return (
<Text size='xs' className='flex items-center justify-end number'>
N/A
<Tooltip content={tooltipText} type='info' className='ml-1'>
<InfoCircle className='w-3.5 h-3.5 text-white/40 hover:text-inherit' />
</Tooltip>
</Text>
)
return (
<DisplayCurrency
className='text-xs text-right number'
coin={BNCoin.fromDenomAndBigNumber('usd', BN(lastLiquidationPrice))}
options={{ abbreviated: false }}
/>
)
}

View File

@ -0,0 +1,64 @@
import classNames from 'classnames'
import { useMemo } from 'react'
import { getSizeChangeColor } from 'components/account/AccountStrategiesTable/functions'
import { FormattedNumber } from 'components/common/FormattedNumber'
import { MAX_AMOUNT_DECIMALS, MIN_AMOUNT } from 'constants/math'
import useAllAssets from 'hooks/assets/useAllAssets'
import { BNCoin } from 'types/classes/BNCoin'
import { byDenom } from 'utils/array'
import { formatAmountToPrecision } from 'utils/formatters'
export const SIZE_META = { header: 'Size', meta: { className: 'w-40' } }
interface Props {
amount: BNCoin[]
amountChange: BNCoin[]
}
export default function Size(props: Props) {
const { amount, amountChange } = props
const color = useMemo(() => getSizeChangeColor(amountChange), [amountChange])
const assets = useAllAssets()
const className = classNames('text-xs text-right w-full', color)
const minimumAmount = 0.0001
const primarySymbol = assets.find(byDenom(amount[0].denom))?.symbol
const primarySize = amount[0].amount.toString()
const primaryFormattedAmount = formatAmountToPrecision(primarySize, MAX_AMOUNT_DECIMALS)
const primaryLowAmount =
primaryFormattedAmount === 0 ? minimumAmount : Math.max(primaryFormattedAmount, MIN_AMOUNT)
const secondarySymbol = assets.find(byDenom(amount[1].denom))?.symbol
const secondarySize = amount[1].amount.toString()
const secondaryFormattedAmount = formatAmountToPrecision(secondarySize, MAX_AMOUNT_DECIMALS)
const secondaryLowAmount =
secondaryFormattedAmount === 0 ? minimumAmount : Math.max(secondaryFormattedAmount, MIN_AMOUNT)
return (
<div className='flex flex-wrap'>
<FormattedNumber
className={className}
smallerThanThreshold={primaryFormattedAmount < MIN_AMOUNT}
amount={primaryLowAmount}
options={{
maxDecimals: 4,
minDecimals: 0,
suffix: ` ${primarySymbol}`,
}}
animate
/>
<FormattedNumber
className={className}
smallerThanThreshold={secondaryFormattedAmount < MIN_AMOUNT}
amount={secondaryLowAmount}
options={{
maxDecimals: 4,
minDecimals: 0,
suffix: ` ${secondarySymbol}`,
}}
animate
/>
</div>
)
}

View File

@ -0,0 +1,39 @@
import classNames from 'classnames'
import { getSizeChangeColor } from 'components/account/AccountStrategiesTable/functions'
import DisplayCurrency from 'components/common/DisplayCurrency'
import Text from 'components/common/Text'
import { ORACLE_DENOM } from 'constants/oracle'
import { BNCoin } from 'types/classes/BNCoin'
import { BN } from 'utils/helpers'
export const STRATEGY_AND_VALUE_META = {
header: 'Strategy & Value',
id: 'name',
meta: { className: 'w-40' },
}
interface Props {
name: string
value: string
amountChange: BNCoin[]
}
export default function StrategyAndValue(props: Props) {
const { name, value, amountChange } = props
const color = getSizeChangeColor(amountChange)
const coin = BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, BN(value))
return (
<div className='flex flex-wrap'>
<Text size='xs' className='text-white'>
{`${name} LP`}
</Text>
<DisplayCurrency
coin={coin}
className={classNames('text-xs text-right', color)}
options={{ abbreviated: false }}
showZero
/>
</div>
)
}

View File

@ -0,0 +1,44 @@
import { Row } from '@tanstack/react-table'
import classNames from 'classnames'
import { getAmountChangeColor } from 'components/account/AccountBalancesTable/functions'
import DisplayCurrency from 'components/common/DisplayCurrency'
import { ORACLE_DENOM } from 'constants/oracle'
import { BNCoin } from 'types/classes/BNCoin'
import { BN } from 'utils/helpers'
export const VALUE_META = { accessorKey: 'value', header: 'Value' }
interface Props {
amountChange: BigNumber
value: string
type: PositionType
}
export const valueBalancesSortingFn = (
a: Row<AccountBalanceRow>,
b: Row<AccountBalanceRow>,
): number => {
const valueA = BN(a.original.value)
const valueB = BN(b.original.value)
return valueA.minus(valueB).toNumber()
}
export const valuePerpSortingFn = (a: Row<AccountPerpRow>, b: Row<AccountPerpRow>): number => {
const valueA = BN(a.original.value)
const valueB = BN(b.original.value)
return valueA.minus(valueB).toNumber()
}
export default function Value(props: Props) {
const { amountChange, type, value } = props
const color = getAmountChangeColor(type, amountChange)
const coin = new BNCoin({
denom: ORACLE_DENOM,
amount: value,
})
return (
<DisplayCurrency coin={coin} className={classNames('text-xs text-right', color)} showZero />
)
}

View File

@ -0,0 +1,40 @@
import { ColumnDef } from '@tanstack/react-table'
import { useMemo } from 'react'
import Apy, { APY_META } from 'components/account/AccountBalancesTable/Columns/Apy'
import Size, { SIZE_META } from 'components/account/AccountStrategiesTable/Columns/Size'
import StrategyAndValue, {
STRATEGY_AND_VALUE_META,
} from 'components/account/AccountStrategiesTable/Columns/StrategyAndValue'
import useMarkets from 'hooks/markets/useMarkets'
export default function useAccountStrategiesColumns(account: Account) {
const markets = useMarkets()
return useMemo<ColumnDef<AccountStrategyRow>[]>(() => {
return [
{
...STRATEGY_AND_VALUE_META,
cell: ({ row }) => (
<StrategyAndValue
name={row.original.name}
value={row.original.value}
amountChange={row.original.amountChange}
/>
),
},
{
...SIZE_META,
cell: ({ row }) => (
<Size amount={row.original.amount} amountChange={row.original.amountChange} />
),
},
{
...APY_META,
cell: ({ row }) => (
<Apy apy={row.original.apy} markets={markets} denom={row.original.denom} type={'vault'} />
),
},
]
}, [markets])
}

View File

@ -0,0 +1,70 @@
import { BN_ONE, BN_ZERO } from 'constants/math'
import { BNCoin } from 'types/classes/BNCoin'
import { byDenom } from 'utils/array'
export function getVaultAccountStrategiesRow(
vault: DepositedVault,
apy: number,
prices: BNCoin[],
prev?: DepositedVault,
): AccountStrategyRow {
const { name } = vault
const previous = prev || vault
const totalLockedValue = vault.values.primary.plus(vault.values.secondary)
const totalValue = totalLockedValue.plus(vault.values.unlocked).plus(vault.values.unlocking)
const prevTotalValue = previous.values.primary
.plus(previous.values.secondary)
.plus(previous.values.unlocked)
.plus(previous.values.unlocking)
if (totalLockedValue.isLessThan(totalValue)) {
apy = totalLockedValue.dividedBy(totalValue).times(apy).toNumber()
}
const halfValue = totalValue.dividedBy(2)
const halfValuePrev = prevTotalValue.dividedBy(2)
const primaryPrice =
prices.find(byDenom(vault.denoms.primary)) ??
BNCoin.fromDenomAndBigNumber(vault.denoms.primary, BN_ONE)
const primaryAmount = halfValue.dividedBy(primaryPrice.amount)
const primaryAmountPrev = halfValuePrev.dividedBy(primaryPrice.amount)
const secondaryPrice =
prices.find(byDenom(vault.denoms.secondary)) ??
BNCoin.fromDenomAndBigNumber(vault.denoms.secondary, BN_ONE)
const secondaryAmount = halfValue.dividedBy(secondaryPrice.amount)
const secondaryAmountPrev = halfValuePrev.dividedBy(secondaryPrice.amount)
const amountChange = [
BNCoin.fromDenomAndBigNumber(
vault.denoms.primary,
!prev ? BN_ZERO : primaryAmount.minus(primaryAmountPrev),
),
BNCoin.fromDenomAndBigNumber(
vault.denoms.secondary,
!prev ? BN_ZERO : secondaryAmount.minus(secondaryAmountPrev),
),
]
return {
name: name,
denom: vault.denoms.lp,
amount: [
BNCoin.fromDenomAndBigNumber(vault.denoms.primary, primaryAmount),
BNCoin.fromDenomAndBigNumber(vault.denoms.secondary, secondaryAmount),
],
value: totalValue.toString(),
apy,
amountChange: amountChange,
}
}
export function getSizeChangeColor(amountChange: BNCoin[]) {
const primaryChange = amountChange[0].amount
const secondaryChange = amountChange[1].amount
if (primaryChange.isGreaterThan(0) || secondaryChange.isGreaterThan(0)) return 'text-profit'
if (primaryChange.isLessThan(0) || secondaryChange.isLessThan(0)) return 'text-loss'
return ''
}

View File

@ -0,0 +1,38 @@
import classNames from 'classnames'
import useAccountStrategiesColumns from 'components/account/AccountStrategiesTable/Columns/useAccountStrategiesColumns'
import useAccountStrategiesData from 'components/account/AccountStrategiesTable/useAccountStrategiesData'
import Table from 'components/common/Table'
import useStore from 'store'
interface Props {
account: Account
hideCard?: boolean
tableBodyClassName?: string
}
export default function AccountStrategiesTable(props: Props) {
const { account, tableBodyClassName, hideCard } = props
const updatedAccount = useStore((s) => s.updatedAccount)
const accountStrategiesData = useAccountStrategiesData({
account,
updatedAccount,
})
const columns = useAccountStrategiesColumns(account)
if (accountStrategiesData.length === 0) return null
return (
<Table
title='Strategies'
columns={columns}
data={accountStrategiesData}
tableBodyClassName={classNames(tableBodyClassName, 'text-white/60')}
initialSorting={[]}
spacingClassName='p-2'
hideCard={hideCard}
type='strategies'
/>
)
}

View File

@ -0,0 +1,27 @@
import { useMemo } from 'react'
import { getVaultAccountStrategiesRow } from 'components/account/AccountStrategiesTable/functions'
import usePrices from 'hooks/usePrices'
interface Props {
account: Account
updatedAccount?: Account
}
export default function useAccountStategiesData(props: Props) {
const { account, updatedAccount } = props
const { data: prices } = usePrices()
return useMemo<AccountStrategyRow[]>(() => {
const usedAccount = updatedAccount ?? account
const accountVaults = usedAccount?.vaults ?? []
return accountVaults.map((vault) => {
const apy = vault.apy ?? 0
const prevVault = updatedAccount
? account?.vaults.find((position) => position.name === vault.name)
: vault
return getVaultAccountStrategiesRow(vault, apy, prices, prevVault)
})
}, [account, updatedAccount, prices])
}

View File

@ -0,0 +1,135 @@
import classNames from 'classnames'
import { useCallback, useMemo } from 'react'
import AccountSummaryLeverage from 'components/account/AccountSummary/AccountSummaryLeverage'
import HealthBar from 'components/account/Health/HealthBar'
import Button from 'components/common/Button'
import DisplayCurrency from 'components/common/DisplayCurrency'
import { ArrowRight, ArrowRightLine } from 'components/common/Icons'
import Text from 'components/common/Text'
import { BN_ZERO } from 'constants/math'
import { ORACLE_DENOM } from 'constants/oracle'
import useStore from 'store'
import { BNCoin } from 'types/classes/BNCoin'
import { calculateAccountBalanceValue } from 'utils/accounts'
interface Props {
account: Account
updatedAccount?: Account
prices: BNCoin[]
assets: Asset[]
leverage: number
updatedLeverage: number | null
apr: number
health: number
updatedHealth: number
healthFactor: number
updatedHealthFactor: number
isAccountDetails?: boolean
}
export default function AccountSummaryHeader(props: Props) {
const {
account,
updatedAccount,
prices,
assets,
leverage,
updatedLeverage,
health,
healthFactor,
updatedHealth,
updatedHealthFactor,
isAccountDetails,
} = props
const onClose = useCallback(() => useStore.setState({ accountDetailsExpanded: false }), [])
const accountBalance = useMemo(
() => (account ? calculateAccountBalanceValue(account, prices, assets) : BN_ZERO),
[account, prices, assets],
)
const updatedAccountBalance = useMemo(
() =>
updatedAccount ? calculateAccountBalanceValue(updatedAccount, prices, assets) : undefined,
[updatedAccount, prices, assets],
)
const hasChanged = !updatedAccountBalance?.isEqualTo(accountBalance)
const increase = updatedAccountBalance?.isGreaterThan(accountBalance)
return (
<div className='relative flex flex-wrap w-full p-4 pb-2 border-b bg-white/10 border-white/10'>
{isAccountDetails && (
<Button
onClick={onClose}
leftIcon={<ArrowRightLine />}
iconClassName='w-full'
className='!absolute top-4 right-4 w-8 h-6 px-2 z-4'
size='xs'
color='secondary'
/>
)}
{isAccountDetails && (
<Text
size='sm'
className='w-full pb-1 text-white/50'
>{`Credit Account ${account.id}`}</Text>
)}
<div className='flex items-end w-full gap-2 pb-2 border-b border-white/5'>
<DisplayCurrency
options={{ abbreviated: false }}
coin={BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, accountBalance)}
className='text-lg -mb-[1px]'
/>
{hasChanged && updatedAccountBalance && (
<>
<span
className={classNames(
'w-3 flex h-full items-center',
increase ? 'text-profit' : 'text-loss',
)}
>
<ArrowRight />
</span>
<DisplayCurrency
options={{ abbreviated: false }}
coin={BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, updatedAccountBalance)}
className={classNames(
'text-lg -mb-[1px]',
hasChanged && increase && 'text-profit',
hasChanged && !increase && 'text-loss',
)}
/>
</>
)}
<Text className='text-white/50' size='xs'>
Networth
</Text>
</div>
<div className='flex items-center w-full pt-2'>
<div className='flex flex-wrap pr-4 border-r w-29 border-white/5'>
<Text size='xs' className='mb-0.5 w-full text-white/50'>
Leverage
</Text>
<AccountSummaryLeverage
leverage={leverage}
updatedLeverage={updatedLeverage}
className='text-sm'
containerClassName='flex items-center gap-1'
enforceSuffix
/>
</div>
<div className='flex flex-wrap content-start flex-grow h-full pl-2'>
<Text size='xs' className='w-full h-4 mb-2 text-white/50'>
Health
</Text>
<HealthBar
health={health}
healthFactor={healthFactor}
updatedHealth={updatedHealth}
updatedHealthFactor={updatedHealthFactor}
/>
</div>
</div>
</div>
)
}

View File

@ -0,0 +1,19 @@
import AccountSummary from 'components/account/AccountSummary'
import Card from 'components/common/Card'
interface Props {
account: Account
isHls?: boolean
}
export default function AccountSummaryInModal(props: Props) {
const { account, isHls } = props
return (
<div className='h-[546px] max-w-screen overflow-y-scroll scrollbar-hide'>
<Card className='w-94'>
<AccountSummary account={account} isHls={isHls} />
</Card>
</div>
)
}

View File

@ -0,0 +1,77 @@
import classNames from 'classnames'
import { FormattedNumber } from 'components/common/FormattedNumber'
import { ArrowRight } from 'components/common/Icons'
interface Props {
leverage: number
updatedLeverage: number | null
className?: string
containerClassName?: string
enforceSuffix?: boolean
}
export default function AccountSummaryLeverage(props: Props) {
const { leverage, updatedLeverage } = props
if (!updatedLeverage) {
return (
<FormattedNumber
className={classNames(props.className ? props.className : 'w-full text-center text-2xs')}
amount={isNaN(leverage) ? 0 : leverage}
options={{
maxDecimals: 2,
minDecimals: 2,
suffix: 'x',
}}
animate
/>
)
}
return (
<div
className={classNames(
props.containerClassName
? props.containerClassName
: 'flex items-center w-full justify-between',
)}
>
<FormattedNumber
className={classNames(props.className ? props.className : 'w-6 text-left text-2xs pl-2')}
amount={isNaN(leverage) ? 1 : leverage}
options={{
maxDecimals: props.enforceSuffix ? 2 : 1,
minDecimals: props.enforceSuffix ? 2 : 1,
rounded: true,
suffix: props.enforceSuffix ? 'x' : '',
}}
animate
/>
<div
className={classNames(
'w-3',
updatedLeverage > leverage && 'text-loss',
updatedLeverage < leverage && 'text-profit',
)}
>
<ArrowRight />
</div>
<FormattedNumber
className={classNames(
props.className ? props.className : 'w-6 text-right text-2xs pr-2',
updatedLeverage > leverage && 'text-loss',
updatedLeverage < leverage && 'text-profit',
)}
amount={isNaN(updatedLeverage) ? 0 : updatedLeverage}
options={{
maxDecimals: props.enforceSuffix ? 2 : 1,
minDecimals: props.enforceSuffix ? 2 : 1,
rounded: true,
suffix: props.enforceSuffix ? 'x' : '',
}}
animate
/>
</div>
)
}

View File

@ -1,55 +1,49 @@
import classNames from 'classnames' import { useCallback, useMemo } from 'react'
import { HTMLAttributes, useCallback, useMemo } from 'react'
import AccountBalancesTable from 'components/account/AccountBalancesTable' import AccountBalancesTable from 'components/account/AccountBalancesTable'
import AccountComposition from 'components/account/AccountComposition' import AccountComposition from 'components/account/AccountComposition'
import AccountPerpPositionTable from 'components/account/AccountPerpPositionTable' import AccountPerpPositionTable from 'components/account/AccountPerpPositionTable'
import HealthBar from 'components/account/Health/HealthBar' import AccountStrategiesTable from 'components/account/AccountStrategiesTable'
import AccountSummaryHeader from 'components/account/AccountSummary/AccountSummaryHeader'
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData' import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
import Accordion from 'components/common/Accordion' import Accordion from 'components/common/Accordion'
import Card from 'components/common/Card'
import DisplayCurrency from 'components/common/DisplayCurrency'
import { FormattedNumber } from 'components/common/FormattedNumber'
import { ArrowRight } from 'components/common/Icons'
import Text from 'components/common/Text'
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData' import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
import { DEFAULT_SETTINGS } from 'constants/defaultSettings' import { DEFAULT_SETTINGS } from 'constants/defaultSettings'
import { LocalStorageKeys } from 'constants/localStorageKeys' import { LocalStorageKeys } from 'constants/localStorageKeys'
import { BN_ZERO } from 'constants/math' import { BN_ZERO } from 'constants/math'
import { ORACLE_DENOM } from 'constants/oracle'
import useAllAssets from 'hooks/assets/useAllAssets' import useAllAssets from 'hooks/assets/useAllAssets'
import useLocalStorage from 'hooks/localStorage/useLocalStorage' import useLocalStorage from 'hooks/localStorage/useLocalStorage'
import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
import useHealthComputer from 'hooks/useHealthComputer' import useHealthComputer from 'hooks/useHealthComputer'
import usePrices from 'hooks/usePrices' import usePrices from 'hooks/usePrices'
import useStore from 'store' import useStore from 'store'
import { BNCoin } from 'types/classes/BNCoin' import { calculateAccountApr, calculateAccountLeverage } from 'utils/accounts'
import { calculateAccountBalanceValue, calculateAccountLeverage } from 'utils/accounts'
interface Props { interface Props {
account: Account account: Account
isAccountDetails?: boolean
isHls?: boolean isHls?: boolean
} }
export default function AccountSummary(props: Props) { export default function AccountSummary(props: Props) {
const storageKey = props.isAccountDetails
? LocalStorageKeys.ACCOUNT_DETAILS_TABS
: LocalStorageKeys.ACCOUNT_SUMMARY_TABS
const defaultSetting = props.isAccountDetails
? DEFAULT_SETTINGS.accountDetailsTabs
: DEFAULT_SETTINGS.accountSummaryTabs
const [accountSummaryTabs, setAccountSummaryTabs] = useLocalStorage<boolean[]>( const [accountSummaryTabs, setAccountSummaryTabs] = useLocalStorage<boolean[]>(
LocalStorageKeys.ACCOUNT_SUMMARY_TABS, storageKey,
DEFAULT_SETTINGS.accountSummaryTabs, defaultSetting,
) )
const { data: prices } = usePrices() const { data: prices } = usePrices()
const assets = useAllAssets() const assets = useAllAssets()
const updatedAccount = useStore((s) => s.updatedAccount) const updatedAccount = useStore((s) => s.updatedAccount)
const accountBalance = useMemo(
() =>
props.account
? calculateAccountBalanceValue(updatedAccount ?? props.account, prices, assets)
: BN_ZERO,
[props.account, updatedAccount, prices, assets],
)
const data = useBorrowMarketAssetsTableData() const data = useBorrowMarketAssetsTableData()
const borrowAssetsData = useMemo(() => data?.allAssets || [], [data]) const borrowAssetsData = useMemo(() => data?.allAssets || [], [data])
const { availableAssets: lendingAvailableAssets, accountLentAssets } = const { availableAssets: lendingAvailableAssets, accountLentAssets } =
useLendingMarketAssetsTableData() useLendingMarketAssetsTableData()
const { data: hlsStrategies } = useHLSStakingAssets()
const lendingAssetsData = useMemo( const lendingAssetsData = useMemo(
() => [...lendingAvailableAssets, ...accountLentAssets], () => [...lendingAvailableAssets, ...accountLentAssets],
[lendingAvailableAssets, accountLentAssets], [lendingAvailableAssets, accountLentAssets],
@ -76,10 +70,32 @@ export default function AccountSummary(props: Props) {
[accountSummaryTabs, setAccountSummaryTabs], [accountSummaryTabs, setAccountSummaryTabs],
) )
const apr = useMemo(
() =>
calculateAccountApr(
updatedAccount ?? props.account,
borrowAssetsData,
lendingAssetsData,
prices,
hlsStrategies,
assets,
props.account.kind === 'high_levered_strategy',
),
[
props.account,
assets,
borrowAssetsData,
hlsStrategies,
lendingAssetsData,
prices,
updatedAccount,
],
)
const items = useMemo(() => { const items = useMemo(() => {
const itemsArray = [ const itemsArray = [
{ {
title: `Credit Account ${props.account.id} Composition`, title: `Composition`,
renderContent: () => renderContent: () =>
props.account ? <AccountComposition account={props.account} isHls={props.isHls} /> : null, props.account ? <AccountComposition account={props.account} isHls={props.isHls} /> : null,
isOpen: accountSummaryTabs[0], isOpen: accountSummaryTabs[0],
@ -103,14 +119,23 @@ export default function AccountSummary(props: Props) {
renderSubTitle: () => <></>, renderSubTitle: () => <></>,
}, },
] ]
if (props.account.vaults.length > 0)
itemsArray.push({
title: 'Strategies',
renderContent: () =>
props.account ? <AccountStrategiesTable account={props.account} hideCard /> : null,
isOpen: accountSummaryTabs[2] ?? false,
toggleOpen: (index: number) => handleToggle(index),
renderSubTitle: () => <></>,
})
if (props.account.perps.length > 0) if (props.account.perps.length > 0)
itemsArray.push({ itemsArray.push({
title: 'Perp Positions', title: 'Perp Positions',
renderContent: () => renderContent: () =>
props.account && props.account.perps.length > 0 ? ( props.account ? <AccountPerpPositionTable account={props.account} hideCard /> : null,
<AccountPerpPositionTable account={props.account} hideCard /> isOpen: accountSummaryTabs[props.account.vaults.length > 0 ? 3 : 2] ?? false,
) : null,
isOpen: accountSummaryTabs[2] ?? false,
toggleOpen: (index: number) => handleToggle(index), toggleOpen: (index: number) => handleToggle(index),
renderSubTitle: () => <></>, renderSubTitle: () => <></>,
}) })
@ -127,74 +152,22 @@ export default function AccountSummary(props: Props) {
if (!props.account) return null if (!props.account) return null
return ( return (
<div className='h-[546px] max-w-screen overflow-y-scroll scrollbar-hide w-93.5'> <>
<Card className='mb-4 h-min min-w-fit bg-white/10' contentClassName='flex'> <AccountSummaryHeader
<Item label='Net worth' classes='flex-1'> account={props.account}
<DisplayCurrency updatedAccount={updatedAccount}
coin={BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, accountBalance)} prices={prices}
className='text-2xs' assets={assets}
/> leverage={leverage.toNumber() || 1}
</Item> updatedLeverage={updatedLeverage?.toNumber() || null}
<Item label='Leverage' classes='flex-1 w-[93px]'> apr={apr.toNumber()}
<FormattedNumber health={health}
className={'w-full text-center text-2xs'} updatedHealth={updatedHealth}
amount={isNaN(leverage.toNumber()) ? 0 : leverage.toNumber()} healthFactor={healthFactor}
options={{ updatedHealthFactor={updatedHealthFactor}
maxDecimals: 2, isAccountDetails={props.isAccountDetails}
minDecimals: 2, />
suffix: 'x',
}}
animate
/>
{updatedLeverage && (
<>
<ArrowRight width={12} />
<FormattedNumber
className={classNames(
'w-full text-center text-2xs',
updatedLeverage?.isGreaterThan(leverage) && 'text-loss',
updatedLeverage?.isLessThan(leverage) && 'text-profit',
)}
amount={isNaN(updatedLeverage.toNumber()) ? 0 : updatedLeverage?.toNumber()}
options={{ maxDecimals: 2, minDecimals: 2, suffix: 'x' }}
animate
/>
</>
)}
</Item>
<Item label='Account health'>
<HealthBar
health={health}
healthFactor={healthFactor}
updatedHealth={updatedHealth}
updatedHealthFactor={updatedHealthFactor}
className='h-1'
/>
</Item>
</Card>
<Accordion items={items} allowMultipleOpen /> <Accordion items={items} allowMultipleOpen />
</div> </>
)
}
interface ItemProps extends HTMLAttributes<HTMLDivElement> {
label: string
classes?: string
}
function Item(props: ItemProps) {
return (
<div
className={classNames(
'flex flex-col justify-around px-3 py-1 border-r border-r-white/10',
props.classes,
)}
{...props}
>
<Text size='2xs' className='text-white/50 whitespace-nowrap'>
{props.label}
</Text>
<div className='flex h-4.5 w-full'>{props.children}</div>
</div>
) )
} }

View File

@ -1,10 +0,0 @@
import AccountSummary from 'components/account/AccountSummary'
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
function CurrentAccountSummary() {
const account = useCurrentAccount()
if (!account) return
return <AccountSummary account={account} />
}
export default CurrentAccountSummary

View File

@ -11,13 +11,12 @@ import { getHealthIndicatorColors } from 'utils/healthIndicator'
interface Props { interface Props {
className?: string className?: string
hasLabel?: boolean
health: number health: number
healthFactor: number healthFactor: number
height?: string height?: string
iconClassName?: string iconClassName?: string
updatedHealth?: number
updatedHealthFactor?: number updatedHealthFactor?: number
updatedHealth?: number
showIcon?: boolean showIcon?: boolean
} }
@ -87,44 +86,44 @@ export default function HealthBar({
<rect fill='#FFFFFF' x='95.5' width='88.5' height={height} /> <rect fill='#FFFFFF' x='95.5' width='88.5' height={height} />
</mask> </mask>
<mask id='backgroundHealthBarMask'> <mask id='backgroundHealthBarMask'>
<rect fill='#FFFFFF' x='0' y='0' width='6.4' height={height} /> <rect fill='#FFFFFF' x='0' y='-0.45' width='6.4' height={height} />
<rect fill='#FFFFFF' x='8.9' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='8.9' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='13.7' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='13.7' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='18.5' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='18.5' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='23.3' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='23.3' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='28.1' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='28.1' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='32.9' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='32.9' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='37.7' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='37.7' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='42.5' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='42.7' y='-0.45' width='1.4' height={height} />
<rect fill='#FFFFFF' x='47.3' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='47.3' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='52.1' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='52.1' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='56.9' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='56.9' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='61.7' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='61.7' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='66.5' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='66.5' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='71.3' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='71.3' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='76.1' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='76.1' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='80.9' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='80.9' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='85.7' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='85.7' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='90.5' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='90.5' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='95.3' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='95.3' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='100.1' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='100.1' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='104.9' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='104.9' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='109.7' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='109.7' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='114.5' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='114.5' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='119.2' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='119.2' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='124' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='124' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='128.8' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='128.8' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='133.6' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='133.6' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='138.4' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='138.4' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='143.2' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='143.2' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='148' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='148' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='152.8' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='152.8' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='157.6' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='157.6' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='162.4' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='162.4' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='167.2' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='167.2' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='172' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='172' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='176.8' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='176.8' y='-0.45' width='2.4' height={height} />
<rect fill='#FFFFFF' x='181.6' y='0' width='2.4' height={height} /> <rect fill='#FFFFFF' x='181.6' y='-0.45' width='2.4' height={height} />
</mask> </mask>
<rect <rect
className='fill-white/10' className='fill-white/10'

View File

@ -2,7 +2,7 @@ import { FormattedNumber } from 'components/common/FormattedNumber'
import Loading from 'components/common/Loading' import Loading from 'components/common/Loading'
export const BORROW_RATE_META = { export const BORROW_RATE_META = {
accessorKey: 'borrowRate', accessorKey: 'apy.borrow',
header: 'Borrow Rate APY', header: 'Borrow Rate APY',
meta: { className: 'w-40' }, meta: { className: 'w-40' },
} }

View File

@ -12,11 +12,11 @@ interface Props {
export default function Accordion(props: Props) { export default function Accordion(props: Props) {
if (props.allowMultipleOpen) { if (props.allowMultipleOpen) {
return ( return (
<Card className='w-full'> <>
{props.items.map((item, index) => ( {props.items.map((item, index) => (
<AccordionContent key={index} item={item} index={index} /> <AccordionContent key={index} item={item} index={index} />
))} ))}
</Card> </>
) )
} }

View File

@ -27,20 +27,29 @@ export default function AccordionContent(props: Props) {
<div <div
onClick={() => toggleOpen(props.index)} onClick={() => toggleOpen(props.index)}
className={classNames( className={classNames(
'mb-0 flex hover:cursor-pointer items-center justify-between bg-white/10 p-4 text-white border-b border-transparent', 'mb-0 flex hover:cursor-pointer items-center justify-between bg-white/10 py-2 px-4 text-white border-b border-transparent',
'[&::marker]:hidden [&::marker]:content-[""]', '[&::marker]:hidden [&::marker]:content-[""]',
isOpen && 'border-white/20', isOpen && 'border-white/10',
)} )}
> >
<div> <div>
<Text>{title}</Text> <Text size='sm' className='font-semibold'>
{title}
</Text>
{renderSubTitle()} {renderSubTitle()}
</div> </div>
<div className='block pr-1 group-[[open]]/accordion:hidden'> <div className='block pr-1 group-[[open]]/accordion:hidden'>
{isOpen ? <ChevronDown className='h-1.5' /> : <ChevronRight className='w-1.5' />} {isOpen ? <ChevronDown className='h-1.5' /> : <ChevronRight className='w-1.5' />}
</div> </div>
</div> </div>
{isOpen && <div className='bg-white/5 transition-[padding]'>{renderContent()}</div>} <div
className={classNames(
'grid transition-[grid-template-rows]',
isOpen ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]',
)}
>
<div className='overflow-hidden'>{renderContent()}</div>
</div>
</div> </div>
) )
} }

View File

@ -32,10 +32,10 @@ export default function EscButton(props: Props) {
return ( return (
<Button <Button
onClick={props.onClick} onClick={props.onClick}
leftIcon={<Cross size={16} />} leftIcon={<Cross />}
iconClassName='w-3' iconClassName='w-3'
color='tertiary' color='tertiary'
className={props.className ? props.className : 'h-8 w-8'} className='w-8 h-8'
size='xs' size='xs'
/> />
) )

View File

@ -1,3 +1,15 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg
<path d="M3.33337 8.00065H12.6667M12.6667 8.00065L8.00004 3.33398M12.6667 8.00065L8.00004 12.6673" stroke="currentColor" stroke-width="0.666667" stroke-linecap="round" stroke-linejoin="round"/> width="100%"
className="icon"
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M3.33337 8.00065H12.6667M12.6667 8.00065L8.00004 3.33398M12.6667 8.00065L8.00004 12.6673"
stroke="currentColor"
stroke-width="0.666667"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 299 B

After

Width:  |  Height:  |  Size: 340 B

View File

@ -0,0 +1,8 @@
<svg viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M13 13V1M1 7H10.3333M10.3333 7L5.66667 2.33333M10.3333 7L5.66667 11.6667"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>

After

Width:  |  Height:  |  Size: 255 B

View File

@ -1,4 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 512 512"> <svg
width="100%"
className="icon"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 512 512"
>
<path <path
fill="currentColor" fill="currentColor"
d="M459.654,233.373l-90.531,90.5c-49.969,50-131.031,50-181,0c-7.875-7.844-14.031-16.688-19.438-25.813 l42.063-42.063c2-2.016,4.469-3.172,6.828-4.531c2.906,9.938,7.984,19.344,15.797,27.156c24.953,24.969,65.563,24.938,90.5,0 l90.5-90.5c24.969-24.969,24.969-65.563,0-90.516c-24.938-24.953-65.531-24.953-90.5,0l-32.188,32.219 c-26.109-10.172-54.25-12.906-81.641-8.891l68.578-68.578c50-49.984,131.031-49.984,181.031,0 C509.623,102.342,509.623,183.389,459.654,233.373z M220.326,382.186l-32.203,32.219c-24.953,24.938-65.563,24.938-90.516,0 c-24.953-24.969-24.953-65.563,0-90.531l90.516-90.5c24.969-24.969,65.547-24.969,90.5,0c7.797,7.797,12.875,17.203,15.813,27.125 c2.375-1.375,4.813-2.5,6.813-4.5l42.063-42.047c-5.375-9.156-11.563-17.969-19.438-25.828c-49.969-49.984-131.031-49.984-181.016,0 l-90.5,90.5c-49.984,50-49.984,131.031,0,181.031c49.984,49.969,131.031,49.969,181.016,0l68.594-68.594 C274.561,395.092,246.42,392.342,220.326,382.186z" d="M459.654,233.373l-90.531,90.5c-49.969,50-131.031,50-181,0c-7.875-7.844-14.031-16.688-19.438-25.813 l42.063-42.063c2-2.016,4.469-3.172,6.828-4.531c2.906,9.938,7.984,19.344,15.797,27.156c24.953,24.969,65.563,24.938,90.5,0 l90.5-90.5c24.969-24.969,24.969-65.563,0-90.516c-24.938-24.953-65.531-24.953-90.5,0l-32.188,32.219 c-26.109-10.172-54.25-12.906-81.641-8.891l68.578-68.578c50-49.984,131.031-49.984,181.031,0 C509.623,102.342,509.623,183.389,459.654,233.373z M220.326,382.186l-32.203,32.219c-24.953,24.938-65.563,24.938-90.516,0 c-24.953-24.969-24.953-65.563,0-90.531l90.516-90.5c24.969-24.969,65.547-24.969,90.5,0c7.797,7.797,12.875,17.203,15.813,27.125 c2.375-1.375,4.813-2.5,6.813-4.5l42.063-42.047c-5.375-9.156-11.563-17.969-19.438-25.828c-49.969-49.984-131.031-49.984-181.016,0 l-90.5,90.5c-49.984,50-49.984,131.031,0,181.031c49.984,49.969,131.031,49.969,181.016,0l68.594-68.594 C274.561,395.092,246.42,392.342,220.326,382.186z"

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,3 +1,10 @@
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"> <svg
width="100%"
className="icon"
version="1.1"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
>
<path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" /> <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 210 B

View File

@ -1,4 +1,12 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 10 16"> <svg
width="100%"
className="icon"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
x="0px"
y="0px"
viewBox="0 0 10 16"
>
<path <path
fill="currentColor" fill="currentColor"
d="M9.3,0.2C9.6,0.5,9.6,1,9.3,1.3L9.3,1.4L2.5,8l6.7,6.6c0.3,0.3,0.3,0.7,0.1,1.1l-0.1,0.1c-0.3,0.3-0.8,0.3-1.1,0.1l-0.1-0.1 d="M9.3,0.2C9.6,0.5,9.6,1,9.3,1.3L9.3,1.4L2.5,8l6.7,6.6c0.3,0.3,0.3,0.7,0.1,1.1l-0.1,0.1c-0.3,0.3-0.8,0.3-1.1,0.1l-0.1-0.1

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 383 B

View File

@ -1,4 +1,12 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 16 10"> <svg
width="100%"
className="icon"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
x="0px"
y="0px"
viewBox="0 0 16 10"
>
<path <path
fill="currentColor" fill="currentColor"
d="M15.8,9.3c-0.3,0.3-0.7,0.3-1.1,0.1l-0.1-0.1L8,2.5L1.4,9.3C1.1,9.6,0.7,9.6,0.3,9.3L0.2,9.3 d="M15.8,9.3c-0.3,0.3-0.7,0.3-1.1,0.1l-0.1-0.1L8,2.5L1.4,9.3C1.1,9.6,0.7,9.6,0.3,9.3L0.2,9.3

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 387 B

View File

@ -1,10 +1,15 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_5007_284)"> <g clip-path="url(#clip0_5007_284)">
<path d="M8.00016 14.6654C11.6821 14.6654 14.6668 11.6806 14.6668 7.9987C14.6668 4.3168 11.6821 1.33203 8.00016 1.33203C4.31826 1.33203 1.3335 4.3168 1.3335 7.9987C1.3335 11.6806 4.31826 14.6654 8.00016 14.6654Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> <path
</g> d="M8.00016 14.6654C11.6821 14.6654 14.6668 11.6806 14.6668 7.9987C14.6668 4.3168 11.6821 1.33203 8.00016 1.33203C4.31826 1.33203 1.3335 4.3168 1.3335 7.9987C1.3335 11.6806 4.31826 14.6654 8.00016 14.6654Z"
<defs> stroke="currentColor"
<clipPath id="clip0_5007_284"> stroke-linecap="round"
<rect width="16" height="16" fill="currentColor"/> stroke-linejoin="round"
</clipPath> />
</defs> </g>
<defs>
<clipPath id="clip0_5007_284">
<rect width="16" height="16" fill="currentColor" />
</clipPath>
</defs>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 567 B

After

Width:  |  Height:  |  Size: 571 B

View File

@ -1,4 +1,15 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9998 9.00023V13.0002M11.9998 17.0002H12.0098M10.6151 3.89195L2.39019 18.0986C1.93398 18.8866 1.70588 19.2806 1.73959 19.6039C1.769 19.886 1.91677 20.1423 2.14613 20.309C2.40908 20.5002 2.86435 20.5002 3.77487 20.5002H20.2246C21.1352 20.5002 21.5904 20.5002 21.8534 20.309C22.0827 20.1423 22.2305 19.886 22.2599 19.6039C22.2936 19.2806 22.0655 18.8866 21.6093 18.0986L13.3844 3.89195C12.9299 3.10679 12.7026 2.71421 12.4061 2.58235C12.1474 2.46734 11.8521 2.46734 11.5935 2.58235C11.2969 2.71421 11.0696 3.10679 10.6151 3.89195Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> <path
<path d="M12 9V13M12 17H12.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> d="M11.9998 9.00023V13.0002M11.9998 17.0002H12.0098M10.6151 3.89195L2.39019 18.0986C1.93398 18.8866 1.70588 19.2806 1.73959 19.6039C1.769 19.886 1.91677 20.1423 2.14613 20.309C2.40908 20.5002 2.86435 20.5002 3.77487 20.5002H20.2246C21.1352 20.5002 21.5904 20.5002 21.8534 20.309C22.0827 20.1423 22.2305 19.886 22.2599 19.6039C22.2936 19.2806 22.0655 18.8866 21.6093 18.0986L13.3844 3.89195C12.9299 3.10679 12.7026 2.71421 12.4061 2.58235C12.1474 2.46734 11.8521 2.46734 11.5935 2.58235C11.2969 2.71421 11.0696 3.10679 10.6151 3.89195Z"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
/>
<path
d="M12 9V13M12 17H12.01"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 816 B

After

Width:  |  Height:  |  Size: 858 B

View File

@ -1,4 +1,6 @@
<svg <svg
width="100%"
className="icon"
version="1.1" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
x="0px" x="0px"

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -1,4 +1,12 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 564 225"> <svg
width="100%"
className="icon"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
x="0px"
y="0px"
viewBox="0 0 564 225"
>
<defs> <defs>
<rect id="gridHoleRect" width="564.1" height="225.1" /> <rect id="gridHoleRect" width="564.1" height="225.1" />
</defs> </defs>

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -1,4 +1,12 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 511 225"> <svg
width="100%"
className="icon"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
x="0px"
y="0px"
viewBox="0 0 511 225"
>
<defs> <defs>
<rect id="gridLandscapeRect" width="511" height="225" /> <rect id="gridLandscapeRect" width="511" height="225" />
</defs> </defs>

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -1,4 +1,6 @@
<svg <svg
width="100%"
className="icon"
version="1.1" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
x="0px" x="0px"

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,4 +1,6 @@
<svg <svg
width="100%"
className="icon"
version="1.1" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
x="0px" x="0px"

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,4 +1,6 @@
<svg <svg
width="100%"
className="icon"
version="1.1" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
x="0px" x="0px"

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -1,4 +1,12 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 242 80"> <svg
width="100%"
className="icon"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
x="0px"
y="0px"
viewBox="0 0 242 80"
>
<path <path
fill-rule="evenodd" fill-rule="evenodd"
clip-rule="evenodd" clip-rule="evenodd"

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -1,4 +1,12 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 24 24"> <svg
width="100%"
className="icon"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
x="0px"
y="0px"
viewBox="0 0 24 24"
>
<path <path
fill="#FFF" fill="#FFF"
d="M23.6,14.9C22,21.3,15.5,25.2,9,23.6C2.6,22-1.3,15.5,0.3,9.1S8.4-1.2,14.8,0.4C21.3,2,25.2,8.5,23.6,14.9 d="M23.6,14.9C22,21.3,15.5,25.2,9,23.6C2.6,22-1.3,15.5,0.3,9.1S8.4-1.2,14.8,0.4C21.3,2,25.2,8.5,23.6,14.9

Before

Width:  |  Height:  |  Size: 553 B

After

Width:  |  Height:  |  Size: 598 B

View File

@ -1,5 +1,11 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="scales-02"> <g id="scales-02">
<path id="Icon" d="M2.50047 13H8.50047M15.5005 13H21.5005M12.0005 7V21M12.0005 7C13.3812 7 14.5005 5.88071 14.5005 4.5M12.0005 7C10.6198 7 9.50047 5.88071 9.50047 4.5M4.00047 21L20.0005 21M4.00047 4.50001L9.50047 4.5M9.50047 4.5C9.50047 3.11929 10.6198 2 12.0005 2C13.3812 2 14.5005 3.11929 14.5005 4.5M14.5005 4.5L20.0005 4.5M8.88091 14.3364C8.48022 15.8706 7.11858 17 5.50047 17C3.88237 17 2.52073 15.8706 2.12004 14.3364C2.0873 14.211 2.07093 14.1483 2.06935 13.8979C2.06838 13.7443 2.12544 13.3904 2.17459 13.2449C2.25478 13.0076 2.34158 12.8737 2.51519 12.6059L5.50047 8L8.48576 12.6059C8.65937 12.8737 8.74617 13.0076 8.82636 13.2449C8.87551 13.3904 8.93257 13.7443 8.9316 13.8979C8.93002 14.1483 8.91365 14.211 8.88091 14.3364ZM21.8809 14.3364C21.4802 15.8706 20.1186 17 18.5005 17C16.8824 17 15.5207 15.8706 15.12 14.3364C15.0873 14.211 15.0709 14.1483 15.0693 13.8979C15.0684 13.7443 15.1254 13.3904 15.1746 13.2449C15.2548 13.0076 15.3416 12.8737 15.5152 12.6059L18.5005 8L21.4858 12.6059C21.6594 12.8737 21.7462 13.0076 21.8264 13.2449C21.8755 13.3904 21.9326 13.7443 21.9316 13.8979C21.93 14.1483 21.9137 14.211 21.8809 14.3364Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> <path
</g> id="Icon"
d="M2.50047 13H8.50047M15.5005 13H21.5005M12.0005 7V21M12.0005 7C13.3812 7 14.5005 5.88071 14.5005 4.5M12.0005 7C10.6198 7 9.50047 5.88071 9.50047 4.5M4.00047 21L20.0005 21M4.00047 4.50001L9.50047 4.5M9.50047 4.5C9.50047 3.11929 10.6198 2 12.0005 2C13.3812 2 14.5005 3.11929 14.5005 4.5M14.5005 4.5L20.0005 4.5M8.88091 14.3364C8.48022 15.8706 7.11858 17 5.50047 17C3.88237 17 2.52073 15.8706 2.12004 14.3364C2.0873 14.211 2.07093 14.1483 2.06935 13.8979C2.06838 13.7443 2.12544 13.3904 2.17459 13.2449C2.25478 13.0076 2.34158 12.8737 2.51519 12.6059L5.50047 8L8.48576 12.6059C8.65937 12.8737 8.74617 13.0076 8.82636 13.2449C8.87551 13.3904 8.93257 13.7443 8.9316 13.8979C8.93002 14.1483 8.91365 14.211 8.88091 14.3364ZM21.8809 14.3364C21.4802 15.8706 20.1186 17 18.5005 17C16.8824 17 15.5207 15.8706 15.12 14.3364C15.0873 14.211 15.0709 14.1483 15.0693 13.8979C15.0684 13.7443 15.1254 13.3904 15.1746 13.2449C15.2548 13.0076 15.3416 12.8737 15.5152 12.6059L18.5005 8L21.4858 12.6059C21.6594 12.8737 21.7462 13.0076 21.8264 13.2449C21.8755 13.3904 21.9326 13.7443 21.9316 13.8979C21.93 14.1483 21.9137 14.211 21.8809 14.3364Z"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
/>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,9 +1,19 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.52193 2.30302C7.67559 1.99173 7.75242 1.83609 7.85672 1.78636C7.94746 1.74309 8.05289 1.74309 8.14363 1.78636C8.24793 1.83609 8.32476 1.99173 8.47842 2.30302L9.9362 5.25634C9.98157 5.34824 10.0042 5.39419 10.0374 5.42986C10.0667 5.46145 10.1019 5.48705 10.141 5.50523C10.1852 5.52576 10.2359 5.53317 10.3373 5.548L13.5982 6.02462C13.9415 6.07481 14.1132 6.0999 14.1927 6.18377C14.2618 6.25674 14.2943 6.35701 14.2812 6.45666C14.266 6.5712 14.1417 6.69227 13.8931 6.9344L11.5345 9.23176C11.4609 9.30338 11.4242 9.33918 11.4004 9.38179C11.3794 9.41951 11.366 9.46096 11.3608 9.50382C11.3549 9.55223 11.3636 9.60281 11.3809 9.70397L11.9375 12.9489C11.9962 13.2911 12.0255 13.4623 11.9704 13.5638C11.9224 13.6522 11.8371 13.7141 11.7382 13.7325C11.6246 13.7535 11.4709 13.6727 11.1636 13.5111L8.24841 11.978C8.15758 11.9303 8.11217 11.9064 8.06432 11.897C8.02196 11.8887 7.97839 11.8887 7.93602 11.897C7.88818 11.9064 7.84276 11.9303 7.75193 11.978L4.83678 13.5111C4.52944 13.6727 4.37577 13.7535 4.26214 13.7325C4.16328 13.7141 4.07798 13.6522 4.02999 13.5638C3.97483 13.4623 4.00418 13.2911 4.06288 12.9489L4.61942 9.70397C4.63677 9.60281 4.64545 9.55223 4.63958 9.50382C4.63438 9.46096 4.6209 9.41951 4.5999 9.38179C4.57618 9.33918 4.53941 9.30337 4.46589 9.23176L2.1072 6.9344C1.8586 6.69227 1.73431 6.5712 1.71918 6.45666C1.70602 6.35701 1.73853 6.25674 1.80766 6.18377C1.88712 6.0999 2.05881 6.07481 2.40219 6.02462L5.66304 5.548C5.76445 5.53317 5.81515 5.52576 5.85931 5.50523C5.89841 5.48705 5.9336 5.46145 5.96295 5.42986C5.9961 5.39419 6.01878 5.34824 6.06415 5.25634L7.52193 2.30302Z" fill="url(#paint0_linear_1694_217638)"/> <path
<defs> d="M7.52193 2.30302C7.67559 1.99173 7.75242 1.83609 7.85672 1.78636C7.94746 1.74309 8.05289 1.74309 8.14363 1.78636C8.24793 1.83609 8.32476 1.99173 8.47842 2.30302L9.9362 5.25634C9.98157 5.34824 10.0042 5.39419 10.0374 5.42986C10.0667 5.46145 10.1019 5.48705 10.141 5.50523C10.1852 5.52576 10.2359 5.53317 10.3373 5.548L13.5982 6.02462C13.9415 6.07481 14.1132 6.0999 14.1927 6.18377C14.2618 6.25674 14.2943 6.35701 14.2812 6.45666C14.266 6.5712 14.1417 6.69227 13.8931 6.9344L11.5345 9.23176C11.4609 9.30338 11.4242 9.33918 11.4004 9.38179C11.3794 9.41951 11.366 9.46096 11.3608 9.50382C11.3549 9.55223 11.3636 9.60281 11.3809 9.70397L11.9375 12.9489C11.9962 13.2911 12.0255 13.4623 11.9704 13.5638C11.9224 13.6522 11.8371 13.7141 11.7382 13.7325C11.6246 13.7535 11.4709 13.6727 11.1636 13.5111L8.24841 11.978C8.15758 11.9303 8.11217 11.9064 8.06432 11.897C8.02196 11.8887 7.97839 11.8887 7.93602 11.897C7.88818 11.9064 7.84276 11.9303 7.75193 11.978L4.83678 13.5111C4.52944 13.6727 4.37577 13.7535 4.26214 13.7325C4.16328 13.7141 4.07798 13.6522 4.02999 13.5638C3.97483 13.4623 4.00418 13.2911 4.06288 12.9489L4.61942 9.70397C4.63677 9.60281 4.64545 9.55223 4.63958 9.50382C4.63438 9.46096 4.6209 9.41951 4.5999 9.38179C4.57618 9.33918 4.53941 9.30337 4.46589 9.23176L2.1072 6.9344C1.8586 6.69227 1.73431 6.5712 1.71918 6.45666C1.70602 6.35701 1.73853 6.25674 1.80766 6.18377C1.88712 6.0999 2.05881 6.07481 2.40219 6.02462L5.66304 5.548C5.76445 5.53317 5.81515 5.52576 5.85931 5.50523C5.89841 5.48705 5.9336 5.46145 5.96295 5.42986C5.9961 5.39419 6.01878 5.34824 6.06415 5.25634L7.52193 2.30302Z"
<linearGradient id="paint0_linear_1694_217638" x1="19.7824" y1="1.75391" x2="-3.19296" y2="1.7547" gradientUnits="userSpaceOnUse"> fill="url(#paint0_linear_1694_217638)"
<stop stop-color="#BA08BD" stop-opacity="0.764896"/> />
<stop offset="1" stop-color="#FFA0BB" stop-opacity="0.88641"/> <defs>
</linearGradient> <linearGradient
</defs> id="paint0_linear_1694_217638"
x1="19.7824"
y1="1.75391"
x2="-3.19296"
y2="1.7547"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#BA08BD" stop-opacity="0.764896" />
<stop offset="1" stop-color="#FFA0BB" stop-opacity="0.88641" />
</linearGradient>
</defs>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,3 +1,9 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.52193 2.30302C7.67559 1.99173 7.75242 1.83609 7.85672 1.78636C7.94746 1.74309 8.05289 1.74309 8.14363 1.78636C8.24793 1.83609 8.32476 1.99173 8.47842 2.30302L9.9362 5.25634C9.98157 5.34824 10.0042 5.39419 10.0374 5.42986C10.0667 5.46145 10.1019 5.48705 10.141 5.50523C10.1852 5.52576 10.2359 5.53317 10.3373 5.548L13.5982 6.02462C13.9415 6.07481 14.1132 6.0999 14.1927 6.18377C14.2618 6.25674 14.2943 6.35701 14.2812 6.45666C14.266 6.5712 14.1417 6.69227 13.8931 6.9344L11.5345 9.23176C11.4609 9.30338 11.4242 9.33918 11.4004 9.38179C11.3794 9.41951 11.366 9.46096 11.3608 9.50382C11.3549 9.55223 11.3636 9.60281 11.3809 9.70397L11.9375 12.9489C11.9962 13.2911 12.0255 13.4623 11.9704 13.5638C11.9224 13.6522 11.8371 13.7141 11.7382 13.7325C11.6246 13.7535 11.4709 13.6727 11.1636 13.5111L8.24841 11.978C8.15758 11.9303 8.11217 11.9064 8.06432 11.897C8.02196 11.8887 7.97839 11.8887 7.93602 11.897C7.88818 11.9064 7.84276 11.9303 7.75193 11.978L4.83678 13.5111C4.52944 13.6727 4.37577 13.7535 4.26214 13.7325C4.16328 13.7141 4.07798 13.6522 4.02999 13.5638C3.97483 13.4623 4.00418 13.2911 4.06288 12.9489L4.61942 9.70397C4.63677 9.60281 4.64545 9.55223 4.63958 9.50382C4.63438 9.46096 4.6209 9.41951 4.5999 9.38179C4.57618 9.33918 4.53941 9.30337 4.46589 9.23176L2.1072 6.9344C1.8586 6.69227 1.73431 6.5712 1.71918 6.45666C1.70602 6.35701 1.73853 6.25674 1.80766 6.18377C1.88712 6.0999 2.05881 6.07481 2.40219 6.02462L5.66304 5.548C5.76445 5.53317 5.81515 5.52576 5.85931 5.50523C5.89841 5.48705 5.9336 5.46145 5.96295 5.42986C5.9961 5.39419 6.01878 5.34824 6.06415 5.25634L7.52193 2.30302Z" stroke="currentColor" stroke-opacity="0.5" stroke-linecap="round" stroke-linejoin="round"/> <path
d="M7.52193 2.30302C7.67559 1.99173 7.75242 1.83609 7.85672 1.78636C7.94746 1.74309 8.05289 1.74309 8.14363 1.78636C8.24793 1.83609 8.32476 1.99173 8.47842 2.30302L9.9362 5.25634C9.98157 5.34824 10.0042 5.39419 10.0374 5.42986C10.0667 5.46145 10.1019 5.48705 10.141 5.50523C10.1852 5.52576 10.2359 5.53317 10.3373 5.548L13.5982 6.02462C13.9415 6.07481 14.1132 6.0999 14.1927 6.18377C14.2618 6.25674 14.2943 6.35701 14.2812 6.45666C14.266 6.5712 14.1417 6.69227 13.8931 6.9344L11.5345 9.23176C11.4609 9.30338 11.4242 9.33918 11.4004 9.38179C11.3794 9.41951 11.366 9.46096 11.3608 9.50382C11.3549 9.55223 11.3636 9.60281 11.3809 9.70397L11.9375 12.9489C11.9962 13.2911 12.0255 13.4623 11.9704 13.5638C11.9224 13.6522 11.8371 13.7141 11.7382 13.7325C11.6246 13.7535 11.4709 13.6727 11.1636 13.5111L8.24841 11.978C8.15758 11.9303 8.11217 11.9064 8.06432 11.897C8.02196 11.8887 7.97839 11.8887 7.93602 11.897C7.88818 11.9064 7.84276 11.9303 7.75193 11.978L4.83678 13.5111C4.52944 13.6727 4.37577 13.7535 4.26214 13.7325C4.16328 13.7141 4.07798 13.6522 4.02999 13.5638C3.97483 13.4623 4.00418 13.2911 4.06288 12.9489L4.61942 9.70397C4.63677 9.60281 4.64545 9.55223 4.63958 9.50382C4.63438 9.46096 4.6209 9.41951 4.5999 9.38179C4.57618 9.33918 4.53941 9.30337 4.46589 9.23176L2.1072 6.9344C1.8586 6.69227 1.73431 6.5712 1.71918 6.45666C1.70602 6.35701 1.73853 6.25674 1.80766 6.18377C1.88712 6.0999 2.05881 6.07481 2.40219 6.02462L5.66304 5.548C5.76445 5.53317 5.81515 5.52576 5.85931 5.50523C5.89841 5.48705 5.9336 5.46145 5.96295 5.42986C5.9961 5.39419 6.01878 5.34824 6.06415 5.25634L7.52193 2.30302Z"
stroke="currentColor"
stroke-opacity="0.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,3 +1,9 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.3334 11.3333H2.66675M2.66675 11.3333L5.33341 8.66667M2.66675 11.3333L5.33341 14M2.66675 4.66667H13.3334M13.3334 4.66667L10.6667 2M13.3334 4.66667L10.6667 7.33333" stroke="currentColor" stroke-opacity="0.6" stroke-linecap="round" stroke-linejoin="round"/> <path
d="M13.3334 11.3333H2.66675M2.66675 11.3333L5.33341 8.66667M2.66675 11.3333L5.33341 14M2.66675 4.66667H13.3334M13.3334 4.66667L10.6667 2M13.3334 4.66667L10.6667 7.33333"
stroke="currentColor"
stroke-opacity="0.6"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 373 B

View File

@ -1,5 +1,6 @@
<svg viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.86824 5.48057C4.48435 6.15239 3.51565 6.15239 3.13176 5.48057L0 0L8 0L4.86824 5.48057Z" <path
fill="currentColor" d="M4.86824 5.48057C4.48435 6.15239 3.51565 6.15239 3.13176 5.48057L0 0L8 0L4.86824 5.48057Z"
/> fill="currentColor"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 213 B

View File

@ -1,4 +1,12 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 120 120"> <svg
width="100%"
className="icon"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
x="0px"
y="0px"
viewBox="0 0 120 120"
>
<path <path
fill="currentColor" fill="currentColor"
d="M0.3,3.8l46.3,61.9L0,116.2h10.5l40.8-44.1l33,44.1H120L71.1,50.7l43.4-46.9H104L66.4,44.5L36,3.8 d="M0.3,3.8l46.3,61.9L0,116.2h10.5l40.8-44.1l33,44.1H120L71.1,50.7l43.4-46.9H104L66.4,44.5L36,3.8

Before

Width:  |  Height:  |  Size: 289 B

After

Width:  |  Height:  |  Size: 334 B

View File

@ -1,3 +1,11 @@
<svg viewBox="0 0 1 8" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg viewBox="0 0 1 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<line x1="0.5" y1="0.5" x2="0.5" y2="7.5" stroke="currentColor" stroke-linecap="round" stroke-dasharray="2 2"/> <line
x1="0.5"
y1="0.5"
x2="0.5"
y2="7.5"
stroke="currentColor"
stroke-linecap="round"
stroke-dasharray="2 2"
/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 190 B

After

Width:  |  Height:  |  Size: 223 B

View File

@ -1,4 +1,11 @@
<svg version="1.1" viewBox="0 0 18 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> <svg
width="100%"
className="icon"
version="1.1"
viewBox="0 0 18 16"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
>
<path <path
d="M13.7929 6.3499L15.0178 6.29599C15.2308 6.24208 15.4438 6.02644 15.4438 5.75688V4.24737H2.23669C1.97041 4.24737 1.7574 4.03172 1.7574 3.81608C1.7574 3.54652 1.97041 3.33088 2.23669 3.33088H4.68639L6.39053 2.52221H1.49112C1.1716 2.52221 0.905325 2.79177 0.905325 3.11524V14.5444C0.905325 14.8679 1.1716 15.1374 1.49112 15.1374H14.858C15.1775 15.1374 15.4438 14.8679 15.4438 14.5444V11.9028C15.4438 11.5793 15.1775 11.3097 14.858 11.3097C14.2722 11.3097 13.6864 11.3097 13.0473 11.3097C12.2485 11.3097 11.6095 10.6628 11.6095 9.80022V7.80551C11.6095 6.45773 12.7278 6.3499 13.7929 6.3499ZM6.76331 3.33088H12.6213L11.503 1.06661L6.76331 3.33088ZM13.6331 3.33088H15.4438V3.11524C15.4438 2.79177 15.1775 2.52221 14.858 2.52221H13.2071L13.6331 3.33088ZM12.7811 1.60572H14.858C15.6568 1.60572 16.2959 2.30657 16.2959 3.11524C16.2959 3.97781 16.2959 4.8943 16.2959 5.75688C16.2959 5.97253 16.2959 6.13426 16.1893 6.3499H16.5089C17.3077 6.3499 18 6.99684 18 7.80551V9.80022C18 10.6089 17.3077 11.3097 16.5089 11.3097H16.1893C16.2959 11.4715 16.2959 11.6871 16.2959 11.9028V14.5444C16.2959 15.3531 15.6568 16 14.858 16H1.49112C0.692308 16 0 15.3531 0 14.5444V3.11524C0 2.30657 0.692308 1.60572 1.49112 1.60572H8.25444L11.5562 0.0422992C11.7692 -0.0655231 12.0355 0.0422992 12.142 0.257944L12.7811 1.60572ZM16.5089 7.26639C15.3373 7.26639 14.2189 7.26639 13.0473 7.26639C12.7278 7.26639 12.5148 7.48204 12.5148 7.80551V9.80022C12.5148 10.1237 12.7278 10.3932 13.0473 10.3932C14.2189 10.3932 15.3373 10.3932 16.5089 10.3932C16.8284 10.3932 17.0947 10.1237 17.0947 9.80022V7.80551C17.0947 7.48204 16.8284 7.26639 16.5089 7.26639Z" d="M13.7929 6.3499L15.0178 6.29599C15.2308 6.24208 15.4438 6.02644 15.4438 5.75688V4.24737H2.23669C1.97041 4.24737 1.7574 4.03172 1.7574 3.81608C1.7574 3.54652 1.97041 3.33088 2.23669 3.33088H4.68639L6.39053 2.52221H1.49112C1.1716 2.52221 0.905325 2.79177 0.905325 3.11524V14.5444C0.905325 14.8679 1.1716 15.1374 1.49112 15.1374H14.858C15.1775 15.1374 15.4438 14.8679 15.4438 14.5444V11.9028C15.4438 11.5793 15.1775 11.3097 14.858 11.3097C14.2722 11.3097 13.6864 11.3097 13.0473 11.3097C12.2485 11.3097 11.6095 10.6628 11.6095 9.80022V7.80551C11.6095 6.45773 12.7278 6.3499 13.7929 6.3499ZM6.76331 3.33088H12.6213L11.503 1.06661L6.76331 3.33088ZM13.6331 3.33088H15.4438V3.11524C15.4438 2.79177 15.1775 2.52221 14.858 2.52221H13.2071L13.6331 3.33088ZM12.7811 1.60572H14.858C15.6568 1.60572 16.2959 2.30657 16.2959 3.11524C16.2959 3.97781 16.2959 4.8943 16.2959 5.75688C16.2959 5.97253 16.2959 6.13426 16.1893 6.3499H16.5089C17.3077 6.3499 18 6.99684 18 7.80551V9.80022C18 10.6089 17.3077 11.3097 16.5089 11.3097H16.1893C16.2959 11.4715 16.2959 11.6871 16.2959 11.9028V14.5444C16.2959 15.3531 15.6568 16 14.858 16H1.49112C0.692308 16 0 15.3531 0 14.5444V3.11524C0 2.30657 0.692308 1.60572 1.49112 1.60572H8.25444L11.5562 0.0422992C11.7692 -0.0655231 12.0355 0.0422992 12.142 0.257944L12.7811 1.60572ZM16.5089 7.26639C15.3373 7.26639 14.2189 7.26639 13.0473 7.26639C12.7278 7.26639 12.5148 7.48204 12.5148 7.80551V9.80022C12.5148 10.1237 12.7278 10.3932 13.0473 10.3932C14.2189 10.3932 15.3373 10.3932 16.5089 10.3932C16.8284 10.3932 17.0947 10.1237 17.0947 9.80022V7.80551C17.0947 7.48204 16.8284 7.26639 16.5089 7.26639Z"
/> />

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -6,6 +6,7 @@ export { default as ArrowCircle } from 'components/common/Icons/ArrowCircle.svg'
export { default as ArrowCircledTopRight } from 'components/common/Icons/ArrowCircledTopRight.svg' export { default as ArrowCircledTopRight } from 'components/common/Icons/ArrowCircledTopRight.svg'
export { default as ArrowDownLine } from 'components/common/Icons/ArrowDownLine.svg' export { default as ArrowDownLine } from 'components/common/Icons/ArrowDownLine.svg'
export { default as ArrowRight } from 'components/common/Icons/ArrowRight.svg' export { default as ArrowRight } from 'components/common/Icons/ArrowRight.svg'
export { default as ArrowRightLine } from 'components/common/Icons/ArrowRightLine.svg'
export { default as ArrowUpLine } from 'components/common/Icons/ArrowUpLine.svg' export { default as ArrowUpLine } from 'components/common/Icons/ArrowUpLine.svg'
export { default as Chain } from 'components/common/Icons/Chain.svg' export { default as Chain } from 'components/common/Icons/Chain.svg'
export { default as Check } from 'components/common/Icons/Check.svg' export { default as Check } from 'components/common/Icons/Check.svg'

View File

@ -23,17 +23,41 @@ interface Props {
function IntroBackground(props: { bg: Props['bg'] }) { function IntroBackground(props: { bg: Props['bg'] }) {
switch (props.bg) { switch (props.bg) {
case 'borrow': case 'borrow':
return <GridHole className='h-55 opacity-5' /> return (
<div className='absolute top-0 right-0 block w-140 opacity-5'>
<GridHole />
</div>
)
case 'lend': case 'lend':
return <GridTire className='h-55 opacity-5' /> return (
<div className='absolute top-0 right-0 block w-180 opacity-5'>
<GridTire />
</div>
)
case 'farm': case 'farm':
return <GridLandscape className='h-55 opacity-5' /> return (
<div className='absolute top-0 right-0 block w-140 opacity-5'>
<GridLandscape />
</div>
)
case 'hls-farm': case 'hls-farm':
return <GridWeb className='h-45 opacity-5' /> return (
<div className='absolute bottom-0 right-0 block w-140 opacity-10'>
<GridWeb />
</div>
)
case 'hls-staking': case 'hls-staking':
return <GridPlanet className='h-55 opacity-10' /> return (
<div className='absolute top-0 right-0 block w-110 opacity-10'>
<GridPlanet />
</div>
)
default: default:
return <GridGlobe className='h-50 opacity-5' /> return (
<div className='absolute bottom-0 right-0 block w-3/4 md:w-120 opacity-5'>
<GridGlobe />
</div>
)
} }
} }
@ -49,7 +73,7 @@ export default function Intro(props: Props) {
)} )}
contentClassName='flex w-full h-full flex-col justify-between' contentClassName='flex w-full h-full flex-col justify-between'
> >
<div className='absolute inset-0 flex items-end justify-end w-full h-full text-white'> <div className='absolute inset-0 w-full h-full overflow-hidden text-white'>
<IntroBackground bg={props.bg} /> <IntroBackground bg={props.bg} />
</div> </div>
<Tooltip <Tooltip

View File

@ -24,10 +24,12 @@ const SearchBar = (props: Props, ref: LegacyRef<HTMLDivElement>) => {
)} )}
ref={ref} ref={ref}
> >
<Search width={14} height={14} className='mr-2.5 text-white' /> <div className='w-3.5 h-3.5 mr-2.5 text-white'>
<Search />
</div>
<input <input
value={props.value} value={props.value}
className='h-full w-full bg-transparent text-xs placeholder-white/50 outline-none' className='w-full h-full text-xs bg-transparent outline-none placeholder-white/50'
placeholder={props.placeholder} placeholder={props.placeholder}
onChange={(event) => onChange(event)} onChange={(event) => onChange(event)}
autoFocus={props.autoFocus} autoFocus={props.autoFocus}

View File

@ -6,7 +6,7 @@ export default function Settings() {
return ( return (
<Button <Button
variant='solid' variant='solid'
color='tertiary' color='secondary'
className='w-16' className='w-16'
leftIcon={<Gear />} leftIcon={<Gear />}
onClick={() => useStore.setState({ settingsModal: true })} onClick={() => useStore.setState({ settingsModal: true })}

View File

@ -12,7 +12,11 @@ interface Props<T> {
type?: TableType type?: TableType
} }
function getBorderColor(type: TableType, row: AccountBalanceRow | AccountPerpRow) { function getBorderColor(
type: TableType,
row: AccountBalanceRow | AccountStrategyRow | AccountPerpRow,
) {
if (type === 'strategies') return ''
if (type === 'balances') { if (type === 'balances') {
const balancesRow = row as AccountBalanceRow const balancesRow = row as AccountBalanceRow
return balancesRow.type === 'borrow' ? 'border-loss' : 'border-profit' return balancesRow.type === 'borrow' ? 'border-loss' : 'border-profit'
@ -55,8 +59,8 @@ export default function Row<T>(props: Props<T>) {
className={classNames( className={classNames(
isSymbolOrName ? 'text-left' : 'text-right', isSymbolOrName ? 'text-left' : 'text-right',
spacingClassName ?? 'px-3 py-4', spacingClassName ?? 'px-3 py-4',
type && isSymbolOrName && 'border-l', type && type !== 'strategies' && isSymbolOrName && 'border-l',
type && getBorderColor(type, cell.row.original as any), type && type !== 'strategies' && getBorderColor(type, cell.row.original as any),
cell.column.columnDef.meta?.className, cell.column.columnDef.meta?.className,
)} )}
> >

View File

@ -87,15 +87,6 @@ export default function Table<T>(props: Props<T>) {
'align-center', 'align-center',
)} )}
> >
<span className='w-5 h-5 my-auto text-white'>
{header.column.getCanSort()
? {
asc: <SortAsc size={16} />,
desc: <SortDesc />,
false: <SortNone />,
}[header.column.getIsSorted() as string] ?? null
: null}
</span>
<Text <Text
tag='span' tag='span'
size='xs' size='xs'
@ -103,6 +94,17 @@ export default function Table<T>(props: Props<T>) {
> >
{flexRender(header.column.columnDef.header, header.getContext())} {flexRender(header.column.columnDef.header, header.getContext())}
</Text> </Text>
{header.column.getCanSort() && (
<span className='w-5 h-5 my-auto text-white'>
{header.column.getCanSort()
? {
asc: <SortAsc size={16} />,
desc: <SortDesc />,
false: <SortNone />,
}[header.column.getIsSorted() as string] ?? null
: null}
</span>
)}
</div> </div>
</th> </th>
) )

View File

@ -33,7 +33,9 @@ export default function WarningMessages(props: Props) {
type='warning' type='warning'
interactive interactive
> >
<ExclamationMarkTriangle width={24} className='text-warning' /> <div className='w-6'>
<ExclamationMarkTriangle className='text-warning' />
</div>
</Tooltip> </Tooltip>
</div> </div>
) )

View File

@ -1,5 +1,3 @@
import React from 'react'
import { FormattedNumber } from 'components/common/FormattedNumber' import { FormattedNumber } from 'components/common/FormattedNumber'
import Loading from 'components/common/Loading' import Loading from 'components/common/Loading'
@ -13,7 +11,6 @@ export default function Apy(props: Props) {
const { vault } = props const { vault } = props
if (vault.apy === null) return <Loading /> if (vault.apy === null) return <Loading />
return ( return (
<FormattedNumber <FormattedNumber
amount={vault.apy ?? 0} amount={vault.apy ?? 0}

View File

@ -60,7 +60,7 @@ export default function ChainSelect() {
<Button <Button
leftIcon={<ChainLogo chainID={chainConfig.id} className='w-4' />} leftIcon={<ChainLogo chainID={chainConfig.id} className='w-4' />}
iconClassName='w-5 h-5' iconClassName='w-5 h-5'
color='tertiary' color='secondary'
onClick={() => setShowMenu()} onClick={() => setShowMenu()}
className={classNames('!p-0 w-8 flex items-center justify-center')} className={classNames('!p-0 w-8 flex items-center justify-center')}
></Button> ></Button>

View File

@ -85,7 +85,7 @@ export default function RewardsCenter() {
<div className={'relative'}> <div className={'relative'}>
<Button <Button
variant='solid' variant='solid'
color='tertiary' color='secondary'
leftIcon={<Logo />} leftIcon={<Logo />}
onClick={() => { onClick={() => {
setShowRewardsCenter(!showRewardsCenter) setShowRewardsCenter(!showRewardsCenter)

View File

@ -29,7 +29,6 @@ export default function Manage(props: Props) {
setSearchParams({ setSearchParams({
...params, ...params,
[SearchParams.PERPS_MARKET]: props.perpPosition.asset.denom, [SearchParams.PERPS_MARKET]: props.perpPosition.asset.denom,
[SearchParams.PERPS_MANAGE]: 'true',
}) })
}, },
}, },

View File

@ -1,109 +0,0 @@
import classNames from 'classnames'
import debounce from 'lodash.debounce'
import { useEffect, useMemo, useState } from 'react'
import { Cross } from 'components/common/Icons'
import LeverageSlider from 'components/common/LeverageSlider'
import { Spacer } from 'components/common/Spacer'
import Text from 'components/common/Text'
import { TradeDirectionSelector } from 'components/common/TradeDirectionSelector'
import { LeverageButtons } from 'components/perps/Module/LeverageButtons'
import { Or } from 'components/perps/Module/Or'
import usePerpsManageModule from 'components/perps/Module/PerpsManageModule/usePerpsManageModule'
import PerpsSummary from 'components/perps/Module/Summary'
import AssetAmountInput from 'components/trade/TradeModule/SwapForm/AssetAmountInput'
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
import { useUpdatedAccount } from 'hooks/useUpdatedAccount'
import getPerpsPosition from 'utils/getPerpsPosition'
import { BN } from 'utils/helpers'
export function PerpsManageModule() {
const [tradeDirection, setTradeDirection] = useState<TradeDirection | null>(null)
const [amount, setAmount] = useState<BigNumber | null>(null)
const account = useCurrentAccount()
const { simulatePerps, addedPerps } = useUpdatedAccount(account)
const {
closeManagePerpModule,
previousAmount,
previousTradeDirection,
previousLeverage,
leverage,
asset,
} = usePerpsManageModule(amount)
const debouncedUpdateAccount = useMemo(
() =>
debounce((perpsPosition: PerpsPosition) => {
if (
addedPerps &&
perpsPosition.amount === addedPerps.amount &&
perpsPosition.tradeDirection === addedPerps.tradeDirection
)
return
simulatePerps(perpsPosition)
}, 100),
[simulatePerps, addedPerps],
)
useEffect(() => {
const perpsPosition = getPerpsPosition(
asset,
amount ?? previousAmount,
tradeDirection ?? previousTradeDirection,
)
debouncedUpdateAccount(perpsPosition)
}, [
debouncedUpdateAccount,
asset,
amount,
previousAmount,
tradeDirection,
previousTradeDirection,
])
if (!asset) return null
return (
<div
className={classNames(
'px-4 gap-5 flex flex-col h-full pt-6 pb-4 w-full bg-white/5 absolute rounded-base isolate',
'before:content-[" "] before:absolute before:inset-0 before:-z-1 before:rounded-base before:p-[1px] before:border-glas',
)}
>
<div className='flex justify-between mb-3'>
<Text>Manage Position</Text>
<button onClick={closeManagePerpModule} className='mr-1.5'>
<Cross width={16} />
</button>
</div>
<TradeDirectionSelector
direction={tradeDirection ?? previousTradeDirection}
onChangeDirection={setTradeDirection}
/>
<AssetAmountInput
label='Amount'
max={BN(1000000)} // TODO: Implement max calculation
amount={amount ?? previousAmount}
setAmount={setAmount}
asset={asset}
maxButtonLabel='Max:'
disabled={false}
/>
<Or />
<Text size='sm'>Position Leverage</Text>
<LeverageSlider max={0} value={0} onChange={() => {}} type={tradeDirection || 'long'} />
<LeverageButtons />
<Spacer />
<PerpsSummary
changeTradeDirection
amount={amount ?? previousAmount}
tradeDirection={tradeDirection ?? previousTradeDirection}
asset={asset}
leverage={leverage}
previousAmount={previousAmount}
previousTradeDirection={previousTradeDirection}
previousLeverage={previousLeverage}
/>
</div>
)
}

View File

@ -1,5 +1,5 @@
import debounce from 'lodash.debounce' import debounce from 'lodash.debounce'
import { useEffect, useMemo, useState } from 'react' import { useCallback, useEffect, useMemo, useState } from 'react'
import Card from 'components/common/Card' import Card from 'components/common/Card'
import LeverageSlider from 'components/common/LeverageSlider' import LeverageSlider from 'components/common/LeverageSlider'
@ -9,6 +9,7 @@ import { TradeDirectionSelector } from 'components/common/TradeDirectionSelector
import { LeverageButtons } from 'components/perps/Module/LeverageButtons' import { LeverageButtons } from 'components/perps/Module/LeverageButtons'
import { Or } from 'components/perps/Module/Or' import { Or } from 'components/perps/Module/Or'
import PerpsSummary from 'components/perps/Module/Summary' import PerpsSummary from 'components/perps/Module/Summary'
import usePerpsModule from 'components/perps/Module/usePerpsModule'
import AssetSelectorPerps from 'components/trade/TradeModule/AssetSelector/AssetSelectorPerps' import AssetSelectorPerps from 'components/trade/TradeModule/AssetSelector/AssetSelectorPerps'
import AssetAmountInput from 'components/trade/TradeModule/SwapForm/AssetAmountInput' import AssetAmountInput from 'components/trade/TradeModule/SwapForm/AssetAmountInput'
import OrderTypeSelector from 'components/trade/TradeModule/SwapForm/OrderTypeSelector' import OrderTypeSelector from 'components/trade/TradeModule/SwapForm/OrderTypeSelector'
@ -24,10 +25,11 @@ export function PerpsModule() {
const [selectedOrderType, setSelectedOrderType] = useState<AvailableOrderType>('Market') const [selectedOrderType, setSelectedOrderType] = useState<AvailableOrderType>('Market')
const [tradeDirection, setTradeDirection] = useState<TradeDirection>('long') const [tradeDirection, setTradeDirection] = useState<TradeDirection>('long')
const { perpsAsset } = usePerpsAsset() const { perpsAsset } = usePerpsAsset()
const [leverage, setLeverage] = useState<number>(1)
const account = useCurrentAccount() const account = useCurrentAccount()
const { simulatePerps, addedPerps } = useUpdatedAccount(account) const { simulatePerps, addedPerps } = useUpdatedAccount(account)
const [amount, setAmount] = useState<BigNumber>(BN_ZERO) const [amount, setAmount] = useState<BigNumber>(BN_ZERO)
const { previousAmount, previousTradeDirection, previousLeverage, leverage, hasActivePosition } =
usePerpsModule(amount)
const debouncedUpdateAccount = useMemo( const debouncedUpdateAccount = useMemo(
() => () =>
@ -44,46 +46,92 @@ export function PerpsModule() {
) )
useEffect(() => { useEffect(() => {
const perpsPosition = getPerpsPosition(perpsAsset, amount, tradeDirection) const perpsPosition = getPerpsPosition(
perpsAsset,
amount ?? previousAmount,
tradeDirection ?? previousTradeDirection,
)
debouncedUpdateAccount(perpsPosition) debouncedUpdateAccount(perpsPosition)
}, [debouncedUpdateAccount, amount, perpsAsset, tradeDirection]) }, [
debouncedUpdateAccount,
amount,
perpsAsset,
tradeDirection,
previousAmount,
previousTradeDirection,
])
const setLeverage = useCallback((leverage: number) => {
// TODO: Implement leverage setting
}, [])
const onChangeTradeDirection = useCallback(
(tradeDirection: TradeDirection) => {
setAmount(amount.times(-1))
setTradeDirection(tradeDirection)
},
[amount],
)
const onChangeAmount = useCallback(
(amount: BigNumber) => {
if (tradeDirection === 'short') {
setAmount(amount.times(-1))
return
}
setAmount(amount)
},
[tradeDirection],
)
if (!perpsAsset) return null if (!perpsAsset) return null
return ( return (
<Card <Card
contentClassName='px-4 gap-5 flex flex-col h-full pb-4' contentClassName='px-4 gap-5 flex flex-col h-full pb-4'
title={<AssetSelectorPerps asset={perpsAsset} />} title={<AssetSelectorPerps asset={perpsAsset} hasActivePosition={hasActivePosition} />}
className='h-full mb-4' className='h-full mb-4'
> >
<OrderTypeSelector selected={selectedOrderType} onChange={setSelectedOrderType} /> <OrderTypeSelector selected={selectedOrderType} onChange={setSelectedOrderType} />
<TradeDirectionSelector
<TradeDirectionSelector direction={tradeDirection} onChangeDirection={setTradeDirection} /> direction={tradeDirection}
onChangeDirection={onChangeTradeDirection}
/>
<AssetAmountInput <AssetAmountInput
label='Amount' label='Amount'
max={BN(1000000)} // TODO: Implement max calculation max={BN(1000000)} // TODO: Implement max calculation
amount={amount} amount={amount.abs()}
setAmount={setAmount} setAmount={onChangeAmount}
asset={perpsAsset} asset={perpsAsset}
maxButtonLabel='Max:' maxButtonLabel='Max:'
disabled={false} disabled={false}
/> />
<Or /> {!hasActivePosition && (
<Text size='sm'>Position Leverage</Text> <>
<LeverageSlider <Or />
min={1} <Text size='sm'>Position Leverage</Text>
max={10} <LeverageSlider
value={leverage} min={1}
onChange={setLeverage} max={10}
type={tradeDirection} value={leverage}
/> onChange={setLeverage}
<LeverageButtons /> type={tradeDirection}
/>
<LeverageButtons />
</>
)}
<Spacer /> <Spacer />
<PerpsSummary <PerpsSummary
amount={amount} amount={amount ?? previousAmount}
tradeDirection={tradeDirection} tradeDirection={tradeDirection ?? previousTradeDirection}
asset={perpsAsset} asset={perpsAsset}
leverage={leverage} leverage={leverage}
previousAmount={previousAmount}
previousTradeDirection={previousTradeDirection}
previousLeverage={previousLeverage}
hasActivePosition={hasActivePosition}
/> />
</Card> </Card>
) )

View File

@ -18,10 +18,10 @@ type Props = {
amount: BigNumber amount: BigNumber
tradeDirection: TradeDirection tradeDirection: TradeDirection
asset: Asset asset: Asset
changeTradeDirection?: boolean
previousAmount?: BigNumber previousAmount?: BigNumber
previousTradeDirection?: 'long' | 'short' previousTradeDirection?: 'long' | 'short'
previousLeverage?: number previousLeverage?: number
hasActivePosition: boolean
} }
export default function PerpsSummary(props: Props) { export default function PerpsSummary(props: Props) {
@ -70,14 +70,13 @@ export default function PerpsSummary(props: Props) {
function ManageSummary(props: Props) { function ManageSummary(props: Props) {
const showTradeDirection = const showTradeDirection =
props.previousTradeDirection && props.previousTradeDirection !== props.tradeDirection props.previousTradeDirection && props.previousTradeDirection !== props.tradeDirection
const showAmount = const showAmount = !props.amount.isZero() && props.previousAmount
props.previousAmount && props.amount && !props.previousAmount.isEqualTo(props.amount)
const showLeverage = const showLeverage =
props.previousLeverage && props.previousLeverage &&
props.leverage && props.leverage &&
props.previousLeverage.toFixed(2) !== props.leverage.toFixed(2) props.previousLeverage.toFixed(2) !== props.leverage.toFixed(2)
if (!showTradeDirection && !showLeverage && !showAmount) return null if ((!showTradeDirection && !showLeverage && !showAmount) || !props.hasActivePosition) return null
return ( return (
<div className='pt-4 px-3 flex flex-col gap-1'> <div className='pt-4 px-3 flex flex-col gap-1'>
@ -95,14 +94,17 @@ function ManageSummary(props: Props) {
{showAmount && props.previousAmount && ( {showAmount && props.previousAmount && (
<SummaryLine label='Size' contentClassName='flex gap-1'> <SummaryLine label='Size' contentClassName='flex gap-1'>
<AssetAmount asset={props.asset} amount={props.previousAmount.toNumber()} /> <AssetAmount asset={props.asset} amount={props.previousAmount.abs().toNumber()} />
<ArrowRight <ArrowRight
width={16} width={16}
className={classNames( className={classNames(
props.previousAmount.isGreaterThan(props.amount) ? 'text-error' : 'text-success', props.previousAmount.isGreaterThan(props.amount) ? 'text-error' : 'text-success',
)} )}
/> />
<AssetAmount asset={props.asset} amount={props.amount.toNumber()} /> <AssetAmount
asset={props.asset}
amount={props.previousAmount.plus(props.amount).abs().toNumber()}
/>
</SummaryLine> </SummaryLine>
)} )}

View File

@ -1,5 +1,4 @@
import { useCallback, useMemo } from 'react' import { useMemo } from 'react'
import { useSearchParams } from 'react-router-dom'
import { BN_ZERO } from 'constants/math' import { BN_ZERO } from 'constants/math'
import useCurrentAccount from 'hooks/accounts/useCurrentAccount' import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
@ -8,34 +7,33 @@ import usePerpPosition from 'hooks/perps/usePerpPosition'
import usePerpsAsset from 'hooks/perps/usePerpsAsset' import usePerpsAsset from 'hooks/perps/usePerpsAsset'
import usePrice from 'hooks/usePrice' import usePrice from 'hooks/usePrice'
import usePrices from 'hooks/usePrices' import usePrices from 'hooks/usePrices'
import { SearchParams } from 'types/enums/searchParams'
import { getAccountNetValue } from 'utils/accounts' import { getAccountNetValue } from 'utils/accounts'
import { byDenom } from 'utils/array'
import { demagnify } from 'utils/formatters' import { demagnify } from 'utils/formatters'
import { getSearchParamsObject } from 'utils/route'
export default function usePerpsManageModule(amount: BigNumber | null) { export default function usePerpsModule(amount: BigNumber | null) {
const { perpsAsset } = usePerpsAsset() const { perpsAsset } = usePerpsAsset()
const [searchParams, setSearchParams] = useSearchParams()
const perpPosition = usePerpPosition(perpsAsset.denom) const perpPosition = usePerpPosition(perpsAsset.denom)
const { data: prices } = usePrices() const { data: prices } = usePrices()
const assets = useAllAssets() const assets = useAllAssets()
const account = useCurrentAccount() const account = useCurrentAccount()
const price = usePrice(perpsAsset.denom) const price = usePrice(perpsAsset.denom)
const hasActivePosition = useMemo(
() => !!account?.perps.find(byDenom(perpsAsset.denom)),
[account?.perps, perpsAsset.denom],
)
const accountNetValue = useMemo(() => { const accountNetValue = useMemo(() => {
if (!account || !prices || !assets) return BN_ZERO if (!account || !prices || !assets) return BN_ZERO
return getAccountNetValue(account, prices, assets) return getAccountNetValue(account, prices, assets)
}, [account, assets, prices]) }, [account, assets, prices])
const closeManagePerpModule = useCallback(() => { const previousAmount = useMemo(
const params = getSearchParamsObject(searchParams) () =>
delete params[SearchParams.PERPS_MANAGE] (perpPosition?.amount ?? BN_ZERO).times(perpPosition?.tradeDirection === 'short' ? -1 : 1),
setSearchParams({ [perpPosition?.amount, perpPosition?.tradeDirection],
...params, )
})
}, [searchParams, setSearchParams])
const previousAmount = useMemo(() => perpPosition?.amount ?? BN_ZERO, [perpPosition?.amount])
const previousTradeDirection = useMemo( const previousTradeDirection = useMemo(
() => perpPosition?.tradeDirection || 'long', () => perpPosition?.tradeDirection || 'long',
[perpPosition?.tradeDirection], [perpPosition?.tradeDirection],
@ -43,26 +41,29 @@ export default function usePerpsManageModule(amount: BigNumber | null) {
const previousLeverage = useMemo( const previousLeverage = useMemo(
() => () =>
price.times(demagnify(previousAmount, perpsAsset)).div(accountNetValue).plus(1).toNumber(), price
.times(demagnify(previousAmount.abs(), perpsAsset))
.div(accountNetValue)
.plus(1)
.toNumber(),
[accountNetValue, perpsAsset, previousAmount, price], [accountNetValue, perpsAsset, previousAmount, price],
) )
const leverage = useMemo( const leverage = useMemo(
() => () =>
price price
.times(demagnify(amount ?? BN_ZERO, perpsAsset)) .times(demagnify(previousAmount.plus(amount ?? BN_ZERO).abs(), perpsAsset))
.div(accountNetValue) .div(accountNetValue)
.plus(1) .plus(1)
.toNumber(), .toNumber(),
[accountNetValue, amount, perpsAsset, price], [accountNetValue, amount, perpsAsset, previousAmount, price],
) )
return { return {
closeManagePerpModule,
previousAmount, previousAmount,
previousTradeDirection, previousTradeDirection,
previousLeverage, previousLeverage,
leverage, leverage,
asset: perpsAsset, hasActivePosition,
} }
} }

View File

@ -0,0 +1,52 @@
import React, { Suspense } from 'react'
import AccountStrategiesTable from 'components/account/AccountStrategiesTable'
import Card from 'components/common/Card'
import TableSkeleton from 'components/common/Table/TableSkeleton'
import Text from 'components/common/Text'
import useAccount from 'hooks/accounts/useAccount'
interface Props {
accountId: string
}
function Content(props: Props) {
const { data: account } = useAccount(props.accountId, true)
if (!account || account?.vaults.length === 0) {
return null
}
return (
<Skeleton>
<AccountStrategiesTable account={account} hideCard />
</Skeleton>
)
}
export default function Strategies(props: Props) {
return (
<Suspense fallback={<Skeleton />}>
<Content {...props} />
</Suspense>
)
}
interface SkeletonProps {
children?: React.ReactNode
}
function Skeleton(props: SkeletonProps) {
return (
<div className='flex flex-wrap w-full gap-4'>
<Text size='2xl'>Strategies</Text>
<Card className='w-full bg-white/5'>
{props.children ? (
props.children
) : (
<TableSkeleton labels={['Strategy & Value', 'Size', 'APY']} rowCount={1} />
)}
</Card>
</div>
)
}

View File

@ -5,7 +5,9 @@ export default function PoweredByPyth() {
return ( return (
<div className='flex items-center justify-end w-full gap-2 p-2'> <div className='flex items-center justify-end w-full gap-2 p-2'>
<Text className='text-2xs-caps text-white/60'>powered by</Text> <Text className='text-2xs-caps text-white/60'>powered by</Text>
<PythLogoType className='h-6' /> <div className='w-[71px]'>
<PythLogoType />
</div>
</div> </div>
) )
} }

View File

@ -8,7 +8,10 @@ import Text from 'components/common/Text'
import { datafeed } from 'components/trade/TradeChart/DataFeed' import { datafeed } from 'components/trade/TradeChart/DataFeed'
import PoweredByPyth from 'components/trade/TradeChart/PoweredByPyth' import PoweredByPyth from 'components/trade/TradeChart/PoweredByPyth'
import { disabledFeatures, enabledFeatures } from 'components/trade/TradeChart/constants' import { disabledFeatures, enabledFeatures } from 'components/trade/TradeChart/constants'
import { DEFAULT_SETTINGS } from 'constants/defaultSettings'
import { LocalStorageKeys } from 'constants/localStorageKeys'
import { BN_ZERO } from 'constants/math' import { BN_ZERO } from 'constants/math'
import useLocalStorage from 'hooks/localStorage/useLocalStorage'
import usePrices from 'hooks/usePrices' import usePrices from 'hooks/usePrices'
import { BNCoin } from 'types/classes/BNCoin' import { BNCoin } from 'types/classes/BNCoin'
import { byDenom } from 'utils/array' import { byDenom } from 'utils/array'
@ -20,6 +23,10 @@ interface Props {
} }
export default function TradeChart(props: Props) { export default function TradeChart(props: Props) {
const { data: prices, isLoading } = usePrices() const { data: prices, isLoading } = usePrices()
const [chartInterval, _] = useLocalStorage<ResolutionString>(
LocalStorageKeys.CHART_INTERVAL,
DEFAULT_SETTINGS.chartInterval,
)
const ratio = useMemo(() => { const ratio = useMemo(() => {
const priceBuyAsset = prices.find(byDenom(props.buyAsset.denom))?.amount const priceBuyAsset = prices.find(byDenom(props.buyAsset.denom))?.amount
const priceSellAsset = prices.find(byDenom(props.sellAsset.denom))?.amount const priceSellAsset = prices.find(byDenom(props.sellAsset.denom))?.amount
@ -35,7 +42,7 @@ export default function TradeChart(props: Props) {
const widgetOptions: ChartingLibraryWidgetOptions = { const widgetOptions: ChartingLibraryWidgetOptions = {
symbol: props.buyAsset.pythFeedName ?? `${props.buyAsset.symbol}/USD`, symbol: props.buyAsset.pythFeedName ?? `${props.buyAsset.symbol}/USD`,
datafeed: datafeed, datafeed: datafeed,
interval: '1h' as ResolutionString, interval: chartInterval,
library_path: '/charting_library/', library_path: '/charting_library/',
locale: 'en', locale: 'en',
time_scale: { time_scale: {

View File

@ -26,6 +26,11 @@ export default function AssetItem(props: Props) {
const formattedAmount = formatAmountToPrecision(amount, MAX_AMOUNT_DECIMALS) const formattedAmount = formatAmountToPrecision(amount, MAX_AMOUNT_DECIMALS)
const lowAmount = formattedAmount === 0 ? 0 : Math.max(formattedAmount, MIN_AMOUNT) const lowAmount = formattedAmount === 0 ? 0 : Math.max(formattedAmount, MIN_AMOUNT)
const isFavorite = useMemo(
() => favoriteAssetsDenoms.includes(asset.denom),
[favoriteAssetsDenoms, asset.denom],
)
function handleToggleFavorite(event: React.MouseEvent<HTMLDivElement, MouseEvent>) { function handleToggleFavorite(event: React.MouseEvent<HTMLDivElement, MouseEvent>) {
event.stopPropagation() event.stopPropagation()
@ -51,7 +56,7 @@ export default function AssetItem(props: Props) {
> >
<div className='flex items-center gap-2'> <div className='flex items-center gap-2'>
<div onClick={handleToggleFavorite}> <div onClick={handleToggleFavorite}>
{asset.isFavorite ? <StarFilled width={16} /> : <StarOutlined width={16} />} {isFavorite ? <StarFilled width={16} /> : <StarOutlined width={16} />}
</div> </div>
<AssetImage asset={asset} size={24} /> <AssetImage asset={asset} size={24} />
<div className='flex-col'> <div className='flex-col'>

View File

@ -26,6 +26,10 @@ export default function AssetSelectorItem(props: Props) {
const amount = demagnify(props.balances.find(byDenom(asset.denom))?.amount ?? BN_ZERO, asset) const amount = demagnify(props.balances.find(byDenom(asset.denom))?.amount ?? BN_ZERO, asset)
const [favoriteAssetsDenoms, setFavoriteAssetsDenoms] = useFavoriteAssets() const [favoriteAssetsDenoms, setFavoriteAssetsDenoms] = useFavoriteAssets()
const isFavorite = useMemo(
() => favoriteAssetsDenoms.includes(asset.denom),
[favoriteAssetsDenoms, asset.denom],
)
function handleToggleFavorite(event: React.MouseEvent<HTMLDivElement, MouseEvent>) { function handleToggleFavorite(event: React.MouseEvent<HTMLDivElement, MouseEvent>) {
event.stopPropagation() event.stopPropagation()
@ -47,14 +51,14 @@ export default function AssetSelectorItem(props: Props) {
}, [props.depositCap]) }, [props.depositCap])
return ( return (
<li className='border-b border-white/10 hover:bg-black/10'> <li className='relative border-b border-white/10 hover:bg-black/10 z-1'>
<button <button
onClick={() => onSelect(sellAsset ? { buy: asset, sell: sellAsset } : asset)} onClick={() => onSelect(sellAsset ? { buy: asset, sell: sellAsset } : asset)}
className='flex items-center justify-between w-full gap-2 p-4' className='flex items-center justify-between w-full gap-2 p-4'
> >
<div className='flex items-center gap-2'> <div className='flex items-center gap-2'>
<div onClick={handleToggleFavorite}> <div onClick={handleToggleFavorite}>
{asset.isFavorite ? <StarFilled width={16} /> : <StarOutlined width={16} />} {isFavorite ? <StarFilled width={16} /> : <StarOutlined width={16} />}
</div> </div>
<AssetImage asset={asset} size={24} /> <AssetImage asset={asset} size={24} />
<div className='flex-col'> <div className='flex-col'>

View File

@ -41,7 +41,7 @@ export default function AssetSelectorPair(props: Props) {
color='quaternary' color='quaternary'
variant='transparent' variant='transparent'
onClick={() => useStore.setState({ assetOverlayState: 'pair' })} onClick={() => useStore.setState({ assetOverlayState: 'pair' })}
className='flex items-center justify-between w-full py-5 bg-white/5' className='flex items-center justify-between w-full py-5 bg-white/10'
> >
<Text size='sm' className='text-white/60'> <Text size='sm' className='text-white/60'>
<span className='text-white'>{buyAsset.symbol}</span>/{sellAsset.symbol} <span className='text-white'>{buyAsset.symbol}</span>/{sellAsset.symbol}

View File

@ -4,25 +4,32 @@ import Button from 'components/common/Button'
import { ChevronDown } from 'components/common/Icons' import { ChevronDown } from 'components/common/Icons'
import Text from 'components/common/Text' import Text from 'components/common/Text'
import AssetOverlay from 'components/trade/TradeModule/AssetSelector/AssetOverlay' import AssetOverlay from 'components/trade/TradeModule/AssetSelector/AssetOverlay'
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
import usePerpsEnabledAssets from 'hooks/assets/usePerpsEnabledAssets' import usePerpsEnabledAssets from 'hooks/assets/usePerpsEnabledAssets'
import usePerpsAsset from 'hooks/perps/usePerpsAsset' import usePerpsAsset from 'hooks/perps/usePerpsAsset'
import useStore from 'store' import useStore from 'store'
interface Props { interface Props {
asset: Asset asset: Asset
hasActivePosition: boolean
} }
export default function AssetSelectorPerps(props: Props) { export default function AssetSelectorPerps(props: Props) {
const assetOverlayState = useStore((s) => s.assetOverlayState) const assetOverlayState = useStore((s) => s.assetOverlayState)
const { perpsAsset, updatePerpsAsset } = usePerpsAsset() const { perpsAsset, updatePerpsAsset } = usePerpsAsset()
const currentAccount = useCurrentAccount()
const perpAssets = usePerpsEnabledAssets() const perpAssets = usePerpsEnabledAssets()
const onChangePerpsAsset = useCallback( const onChangePerpsAsset = useCallback(
(asset: Asset) => { (asset: Asset) => {
updatePerpsAsset(asset.denom) let hasPosition = false
if (currentAccount && currentAccount.perps.find((perp) => perp.denom === asset.denom)) {
hasPosition = true
}
updatePerpsAsset(asset.denom, hasPosition)
}, },
[updatePerpsAsset], [currentAccount, updatePerpsAsset],
) )
const handleChangeState = useCallback(() => { const handleChangeState = useCallback(() => {
@ -37,9 +44,15 @@ export default function AssetSelectorPerps(props: Props) {
onClick={() => useStore.setState({ assetOverlayState: 'pair' })} onClick={() => useStore.setState({ assetOverlayState: 'pair' })}
className='flex items-center justify-between w-full py-5 bg-white/5' className='flex items-center justify-between w-full py-5 bg-white/5'
> >
<Text size='sm' className='text-white/60'> <div className='flex gap-2 items-center'>
<span className='text-white'>{perpsAsset.symbol}</span>/USD <Text size='sm' className='text-white/60'>
</Text> <span className='text-white'>{perpsAsset.symbol}</span>/USD
</Text>
{props.hasActivePosition && (
<div className='px-1.5 py-0.5 bg-white/20 rounded-sm text-white text-xs'>Active</div>
)}
</div>
<div className='flex items-center gap-2'> <div className='flex items-center gap-2'>
<Text>All markets</Text> <Text>All markets</Text>
<ChevronDown className='w-3 h-3' /> <ChevronDown className='w-3 h-3' />

View File

@ -51,7 +51,7 @@ export default function AssetSelectorSingle(props: Props) {
}, []) }, [])
return ( return (
<div className='grid-rows-auto grid grid-cols-[1fr_min-content_1fr] gap-y-2 bg-white/5 p-3 w-full'> <div className='grid-rows-auto grid grid-cols-[1fr_min-content_1fr] gap-y-2 bg-white/10 p-3 w-full'>
<Text size='sm'>Buy</Text> <Text size='sm'>Buy</Text>
<Text size='sm' className='col-start-3'> <Text size='sm' className='col-start-3'>
Sell Sell

View File

@ -14,7 +14,7 @@ export default function TradeModule(props: Props) {
<div className='row-span-2'> <div className='row-span-2'>
<div <div
className={classNames( className={classNames(
'max-h-[calc(100dvh-98px)] h-[980px] min-h-[830px]', 'min-h-[850px]',
'relative isolate max-w-full overflow-hidden rounded-base pb-4 z-30 flex flex-wrap flex-col justify-between', 'relative isolate max-w-full overflow-hidden rounded-base pb-4 z-30 flex flex-wrap flex-col justify-between',
'before:content-[" "] before:absolute before:inset-0 before:-z-1 before:rounded-base before:p-[1px] before:border-glas', 'before:content-[" "] before:absolute before:inset-0 before:-z-1 before:rounded-base before:p-[1px] before:border-glas',
)} )}

View File

@ -33,8 +33,8 @@ const Pion1: ChainConfig = {
}, },
endpoints: { endpoints: {
routes: 'https://app.astroport.fi/api/routes', routes: 'https://app.astroport.fi/api/routes',
rest: 'https://rest-palvus.pion-1.ntrn.tech/', rpc: process.env.NEXT_PUBLIC_NEUTRON_TEST_RPC ?? 'https://rpc-palvus.pion-1.ntrn.tech/',
rpc: 'https://rpc-palvus.pion-1.ntrn.tech/', rest: process.env.NEXT_PUBLIC_NEUTRON_TEST_REST ?? 'https://rest-palvus.pion-1.ntrn.tech/',
swap: 'https://testnet-neutron.astroport.fi/swap', swap: 'https://testnet-neutron.astroport.fi/swap',
pools: '', //TODO: ⛓️ Implement this pools: '', //TODO: ⛓️ Implement this
explorer: 'https://testnet.mintscan.io/neutron-testnet', explorer: 'https://testnet.mintscan.io/neutron-testnet',

View File

@ -9,8 +9,8 @@ const Devnet: ChainConfig = {
name: 'Osmosis Devnet', name: 'Osmosis Devnet',
endpoints: { endpoints: {
...Osmosis1.endpoints, ...Osmosis1.endpoints,
rpc: 'https://rpc.devnet.osmosis.zone/', rpc: process.env.NEXT_PUBLIC_OSMOSIS_TEST_RPC ?? 'https://rpc-osmosis.blockapsis.com/',
rest: 'https://lcd.devnet.osmosis.zone/', rest: process.env.NEXT_PUBLIC_OSMOSIS_TEST_REST ?? 'https://lcd-osmosis.blockapsis.com/',
swap: 'https://testnet.osmosis.zone', swap: 'https://testnet.osmosis.zone',
}, },
} }

View File

@ -137,8 +137,8 @@ const Osmosis1: ChainConfig = {
}, },
}, },
endpoints: { endpoints: {
rpc: 'https://osmosis-node.marsprotocol.io/GGSFGSFGFG34/osmosis-rpc-front/', rpc: process.env.NEXT_PUBLIC_OSMOSIS_RPC ?? 'https://rpc-osmosis.blockapsis.com/',
rest: 'https://osmosis-node.marsprotocol.io/GGSFGSFGFG34/osmosis-lcd-front/', rest: process.env.NEXT_PUBLIC_OSMOSIS_REST ?? 'https://lcd-osmosis.blockapsis.com/',
swap: 'https://app.osmosis.zone', swap: 'https://app.osmosis.zone',
explorer: 'https://www.mintscan.io/osmosis/transactions/', explorer: 'https://www.mintscan.io/osmosis/transactions/',
routes: 'https://sqs.osmosis.zone/router', routes: 'https://sqs.osmosis.zone/router',

View File

@ -1,5 +1,6 @@
import { ORACLE_DENOM } from 'constants/oracle' import { ORACLE_DENOM } from 'constants/oracle'
import useStore from 'store' import useStore from 'store'
import { ResolutionString } from 'utils/charting_library/charting_library'
// This does not retrigger when chains are switched. Assets might not be present on the new chain, but // This does not retrigger when chains are switched. Assets might not be present on the new chain, but
// This scenario is still caught. // This scenario is still caught.
@ -8,7 +9,8 @@ const enabledMarketAssets = useStore
.chainConfig.assets.filter((asset) => asset.isEnabled && asset.isMarket) .chainConfig.assets.filter((asset) => asset.isEnabled && asset.isMarket)
export const DEFAULT_SETTINGS: Settings = { export const DEFAULT_SETTINGS: Settings = {
accountSummaryTabs: [true, true, false], accountSummaryTabs: [true, true, true, false],
accountDetailsTabs: [true, true, true, true],
reduceMotion: false, reduceMotion: false,
enableAutoLendGlobal: true, enableAutoLendGlobal: true,
tradingPairSimple: { tradingPairSimple: {
@ -22,4 +24,5 @@ export const DEFAULT_SETTINGS: Settings = {
migrationBanner: true, migrationBanner: true,
perpsAsset: '', perpsAsset: '',
updateOracle: true, updateOracle: true,
chartInterval: '60' as ResolutionString,
} }

View File

@ -2,6 +2,7 @@ export enum LocalStorageKeys {
TRADING_PAIR_SIMPLE = 'tradingPairSimple', TRADING_PAIR_SIMPLE = 'tradingPairSimple',
TRADING_PAIR_ADVANCED = 'tradingPairAdvanced', TRADING_PAIR_ADVANCED = 'tradingPairAdvanced',
ACCOUNT_SUMMARY_TABS = 'accountSummaryTabs', ACCOUNT_SUMMARY_TABS = 'accountSummaryTabs',
ACCOUNT_DETAILS_TABS = 'accountDetailsTabs',
DISPLAY_CURRENCY = 'displayCurrency', DISPLAY_CURRENCY = 'displayCurrency',
REDUCE_MOTION = 'reduceMotion', REDUCE_MOTION = 'reduceMotion',
FAVORITE_ASSETS = 'favoriteAssets', FAVORITE_ASSETS = 'favoriteAssets',
@ -16,4 +17,5 @@ export enum LocalStorageKeys {
CURRENT_CHAIN_ID = 'currentChainId', CURRENT_CHAIN_ID = 'currentChainId',
PERPS_ASSET = 'perpsAsset', PERPS_ASSET = 'perpsAsset',
UPDATE_ORACLE = 'updateOracle', UPDATE_ORACLE = 'updateOracle',
CHART_INTERVAL = 'tradingview.chart.lastUsedTimeBasedResolution',
} }

View File

@ -6,6 +6,7 @@ import { LocalStorageKeys } from 'constants/localStorageKeys'
import usePerpsEnabledAssets from 'hooks/assets/usePerpsEnabledAssets' import usePerpsEnabledAssets from 'hooks/assets/usePerpsEnabledAssets'
import useLocalStorage from 'hooks/localStorage/useLocalStorage' import useLocalStorage from 'hooks/localStorage/useLocalStorage'
import useChainConfig from 'hooks/useChainConfig' import useChainConfig from 'hooks/useChainConfig'
import { SearchParams } from 'types/enums/searchParams'
import { getSearchParamsObject } from 'utils/route' import { getSearchParamsObject } from 'utils/route'
export default function usePerpsAsset() { export default function usePerpsAsset() {
@ -18,10 +19,12 @@ export default function usePerpsAsset() {
>(chainConfig.id + '/' + LocalStorageKeys.PERPS_ASSET, DEFAULT_SETTINGS.perpsAsset) >(chainConfig.id + '/' + LocalStorageKeys.PERPS_ASSET, DEFAULT_SETTINGS.perpsAsset)
const updatePerpsAsset = useCallback( const updatePerpsAsset = useCallback(
(denom: string) => { (denom: string, manage?: boolean) => {
const params = getSearchParamsObject(searchParams) const params = getSearchParamsObject(searchParams)
params.perpsMarket = denom setSearchParams({
setSearchParams(params) ...params,
[SearchParams.PERPS_MARKET]: denom,
})
setPerpsAssetInLocalStorage(denom) setPerpsAssetInLocalStorage(denom)
}, },
[searchParams, setPerpsAssetInLocalStorage, setSearchParams], [searchParams, setPerpsAssetInLocalStorage, setSearchParams],

View File

@ -15,8 +15,8 @@ export default function usePerpsMarket() {
clients && perpsAsset && `chains/${chainConfig.id}/perps/${perpsAsset.denom}`, clients && perpsAsset && `chains/${chainConfig.id}/perps/${perpsAsset.denom}`,
() => getPerpsMarket(clients!, perpsAsset!), () => getPerpsMarket(clients!, perpsAsset!),
{ {
refreshInterval: 1000, refreshInterval: 5000,
dedupingInterval: 1000, dedupingInterval: 5000,
}, },
) )
} }

View File

@ -18,7 +18,11 @@ export default function useWalletBalances(address?: string) {
async function getWalletBalances(chainConfig: ChainConfig, address: string): Promise<Coin[]> { async function getWalletBalances(chainConfig: ChainConfig, address: string): Promise<Coin[]> {
const uri = '/cosmos/bank/v1beta1/balances/' const uri = '/cosmos/bank/v1beta1/balances/'
const response = await fetch(`${chainConfig.endpoints.rest}${uri}${address}`) const response = await fetch(
process.env.NEXT_PUBLIC_API_KEY
? `${chainConfig.endpoints.rest}${uri}${address}?x-apikey=${process.env.NEXT_PUBLIC_API_KEY}`
: `${chainConfig.endpoints.rest}${uri}${address}`,
)
if (response.ok) { if (response.ok) {
const data = await response.json() const data = await response.json()

View File

@ -1,22 +1,14 @@
import { useSearchParams } from 'react-router-dom'
import { PerpsManageModule } from 'components/perps/Module/PerpsManageModule'
import { PerpsModule } from 'components/perps/Module/PerpsModule' import { PerpsModule } from 'components/perps/Module/PerpsModule'
import { PerpsChart } from 'components/perps/PerpsChart' import { PerpsChart } from 'components/perps/PerpsChart'
import { PerpsInfo } from 'components/perps/PerpsInfo' import { PerpsInfo } from 'components/perps/PerpsInfo'
import { PerpsPositions } from 'components/perps/PerpsPositions' import { PerpsPositions } from 'components/perps/PerpsPositions'
import { SearchParams } from 'types/enums/searchParams'
export default function PerpsPage() { export default function PerpsPage() {
const [searchParams] = useSearchParams()
const isManagingPosition = searchParams.get(SearchParams.PERPS_MANAGE) === 'true'
return ( return (
<div className='grid grid-cols-[auto_376px] grid-rows-[min-content_auto_auto] w-full gap-4'> <div className='grid grid-cols-[auto_376px] grid-rows-[min-content_auto_auto] w-full gap-4'>
<PerpsInfo /> <PerpsInfo />
<div className='h-full w-[376px] row-span-3 relative'> <div className='h-full w-[376px] row-span-3 relative'>
{isManagingPosition ? <PerpsManageModule /> : <PerpsModule />} <PerpsModule />
</div> </div>
<PerpsChart /> <PerpsChart />
<PerpsPositions /> <PerpsPositions />

View File

@ -5,6 +5,7 @@ import ShareBar from 'components/common/ShareBar'
import Balances from 'components/portfolio/Account/Balances' import Balances from 'components/portfolio/Account/Balances'
import BreadCrumbs from 'components/portfolio/Account/BreadCrumbs' import BreadCrumbs from 'components/portfolio/Account/BreadCrumbs'
import PerpPositions from 'components/portfolio/Account/PerpPositions' import PerpPositions from 'components/portfolio/Account/PerpPositions'
import Strategies from 'components/portfolio/Account/Strategies'
import Summary from 'components/portfolio/Account/Summary' import Summary from 'components/portfolio/Account/Summary'
import useAccountId from 'hooks/useAccountId' import useAccountId from 'hooks/useAccountId'
import useChainConfig from 'hooks/useChainConfig' import useChainConfig from 'hooks/useChainConfig'
@ -28,6 +29,7 @@ export default function PortfolioAccountPage() {
<BreadCrumbs accountId={accountId} /> <BreadCrumbs accountId={accountId} />
<Summary accountId={accountId} /> <Summary accountId={accountId} />
<Balances accountId={accountId} /> <Balances accountId={accountId} />
{chainConfig.farm && <Strategies accountId={accountId} />}
{chainConfig.perps && <PerpPositions accountId={accountId} />} {chainConfig.perps && <PerpPositions accountId={accountId} />}
<ShareBar text={`Have a look at Credit Account ${accountId} on @mars_protocol!`} /> <ShareBar text={`Have a look at Credit Account ${accountId} on @mars_protocol!`} />
</div> </div>

View File

@ -2,13 +2,13 @@ import { Head, Html, Main, NextScript } from 'next/document'
export default function Document() { export default function Document() {
return ( return (
<Html className='p-0 m-0' lang='en'> <Html className='p-0 m-0 scrollbar-hide' lang='en'>
<Head> <Head>
<script defer src='/charting_library/charting_library.standalone.js' /> <script defer src='/charting_library/charting_library.standalone.js' />
<script defer src='/datafeeds/udf/dist/bundle.js' /> <script defer src='/datafeeds/udf/dist/bundle.js' />
<script defer src='https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.5.4/socket.io.js' /> <script defer src='https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.5.4/socket.io.js' />
</Head> </Head>
<body className='p-0 m-0 font-sans text-white cursor-default bg-body scrollbar-hide'> <body className='p-0 m-0 overflow-x-hidden font-sans text-white cursor-default bg-body scrollbar-hide'>
<Main /> <Main />
<NextScript /> <NextScript />
</body> </body>

View File

@ -70,7 +70,7 @@ export default function Layout({ children }: { children: React.ReactNode }) {
<DesktopHeader /> <DesktopHeader />
<main <main
className={classNames( className={classNames(
'lg:min-h-[calc(100dvh-73px)]', 'lg:min-h-[calc(100dvh-81px)]',
'lg:mt-[73px]', 'lg:mt-[73px]',
'flex', 'flex',
'min-h-screen gap-6 px-4 py-6 w-full relative', 'min-h-screen gap-6 px-4 py-6 w-full relative',
@ -78,8 +78,8 @@ export default function Layout({ children }: { children: React.ReactNode }) {
address && address &&
isFullWidth && isFullWidth &&
accountId && accountId &&
(accountDetailsExpanded ? 'pr-118' : 'pr-24'), (accountDetailsExpanded ? 'pr-102' : 'pr-24'),
!reduceMotion && isFullWidth && 'transition-all duration-300', !reduceMotion && isFullWidth && 'transition-all duration-500',
'justify-center', 'justify-center',
focusComponent && 'items-center', focusComponent && 'items-center',
isMobile && 'items-start', isMobile && 'items-start',

View File

@ -61,3 +61,13 @@
table tr:last-child td { table tr:last-child td {
border-bottom-width: 0; border-bottom-width: 0;
} }
svg {
width: 100%;
height: auto;
}
.rounded-full.overflow-hidden svg {
width: auto;
height: 100%;
}

View File

@ -1,5 +1,4 @@
export enum SearchParams { export enum SearchParams {
ACCOUNT_ID = 'accountId', ACCOUNT_ID = 'accountId',
PERPS_MARKET = 'perpsMarket', PERPS_MARKET = 'perpsMarket',
PERPS_MANAGE = 'perpsManage',
} }

Some files were not shown because too many files have changed in this diff Show More