v2.2.1 (#759)
* 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
---------
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>
10
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mars-v2-frontend",
|
||||
"version": "2.2.0",
|
||||
"version": "2.2.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "yarn validate-env && next build",
|
||||
@ -62,17 +62,17 @@
|
||||
"@types/react": "18.2.41",
|
||||
"@types/react-dom": "18.2.15",
|
||||
"@types/react-helmet": "^6.1.11",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"dotenv": "^16.3.1",
|
||||
"autoprefixer": "^10.4.17",
|
||||
"dotenv": "^16.4.1",
|
||||
"dotenv-cli": "^7.3.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-next": "^14.0.4",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"husky": "^8.0.3",
|
||||
"identity-obj-proxy": "^3.0.0",
|
||||
"lint-staged": "^15.2.0",
|
||||
"prettier": "^3.2.4",
|
||||
"prettier-plugin-tailwindcss": "^0.5.6",
|
||||
"prettier-plugin-tailwindcss": "^0.5.11",
|
||||
"shelljs": "^0.8.5",
|
||||
"tailwindcss": "^3.3.3",
|
||||
"typescript": "5.2.2"
|
||||
|
@ -1,4 +1,4 @@
|
||||
<svg width="800" height="800" viewBox="0 0 800 800" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg version="1.1" viewBox="0 0 800 800" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M278.2 77L630.637 686L748 482.977L513.1 77H278.2V77Z" fill="#F34C2D" />
|
||||
<path d="M278.2 494.6L400.087 686H643.6L521.887 494.6H278.2V494.6Z" fill="#BE312D" />
|
||||
<path d="M173.8 268.4L52 477.2L173.887 686L417.4 268.4H173.8Z" fill="#F34C2D" />
|
||||
|
Before Width: | Height: | Size: 366 B After Width: | Height: | Size: 355 B |
@ -1,4 +1,4 @@
|
||||
<svg width="501" height="501" viewBox="0 0 501 501" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg version="1.1" viewBox="0 0 501 501" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M250.75 500.75C388.82 500.75 500.75 388.82 500.75 250.75C500.75 112.679 388.82 0.75 250.75 0.75C112.679 0.75 0.75 112.679 0.75 250.75C0.75 388.82 112.679 500.75 250.75 500.75Z"
|
||||
fill="#FFFFFF"
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.0 KiB |
@ -1,4 +1,4 @@
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M12 24C18.6499 24 24 18.6499 24 12C24 5.3501 18.6499 0 12 0C5.3501 0 0 5.3501 0 12C0 18.6499 5.3501 24 12 24Z"
|
||||
fill="#2775CA"
|
||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.2 KiB |
@ -1,4 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="600" fill="none" viewBox="0 0 600 600">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 600 600">
|
||||
<path
|
||||
fill="url(#paint0_linear)"
|
||||
d="M148.497 169.135C150.981 166.013 153.613 163.009 156.245 160.005C156.363 159.856 156.63 159.826 156.748 159.677C156.985 159.38 157.37 159.201 157.606 158.903L157.843 158.606C159.678 156.91 161.63 155.064 163.881 153.456C171.845 147.41 180.11 142.817 188.825 139.795C216.778 129.981 247.894 136.029 272.295 159.065C306.366 191.002 303.315 242.451 276.117 276.647C241.748 327.625 182.684 398.748 264.463 462.46C279.167 473.916 290.075 483.361 336.392 496.746C306.1 502.326 278.012 500.59 246.748 492.605C224.634 480.123 189.866 453.397 178.037 417.3C160.159 362.562 209.513 280.732 233.365 249.216C266.113 205.599 213.124 158.382 174.112 211.095C153.72 238.566 118.044 316.303 130.442 373.965C137.691 406.664 147.353 430.499 185.663 463.241C178.559 459.049 171.66 454.294 164.968 448.974C75.957 366.06 86.2838 237.859 148.497 169.135Z"
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@ -1,29 +1,114 @@
|
||||
<svg width="100%" height="100%" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;">
|
||||
<path d="M12.985,0.812C13.949,0.812 14.279,0.928 14.929,1.155C15.091,1.211 15.273,1.275 15.49,1.345C19.947,2.795 23.25,7.071 23.25,12.005C23.25,12.829 23.133,13.721 22.963,14.506C22.196,17.622 20.213,20.269 17.543,21.804C16.213,22.568 14.67,23.131 13.068,23.239C12.8,23.257 11.93,23.249 11.339,23.243C11.126,23.241 10.95,23.239 10.85,23.239C5.061,22.419 0.75,18.142 0.75,12.005C0.75,10.447 1.047,8.887 1.653,7.454C2.282,5.968 3.362,4.699 4.486,3.6C5.476,2.634 6.7,2.1 7.906,1.574C8.081,1.498 8.255,1.422 8.428,1.345C9.05,1.068 9.469,1.008 9.996,0.932C10.214,0.9 10.45,0.866 10.727,0.812C11.214,0.719 11.726,0.75 12.234,0.781C12.486,0.797 12.738,0.812 12.985,0.812Z" style="fill:url(#_Linear1);fill-rule:nonzero;"/>
|
||||
<path d="M12.985,0.812C13.949,0.812 14.279,0.928 14.929,1.155C15.091,1.211 15.273,1.275 15.49,1.345C19.947,2.795 23.25,7.071 23.25,12.005C23.25,12.829 23.133,13.721 22.963,14.506C22.196,17.622 20.213,20.269 17.543,21.804C16.213,22.568 14.67,23.131 13.068,23.239C12.8,23.257 11.93,23.249 11.339,23.243C11.126,23.241 10.95,23.239 10.85,23.239C5.061,22.419 0.75,18.142 0.75,12.005C0.75,10.447 1.047,8.887 1.653,7.454C2.282,5.968 3.362,4.699 4.486,3.6C5.476,2.634 6.7,2.1 7.906,1.574C8.081,1.498 8.255,1.422 8.428,1.345C9.05,1.068 9.469,1.008 9.996,0.932C10.214,0.9 10.45,0.866 10.727,0.812C11.214,0.719 11.726,0.75 12.234,0.781C12.486,0.797 12.738,0.812 12.985,0.812Z" style="fill:none;fill-rule:nonzero;stroke:white;stroke-width:1px;"/>
|
||||
<path d="M11.999,0.166L15.656,0.746L18.955,2.426L21.573,5.044L23.254,8.342L23.834,11.999L23.254,15.656L21.573,18.955L18.955,21.573L15.656,23.254L11.999,23.834L8.343,23.254L5.044,21.573L2.426,18.955L0.746,15.656L0.166,11.999L0.746,8.343L2.426,5.044L5.044,2.426L8.343,0.746L11.999,0.166ZM8.549,1.381L5.436,2.966L2.967,5.436L1.381,8.549L0.834,11.999L1.381,15.45L2.967,18.562L5.436,21.032L8.549,22.619L11.999,23.166L15.45,22.619L18.562,21.032L21.032,18.562L22.619,15.45L23.166,11.999L22.619,8.549L21.032,5.436L18.562,2.966L15.45,1.381L11.999,0.834L8.549,1.381Z" style="fill:white;"/>
|
||||
<path d="M11.915,3.928C11.993,3.881 12.094,3.907 12.141,3.985L14.738,8.343C14.785,8.421 14.759,8.523 14.681,8.569C14.603,8.616 14.501,8.59 14.455,8.512L11.857,4.154C11.811,4.076 11.836,3.975 11.915,3.928Z" style="fill:white;"/>
|
||||
<path d="M11.999,3.904L17.36,4.484L17.325,4.812L11.999,4.236L6.674,4.812L6.639,4.484L11.999,3.904Z" style="fill:white;"/>
|
||||
<path d="M9.237,8.426C9.237,8.334 9.311,8.261 9.402,8.261L14.596,8.261C14.687,8.261 14.761,8.334 14.761,8.426C14.761,8.517 14.687,8.591 14.596,8.591L9.402,8.591C9.311,8.591 9.237,8.517 9.237,8.426Z" style="fill:white;"/>
|
||||
<path d="M12.083,3.928C12.161,3.975 12.187,4.076 12.14,4.154L9.544,8.512C9.497,8.59 9.396,8.616 9.318,8.569C9.24,8.523 9.214,8.421 9.261,8.343L11.857,3.985C11.903,3.907 12.004,3.881 12.083,3.928Z" style="fill:white;"/>
|
||||
<path d="M8.392,0.803L11.999,3.853L15.606,0.803L17.49,4.573L17.195,4.721L15.499,1.326L11.999,4.285L8.499,1.326L6.804,4.721L6.509,4.573L8.392,0.803Z" style="fill:white;"/>
|
||||
<path d="M5.143,2.563C5.217,2.509 5.32,2.525 5.374,2.599L11.999,11.719L18.625,2.599C18.679,2.525 18.782,2.509 18.856,2.563C18.929,2.616 18.946,2.719 18.892,2.793L12.133,12.097C12.102,12.14 12.052,12.165 11.999,12.165C11.947,12.165 11.897,12.14 11.866,12.097L5.107,2.793C5.053,2.719 5.07,2.616 5.143,2.563Z" style="fill:white;"/>
|
||||
<path d="M9.525,8.314C9.565,8.358 9.578,8.42 9.56,8.476L7.992,13.303L12.081,16.274L16.727,18.266C16.811,18.302 16.85,18.399 16.814,18.482C16.778,18.566 16.681,18.605 16.597,18.569L11.934,16.57C11.923,16.565 11.912,16.559 11.902,16.552L7.701,13.499C7.643,13.457 7.619,13.383 7.641,13.315L9.156,8.651L4.493,9.709C4.404,9.729 4.315,9.674 4.295,9.585C4.275,9.496 4.331,9.408 4.42,9.387L9.367,8.265C9.424,8.251 9.485,8.27 9.525,8.314Z" style="fill:white;"/>
|
||||
<path d="M4.347,9.426C4.416,9.366 4.52,9.373 4.58,9.442L7.922,13.259C7.982,13.328 7.975,13.432 7.907,13.492C7.838,13.552 7.734,13.545 7.674,13.477L4.332,9.659C4.272,9.591 4.279,9.486 4.347,9.426Z" style="fill:white;"/>
|
||||
<path d="M6.931,4.439L4.635,9.553L4.661,9.616L4.603,9.652L3.534,14.751L7.435,18.284L12.078,20.948L15.442,22.696L16.535,18.244L21.105,18.581L20.481,14.837L20.807,14.783L21.499,18.941L16.789,18.593L15.662,23.182L11.917,21.236L7.24,18.553L3.238,14.928L0.234,11.971L4.25,9.483L2.464,5.109L6.931,4.439ZM4.215,9.893L0.765,12.03L3.254,14.48L4.215,9.893ZM4.463,9.131L6.382,4.855L2.928,5.373L4.463,9.131Z" style="fill:white;"/>
|
||||
<path d="M7.814,13.202C7.904,13.211 7.971,13.291 7.963,13.382L7.502,18.433C7.494,18.524 7.414,18.591 7.323,18.583C7.232,18.574 7.165,18.494 7.174,18.403L7.634,13.352C7.642,13.261 7.723,13.194 7.814,13.202Z" style="fill:white;"/>
|
||||
<path d="M12.151,16.353C12.187,16.436 12.148,16.533 12.065,16.569L7.403,18.569C7.319,18.604 7.222,18.566 7.186,18.482C7.15,18.398 7.189,18.301 7.273,18.265L11.935,16.266C12.018,16.23 12.115,16.269 12.151,16.353Z" style="fill:white;"/>
|
||||
<path d="M2.893,18.581L3.517,14.837L3.191,14.783L2.499,18.941L7.211,18.594L8.336,23.182L12.075,21.24L11.923,20.947L8.556,22.696L7.465,18.244L2.893,18.581Z" style="fill:white;"/>
|
||||
<path d="M12.097,11.865C12.14,11.896 12.165,11.946 12.165,11.998L12.165,23.5C12.165,23.591 12.091,23.665 12,23.665C11.909,23.665 11.835,23.591 11.835,23.5L11.835,12.226L1.115,15.709C1.029,15.737 0.936,15.69 0.908,15.603C0.879,15.517 0.927,15.423 1.013,15.395L11.949,11.842C11.999,11.825 12.054,11.834 12.097,11.865Z" style="fill:white;"/>
|
||||
<path d="M17.212,4.547C17.248,4.499 17.308,4.475 17.368,4.484L21.327,5.078C21.377,5.085 21.421,5.115 21.446,5.159C21.471,5.203 21.474,5.256 21.455,5.303L19.749,9.483L23.587,11.861C23.63,11.887 23.658,11.932 23.664,11.982C23.669,12.033 23.652,12.083 23.616,12.118L20.762,14.926L20.756,14.932L20.755,14.932C20.755,14.933 20.754,14.934 20.753,14.934L16.773,18.541C16.727,18.583 16.661,18.595 16.602,18.572C16.544,18.55 16.504,18.496 16.498,18.434L16.039,13.4L14.44,8.478C14.421,8.421 14.435,8.359 14.475,8.315C14.515,8.272 14.575,8.253 14.633,8.266L19.258,9.315L17.193,4.715C17.168,4.659 17.175,4.595 17.212,4.547ZM19.237,9.649L14.843,8.652L16.269,13.04L19.237,9.649ZM16.372,13.422L16.797,18.074L20.464,14.751L19.45,9.907L16.372,13.422ZM19.784,9.893L20.744,14.48L23.234,12.03L19.784,9.893ZM19.536,9.13L21.07,5.373L17.617,4.855L19.536,9.13Z" style="fill:white;"/>
|
||||
<path d="M11.842,11.947C11.87,11.861 11.963,11.813 12.05,11.842L22.987,15.395C23.074,15.423 23.121,15.517 23.093,15.603C23.065,15.69 22.972,15.737 22.885,15.709L11.948,12.155C11.861,12.127 11.814,12.034 11.842,11.947Z" style="fill:white;"/>
|
||||
<path d="M16.335,13.27C16.389,13.343 16.372,13.447 16.298,13.5L12.096,16.552C12.022,16.606 11.919,16.59 11.866,16.516C11.812,16.442 11.828,16.339 11.902,16.285L16.104,13.233C16.178,13.18 16.281,13.196 16.335,13.27Z" style="fill:white;"/>
|
||||
<path d="M16.58,18.276C16.653,18.234 16.746,18.254 16.796,18.322L18.892,21.208C18.945,21.282 18.929,21.385 18.855,21.439C18.782,21.492 18.678,21.476 18.625,21.402L16.616,18.636L12.081,21.237C12.002,21.282 11.901,21.255 11.856,21.176C11.81,21.097 11.838,20.996 11.917,20.951L16.58,18.276Z" style="fill:white;"/>
|
||||
<path d="M11.999,0.335C12.09,0.335 12.164,0.409 12.164,0.5L12.164,4.068C12.164,4.159 12.09,4.233 11.999,4.233C11.908,4.233 11.834,4.159 11.834,4.068L11.834,0.5C11.834,0.409 11.908,0.335 11.999,0.335Z" style="fill:white;"/>
|
||||
<path d="M23.093,8.396C23.121,8.483 23.073,8.576 22.987,8.604L19.594,9.706C19.507,9.735 19.414,9.687 19.386,9.601C19.358,9.514 19.405,9.421 19.492,9.393L22.885,8.29C22.971,8.262 23.064,8.309 23.093,8.396Z" style="fill:white;"/>
|
||||
<path d="M7.435,18.286C7.509,18.34 7.525,18.443 7.471,18.516L5.374,21.402C5.32,21.476 5.217,21.492 5.143,21.439C5.069,21.385 5.053,21.282 5.107,21.208L7.204,18.322C7.258,18.249 7.361,18.232 7.435,18.286Z" style="fill:white;"/>
|
||||
<path d="M0.908,8.396C0.936,8.309 1.029,8.262 1.115,8.29L4.508,9.393C4.595,9.421 4.642,9.514 4.614,9.601C4.586,9.687 4.493,9.735 4.406,9.706L1.013,8.604C0.927,8.576 0.879,8.483 0.908,8.396Z" style="fill:white;"/>
|
||||
<defs>
|
||||
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-14.8673,-14.7971,14.7971,-14.8673,20.4244,16.9042)"><stop offset="0" style="stop-color:rgb(239,65,54);stop-opacity:1"/><stop offset="0.01" style="stop-color:rgb(239,65,54);stop-opacity:1"/><stop offset="0.32" style="stop-color:rgb(223,81,83);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(172,11,27);stop-opacity:1"/></linearGradient>
|
||||
</defs>
|
||||
<svg version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M12.985,0.812C13.949,0.812 14.279,0.928 14.929,1.155C15.091,1.211 15.273,1.275 15.49,1.345C19.947,2.795 23.25,7.071 23.25,12.005C23.25,12.829 23.133,13.721 22.963,14.506C22.196,17.622 20.213,20.269 17.543,21.804C16.213,22.568 14.67,23.131 13.068,23.239C12.8,23.257 11.93,23.249 11.339,23.243C11.126,23.241 10.95,23.239 10.85,23.239C5.061,22.419 0.75,18.142 0.75,12.005C0.75,10.447 1.047,8.887 1.653,7.454C2.282,5.968 3.362,4.699 4.486,3.6C5.476,2.634 6.7,2.1 7.906,1.574C8.081,1.498 8.255,1.422 8.428,1.345C9.05,1.068 9.469,1.008 9.996,0.932C10.214,0.9 10.45,0.866 10.727,0.812C11.214,0.719 11.726,0.75 12.234,0.781C12.486,0.797 12.738,0.812 12.985,0.812Z"
|
||||
style="fill: url(#_Linear1); fill-rule: nonzero"
|
||||
/>
|
||||
<path
|
||||
d="M12.985,0.812C13.949,0.812 14.279,0.928 14.929,1.155C15.091,1.211 15.273,1.275 15.49,1.345C19.947,2.795 23.25,7.071 23.25,12.005C23.25,12.829 23.133,13.721 22.963,14.506C22.196,17.622 20.213,20.269 17.543,21.804C16.213,22.568 14.67,23.131 13.068,23.239C12.8,23.257 11.93,23.249 11.339,23.243C11.126,23.241 10.95,23.239 10.85,23.239C5.061,22.419 0.75,18.142 0.75,12.005C0.75,10.447 1.047,8.887 1.653,7.454C2.282,5.968 3.362,4.699 4.486,3.6C5.476,2.634 6.7,2.1 7.906,1.574C8.081,1.498 8.255,1.422 8.428,1.345C9.05,1.068 9.469,1.008 9.996,0.932C10.214,0.9 10.45,0.866 10.727,0.812C11.214,0.719 11.726,0.75 12.234,0.781C12.486,0.797 12.738,0.812 12.985,0.812Z"
|
||||
style="fill: none; fill-rule: nonzero; stroke: white; stroke-width: 1px"
|
||||
/>
|
||||
<path
|
||||
d="M11.999,0.166L15.656,0.746L18.955,2.426L21.573,5.044L23.254,8.342L23.834,11.999L23.254,15.656L21.573,18.955L18.955,21.573L15.656,23.254L11.999,23.834L8.343,23.254L5.044,21.573L2.426,18.955L0.746,15.656L0.166,11.999L0.746,8.343L2.426,5.044L5.044,2.426L8.343,0.746L11.999,0.166ZM8.549,1.381L5.436,2.966L2.967,5.436L1.381,8.549L0.834,11.999L1.381,15.45L2.967,18.562L5.436,21.032L8.549,22.619L11.999,23.166L15.45,22.619L18.562,21.032L21.032,18.562L22.619,15.45L23.166,11.999L22.619,8.549L21.032,5.436L18.562,2.966L15.45,1.381L11.999,0.834L8.549,1.381Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M11.915,3.928C11.993,3.881 12.094,3.907 12.141,3.985L14.738,8.343C14.785,8.421 14.759,8.523 14.681,8.569C14.603,8.616 14.501,8.59 14.455,8.512L11.857,4.154C11.811,4.076 11.836,3.975 11.915,3.928Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M11.999,3.904L17.36,4.484L17.325,4.812L11.999,4.236L6.674,4.812L6.639,4.484L11.999,3.904Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M9.237,8.426C9.237,8.334 9.311,8.261 9.402,8.261L14.596,8.261C14.687,8.261 14.761,8.334 14.761,8.426C14.761,8.517 14.687,8.591 14.596,8.591L9.402,8.591C9.311,8.591 9.237,8.517 9.237,8.426Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M12.083,3.928C12.161,3.975 12.187,4.076 12.14,4.154L9.544,8.512C9.497,8.59 9.396,8.616 9.318,8.569C9.24,8.523 9.214,8.421 9.261,8.343L11.857,3.985C11.903,3.907 12.004,3.881 12.083,3.928Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M8.392,0.803L11.999,3.853L15.606,0.803L17.49,4.573L17.195,4.721L15.499,1.326L11.999,4.285L8.499,1.326L6.804,4.721L6.509,4.573L8.392,0.803Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M5.143,2.563C5.217,2.509 5.32,2.525 5.374,2.599L11.999,11.719L18.625,2.599C18.679,2.525 18.782,2.509 18.856,2.563C18.929,2.616 18.946,2.719 18.892,2.793L12.133,12.097C12.102,12.14 12.052,12.165 11.999,12.165C11.947,12.165 11.897,12.14 11.866,12.097L5.107,2.793C5.053,2.719 5.07,2.616 5.143,2.563Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M9.525,8.314C9.565,8.358 9.578,8.42 9.56,8.476L7.992,13.303L12.081,16.274L16.727,18.266C16.811,18.302 16.85,18.399 16.814,18.482C16.778,18.566 16.681,18.605 16.597,18.569L11.934,16.57C11.923,16.565 11.912,16.559 11.902,16.552L7.701,13.499C7.643,13.457 7.619,13.383 7.641,13.315L9.156,8.651L4.493,9.709C4.404,9.729 4.315,9.674 4.295,9.585C4.275,9.496 4.331,9.408 4.42,9.387L9.367,8.265C9.424,8.251 9.485,8.27 9.525,8.314Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M4.347,9.426C4.416,9.366 4.52,9.373 4.58,9.442L7.922,13.259C7.982,13.328 7.975,13.432 7.907,13.492C7.838,13.552 7.734,13.545 7.674,13.477L4.332,9.659C4.272,9.591 4.279,9.486 4.347,9.426Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M6.931,4.439L4.635,9.553L4.661,9.616L4.603,9.652L3.534,14.751L7.435,18.284L12.078,20.948L15.442,22.696L16.535,18.244L21.105,18.581L20.481,14.837L20.807,14.783L21.499,18.941L16.789,18.593L15.662,23.182L11.917,21.236L7.24,18.553L3.238,14.928L0.234,11.971L4.25,9.483L2.464,5.109L6.931,4.439ZM4.215,9.893L0.765,12.03L3.254,14.48L4.215,9.893ZM4.463,9.131L6.382,4.855L2.928,5.373L4.463,9.131Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M7.814,13.202C7.904,13.211 7.971,13.291 7.963,13.382L7.502,18.433C7.494,18.524 7.414,18.591 7.323,18.583C7.232,18.574 7.165,18.494 7.174,18.403L7.634,13.352C7.642,13.261 7.723,13.194 7.814,13.202Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M12.151,16.353C12.187,16.436 12.148,16.533 12.065,16.569L7.403,18.569C7.319,18.604 7.222,18.566 7.186,18.482C7.15,18.398 7.189,18.301 7.273,18.265L11.935,16.266C12.018,16.23 12.115,16.269 12.151,16.353Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M2.893,18.581L3.517,14.837L3.191,14.783L2.499,18.941L7.211,18.594L8.336,23.182L12.075,21.24L11.923,20.947L8.556,22.696L7.465,18.244L2.893,18.581Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M12.097,11.865C12.14,11.896 12.165,11.946 12.165,11.998L12.165,23.5C12.165,23.591 12.091,23.665 12,23.665C11.909,23.665 11.835,23.591 11.835,23.5L11.835,12.226L1.115,15.709C1.029,15.737 0.936,15.69 0.908,15.603C0.879,15.517 0.927,15.423 1.013,15.395L11.949,11.842C11.999,11.825 12.054,11.834 12.097,11.865Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M17.212,4.547C17.248,4.499 17.308,4.475 17.368,4.484L21.327,5.078C21.377,5.085 21.421,5.115 21.446,5.159C21.471,5.203 21.474,5.256 21.455,5.303L19.749,9.483L23.587,11.861C23.63,11.887 23.658,11.932 23.664,11.982C23.669,12.033 23.652,12.083 23.616,12.118L20.762,14.926L20.756,14.932L20.755,14.932C20.755,14.933 20.754,14.934 20.753,14.934L16.773,18.541C16.727,18.583 16.661,18.595 16.602,18.572C16.544,18.55 16.504,18.496 16.498,18.434L16.039,13.4L14.44,8.478C14.421,8.421 14.435,8.359 14.475,8.315C14.515,8.272 14.575,8.253 14.633,8.266L19.258,9.315L17.193,4.715C17.168,4.659 17.175,4.595 17.212,4.547ZM19.237,9.649L14.843,8.652L16.269,13.04L19.237,9.649ZM16.372,13.422L16.797,18.074L20.464,14.751L19.45,9.907L16.372,13.422ZM19.784,9.893L20.744,14.48L23.234,12.03L19.784,9.893ZM19.536,9.13L21.07,5.373L17.617,4.855L19.536,9.13Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M11.842,11.947C11.87,11.861 11.963,11.813 12.05,11.842L22.987,15.395C23.074,15.423 23.121,15.517 23.093,15.603C23.065,15.69 22.972,15.737 22.885,15.709L11.948,12.155C11.861,12.127 11.814,12.034 11.842,11.947Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M16.335,13.27C16.389,13.343 16.372,13.447 16.298,13.5L12.096,16.552C12.022,16.606 11.919,16.59 11.866,16.516C11.812,16.442 11.828,16.339 11.902,16.285L16.104,13.233C16.178,13.18 16.281,13.196 16.335,13.27Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M16.58,18.276C16.653,18.234 16.746,18.254 16.796,18.322L18.892,21.208C18.945,21.282 18.929,21.385 18.855,21.439C18.782,21.492 18.678,21.476 18.625,21.402L16.616,18.636L12.081,21.237C12.002,21.282 11.901,21.255 11.856,21.176C11.81,21.097 11.838,20.996 11.917,20.951L16.58,18.276Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M11.999,0.335C12.09,0.335 12.164,0.409 12.164,0.5L12.164,4.068C12.164,4.159 12.09,4.233 11.999,4.233C11.908,4.233 11.834,4.159 11.834,4.068L11.834,0.5C11.834,0.409 11.908,0.335 11.999,0.335Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M23.093,8.396C23.121,8.483 23.073,8.576 22.987,8.604L19.594,9.706C19.507,9.735 19.414,9.687 19.386,9.601C19.358,9.514 19.405,9.421 19.492,9.393L22.885,8.29C22.971,8.262 23.064,8.309 23.093,8.396Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M7.435,18.286C7.509,18.34 7.525,18.443 7.471,18.516L5.374,21.402C5.32,21.476 5.217,21.492 5.143,21.439C5.069,21.385 5.053,21.282 5.107,21.208L7.204,18.322C7.258,18.249 7.361,18.232 7.435,18.286Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<path
|
||||
d="M0.908,8.396C0.936,8.309 1.029,8.262 1.115,8.29L4.508,9.393C4.595,9.421 4.642,9.514 4.614,9.601C4.586,9.687 4.493,9.735 4.406,9.706L1.013,8.604C0.927,8.576 0.879,8.483 0.908,8.396Z"
|
||||
style="fill: white"
|
||||
/>
|
||||
<defs>
|
||||
<linearGradient
|
||||
id="_Linear1"
|
||||
x1="0"
|
||||
y1="0"
|
||||
x2="1"
|
||||
y2="0"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-14.8673,-14.7971,14.7971,-14.8673,20.4244,16.9042)"
|
||||
>
|
||||
<stop offset="0" style="stop-color: rgb(239, 65, 54); stop-opacity: 1" />
|
||||
<stop offset="0.01" style="stop-color: rgb(239, 65, 54); stop-opacity: 1" />
|
||||
<stop offset="0.32" style="stop-color: rgb(223, 81, 83); stop-opacity: 1" />
|
||||
<stop offset="1" style="stop-color: rgb(172, 11, 27); stop-opacity: 1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.7 KiB |
41
public/images/tokens/milktia.svg
Normal file
@ -0,0 +1,41 @@
|
||||
<svg viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask
|
||||
id="mask0_1016_8"
|
||||
style="mask-type: alpha"
|
||||
maskUnits="userSpaceOnUse"
|
||||
x="0"
|
||||
y="0"
|
||||
width="200"
|
||||
height="200"
|
||||
>
|
||||
<circle cx="100" cy="100" r="100" fill="#D9D9D9" />
|
||||
</mask>
|
||||
<g mask="url(#mask0_1016_8)">
|
||||
<path d="M200 0H0V200H200V0Z" fill="url(#paint0_radial_1016_8)" />
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M17 100C17 54.1604 54.1604 17 100 17C145.84 17 183 54.1604 183 100C183 145.84 145.84 183 100 183C54.1604 183 17 145.84 17 100ZM35.9934 70.1292C35.7605 69.0522 34.2896 68.8451 33.8321 69.8475C29.6396 79.0329 27.3034 89.2436 27.3034 100C27.3034 110.756 29.6395 120.967 33.8321 130.152C34.2896 131.155 35.7646 130.946 36.0113 129.872C36.7592 126.616 37.8122 123.265 39.1296 119.865C46.1201 101.826 58.4843 85.6661 72.0752 72.0752C77.7197 66.4307 83.5473 61.3328 89.398 56.8477C90.0458 56.3511 89.9903 55.355 89.2818 54.9498C84.8395 52.4091 80.5176 50.328 76.4118 48.7369C69.6362 46.1112 63.6826 44.9107 58.8762 45.0133C54.1054 45.1152 50.7932 46.4757 48.6345 48.6344C46.23 51.0389 44.8034 54.9033 45.0307 60.5995C45.2441 65.9507 46.9226 72.4804 50.1278 79.7726C50.5169 80.6578 50.3294 81.6944 49.6393 82.3716L45.0105 87.3236C43.9702 88.3445 42.2606 88.1407 41.6138 86.8345C39.236 82.0323 37.0957 75.2258 35.9934 70.1292ZM69.8476 33.832C68.8452 34.2896 69.0539 35.7646 70.1279 36.0113C73.3837 36.7591 76.7352 37.8122 80.1348 39.1296C95.2954 45.0046 112.35 56.5003 127.925 72.0752C132.56 76.7098 137.571 85.0812 139.074 94.9299C139.238 96.0021 140.672 96.3736 141.265 95.4651C145.577 88.8521 148.942 82.402 151.263 76.4117C153.889 69.6362 155.089 63.6826 154.987 58.8761C154.885 54.1054 153.524 50.7932 151.366 48.6344C148.907 46.1759 144.657 44.6798 138.75 44.9907C133.226 45.2815 127.994 46.6016 120.702 49.9344C119.733 50.3773 118.597 50.2673 117.745 49.6276L112.297 45.4006C111.335 44.6781 111.397 43.2145 112.428 42.5945C118.524 38.9293 123.663 36.6594 128.563 35.7699C129.744 35.5554 130.094 33.7945 128.993 33.3153C120.111 29.448 110.306 27.3034 100 27.3034C89.2437 27.3034 79.033 29.6395 69.8476 33.832ZM120.617 120.661C131.639 109.325 132.032 90.7538 120.639 79.3608C116.409 75.131 112.092 71.2466 107.765 67.7333C103.229 64.0492 96.7712 64.0493 92.2349 67.7333C87.9021 71.2521 83.5841 75.1376 79.3608 79.3608C68.5831 90.1385 68.3317 107.296 77.8289 118.936C88.3068 131.778 108.966 132.271 120.617 120.661ZM104.999 139.012C103.917 139.162 103.531 140.608 104.445 141.206C111.09 145.547 117.571 148.931 123.588 151.263C130.364 153.889 136.318 155.089 141.124 154.987C145.895 154.885 149.207 153.524 151.366 151.366C153.77 148.961 155.197 145.097 154.969 139.401C154.758 134.088 153.117 127.729 149.959 120.517C149.521 119.517 149.664 118.353 150.352 117.506L155.226 111.506C155.948 110.618 157.319 110.673 157.903 111.656C161.275 117.325 163.21 124.157 164.129 129.394C164.326 130.52 165.886 130.784 166.354 129.742C170.429 120.663 172.697 110.596 172.697 100C172.697 89.2437 170.36 79.0331 166.168 69.8477C165.71 68.8453 164.235 69.054 163.989 70.128C163.241 73.3838 162.188 76.7352 160.871 80.1347C154.995 95.2954 143.5 112.35 127.925 127.925C121.9 133.95 113.488 137.837 104.999 139.012ZM130.152 166.168C131.155 165.71 130.946 164.235 129.872 163.989C126.616 163.241 123.265 162.188 119.865 160.87C104.705 154.995 87.6501 143.5 72.0752 127.925C67.2172 123.067 62.3556 114.804 60.909 105.103C60.7487 104.028 59.3109 103.652 58.7174 104.563C54.4133 111.166 51.055 117.606 48.7369 123.588C46.1113 130.364 44.9107 136.317 45.0134 141.124C45.1153 145.895 46.4757 149.207 48.6345 151.366C51.0118 153.743 54.8134 155.163 60.4045 154.977C65.6245 154.802 71.9888 153.219 79.1074 150.161C80.0901 149.739 81.2281 149.874 82.0681 150.536L87.2306 154.604C88.1576 155.335 88.0866 156.759 87.0628 157.346C81.4234 160.58 75.1058 162.779 70.1222 163.969C69.0505 164.225 68.8452 165.71 69.8477 166.168C79.033 170.36 89.2437 172.697 100 172.697C110.756 172.697 120.967 170.36 130.152 166.168Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
d="M96.8811 80.4348C96.9279 80.3934 96.9716 80.3529 97.0177 80.3108C98.8427 78.6433 101.651 78.6734 103.44 80.3821C103.478 80.4186 103.514 80.4531 103.553 80.4891C104.165 81.058 109.693 86.2109 112.922 89.7439C116.226 93.7887 116.944 99.7632 114.716 104.672C108.586 118.18 91.6728 118.309 85.3654 104.906C83.0057 99.8927 83.755 93.7116 87.2225 89.6184C89.839 86.6809 96.1575 81.0748 96.8811 80.4348Z"
|
||||
fill="white"
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<radialGradient
|
||||
id="paint0_radial_1016_8"
|
||||
cx="0"
|
||||
cy="0"
|
||||
r="1"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(200 -4.5) rotate(134.363) scale(286.042 191.372)"
|
||||
>
|
||||
<stop stop-color="#5278FF" />
|
||||
<stop offset="0.361196" stop-color="#BE7CFF" />
|
||||
<stop offset="0.756992" stop-color="#E69EFE" />
|
||||
<stop offset="1" stop-color="#F7D4F5" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 4.9 KiB |
@ -1,340 +1,340 @@
|
||||
<svg fill='none' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'>
|
||||
<svg version="1.1" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d='M22.8084 4.42014C22.5667 3.50503 21.7897 2.58992 20.3912 1.57122C19.2689 0.759705 18.0775 0.293518 17.1279 0.293518C16.9379 0.293518 16.7653 0.310784 16.5926 0.345317C16.1609 0.431648 15.7811 0.742439 15.5394 1.20863C15.2458 1.76114 15.1768 2.50359 15.3667 2.95251C15.4358 3.09064 15.5221 3.2633 15.6257 3.4187C14.7106 3.97122 14.1926 4.12661 14.1235 4.14388C16.5063 4.93812 18.4919 6.59568 19.735 8.75395L19.7523 8.54676C19.8041 7.97697 19.9768 7.32086 20.2185 6.64748C20.4602 6.71654 20.702 6.75107 20.9437 6.75107C21.5825 6.75107 22.135 6.49208 22.4804 6.02589C22.8257 5.55971 22.9638 4.93812 22.8084 4.42014Z'
|
||||
fill='#5E12A0'
|
||||
d="M22.8084 4.42014C22.5667 3.50503 21.7897 2.58992 20.3912 1.57122C19.2689 0.759705 18.0775 0.293518 17.1279 0.293518C16.9379 0.293518 16.7653 0.310784 16.5926 0.345317C16.1609 0.431648 15.7811 0.742439 15.5394 1.20863C15.2458 1.76114 15.1768 2.50359 15.3667 2.95251C15.4358 3.09064 15.5221 3.2633 15.6257 3.4187C14.7106 3.97122 14.1926 4.12661 14.1235 4.14388C16.5063 4.93812 18.4919 6.59568 19.735 8.75395L19.7523 8.54676C19.8041 7.97697 19.9768 7.32086 20.2185 6.64748C20.4602 6.71654 20.702 6.75107 20.9437 6.75107C21.5825 6.75107 22.135 6.49208 22.4804 6.02589C22.8257 5.55971 22.9638 4.93812 22.8084 4.42014Z"
|
||||
fill="#5E12A0"
|
||||
></path>
|
||||
<path
|
||||
d='M20.3225 6.14679C21.8937 6.57844 22.5326 5.36981 22.3254 4.5583C22.1009 3.74679 21.3757 2.91801 20.098 1.98564C18.8203 1.05326 17.5254 0.673409 16.6966 0.846071C15.8678 1.01873 15.6261 2.27916 15.8333 2.76262C15.9196 2.95255 16.1096 3.2288 16.3685 3.5396C16.0405 3.76406 15.7297 3.93672 15.4707 4.09211C17.0592 4.80003 18.4405 5.90506 19.4765 7.28636C19.5973 6.82017 19.77 6.40578 19.9254 6.04319C20.0462 6.06046 20.1844 6.09499 20.3225 6.14679Z'
|
||||
fill='url(#paint0_radial_8766_48743)'
|
||||
d="M20.3225 6.14679C21.8937 6.57844 22.5326 5.36981 22.3254 4.5583C22.1009 3.74679 21.3757 2.91801 20.098 1.98564C18.8203 1.05326 17.5254 0.673409 16.6966 0.846071C15.8678 1.01873 15.6261 2.27916 15.8333 2.76262C15.9196 2.95255 16.1096 3.2288 16.3685 3.5396C16.0405 3.76406 15.7297 3.93672 15.4707 4.09211C17.0592 4.80003 18.4405 5.90506 19.4765 7.28636C19.5973 6.82017 19.77 6.40578 19.9254 6.04319C20.0462 6.06046 20.1844 6.09499 20.3225 6.14679Z"
|
||||
fill="url(#paint0_radial_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M11.3266 23.0676C16.6572 23.0676 20.9784 18.7464 20.9784 13.4158C20.9784 8.08525 16.6572 3.76404 11.3266 3.76404C5.99601 3.76404 1.6748 8.08525 1.6748 13.4158C1.6748 18.7464 5.99601 23.0676 11.3266 23.0676Z'
|
||||
fill='url(#paint1_radial_8766_48743)'
|
||||
d="M11.3266 23.0676C16.6572 23.0676 20.9784 18.7464 20.9784 13.4158C20.9784 8.08525 16.6572 3.76404 11.3266 3.76404C5.99601 3.76404 1.6748 8.08525 1.6748 13.4158C1.6748 18.7464 5.99601 23.0676 11.3266 23.0676Z"
|
||||
fill="url(#paint1_radial_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M21.5307 3.76403C20.2185 2.38274 19.1134 2.02015 17.784 1.72662C16.748 1.4849 17.0242 0.897845 18.2847 1.01871C17.6804 0.811514 17.1106 0.759716 16.6962 0.846047C15.8674 1.01871 15.6257 2.27914 15.8329 2.76259C15.9192 2.95252 16.1091 3.22878 16.3681 3.53957C15.9019 3.85036 15.5048 4.07482 15.1768 4.24749C15.3322 4.31655 15.5221 4.40288 15.7465 4.52375C16.3336 4.83454 16.9724 5.35252 16.9724 5.35252C16.0055 4.52375 16.2127 4.14389 17.5422 3.21151C17.9566 2.91799 18.7163 2.95252 19.4242 3.31511C20.1322 3.6777 20.9609 4.59281 20.9609 4.59281L20.1667 6.11223C20.2185 6.1295 20.2703 6.14677 20.3221 6.16403C20.8228 6.30216 21.2199 6.26763 21.5307 6.14677C21.8933 5.92231 22.8429 5.16259 21.5307 3.76403Z'
|
||||
fill='#A98698'
|
||||
fill-opacity='0.6'
|
||||
d="M21.5307 3.76403C20.2185 2.38274 19.1134 2.02015 17.784 1.72662C16.748 1.4849 17.0242 0.897845 18.2847 1.01871C17.6804 0.811514 17.1106 0.759716 16.6962 0.846047C15.8674 1.01871 15.6257 2.27914 15.8329 2.76259C15.9192 2.95252 16.1091 3.22878 16.3681 3.53957C15.9019 3.85036 15.5048 4.07482 15.1768 4.24749C15.3322 4.31655 15.5221 4.40288 15.7465 4.52375C16.3336 4.83454 16.9724 5.35252 16.9724 5.35252C16.0055 4.52375 16.2127 4.14389 17.5422 3.21151C17.9566 2.91799 18.7163 2.95252 19.4242 3.31511C20.1322 3.6777 20.9609 4.59281 20.9609 4.59281L20.1667 6.11223C20.2185 6.1295 20.2703 6.14677 20.3221 6.16403C20.8228 6.30216 21.2199 6.26763 21.5307 6.14677C21.8933 5.92231 22.8429 5.16259 21.5307 3.76403Z"
|
||||
fill="#A98698"
|
||||
fill-opacity="0.6"
|
||||
></path>
|
||||
<path
|
||||
d='M17.7671 2.55539C18.1124 2.69352 18.5613 2.93525 19.1138 3.29784C19.7699 3.72949 20.3397 4.21295 20.7023 4.5928C20.098 5.38705 19.7009 6.47482 19.4592 7.23453C19.58 7.40719 19.7181 7.57985 19.839 7.75252C19.9599 7.32086 20.1671 6.68201 20.4433 6.04316C20.5124 6.06043 20.5987 6.06043 20.6851 6.06043C20.8922 6.06043 21.134 6.0259 21.3239 5.8705C21.462 5.7669 21.6174 5.57698 21.6002 5.23165C21.6002 4.90359 21.3412 4.48921 20.8059 3.98849C20.4261 3.6259 19.9081 3.22878 19.3901 2.86619C17.9052 1.88201 16.8692 1.60575 16.403 2.07194C16.0922 2.38273 16.1268 2.76259 16.2304 3.03885C15.6779 3.40144 15.2117 3.66043 14.9009 3.83309C15.1081 3.90216 15.298 3.98849 15.5052 4.07482C16.0577 3.78129 16.852 3.28057 17.7671 2.55539ZM21.0304 5.02446C21.0822 5.11079 21.0994 5.19712 21.0994 5.24892C21.0994 5.40431 21.0476 5.45611 21.0131 5.49065C20.944 5.54244 20.8059 5.57698 20.6851 5.57698C20.7886 5.36978 20.9095 5.19712 21.0304 5.02446ZM16.7656 2.4518C16.8174 2.4 16.9556 2.36547 17.18 2.4C17.0074 2.53813 16.8347 2.65899 16.662 2.77985C16.6448 2.65899 16.662 2.53813 16.7656 2.4518Z'
|
||||
fill='#5E12A0'
|
||||
d="M17.7671 2.55539C18.1124 2.69352 18.5613 2.93525 19.1138 3.29784C19.7699 3.72949 20.3397 4.21295 20.7023 4.5928C20.098 5.38705 19.7009 6.47482 19.4592 7.23453C19.58 7.40719 19.7181 7.57985 19.839 7.75252C19.9599 7.32086 20.1671 6.68201 20.4433 6.04316C20.5124 6.06043 20.5987 6.06043 20.6851 6.06043C20.8922 6.06043 21.134 6.0259 21.3239 5.8705C21.462 5.7669 21.6174 5.57698 21.6002 5.23165C21.6002 4.90359 21.3412 4.48921 20.8059 3.98849C20.4261 3.6259 19.9081 3.22878 19.3901 2.86619C17.9052 1.88201 16.8692 1.60575 16.403 2.07194C16.0922 2.38273 16.1268 2.76259 16.2304 3.03885C15.6779 3.40144 15.2117 3.66043 14.9009 3.83309C15.1081 3.90216 15.298 3.98849 15.5052 4.07482C16.0577 3.78129 16.852 3.28057 17.7671 2.55539ZM21.0304 5.02446C21.0822 5.11079 21.0994 5.19712 21.0994 5.24892C21.0994 5.40431 21.0476 5.45611 21.0131 5.49065C20.944 5.54244 20.8059 5.57698 20.6851 5.57698C20.7886 5.36978 20.9095 5.19712 21.0304 5.02446ZM16.7656 2.4518C16.8174 2.4 16.9556 2.36547 17.18 2.4C17.0074 2.53813 16.8347 2.65899 16.662 2.77985C16.6448 2.65899 16.662 2.53813 16.7656 2.4518Z"
|
||||
fill="#5E12A0"
|
||||
></path>
|
||||
<path
|
||||
d='M11.3266 3.19427C5.68052 3.19427 1.10498 7.76981 1.10498 13.4159C1.10498 19.0619 5.68052 23.6374 11.3266 23.6374C16.9726 23.6374 21.5481 19.0619 21.5481 13.4159C21.5481 7.76981 16.9553 3.19427 11.3266 3.19427ZM11.3266 23.0677C5.99131 23.0677 1.67476 18.7511 1.67476 13.4159C1.67476 8.08061 5.99131 3.76406 11.3266 3.76406C16.6618 3.76406 20.9784 8.08061 20.9784 13.4159C20.9784 18.7511 16.6445 23.0677 11.3266 23.0677Z'
|
||||
fill='#5E12A0'
|
||||
d="M11.3266 3.19427C5.68052 3.19427 1.10498 7.76981 1.10498 13.4159C1.10498 19.0619 5.68052 23.6374 11.3266 23.6374C16.9726 23.6374 21.5481 19.0619 21.5481 13.4159C21.5481 7.76981 16.9553 3.19427 11.3266 3.19427ZM11.3266 23.0677C5.99131 23.0677 1.67476 18.7511 1.67476 13.4159C1.67476 8.08061 5.99131 3.76406 11.3266 3.76406C16.6618 3.76406 20.9784 8.08061 20.9784 13.4159C20.9784 18.7511 16.6445 23.0677 11.3266 23.0677Z"
|
||||
fill="#5E12A0"
|
||||
></path>
|
||||
<path
|
||||
d='M11.3266 23.0676C16.6572 23.0676 20.9784 18.7464 20.9784 13.4158C20.9784 8.08525 16.6572 3.76404 11.3266 3.76404C5.99601 3.76404 1.6748 8.08525 1.6748 13.4158C1.6748 18.7464 5.99601 23.0676 11.3266 23.0676Z'
|
||||
fill='url(#paint2_linear_8766_48743)'
|
||||
d="M11.3266 23.0676C16.6572 23.0676 20.9784 18.7464 20.9784 13.4158C20.9784 8.08525 16.6572 3.76404 11.3266 3.76404C5.99601 3.76404 1.6748 8.08525 1.6748 13.4158C1.6748 18.7464 5.99601 23.0676 11.3266 23.0676Z"
|
||||
fill="url(#paint2_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M11.2577 21.8935C5.99153 21.0475 2.41743 16.0921 3.28074 10.8259C3.6606 8.49494 4.8347 6.50933 6.49225 5.07623C4.07499 6.47479 2.2793 8.90933 1.79585 11.8791C0.949806 17.1453 4.52391 22.1007 9.77283 22.9467C12.7081 23.4302 15.5397 22.5151 17.6289 20.7194C15.7815 21.7899 13.5369 22.2561 11.2577 21.8935Z'
|
||||
fill='#A98698'
|
||||
fill-opacity='0.6'
|
||||
d="M11.2577 21.8935C5.99153 21.0475 2.41743 16.0921 3.28074 10.8259C3.6606 8.49494 4.8347 6.50933 6.49225 5.07623C4.07499 6.47479 2.2793 8.90933 1.79585 11.8791C0.949806 17.1453 4.52391 22.1007 9.77283 22.9467C12.7081 23.4302 15.5397 22.5151 17.6289 20.7194C15.7815 21.7899 13.5369 22.2561 11.2577 21.8935Z"
|
||||
fill="#A98698"
|
||||
fill-opacity="0.6"
|
||||
></path>
|
||||
<path
|
||||
d='M12.8631 3.90216C10.4285 3.50504 8.06307 4.05756 6.12926 5.28346C6.09473 5.31799 6.0602 5.35252 6.0602 5.35252C6.80264 4.9036 7.89041 4.50648 7.89041 4.50648C5.09329 6.1295 4.22998 7.97698 4.22998 7.97698C5.31775 5.87051 8.51199 4.38562 11.0156 4.28202C13.5192 4.17842 15.1595 4.92087 17.1624 6.52662C19.1652 8.14964 20.3739 11.4648 20.253 14.0892C20.1494 16.7137 18.7681 18.8374 18.7681 18.8374C19.7177 17.6115 20.2875 16.7137 20.6501 15.7986C20.7192 15.5223 20.7883 15.246 20.8228 14.9525C21.6861 9.7036 18.1293 4.74821 12.8631 3.90216Z'
|
||||
fill='url(#paint3_linear_8766_48743)'
|
||||
d="M12.8631 3.90216C10.4285 3.50504 8.06307 4.05756 6.12926 5.28346C6.09473 5.31799 6.0602 5.35252 6.0602 5.35252C6.80264 4.9036 7.89041 4.50648 7.89041 4.50648C5.09329 6.1295 4.22998 7.97698 4.22998 7.97698C5.31775 5.87051 8.51199 4.38562 11.0156 4.28202C13.5192 4.17842 15.1595 4.92087 17.1624 6.52662C19.1652 8.14964 20.3739 11.4648 20.253 14.0892C20.1494 16.7137 18.7681 18.8374 18.7681 18.8374C19.7177 17.6115 20.2875 16.7137 20.6501 15.7986C20.7192 15.5223 20.7883 15.246 20.8228 14.9525C21.6861 9.7036 18.1293 4.74821 12.8631 3.90216Z"
|
||||
fill="url(#paint3_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M20.4951 13.3295C20.4951 18.3885 16.3857 22.4978 11.3267 22.4978C6.26773 22.4978 2.14111 18.3885 2.14111 13.3295H20.4951Z'
|
||||
fill='url(#paint4_linear_8766_48743)'
|
||||
d="M20.4951 13.3295C20.4951 18.3885 16.3857 22.4978 11.3267 22.4978C6.26773 22.4978 2.14111 18.3885 2.14111 13.3295H20.4951Z"
|
||||
fill="url(#paint4_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M19.7696 13.3295C19.7696 18.2676 15.8675 22.3079 10.9639 22.4978H11.3265C16.3855 22.4978 20.4948 18.3885 20.4948 13.3295H19.7696Z'
|
||||
fill='url(#paint5_linear_8766_48743)'
|
||||
d="M19.7696 13.3295C19.7696 18.2676 15.8675 22.3079 10.9639 22.4978H11.3265C16.3855 22.4978 20.4948 18.3885 20.4948 13.3295H19.7696Z"
|
||||
fill="url(#paint5_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M3.43608 13.3295H2.14111C2.14111 18.3885 6.25047 22.4978 11.3095 22.4978C11.5339 22.4978 11.7411 22.4978 11.9483 22.4805C7.20011 22.1352 3.43608 18.164 3.43608 13.3295Z'
|
||||
fill='url(#paint6_linear_8766_48743)'
|
||||
d="M3.43608 13.3295H2.14111C2.14111 18.3885 6.25047 22.4978 11.3095 22.4978C11.5339 22.4978 11.7411 22.4978 11.9483 22.4805C7.20011 22.1352 3.43608 18.164 3.43608 13.3295Z"
|
||||
fill="url(#paint6_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M20.4778 13.4158C20.4778 12.3626 18.6476 11.7583 16.2131 11.5511C14.4519 11.413 12.6735 11.5856 10.6361 12.2072C8.87493 12.7252 7.28644 12.6389 6.1296 12.5007C3.55694 12.2072 2.14111 12.1727 2.14111 13.4158C2.14111 15.2115 5.80155 17.4561 11.2922 16.6792C14.072 16.282 15.5051 15.4705 17.1454 14.918C18.9238 14.331 20.4778 14.3482 20.4778 13.4158Z'
|
||||
fill='url(#paint7_linear_8766_48743)'
|
||||
d="M20.4778 13.4158C20.4778 12.3626 18.6476 11.7583 16.2131 11.5511C14.4519 11.413 12.6735 11.5856 10.6361 12.2072C8.87493 12.7252 7.28644 12.6389 6.1296 12.5007C3.55694 12.2072 2.14111 12.1727 2.14111 13.4158C2.14111 15.2115 5.80155 17.4561 11.2922 16.6792C14.072 16.282 15.5051 15.4705 17.1454 14.918C18.9238 14.331 20.4778 14.3482 20.4778 13.4158Z"
|
||||
fill="url(#paint7_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M14.3308 9.06476C15.1891 9.06476 15.8848 8.36911 15.8848 7.5108C15.8848 6.6525 15.1891 5.95685 14.3308 5.95685C13.4725 5.95685 12.7769 6.6525 12.7769 7.5108C12.7769 8.36911 13.4725 9.06476 14.3308 9.06476Z'
|
||||
fill='white'
|
||||
d="M14.3308 9.06476C15.1891 9.06476 15.8848 8.36911 15.8848 7.5108C15.8848 6.6525 15.1891 5.95685 14.3308 5.95685C13.4725 5.95685 12.7769 6.6525 12.7769 7.5108C12.7769 8.36911 13.4725 9.06476 14.3308 9.06476Z"
|
||||
fill="white"
|
||||
></path>
|
||||
<path
|
||||
d='M16.869 10.2216C17.2314 10.2216 17.5251 9.9279 17.5251 9.56548C17.5251 9.20306 17.2314 8.90936 16.869 8.90936C16.5066 8.90936 16.2129 9.20306 16.2129 9.56548C16.2129 9.9279 16.5066 10.2216 16.869 10.2216Z'
|
||||
fill='white'
|
||||
d="M16.869 10.2216C17.2314 10.2216 17.5251 9.9279 17.5251 9.56548C17.5251 9.20306 17.2314 8.90936 16.869 8.90936C16.5066 8.90936 16.2129 9.20306 16.2129 9.56548C16.2129 9.9279 16.5066 10.2216 16.869 10.2216Z"
|
||||
fill="white"
|
||||
></path>
|
||||
<path
|
||||
d='M19.2175 6.2676H19.1829C19.0793 6.25034 19.0103 6.14674 19.0275 6.02588C19.1829 5.23163 19.8391 4.47192 19.8736 4.43739C19.9427 4.35106 20.0808 4.35106 20.1498 4.42012C20.2362 4.48919 20.2362 4.62732 20.1671 4.69638C20.1498 4.71365 19.5455 5.42156 19.4074 6.11221C19.3901 6.2158 19.3038 6.2676 19.2175 6.2676Z'
|
||||
fill='url(#paint8_linear_8766_48743)'
|
||||
d="M19.2175 6.2676H19.1829C19.0793 6.25034 19.0103 6.14674 19.0275 6.02588C19.1829 5.23163 19.8391 4.47192 19.8736 4.43739C19.9427 4.35106 20.0808 4.35106 20.1498 4.42012C20.2362 4.48919 20.2362 4.62732 20.1671 4.69638C20.1498 4.71365 19.5455 5.42156 19.4074 6.11221C19.3901 6.2158 19.3038 6.2676 19.2175 6.2676Z"
|
||||
fill="url(#paint8_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M10.6876 20.6158C10.9545 20.6158 11.171 20.3993 11.171 20.1324C11.171 19.8654 10.9545 19.6489 10.6876 19.6489C10.4206 19.6489 10.2041 19.8654 10.2041 20.1324C10.2041 20.3993 10.4206 20.6158 10.6876 20.6158Z'
|
||||
fill='white'
|
||||
fill-opacity='0.2'
|
||||
d="M10.6876 20.6158C10.9545 20.6158 11.171 20.3993 11.171 20.1324C11.171 19.8654 10.9545 19.6489 10.6876 19.6489C10.4206 19.6489 10.2041 19.8654 10.2041 20.1324C10.2041 20.3993 10.4206 20.6158 10.6876 20.6158Z"
|
||||
fill="white"
|
||||
fill-opacity="0.2"
|
||||
></path>
|
||||
<path
|
||||
d='M10.4117 20.4432C10.2218 20.2532 10.2218 19.9425 10.4117 19.7525C10.4462 19.718 10.4808 19.7007 10.5153 19.6662C10.4462 19.6835 10.3944 19.718 10.3426 19.7698C10.1527 19.9597 10.1527 20.2705 10.3426 20.4604C10.498 20.6158 10.7398 20.6504 10.9297 20.5468C10.757 20.6158 10.5498 20.5813 10.4117 20.4432Z'
|
||||
fill='url(#paint9_linear_8766_48743)'
|
||||
d="M10.4117 20.4432C10.2218 20.2532 10.2218 19.9425 10.4117 19.7525C10.4462 19.718 10.4808 19.7007 10.5153 19.6662C10.4462 19.6835 10.3944 19.718 10.3426 19.7698C10.1527 19.9597 10.1527 20.2705 10.3426 20.4604C10.498 20.6158 10.7398 20.6504 10.9297 20.5468C10.757 20.6158 10.5498 20.5813 10.4117 20.4432Z"
|
||||
fill="url(#paint9_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M10.8604 19.9942C10.9176 19.9942 10.964 19.9478 10.964 19.8906C10.964 19.8335 10.9176 19.787 10.8604 19.787C10.8033 19.787 10.7568 19.8335 10.7568 19.8906C10.7568 19.9478 10.8033 19.9942 10.8604 19.9942Z'
|
||||
fill='white'
|
||||
fill-opacity='0.3'
|
||||
d="M10.8604 19.9942C10.9176 19.9942 10.964 19.9478 10.964 19.8906C10.964 19.8335 10.9176 19.787 10.8604 19.787C10.8033 19.787 10.7568 19.8335 10.7568 19.8906C10.7568 19.9478 10.8033 19.9942 10.8604 19.9942Z"
|
||||
fill="white"
|
||||
fill-opacity="0.3"
|
||||
></path>
|
||||
<path
|
||||
d='M13.2086 20.3741C13.4755 20.3741 13.692 20.1576 13.692 19.8906C13.692 19.6237 13.4755 19.4072 13.2086 19.4072C12.9416 19.4072 12.7251 19.6237 12.7251 19.8906C12.7251 20.1576 12.9416 20.3741 13.2086 20.3741Z'
|
||||
fill='white'
|
||||
fill-opacity='0.2'
|
||||
d="M13.2086 20.3741C13.4755 20.3741 13.692 20.1576 13.692 19.8906C13.692 19.6237 13.4755 19.4072 13.2086 19.4072C12.9416 19.4072 12.7251 19.6237 12.7251 19.8906C12.7251 20.1576 12.9416 20.3741 13.2086 20.3741Z"
|
||||
fill="white"
|
||||
fill-opacity="0.2"
|
||||
></path>
|
||||
<path
|
||||
d='M12.9322 20.2014C12.7423 20.0115 12.7423 19.7007 12.9322 19.5108C12.9667 19.4762 13.0013 19.459 13.0358 19.4244C12.9667 19.4417 12.9149 19.4762 12.8631 19.528C12.6732 19.718 12.6732 20.0288 12.8631 20.2187C13.0185 20.3741 13.2603 20.4086 13.4502 20.305C13.2775 20.3741 13.0703 20.3395 12.9322 20.2014Z'
|
||||
fill='url(#paint10_linear_8766_48743)'
|
||||
d="M12.9322 20.2014C12.7423 20.0115 12.7423 19.7007 12.9322 19.5108C12.9667 19.4762 13.0013 19.459 13.0358 19.4244C12.9667 19.4417 12.9149 19.4762 12.8631 19.528C12.6732 19.718 12.6732 20.0288 12.8631 20.2187C13.0185 20.3741 13.2603 20.4086 13.4502 20.305C13.2775 20.3741 13.0703 20.3395 12.9322 20.2014Z"
|
||||
fill="url(#paint10_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M13.3814 19.7525C13.4386 19.7525 13.485 19.7061 13.485 19.6489C13.485 19.5918 13.4386 19.5453 13.3814 19.5453C13.3243 19.5453 13.2778 19.5918 13.2778 19.6489C13.2778 19.7061 13.3243 19.7525 13.3814 19.7525Z'
|
||||
fill='white'
|
||||
fill-opacity='0.3'
|
||||
d="M13.3814 19.7525C13.4386 19.7525 13.485 19.7061 13.485 19.6489C13.485 19.5918 13.4386 19.5453 13.3814 19.5453C13.3243 19.5453 13.2778 19.5918 13.2778 19.6489C13.2778 19.7061 13.3243 19.7525 13.3814 19.7525Z"
|
||||
fill="white"
|
||||
fill-opacity="0.3"
|
||||
></path>
|
||||
<path
|
||||
d='M11.9656 21.4964C12.1659 21.4964 12.3282 21.3341 12.3282 21.1338C12.3282 20.9335 12.1659 20.7712 11.9656 20.7712C11.7653 20.7712 11.603 20.9335 11.603 21.1338C11.603 21.3341 11.7653 21.4964 11.9656 21.4964Z'
|
||||
fill='white'
|
||||
fill-opacity='0.2'
|
||||
d="M11.9656 21.4964C12.1659 21.4964 12.3282 21.3341 12.3282 21.1338C12.3282 20.9335 12.1659 20.7712 11.9656 20.7712C11.7653 20.7712 11.603 20.9335 11.603 21.1338C11.603 21.3341 11.7653 21.4964 11.9656 21.4964Z"
|
||||
fill="white"
|
||||
fill-opacity="0.2"
|
||||
></path>
|
||||
<path
|
||||
d='M11.7584 21.3583C11.6203 21.2202 11.6203 20.9784 11.7584 20.8403C11.7757 20.823 11.8102 20.8058 11.8275 20.7885C11.7757 20.8058 11.7412 20.8403 11.7066 20.8748C11.5685 21.013 11.5685 21.2547 11.7066 21.3928C11.8275 21.5137 12.0002 21.531 12.1555 21.4446C12.0174 21.4964 11.862 21.4619 11.7584 21.3583Z'
|
||||
fill='url(#paint11_linear_8766_48743)'
|
||||
d="M11.7584 21.3583C11.6203 21.2202 11.6203 20.9784 11.7584 20.8403C11.7757 20.823 11.8102 20.8058 11.8275 20.7885C11.7757 20.8058 11.7412 20.8403 11.7066 20.8748C11.5685 21.013 11.5685 21.2547 11.7066 21.3928C11.8275 21.5137 12.0002 21.531 12.1555 21.4446C12.0174 21.4964 11.862 21.4619 11.7584 21.3583Z"
|
||||
fill="url(#paint11_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M12.0862 21.0129C12.1243 21.0129 12.1552 20.982 12.1552 20.9439C12.1552 20.9057 12.1243 20.8748 12.0862 20.8748C12.048 20.8748 12.0171 20.9057 12.0171 20.9439C12.0171 20.982 12.048 21.0129 12.0862 21.0129Z'
|
||||
fill='white'
|
||||
fill-opacity='0.3'
|
||||
d="M12.0862 21.0129C12.1243 21.0129 12.1552 20.982 12.1552 20.9439C12.1552 20.9057 12.1243 20.8748 12.0862 20.8748C12.048 20.8748 12.0171 20.9057 12.0171 20.9439C12.0171 20.982 12.048 21.0129 12.0862 21.0129Z"
|
||||
fill="white"
|
||||
fill-opacity="0.3"
|
||||
></path>
|
||||
<path
|
||||
d='M14.1927 21.2374C14.393 21.2374 14.5553 21.0751 14.5553 20.8748C14.5553 20.6745 14.393 20.5122 14.1927 20.5122C13.9924 20.5122 13.8301 20.6745 13.8301 20.8748C13.8301 21.0751 13.9924 21.2374 14.1927 21.2374Z'
|
||||
fill='white'
|
||||
fill-opacity='0.2'
|
||||
d="M14.1927 21.2374C14.393 21.2374 14.5553 21.0751 14.5553 20.8748C14.5553 20.6745 14.393 20.5122 14.1927 20.5122C13.9924 20.5122 13.8301 20.6745 13.8301 20.8748C13.8301 21.0751 13.9924 21.2374 14.1927 21.2374Z"
|
||||
fill="white"
|
||||
fill-opacity="0.2"
|
||||
></path>
|
||||
<path
|
||||
d='M13.9855 21.0993C13.8473 20.9611 13.8473 20.7194 13.9855 20.5813C14.0027 20.564 14.0373 20.5467 14.0545 20.5295C14.0027 20.5467 13.9682 20.5813 13.9337 20.6158C13.7955 20.7539 13.7955 20.9957 13.9337 21.1338C14.0545 21.2547 14.2272 21.2719 14.3826 21.1856C14.2445 21.2374 14.0891 21.2029 13.9855 21.0993Z'
|
||||
fill='url(#paint12_linear_8766_48743)'
|
||||
d="M13.9855 21.0993C13.8473 20.9611 13.8473 20.7194 13.9855 20.5813C14.0027 20.564 14.0373 20.5467 14.0545 20.5295C14.0027 20.5467 13.9682 20.5813 13.9337 20.6158C13.7955 20.7539 13.7955 20.9957 13.9337 21.1338C14.0545 21.2547 14.2272 21.2719 14.3826 21.1856C14.2445 21.2374 14.0891 21.2029 13.9855 21.0993Z"
|
||||
fill="url(#paint12_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M14.3137 20.754C14.3519 20.754 14.3828 20.7231 14.3828 20.6849C14.3828 20.6468 14.3519 20.6158 14.3137 20.6158C14.2755 20.6158 14.2446 20.6468 14.2446 20.6849C14.2446 20.7231 14.2755 20.754 14.3137 20.754Z'
|
||||
fill='white'
|
||||
fill-opacity='0.3'
|
||||
d="M14.3137 20.754C14.3519 20.754 14.3828 20.7231 14.3828 20.6849C14.3828 20.6468 14.3519 20.6158 14.3137 20.6158C14.2755 20.6158 14.2446 20.6468 14.2446 20.6849C14.2446 20.7231 14.2755 20.754 14.3137 20.754Z"
|
||||
fill="white"
|
||||
fill-opacity="0.3"
|
||||
></path>
|
||||
<path
|
||||
d='M8.63311 20.4432C9.07185 20.4432 9.42736 20.0877 9.42736 19.6489C9.42736 19.2104 9.07185 18.8547 8.63311 18.8547C8.19455 18.8547 7.83887 19.2104 7.83887 19.6489C7.83887 20.0877 8.19455 20.4432 8.63311 20.4432Z'
|
||||
fill='white'
|
||||
fill-opacity='0.2'
|
||||
d="M8.63311 20.4432C9.07185 20.4432 9.42736 20.0877 9.42736 19.6489C9.42736 19.2104 9.07185 18.8547 8.63311 18.8547C8.19455 18.8547 7.83887 19.2104 7.83887 19.6489C7.83887 20.0877 8.19455 20.4432 8.63311 20.4432Z"
|
||||
fill="white"
|
||||
fill-opacity="0.2"
|
||||
></path>
|
||||
<path
|
||||
d='M8.18435 20.1497C7.87356 19.8389 7.87356 19.3381 8.18435 19.0274C8.23615 18.9756 8.28794 18.941 8.35701 18.9065C8.25341 18.941 8.16708 19.0101 8.08075 19.0792C7.76996 19.3899 7.76996 19.8907 8.08075 20.2015C8.33974 20.4605 8.73687 20.5122 9.04766 20.3223C8.75413 20.4432 8.40881 20.3914 8.18435 20.1497Z'
|
||||
fill='url(#paint13_linear_8766_48743)'
|
||||
d="M8.18435 20.1497C7.87356 19.8389 7.87356 19.3381 8.18435 19.0274C8.23615 18.9756 8.28794 18.941 8.35701 18.9065C8.25341 18.941 8.16708 19.0101 8.08075 19.0792C7.76996 19.3899 7.76996 19.8907 8.08075 20.2015C8.33974 20.4605 8.73687 20.5122 9.04766 20.3223C8.75413 20.4432 8.40881 20.3914 8.18435 20.1497Z"
|
||||
fill="url(#paint13_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M8.90948 19.4072C9.00479 19.4072 9.08214 19.3299 9.08214 19.2346C9.08214 19.1392 9.00479 19.0619 8.90948 19.0619C8.81417 19.0619 8.73682 19.1392 8.73682 19.2346C8.73682 19.3299 8.81417 19.4072 8.90948 19.4072Z'
|
||||
fill='white'
|
||||
fill-opacity='0.3'
|
||||
d="M8.90948 19.4072C9.00479 19.4072 9.08214 19.3299 9.08214 19.2346C9.08214 19.1392 9.00479 19.0619 8.90948 19.0619C8.81417 19.0619 8.73682 19.1392 8.73682 19.2346C8.73682 19.3299 8.81417 19.4072 8.90948 19.4072Z"
|
||||
fill="white"
|
||||
fill-opacity="0.3"
|
||||
></path>
|
||||
<path
|
||||
d='M15.7293 18.4921C16.168 18.4921 16.5235 18.1366 16.5235 17.6979C16.5235 17.2593 16.168 16.9036 15.7293 16.9036C15.2907 16.9036 14.9351 17.2593 14.9351 17.6979C14.9351 18.1366 15.2907 18.4921 15.7293 18.4921Z'
|
||||
fill='white'
|
||||
fill-opacity='0.2'
|
||||
d="M15.7293 18.4921C16.168 18.4921 16.5235 18.1366 16.5235 17.6979C16.5235 17.2593 16.168 16.9036 15.7293 16.9036C15.2907 16.9036 14.9351 17.2593 14.9351 17.6979C14.9351 18.1366 15.2907 18.4921 15.7293 18.4921Z"
|
||||
fill="white"
|
||||
fill-opacity="0.2"
|
||||
></path>
|
||||
<path
|
||||
d='M15.2634 18.1985C14.9527 17.8878 14.9527 17.387 15.2634 17.0762C15.3152 17.0244 15.367 16.9899 15.4361 16.9554C15.3325 16.9899 15.2462 17.059 15.1599 17.128C14.8491 17.4388 14.8491 17.9396 15.1599 18.2503C15.4188 18.5093 15.816 18.5611 16.1268 18.3712C15.8332 18.4921 15.5052 18.4403 15.2634 18.1985Z'
|
||||
fill='url(#paint14_linear_8766_48743)'
|
||||
d="M15.2634 18.1985C14.9527 17.8878 14.9527 17.387 15.2634 17.0762C15.3152 17.0244 15.367 16.9899 15.4361 16.9554C15.3325 16.9899 15.2462 17.059 15.1599 17.128C14.8491 17.4388 14.8491 17.9396 15.1599 18.2503C15.4188 18.5093 15.816 18.5611 16.1268 18.3712C15.8332 18.4921 15.5052 18.4403 15.2634 18.1985Z"
|
||||
fill="url(#paint14_linear_8766_48743)"
|
||||
></path>
|
||||
<path
|
||||
d='M16.0057 17.4561C16.101 17.4561 16.1783 17.3788 16.1783 17.2834C16.1783 17.1881 16.101 17.1108 16.0057 17.1108C15.9104 17.1108 15.833 17.1881 15.833 17.2834C15.833 17.3788 15.9104 17.4561 16.0057 17.4561Z'
|
||||
fill='white'
|
||||
fill-opacity='0.3'
|
||||
d="M16.0057 17.4561C16.101 17.4561 16.1783 17.3788 16.1783 17.2834C16.1783 17.1881 16.101 17.1108 16.0057 17.1108C15.9104 17.1108 15.833 17.1881 15.833 17.2834C15.833 17.3788 15.9104 17.4561 16.0057 17.4561Z"
|
||||
fill="white"
|
||||
fill-opacity="0.3"
|
||||
></path>
|
||||
<defs>
|
||||
<radialGradient
|
||||
cx='0'
|
||||
cy='0'
|
||||
gradientTransform='translate(22.0104 3.47051) scale(7.71702 7.71702)'
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint0_radial_8766_48743'
|
||||
r='1'
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="translate(22.0104 3.47051) scale(7.71702 7.71702)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint0_radial_8766_48743"
|
||||
r="1"
|
||||
>
|
||||
<stop stop-color='#FFEAFF' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.68' stop-color='#A087C9'></stop>
|
||||
<stop offset='1' stop-color='#10002F'></stop>
|
||||
<stop stop-color="#FFEAFF" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.68" stop-color="#A087C9"></stop>
|
||||
<stop offset="1" stop-color="#10002F"></stop>
|
||||
</radialGradient>
|
||||
<radialGradient
|
||||
cx='0'
|
||||
cy='0'
|
||||
gradientTransform='translate(17.7169 6.76169) scale(18.8808)'
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint1_radial_8766_48743'
|
||||
r='1'
|
||||
cx="0"
|
||||
cy="0"
|
||||
gradientTransform="translate(17.7169 6.76169) scale(18.8808)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint1_radial_8766_48743"
|
||||
r="1"
|
||||
>
|
||||
<stop stop-color='#FFEAFF' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.68' stop-color='#A087C9'></stop>
|
||||
<stop offset='1' stop-color='#10002F'></stop>
|
||||
<stop stop-color="#FFEAFF" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.68" stop-color="#A087C9"></stop>
|
||||
<stop offset="1" stop-color="#10002F"></stop>
|
||||
</radialGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint2_linear_8766_48743'
|
||||
x1='9.77838'
|
||||
x2='12.8655'
|
||||
y1='22.9307'
|
||||
y2='3.8849'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint2_linear_8766_48743"
|
||||
x1="9.77838"
|
||||
x2="12.8655"
|
||||
y1="22.9307"
|
||||
y2="3.8849"
|
||||
>
|
||||
<stop stop-color='#81FFFF' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.62' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="#81FFFF" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.62" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint3_linear_8766_48743'
|
||||
x1='18.1284'
|
||||
x2='10.1473'
|
||||
y1='6.861'
|
||||
y2='14.1839'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint3_linear_8766_48743"
|
||||
x1="18.1284"
|
||||
x2="10.1473"
|
||||
y1="6.861"
|
||||
y2="14.1839"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint4_linear_8766_48743'
|
||||
x1='2.14889'
|
||||
x2='20.4906'
|
||||
y1='17.9083'
|
||||
y2='17.9083'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint4_linear_8766_48743"
|
||||
x1="2.14889"
|
||||
x2="20.4906"
|
||||
y1="17.9083"
|
||||
y2="17.9083"
|
||||
>
|
||||
<stop stop-color='#0002E9'></stop>
|
||||
<stop offset='1' stop-color='#FF00C7'></stop>
|
||||
<stop stop-color="#0002E9"></stop>
|
||||
<stop offset="1" stop-color="#FF00C7"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint5_linear_8766_48743'
|
||||
x1='21.3586'
|
||||
x2='11.3753'
|
||||
y1='14.134'
|
||||
y2='23.5688'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint5_linear_8766_48743"
|
||||
x1="21.3586"
|
||||
x2="11.3753"
|
||||
y1="14.134"
|
||||
y2="23.5688"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint6_linear_8766_48743'
|
||||
x1='2.14889'
|
||||
x2='11.9616'
|
||||
y1='17.9083'
|
||||
y2='17.9083'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint6_linear_8766_48743"
|
||||
x1="2.14889"
|
||||
x2="11.9616"
|
||||
y1="17.9083"
|
||||
y2="17.9083"
|
||||
>
|
||||
<stop stop-color='#000292' stop-opacity='0.7'></stop>
|
||||
<stop offset='1' stop-color='#7D00C7' stop-opacity='0.7'></stop>
|
||||
<stop stop-color="#000292" stop-opacity="0.7"></stop>
|
||||
<stop offset="1" stop-color="#7D00C7" stop-opacity="0.7"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint7_linear_8766_48743'
|
||||
x1='2.1612'
|
||||
x2='20.4784'
|
||||
y1='14.1775'
|
||||
y2='14.1775'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint7_linear_8766_48743"
|
||||
x1="2.1612"
|
||||
x2="20.4784"
|
||||
y1="14.1775"
|
||||
y2="14.1775"
|
||||
>
|
||||
<stop stop-color='#000292'></stop>
|
||||
<stop offset='1' stop-color='#BE00C7'></stop>
|
||||
<stop stop-color="#000292"></stop>
|
||||
<stop offset="1" stop-color="#BE00C7"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint8_linear_8766_48743'
|
||||
x1='20.1778'
|
||||
x2='18.8614'
|
||||
y1='4.3533'
|
||||
y2='6.49258'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint8_linear_8766_48743"
|
||||
x1="20.1778"
|
||||
x2="18.8614"
|
||||
y1="4.3533"
|
||||
y2="6.49258"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint9_linear_8766_48743'
|
||||
x1='10.1997'
|
||||
x2='10.9302'
|
||||
y1='20.1472'
|
||||
y2='20.1472'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint9_linear_8766_48743"
|
||||
x1="10.1997"
|
||||
x2="10.9302"
|
||||
y1="20.1472"
|
||||
y2="20.1472"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint10_linear_8766_48743'
|
||||
x1='12.7185'
|
||||
x2='13.449'
|
||||
y1='19.9022'
|
||||
y2='19.9022'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint10_linear_8766_48743"
|
||||
x1="12.7185"
|
||||
x2="13.449"
|
||||
y1="19.9022"
|
||||
y2="19.9022"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint11_linear_8766_48743'
|
||||
x1='11.6008'
|
||||
x2='12.1492'
|
||||
y1='21.138'
|
||||
y2='21.138'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint11_linear_8766_48743"
|
||||
x1="11.6008"
|
||||
x2="12.1492"
|
||||
y1="21.138"
|
||||
y2="21.138"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint12_linear_8766_48743'
|
||||
x1='13.8204'
|
||||
x2='14.3688'
|
||||
y1='20.8783'
|
||||
y2='20.8783'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint12_linear_8766_48743"
|
||||
x1="13.8204"
|
||||
x2="14.3688"
|
||||
y1="20.8783"
|
||||
y2="20.8783"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint13_linear_8766_48743'
|
||||
x1='7.83973'
|
||||
x2='9.03272'
|
||||
y1='19.6691'
|
||||
y2='19.6691'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint13_linear_8766_48743"
|
||||
x1="7.83973"
|
||||
x2="9.03272"
|
||||
y1="19.6691"
|
||||
y2="19.6691"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientUnits='userSpaceOnUse'
|
||||
id='paint14_linear_8766_48743'
|
||||
x1='14.9254'
|
||||
x2='16.1184'
|
||||
y1='17.7175'
|
||||
y2='17.7175'
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="paint14_linear_8766_48743"
|
||||
x1="14.9254"
|
||||
x2="16.1184"
|
||||
y1="17.7175"
|
||||
y2="17.7175"
|
||||
>
|
||||
<stop stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.29' stop-color='white' stop-opacity='0.6'></stop>
|
||||
<stop offset='0.78' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop offset='1' stop-color='white' stop-opacity='0'></stop>
|
||||
<stop stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.29" stop-color="white" stop-opacity="0.6"></stop>
|
||||
<stop offset="0.78" stop-color="white" stop-opacity="0"></stop>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"></stop>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@ -1,9 +1,25 @@
|
||||
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="mask0_207_398" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="500" height="500">
|
||||
<path d="M250 500C388.071 500 500 388.071 500 250C500 111.929 388.071 0 250 0C111.929 0 0 111.929 0 250C0 388.071 111.929 500 250 500Z" fill="#D9D9D9"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_207_398)">
|
||||
<path d="M500 0H0V500H500V0Z" fill="#E50571"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M355.922 116.063C373.552 128.87 383.346 140.375 386.393 151.879C388.352 158.391 386.611 166.206 382.259 172.067C377.904 177.927 370.941 181.183 362.887 181.183C359.841 181.183 356.57 180.717 353.526 179.849C354.448 177.382 355.467 174.831 356.572 172.28C357.443 172.497 358.533 172.497 359.62 172.497C362.23 172.497 365.278 172.062 367.674 170.109C369.413 168.807 371.374 166.419 371.157 162.077C371.157 157.953 367.891 152.743 361.144 146.448C356.357 141.89 349.826 136.897 343.298 132.339C324.578 119.966 311.52 116.493 305.643 122.354C301.726 126.261 302.161 131.037 303.467 134.51C300.741 136.294 298.183 137.878 295.841 139.276C290.198 130.82 289.907 120.621 294.763 111.505C297.809 105.644 302.598 101.737 308.039 100.651C310.215 100.217 312.391 100 314.787 100C326.757 100 341.774 105.861 355.922 116.063ZM294.241 147.657C301.204 143.967 311.302 137.548 322.837 128.432C327.191 130.168 332.85 133.207 339.815 137.766C348.085 143.192 355.267 149.27 359.839 154.046C352.233 164.014 347.23 177.66 344.183 187.208C360.687 208.796 370.502 235.743 370.502 264.972C370.502 335.952 312.826 393.476 241.657 393.476C170.485 393.476 112.808 335.952 112.808 264.972C112.808 193.99 170.485 136.467 241.657 136.467C260.344 136.467 278.128 140.458 294.185 147.634L294.241 147.657ZM241.657 386.313C174.402 386.313 119.99 332.046 119.99 264.972C119.99 197.898 174.402 143.63 241.657 143.63C308.909 143.63 363.322 197.898 363.322 264.972C363.322 332.046 308.691 386.313 241.657 386.313ZM364.844 162.294C364.844 161.643 364.626 160.558 363.974 159.473C362.45 161.643 360.926 163.814 359.62 166.419C361.144 166.419 362.885 165.985 363.754 165.333C364.191 164.899 364.844 164.248 364.844 162.294ZM315.439 126.478C312.609 126.044 310.867 126.478 310.215 127.129C308.909 128.215 308.691 129.734 308.909 131.253C311.085 129.734 313.261 128.215 315.439 126.478ZM303.248 241.528C333.937 244.13 357.224 250.639 357.224 263.88C357.224 327.48 305.424 379.143 241.654 379.143C178.472 379.143 126.827 328.43 125.878 265.639C125.869 265.415 125.864 265.193 125.864 264.97C125.864 264.861 125.865 264.752 125.867 264.643C125.865 264.389 125.865 264.135 125.865 263.88H125.895C126.724 249.363 144.485 249.863 176.141 253.465C190.724 255.202 210.748 256.287 232.948 249.776C258.63 241.961 281.048 239.789 303.248 241.528ZM235.454 258.165L235.413 258.178C211.591 265.165 190.228 263.959 175.129 262.163C158.617 260.285 147.335 259.463 140.246 260.615C136.818 261.174 135.589 262.026 135.234 262.367L135.223 262.378C135.114 262.478 134.621 262.928 134.621 264.97C134.621 267.6 136.016 271.543 140.491 276.233C144.895 280.85 151.75 285.583 161.037 289.563C179.564 297.507 206.757 302.015 239.989 297.326C264.652 293.811 279.954 287.83 294.907 281.987C300.563 279.776 306.167 277.585 312.211 275.554L312.237 275.546L312.263 275.537C318.22 273.576 323.933 272.139 328.974 270.926C329.88 270.707 330.759 270.498 331.607 270.296L331.676 270.278L331.696 270.274C335.654 269.33 338.978 268.537 341.872 267.661C345.498 266.561 347.309 265.641 348.139 264.98C348.18 264.946 348.217 264.915 348.248 264.889C348.194 264.054 347.263 260.978 338.357 257.378C329.937 253.976 317.504 251.526 302.535 250.254C281.474 248.611 260.161 250.648 235.496 258.152L235.454 258.165ZM279.526 210.272C290.346 210.272 299.113 201.525 299.113 190.735C299.113 179.946 290.346 171.199 279.526 171.199C268.709 171.199 259.937 179.946 259.937 190.735C259.937 201.525 268.709 210.272 279.526 210.272ZM319.791 216.574C319.791 221.13 316.087 224.824 311.52 224.824C306.952 224.824 303.25 221.13 303.25 216.574C303.25 212.02 306.952 208.326 311.52 208.326C316.087 208.326 319.791 212.02 319.791 216.574Z" fill="white"/>
|
||||
</g>
|
||||
<svg version="1.1" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask
|
||||
id="mask0_207_398"
|
||||
style="mask-type: alpha"
|
||||
maskUnits="userSpaceOnUse"
|
||||
x="0"
|
||||
y="0"
|
||||
width="500"
|
||||
height="500"
|
||||
>
|
||||
<path
|
||||
d="M250 500C388.071 500 500 388.071 500 250C500 111.929 388.071 0 250 0C111.929 0 0 111.929 0 250C0 388.071 111.929 500 250 500Z"
|
||||
fill="#D9D9D9"
|
||||
/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_207_398)">
|
||||
<path d="M500 0H0V500H500V0Z" fill="#E50571" />
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M355.922 116.063C373.552 128.87 383.346 140.375 386.393 151.879C388.352 158.391 386.611 166.206 382.259 172.067C377.904 177.927 370.941 181.183 362.887 181.183C359.841 181.183 356.57 180.717 353.526 179.849C354.448 177.382 355.467 174.831 356.572 172.28C357.443 172.497 358.533 172.497 359.62 172.497C362.23 172.497 365.278 172.062 367.674 170.109C369.413 168.807 371.374 166.419 371.157 162.077C371.157 157.953 367.891 152.743 361.144 146.448C356.357 141.89 349.826 136.897 343.298 132.339C324.578 119.966 311.52 116.493 305.643 122.354C301.726 126.261 302.161 131.037 303.467 134.51C300.741 136.294 298.183 137.878 295.841 139.276C290.198 130.82 289.907 120.621 294.763 111.505C297.809 105.644 302.598 101.737 308.039 100.651C310.215 100.217 312.391 100 314.787 100C326.757 100 341.774 105.861 355.922 116.063ZM294.241 147.657C301.204 143.967 311.302 137.548 322.837 128.432C327.191 130.168 332.85 133.207 339.815 137.766C348.085 143.192 355.267 149.27 359.839 154.046C352.233 164.014 347.23 177.66 344.183 187.208C360.687 208.796 370.502 235.743 370.502 264.972C370.502 335.952 312.826 393.476 241.657 393.476C170.485 393.476 112.808 335.952 112.808 264.972C112.808 193.99 170.485 136.467 241.657 136.467C260.344 136.467 278.128 140.458 294.185 147.634L294.241 147.657ZM241.657 386.313C174.402 386.313 119.99 332.046 119.99 264.972C119.99 197.898 174.402 143.63 241.657 143.63C308.909 143.63 363.322 197.898 363.322 264.972C363.322 332.046 308.691 386.313 241.657 386.313ZM364.844 162.294C364.844 161.643 364.626 160.558 363.974 159.473C362.45 161.643 360.926 163.814 359.62 166.419C361.144 166.419 362.885 165.985 363.754 165.333C364.191 164.899 364.844 164.248 364.844 162.294ZM315.439 126.478C312.609 126.044 310.867 126.478 310.215 127.129C308.909 128.215 308.691 129.734 308.909 131.253C311.085 129.734 313.261 128.215 315.439 126.478ZM303.248 241.528C333.937 244.13 357.224 250.639 357.224 263.88C357.224 327.48 305.424 379.143 241.654 379.143C178.472 379.143 126.827 328.43 125.878 265.639C125.869 265.415 125.864 265.193 125.864 264.97C125.864 264.861 125.865 264.752 125.867 264.643C125.865 264.389 125.865 264.135 125.865 263.88H125.895C126.724 249.363 144.485 249.863 176.141 253.465C190.724 255.202 210.748 256.287 232.948 249.776C258.63 241.961 281.048 239.789 303.248 241.528ZM235.454 258.165L235.413 258.178C211.591 265.165 190.228 263.959 175.129 262.163C158.617 260.285 147.335 259.463 140.246 260.615C136.818 261.174 135.589 262.026 135.234 262.367L135.223 262.378C135.114 262.478 134.621 262.928 134.621 264.97C134.621 267.6 136.016 271.543 140.491 276.233C144.895 280.85 151.75 285.583 161.037 289.563C179.564 297.507 206.757 302.015 239.989 297.326C264.652 293.811 279.954 287.83 294.907 281.987C300.563 279.776 306.167 277.585 312.211 275.554L312.237 275.546L312.263 275.537C318.22 273.576 323.933 272.139 328.974 270.926C329.88 270.707 330.759 270.498 331.607 270.296L331.676 270.278L331.696 270.274C335.654 269.33 338.978 268.537 341.872 267.661C345.498 266.561 347.309 265.641 348.139 264.98C348.18 264.946 348.217 264.915 348.248 264.889C348.194 264.054 347.263 260.978 338.357 257.378C329.937 253.976 317.504 251.526 302.535 250.254C281.474 248.611 260.161 250.648 235.496 258.152L235.454 258.165ZM279.526 210.272C290.346 210.272 299.113 201.525 299.113 190.735C299.113 179.946 290.346 171.199 279.526 171.199C268.709 171.199 259.937 179.946 259.937 190.735C259.937 201.525 268.709 210.272 279.526 210.272ZM319.791 216.574C319.791 221.13 316.087 224.824 311.52 224.824C306.952 224.824 303.25 221.13 303.25 216.574C303.25 212.02 306.952 208.326 311.52 208.326C316.087 208.326 319.791 212.02 319.791 216.574Z"
|
||||
fill="white"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.2 KiB |
@ -1,13 +1,4 @@
|
||||
<svg
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 120 120"
|
||||
style="enable-background: new 0 0 120 120"
|
||||
xml:space="preserve"
|
||||
>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120">
|
||||
<path fill="#2775CA" d="M60,120c33.2,0,60-26.8,60-60S93.2,0,60,0S0,26.8,0,60S26.8,120,60,120z" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.2 KiB |
@ -1,4 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 339.43 295.27">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 339.43 295.27">
|
||||
<path
|
||||
d="M62.15,1.45l-61.89,130a2.52,2.52,0,0,0,.54,2.94L167.95,294.56a2.55,2.55,0,0,0,3.53,0L338.63,134.4a2.52,2.52,0,0,0,.54-2.94l-61.89-130A2.5,2.5,0,0,0,275,0H64.45a2.5,2.5,0,0,0-2.3,1.45h0Z"
|
||||
fill="#50af95"
|
||||
|
Before Width: | Height: | Size: 795 B After Width: | Height: | Size: 809 B |
@ -1,26 +1,20 @@
|
||||
import { CosmWasmClient } from '@cosmjs/cosmwasm-stargate'
|
||||
|
||||
import { ICNSQueryClient } from 'types/classes/ICNSClient.client'
|
||||
import { MarsAccountNftQueryClient } from 'types/generated/mars-account-nft/MarsAccountNft.client'
|
||||
import { MarsCreditManagerQueryClient } from 'types/generated/mars-credit-manager/MarsCreditManager.client'
|
||||
import { MarsIncentivesQueryClient } from 'types/generated/mars-incentives/MarsIncentives.client'
|
||||
import { MarsMockVaultQueryClient } from 'types/generated/mars-mock-vault/MarsMockVault.client'
|
||||
import { MarsOracleOsmosisQueryClient } from 'types/generated/mars-oracle-osmosis/MarsOracleOsmosis.client'
|
||||
import { MarsParamsQueryClient } from 'types/generated/mars-params/MarsParams.client'
|
||||
import { MarsPerpsQueryClient } from 'types/generated/mars-perps/MarsPerps.client'
|
||||
import { MarsRedBankQueryClient } from 'types/generated/mars-red-bank/MarsRedBank.client'
|
||||
import { MarsSwapperOsmosisQueryClient } from 'types/generated/mars-swapper-osmosis/MarsSwapperOsmosis.client'
|
||||
|
||||
let _cosmWasmClient: Map<string, CosmWasmClient> = new Map()
|
||||
let _accountNftQueryClient: Map<string, MarsAccountNftQueryClient> = new Map()
|
||||
let _creditManagerQueryClient: Map<string, MarsCreditManagerQueryClient> = new Map()
|
||||
let _oracleQueryClient: Map<string, MarsOracleOsmosisQueryClient> = new Map()
|
||||
let _redBankQueryClient: Map<string, MarsRedBankQueryClient> = new Map()
|
||||
let _paramsQueryClient: Map<string, MarsParamsQueryClient> = new Map()
|
||||
let _incentivesQueryClient: Map<string, MarsIncentivesQueryClient> = new Map()
|
||||
let _swapperOsmosisClient: Map<string, MarsSwapperOsmosisQueryClient> = new Map()
|
||||
let _perpsClient: Map<string, MarsPerpsQueryClient> = new Map()
|
||||
let _ICNSQueryClient: Map<string, ICNSQueryClient> = new Map()
|
||||
|
||||
const getClient = async (rpc: string) => {
|
||||
try {
|
||||
@ -35,23 +29,6 @@ const getClient = async (rpc: string) => {
|
||||
}
|
||||
}
|
||||
|
||||
const getAccountNftQueryClient = async (chainConfig: ChainConfig) => {
|
||||
try {
|
||||
const contract = chainConfig.contracts.accountNft
|
||||
const rpc = chainConfig.endpoints.rpc
|
||||
const key = rpc + contract
|
||||
|
||||
if (!_accountNftQueryClient.get(key)) {
|
||||
const client = await getClient(rpc)
|
||||
_accountNftQueryClient.set(key, new MarsAccountNftQueryClient(client, contract))
|
||||
}
|
||||
|
||||
return _accountNftQueryClient.get(key)!
|
||||
} catch (error) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
const getCreditManagerQueryClient = async (chainConfig: ChainConfig) => {
|
||||
try {
|
||||
const contract = chainConfig.contracts.creditManager
|
||||
@ -103,23 +80,6 @@ const getOracleQueryClient = async (chainConfig: ChainConfig) => {
|
||||
}
|
||||
}
|
||||
|
||||
const getRedBankQueryClient = async (chainConfig: ChainConfig) => {
|
||||
try {
|
||||
const contract = chainConfig.contracts.redBank
|
||||
const rpc = chainConfig.endpoints.rpc
|
||||
const key = rpc + contract
|
||||
|
||||
if (!_redBankQueryClient.get(key)) {
|
||||
const client = await getClient(rpc)
|
||||
_redBankQueryClient.set(key, new MarsRedBankQueryClient(client, contract))
|
||||
}
|
||||
|
||||
return _redBankQueryClient.get(key)!
|
||||
} catch (error) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
const getVaultQueryClient = async (chainConfig: ChainConfig, address: string) => {
|
||||
try {
|
||||
const client = await getClient(chainConfig.endpoints.rpc)
|
||||
@ -177,31 +137,12 @@ const getPerpsQueryClient = async (chainConfig: ChainConfig) => {
|
||||
}
|
||||
}
|
||||
|
||||
const getICNSQueryClient = async (chainConfig: ChainConfig) => {
|
||||
try {
|
||||
const contract = chainConfig.contracts.params
|
||||
const rpc = chainConfig.endpoints.rpc
|
||||
const key = rpc + contract
|
||||
if (!_ICNSQueryClient.get(key)) {
|
||||
const client = await getClient(rpc)
|
||||
_ICNSQueryClient.set(key, new ICNSQueryClient(client))
|
||||
}
|
||||
|
||||
return _ICNSQueryClient.get(key)!
|
||||
} catch (error) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
getAccountNftQueryClient,
|
||||
getClient,
|
||||
getCreditManagerQueryClient,
|
||||
getICNSQueryClient,
|
||||
getIncentivesQueryClient,
|
||||
getOracleQueryClient,
|
||||
getParamsQueryClient,
|
||||
getRedBankQueryClient,
|
||||
getSwapperQueryClient,
|
||||
getVaultQueryClient,
|
||||
getPerpsQueryClient,
|
||||
|
@ -1,41 +0,0 @@
|
||||
import getTotalActiveEmissionValue from 'api/incentives/getTotalActiveEmissionValue'
|
||||
import getMarket from 'api/markets/getMarket'
|
||||
import getUnderlyingLiquidityAmount from 'api/markets/getMarketUnderlyingLiquidityAmount'
|
||||
import getPrice from 'api/prices/getPrice'
|
||||
import { byDenom } from 'utils/array'
|
||||
import { SECONDS_IN_A_YEAR } from 'utils/constants'
|
||||
import { BN } from 'utils/helpers'
|
||||
|
||||
export default async function calculateAssetIncentivesApy(
|
||||
chainConfig: ChainConfig,
|
||||
denom: string,
|
||||
): Promise<BigNumber | null> {
|
||||
try {
|
||||
const [totalActiveEmissionValue, market] = await Promise.all([
|
||||
getTotalActiveEmissionValue(chainConfig, denom),
|
||||
getMarket(chainConfig, denom),
|
||||
])
|
||||
|
||||
if (!totalActiveEmissionValue) return null
|
||||
|
||||
const [marketLiquidityAmount, assetPrice] = await Promise.all([
|
||||
getUnderlyingLiquidityAmount(chainConfig, market),
|
||||
getPrice(chainConfig, denom),
|
||||
])
|
||||
|
||||
const assetDecimals = (chainConfig.assets.find(byDenom(denom)) as Asset).decimals
|
||||
|
||||
const marketLiquidityValue = BN(marketLiquidityAmount)
|
||||
.shiftedBy(-assetDecimals)
|
||||
.multipliedBy(assetPrice)
|
||||
|
||||
const marketReturns = BN(market.apy.deposit).multipliedBy(marketLiquidityValue)
|
||||
const annualEmission = totalActiveEmissionValue.multipliedBy(SECONDS_IN_A_YEAR)
|
||||
|
||||
const totalAnnualReturnsValue = annualEmission.plus(marketReturns)
|
||||
return totalAnnualReturnsValue.dividedBy(marketLiquidityValue).multipliedBy(100)
|
||||
} catch (ex) {
|
||||
console.error(ex)
|
||||
return null
|
||||
}
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
import { cacheFn, emissionsCache } from 'api/cache'
|
||||
import { getIncentivesQueryClient } from 'api/cosmwasm-client'
|
||||
import getPrice from 'api/prices/getPrice'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import { byDenom } from 'utils/array'
|
||||
import { BN } from 'utils/helpers'
|
||||
|
||||
export default async function getTotalActiveEmissionValue(
|
||||
chainConfig: ChainConfig,
|
||||
denom: string,
|
||||
): Promise<BigNumber | null> {
|
||||
try {
|
||||
const client = await getIncentivesQueryClient(chainConfig)
|
||||
const activeEmissions = await cacheFn(
|
||||
() =>
|
||||
client.activeEmissions({
|
||||
collateralDenom: denom,
|
||||
}),
|
||||
emissionsCache,
|
||||
`emission/${denom}`,
|
||||
60,
|
||||
)
|
||||
|
||||
if (activeEmissions.length === 0) {
|
||||
throw 'Asset has no active incentive emission.'
|
||||
}
|
||||
|
||||
const prices = await Promise.all(
|
||||
activeEmissions.map((activeEmission) => getPrice(chainConfig, activeEmission.denom)),
|
||||
)
|
||||
|
||||
return activeEmissions.reduce((accumulation, current, index) => {
|
||||
const price = prices[index]
|
||||
const decimals = chainConfig.assets.find(byDenom(current.denom))?.decimals as number
|
||||
const emissionValue = BN(current.emission_rate).shiftedBy(-decimals).multipliedBy(price)
|
||||
|
||||
return accumulation.plus(emissionValue)
|
||||
}, BN_ZERO)
|
||||
} catch (ex) {
|
||||
return null
|
||||
}
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
import { cacheFn, unclaimedRewardsCache } from 'api/cache'
|
||||
import { getIncentivesQueryClient } from 'api/cosmwasm-client'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
import iterateContractQuery from 'utils/iterateContractQuery'
|
||||
|
||||
export default async function getUnclaimedRewards(
|
||||
chainConfig: ChainConfig,
|
||||
accountId: string,
|
||||
): Promise<BNCoin[]> {
|
||||
try {
|
||||
const client = await getIncentivesQueryClient(chainConfig)
|
||||
const unclaimedRewards = await cacheFn(
|
||||
() =>
|
||||
iterateContractQuery(() =>
|
||||
client.userUnclaimedRewards({
|
||||
user: chainConfig.contracts.creditManager,
|
||||
accountId,
|
||||
}),
|
||||
),
|
||||
unclaimedRewardsCache,
|
||||
`incentives/${accountId}`,
|
||||
60,
|
||||
)
|
||||
|
||||
if (unclaimedRewards.length === 0) return []
|
||||
|
||||
return await Promise.all(
|
||||
unclaimedRewards.map((reward) => new BNCoin({ denom: reward.denom, amount: reward.amount })),
|
||||
)
|
||||
} catch (ex) {
|
||||
return []
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
import { cacheFn, marketCache } from 'api/cache'
|
||||
import { getParamsQueryClient, getRedBankQueryClient } from 'api/cosmwasm-client'
|
||||
import { resolveMarketResponse } from 'utils/resolvers'
|
||||
|
||||
export default async function getMarket(chainConfig: ChainConfig, denom: string): Promise<Market> {
|
||||
return cacheFn(() => fetchMarket(chainConfig, denom), marketCache, denom, 60)
|
||||
}
|
||||
|
||||
async function fetchMarket(chainConfig: ChainConfig, denom: string) {
|
||||
try {
|
||||
const redBankClient = await getRedBankQueryClient(chainConfig)
|
||||
const paramsClient = await getParamsQueryClient(chainConfig)
|
||||
|
||||
const [market, assetParams, assetCap] = await Promise.all([
|
||||
redBankClient.market({ denom }),
|
||||
paramsClient.assetParams({ denom }),
|
||||
paramsClient.totalDeposit({ denom }),
|
||||
])
|
||||
|
||||
return resolveMarketResponse(market, assetParams, assetCap)
|
||||
} catch (ex) {
|
||||
throw ex
|
||||
}
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
import getMarketLiquidities from 'api/markets/getMarketLiquidities'
|
||||
import getMarkets from 'api/markets/getMarkets'
|
||||
import getPrices from 'api/prices/getPrices'
|
||||
import { BN } from 'utils/helpers'
|
||||
|
||||
export default async function getMarketBorrowings(
|
||||
chainConfig: ChainConfig,
|
||||
): Promise<BorrowAsset[]> {
|
||||
const liquidities = await getMarketLiquidities(chainConfig)
|
||||
const borrowEnabledMarkets = (await getMarkets(chainConfig)).filter(
|
||||
(market: Market) => market.borrowEnabled,
|
||||
)
|
||||
const prices = await getPrices(chainConfig)
|
||||
|
||||
const borrow: BorrowAsset[] = borrowEnabledMarkets.map((market) => {
|
||||
const price = prices.find((coin) => coin.denom === market.denom)?.amount ?? '1'
|
||||
const amount = liquidities.find((coin) => coin.denom === market.denom)?.amount ?? '0'
|
||||
const asset = chainConfig.assets.find((asset) => asset.denom === market.denom)!
|
||||
|
||||
return {
|
||||
...asset,
|
||||
borrowRate: market.apy.borrow ?? 0,
|
||||
liquidity: {
|
||||
amount: BN(amount),
|
||||
value: BN(amount).multipliedBy(price),
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
if (borrow) {
|
||||
return borrow
|
||||
}
|
||||
|
||||
return new Promise((_, reject) => reject('No data'))
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
import { cacheFn, underlyingDebtCache } from 'api/cache'
|
||||
import { getRedBankQueryClient } from 'api/cosmwasm-client'
|
||||
import getMarkets from 'api/markets/getMarkets'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
|
||||
export default async function getMarketDebts(chainConfig: ChainConfig): Promise<BNCoin[]> {
|
||||
try {
|
||||
const markets: Market[] = await getMarkets(chainConfig)
|
||||
const redBankQueryClient = await getRedBankQueryClient(chainConfig)
|
||||
|
||||
const debtQueries = markets.map((asset) =>
|
||||
cacheFn(
|
||||
() =>
|
||||
redBankQueryClient.underlyingDebtAmount({
|
||||
denom: asset.denom,
|
||||
amountScaled: asset.debtTotalScaled,
|
||||
}),
|
||||
underlyingDebtCache,
|
||||
`marketDebts/${asset.denom}/amount/${asset.debtTotalScaled}`,
|
||||
60,
|
||||
),
|
||||
)
|
||||
const debtsResults = await Promise.all(debtQueries)
|
||||
|
||||
return debtsResults.map<BNCoin>(
|
||||
(debt, index) => new BNCoin({ denom: markets[index].denom, amount: debt }),
|
||||
)
|
||||
} catch (ex) {
|
||||
throw ex
|
||||
}
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
import getMarkets from 'api/markets/getMarkets'
|
||||
import getUnderlyingLiquidityAmount from 'api/markets/getMarketUnderlyingLiquidityAmount'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
|
||||
export default async function getMarketDeposits(chainConfig: ChainConfig): Promise<BNCoin[]> {
|
||||
try {
|
||||
const markets: Market[] = await getMarkets(chainConfig)
|
||||
const depositQueries = markets.map((market) =>
|
||||
getUnderlyingLiquidityAmount(chainConfig, market),
|
||||
)
|
||||
const depositsResults = await Promise.all(depositQueries)
|
||||
|
||||
return depositsResults.map<BNCoin>(
|
||||
(deposit, index) =>
|
||||
new BNCoin({
|
||||
denom: markets[index].denom,
|
||||
amount: deposit,
|
||||
}),
|
||||
)
|
||||
} catch (ex) {
|
||||
throw ex
|
||||
}
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
import getMarketDebts from 'api/markets/getMarketDebts'
|
||||
import getMarketDeposits from 'api/markets/getMarketDeposits'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
|
||||
export default async function getMarketLiquidities(chainConfig: ChainConfig): Promise<BNCoin[]> {
|
||||
const deposits = await getMarketDeposits(chainConfig)
|
||||
const debts = await getMarketDebts(chainConfig)
|
||||
|
||||
const liquidity: BNCoin[] = deposits.map((deposit) => {
|
||||
const debt = debts.find((debt) => debt.denom === deposit.denom)
|
||||
|
||||
if (debt) {
|
||||
return new BNCoin({
|
||||
denom: deposit.denom,
|
||||
amount: deposit.amount.minus(debt.amount).toString(),
|
||||
})
|
||||
}
|
||||
|
||||
return new BNCoin({
|
||||
denom: deposit.denom,
|
||||
amount: '0',
|
||||
})
|
||||
})
|
||||
|
||||
if (liquidity) {
|
||||
return liquidity
|
||||
}
|
||||
|
||||
return new Promise((_, reject) => reject('No data'))
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
import { cacheFn, underlyingLiquidityAmountCache } from 'api/cache'
|
||||
import { getRedBankQueryClient } from 'api/cosmwasm-client'
|
||||
|
||||
export default async function getUnderlyingLiquidityAmount(
|
||||
chainConfig: ChainConfig,
|
||||
market: Market,
|
||||
): Promise<string> {
|
||||
return cacheFn(
|
||||
() => fetchUnderlyingLiquidityAmount(chainConfig, market),
|
||||
underlyingLiquidityAmountCache,
|
||||
`underlyingLiquidity/${market.denom}/amount/${market.collateralTotalScaled}`,
|
||||
60,
|
||||
)
|
||||
}
|
||||
|
||||
async function fetchUnderlyingLiquidityAmount(chainConfig: ChainConfig, market: Market) {
|
||||
try {
|
||||
const client = await getRedBankQueryClient(chainConfig)
|
||||
return await client.underlyingLiquidityAmount({
|
||||
denom: market.denom,
|
||||
amountScaled: market.collateralTotalScaled,
|
||||
})
|
||||
} catch (ex) {
|
||||
throw ex
|
||||
}
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
import { allParamsCache, cacheFn, marketsCache, totalDepositCache } from 'api/cache'
|
||||
import { getParamsQueryClient, getRedBankQueryClient } from 'api/cosmwasm-client'
|
||||
import {
|
||||
AssetParamsBaseForAddr as AssetParams,
|
||||
TotalDepositResponse,
|
||||
} from 'types/generated/mars-params/MarsParams.types'
|
||||
import { Market as RedBankMarket } from 'types/generated/mars-red-bank/MarsRedBank.types'
|
||||
import { byDenom } from 'utils/array'
|
||||
import iterateContractQuery from 'utils/iterateContractQuery'
|
||||
import { resolveMarketResponse } from 'utils/resolvers'
|
||||
|
||||
export default async function getMarkets(chainConfig: ChainConfig): Promise<Market[]> {
|
||||
try {
|
||||
const redBankClient = await getRedBankQueryClient(chainConfig)
|
||||
const paramsClient = await getParamsQueryClient(chainConfig)
|
||||
|
||||
const marketAssets = chainConfig.assets.filter((asset) => asset.isMarket)
|
||||
|
||||
const capQueries = marketAssets
|
||||
.filter((asset) => asset.isMarket)
|
||||
.map((asset) =>
|
||||
cacheFn(
|
||||
() => paramsClient.totalDeposit({ denom: asset.denom }),
|
||||
totalDepositCache,
|
||||
`chains/${chainConfig.id}/enabledMarkets/${asset.denom}`,
|
||||
60,
|
||||
),
|
||||
)
|
||||
|
||||
const caps = await Promise.all(capQueries)
|
||||
|
||||
const [markets, assetParams, assetCaps] = await Promise.all([
|
||||
cacheFn(
|
||||
() => iterateContractQuery(redBankClient.markets),
|
||||
marketsCache,
|
||||
`chains/${chainConfig.id}/markets`,
|
||||
60,
|
||||
),
|
||||
cacheFn(
|
||||
async () => await iterateContractQuery(paramsClient.allAssetParams),
|
||||
allParamsCache,
|
||||
`chains/${chainConfig.id}/params`,
|
||||
60,
|
||||
),
|
||||
Promise.all(capQueries),
|
||||
])
|
||||
|
||||
return marketAssets.map((asset) =>
|
||||
resolveMarketResponse(
|
||||
markets.find(byDenom(asset.denom)) as RedBankMarket,
|
||||
assetParams.find(byDenom(asset.denom)) as AssetParams,
|
||||
assetCaps.find(byDenom(asset.denom)) as TotalDepositResponse,
|
||||
),
|
||||
)
|
||||
} catch (ex) {
|
||||
console.log(ex)
|
||||
throw ex
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import { getICNSQueryClient } from 'api/cosmwasm-client'
|
||||
import { ChainInfoID } from 'types/enums/wallet'
|
||||
|
||||
export default async function getICNS(
|
||||
chainConfig: ChainConfig,
|
||||
address?: string,
|
||||
): Promise<ICNSResult | undefined> {
|
||||
if (!address || chainConfig.id !== ChainInfoID.Osmosis1) return
|
||||
try {
|
||||
const icnsQueryClient = await getICNSQueryClient(chainConfig)
|
||||
return icnsQueryClient.primaryName({ address })
|
||||
} catch (ex) {
|
||||
throw ex
|
||||
}
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
export default async function getWalletBalances(
|
||||
chainConfig: ChainConfig,
|
||||
address: string,
|
||||
): Promise<Coin[]> {
|
||||
const uri = '/cosmos/bank/v1beta1/balances/'
|
||||
|
||||
const response = await fetch(`${chainConfig.endpoints.rest}${uri}${address}`)
|
||||
|
||||
if (response.ok) {
|
||||
const data = await response.json()
|
||||
return data.balances
|
||||
}
|
||||
|
||||
return new Promise((_, reject) => reject('No data'))
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
import { useCallback, useMemo, useState } from 'react'
|
||||
|
||||
import AssetsSelect from 'components/Modals/AssetsSelect'
|
||||
import SearchBar from 'components/common/SearchBar'
|
||||
import Text from 'components/common/Text'
|
||||
import useMarketBorrowings from 'hooks/markets/useMarketBorrowings'
|
||||
import AssetsSelect from 'components/Modals/AssetsSelect'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useStore from 'store'
|
||||
|
||||
interface Props {
|
||||
@ -14,16 +14,16 @@ interface Props {
|
||||
|
||||
export default function AddVaultAssetsModalContent(props: Props) {
|
||||
const [searchString, setSearchString] = useState<string>('')
|
||||
const { data: borrowAssets } = useMarketBorrowings()
|
||||
const markets = useMarkets()
|
||||
|
||||
const filteredBorrowAssets: BorrowAsset[] = useMemo(() => {
|
||||
return borrowAssets.filter(
|
||||
(asset) =>
|
||||
asset.name.toLowerCase().includes(searchString.toLowerCase()) ||
|
||||
asset.denom.toLowerCase().includes(searchString.toLowerCase()) ||
|
||||
asset.symbol.toLowerCase().includes(searchString.toLowerCase()),
|
||||
const filteredMarkets: Market[] = useMemo(() => {
|
||||
return markets.filter(
|
||||
(market) =>
|
||||
market.asset.name.toLowerCase().includes(searchString.toLowerCase()) ||
|
||||
market.asset.denom.toLowerCase().includes(searchString.toLowerCase()) ||
|
||||
market.asset.symbol.toLowerCase().includes(searchString.toLowerCase()),
|
||||
)
|
||||
}, [borrowAssets, searchString])
|
||||
}, [markets, searchString])
|
||||
|
||||
function onChangeSearchString(value: string) {
|
||||
setSearchString(value)
|
||||
@ -31,21 +31,21 @@ export default function AddVaultAssetsModalContent(props: Props) {
|
||||
|
||||
const [poolAssets, stableAssets] = useMemo(
|
||||
() =>
|
||||
filteredBorrowAssets.reduce(
|
||||
(acc, asset) => {
|
||||
filteredMarkets.reduce(
|
||||
(acc, market) => {
|
||||
if (
|
||||
asset.denom === props.vault.denoms.primary ||
|
||||
asset.denom === props.vault.denoms.secondary
|
||||
market.asset.denom === props.vault.denoms.primary ||
|
||||
market.asset.denom === props.vault.denoms.secondary
|
||||
) {
|
||||
acc[0].push(asset)
|
||||
} else if (asset.isStable) {
|
||||
acc[1].push(asset)
|
||||
acc[0].push(market.asset)
|
||||
} else if (market.asset.isStable) {
|
||||
acc[1].push(market.asset)
|
||||
}
|
||||
return acc
|
||||
},
|
||||
[[], []] as [BorrowAsset[], BorrowAsset[]],
|
||||
[[], []] as [Asset[], Asset[]],
|
||||
),
|
||||
[filteredBorrowAssets, props.vault.denoms.primary, props.vault.denoms.secondary],
|
||||
[filteredMarkets, props.vault.denoms.primary, props.vault.denoms.secondary],
|
||||
)
|
||||
|
||||
const selectedDenoms = useStore((s) => s.addVaultBorrowingsModal?.selectedDenoms)
|
||||
|
@ -1,15 +1,16 @@
|
||||
import { RowSelectionState } from '@tanstack/react-table'
|
||||
import { useEffect, useMemo, useState } from 'react'
|
||||
|
||||
import useAssetSelectColumns from 'components/Modals/AssetsSelect/Columns/useAssetSelectColumns'
|
||||
import Table from 'components/common/Table'
|
||||
import useAssetSelectColumns from 'components/Modals/AssetsSelect/Columns/useAssetSelectColumns'
|
||||
import useGetCoinValue from 'hooks/assets/useGetCoinValue'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useStore from 'store'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
import { byDenom } from 'utils/array'
|
||||
import { BN } from 'utils/helpers'
|
||||
|
||||
// TODO: Pass the market data directly here instead of the assets
|
||||
interface Props {
|
||||
assets: Asset[]
|
||||
onChangeSelected: (selected: string[]) => void
|
||||
@ -20,12 +21,11 @@ interface Props {
|
||||
export default function AssetsSelect(props: Props) {
|
||||
const { assets, onChangeSelected, selectedDenoms, isBorrow } = props
|
||||
const columns = useAssetSelectColumns(isBorrow)
|
||||
const { data: markets } = useMarketAssets()
|
||||
const markets = useMarkets()
|
||||
const getCoinValue = useGetCoinValue()
|
||||
|
||||
const defaultSelected = useMemo(() => {
|
||||
const selectableAssets = assets
|
||||
return selectableAssets.reduce(
|
||||
return assets.reduce(
|
||||
(acc, asset, index) => {
|
||||
if (selectedDenoms?.includes(asset.denom)) {
|
||||
acc[index] = true
|
||||
@ -48,7 +48,7 @@ export default function AssetsSelect(props: Props) {
|
||||
asset,
|
||||
balance: balancesForAsset?.amount ?? '0',
|
||||
value,
|
||||
market: markets.find((market) => market.denom === asset.denom),
|
||||
market: markets.find((market) => market.asset.denom === asset.denom),
|
||||
}
|
||||
})
|
||||
}, [balances, assets, markets, getCoinValue])
|
||||
|
@ -16,7 +16,7 @@ import TokenInputWithSlider from 'components/common/TokenInput/TokenInputWithSli
|
||||
import Modal from 'components/Modals/Modal'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useAutoLend from 'hooks/useAutoLend'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import useToggle from 'hooks/useToggle'
|
||||
@ -91,7 +91,7 @@ function BorrowModal(props: Props) {
|
||||
const isAutoLendEnabled = autoLendEnabledAccountIds.includes(account.id)
|
||||
const { computeMaxBorrowAmount } = useHealthComputer(account)
|
||||
const totalDebt = BN(getDebtAmount(modal))
|
||||
const { data: marketAssets } = useMarketAssets()
|
||||
const markets = useMarkets()
|
||||
|
||||
const [depositBalance, lendBalance] = useMemo(
|
||||
() => [
|
||||
@ -107,13 +107,13 @@ function BorrowModal(props: Props) {
|
||||
)
|
||||
|
||||
const overpayExeedsCap = useMemo(() => {
|
||||
const marketAsset = marketAssets.find(byDenom(asset.denom))
|
||||
const marketAsset = markets.find((market) => market.asset.denom === asset.denom)
|
||||
if (!marketAsset) return
|
||||
const overpayAmount = totalDebtRepayAmount.minus(totalDebt)
|
||||
const marketCapAfterOverpay = marketAsset.cap.used.plus(overpayAmount)
|
||||
|
||||
return marketAsset.cap.max.isLessThanOrEqualTo(marketCapAfterOverpay)
|
||||
}, [marketAssets, asset.denom, totalDebt, totalDebtRepayAmount])
|
||||
}, [markets, asset.denom, totalDebt, totalDebtRepayAmount])
|
||||
|
||||
const maxRepayAmount = useMemo(() => {
|
||||
const maxBalance = repayFromWallet
|
||||
@ -187,7 +187,7 @@ function BorrowModal(props: Props) {
|
||||
? BN_ZERO
|
||||
: computeMaxBorrowAmount(asset.denom, borrowToWallet ? 'wallet' : 'deposit')
|
||||
|
||||
return BigNumber.min(maxBorrowAmount, modal.marketData?.liquidity?.amount || 0)
|
||||
return BigNumber.min(maxBorrowAmount, modal.marketData?.liquidity || 0)
|
||||
}, [asset.denom, borrowToWallet, computeMaxBorrowAmount, isRepay, modal.marketData])
|
||||
|
||||
useEffect(() => {
|
||||
@ -266,7 +266,7 @@ function BorrowModal(props: Props) {
|
||||
<div className='flex gap-2'>
|
||||
<FormattedNumber
|
||||
className='text-xs'
|
||||
amount={modal.marketData?.liquidity?.amount.toNumber() ?? 0}
|
||||
amount={modal.marketData?.liquidity.toNumber() ?? 0}
|
||||
options={{ decimals: asset.decimals, abbreviated: true, suffix: ` ${asset.symbol}` }}
|
||||
animate
|
||||
/>
|
||||
@ -274,7 +274,7 @@ function BorrowModal(props: Props) {
|
||||
className='text-xs'
|
||||
coin={BNCoin.fromDenomAndBigNumber(
|
||||
asset.denom,
|
||||
modal.marketData?.liquidity?.amount ?? BN_ZERO,
|
||||
modal.marketData?.liquidity ?? BN_ZERO,
|
||||
)}
|
||||
parentheses
|
||||
/>
|
||||
|
@ -51,9 +51,8 @@ export default function WithdrawFromAccount(props: Props) {
|
||||
const accountLent = account.lends.find(byDenom(currentAsset.denom))?.amount ?? BN_ZERO
|
||||
const shouldReclaim = amount.isGreaterThan(accountDeposit) && !accountLent.isZero()
|
||||
const isReclaimingMaxAmount = accountLent.isLessThanOrEqualTo(amount.minus(accountDeposit))
|
||||
const reclaimAmount = isReclaimingMaxAmount
|
||||
? amount
|
||||
: accountLent.minus(amount).minus(accountDeposit)
|
||||
|
||||
const reclaimAmount = isReclaimingMaxAmount ? amount : amount.minus(accountDeposit)
|
||||
|
||||
function onChangeAmount(val: BigNumber) {
|
||||
setAmount(val)
|
||||
|
@ -2,13 +2,13 @@ import React, { useMemo } from 'react'
|
||||
|
||||
import Button from 'components/common/Button'
|
||||
import { ArrowRight } from 'components/common/Icons'
|
||||
import LeverageSummary from 'components/Modals/HLS/Deposit/LeverageSummary'
|
||||
import TokenInputWithSlider from 'components/common/TokenInput/TokenInputWithSlider'
|
||||
import LeverageSummary from 'components/Modals/HLS/Deposit/LeverageSummary'
|
||||
import { getLeveragedApy } from 'utils/math'
|
||||
|
||||
interface Props {
|
||||
amount: BigNumber
|
||||
asset: BorrowAsset
|
||||
borrowMarket: Market
|
||||
max: BigNumber
|
||||
onChangeAmount: (amount: BigNumber) => void
|
||||
onClickBtn: () => void
|
||||
@ -21,15 +21,15 @@ interface Props {
|
||||
|
||||
export default function Leverage(props: Props) {
|
||||
const apy = useMemo(() => {
|
||||
if (!props.asset.borrowRate) return 0
|
||||
return getLeveragedApy(props.baseApy, props.asset.borrowRate, props.leverage)
|
||||
}, [props.asset.borrowRate, props.baseApy, props.leverage])
|
||||
if (!props.borrowMarket.apy.borrow) return 0
|
||||
return getLeveragedApy(props.baseApy, props.borrowMarket.apy.borrow, props.leverage)
|
||||
}, [props.baseApy, props.borrowMarket.apy.borrow, props.leverage])
|
||||
|
||||
return (
|
||||
<div id='item-1' className='flex-col gap-6 flex justify-between h-full p-4'>
|
||||
<TokenInputWithSlider
|
||||
amount={props.amount}
|
||||
asset={props.asset}
|
||||
asset={props.borrowMarket.asset}
|
||||
max={props.max}
|
||||
onChange={props.onChangeAmount}
|
||||
maxText='Max borrow'
|
||||
@ -40,7 +40,11 @@ export default function Leverage(props: Props) {
|
||||
warningMessages={props.warningMessages}
|
||||
/>
|
||||
<div className='flex flex-col gap-6'>
|
||||
<LeverageSummary asset={props.asset} positionValue={props.positionValue} apy={apy} />
|
||||
<LeverageSummary
|
||||
asset={props.borrowMarket.asset}
|
||||
positionValue={props.positionValue}
|
||||
apy={apy}
|
||||
/>
|
||||
<Button onClick={props.onClickBtn} text='Continue' rightIcon={<ArrowRight />} />
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React, { useMemo } from 'react'
|
||||
|
||||
import SummaryItems from 'components/common/SummaryItems'
|
||||
import useBorrowAsset from 'hooks/useBorrowAsset'
|
||||
import useMarket from 'hooks/markets/useMarket'
|
||||
|
||||
interface Props {
|
||||
asset: Asset
|
||||
@ -10,7 +10,7 @@ interface Props {
|
||||
}
|
||||
|
||||
export default function LeverageSummary(props: Props) {
|
||||
const borrowAsset = useBorrowAsset(props.asset.denom)
|
||||
const market = useMarket(props.asset.denom)
|
||||
|
||||
const items: SummaryItem[] = useMemo(() => {
|
||||
return [
|
||||
@ -21,7 +21,7 @@ export default function LeverageSummary(props: Props) {
|
||||
},
|
||||
{
|
||||
title: `Borrow APR ${props.asset.symbol}`,
|
||||
amount: borrowAsset?.borrowRate || 0,
|
||||
amount: market?.apy.borrow || 0,
|
||||
options: { suffix: '%', minDecimals: 2, maxDecimals: 2 },
|
||||
},
|
||||
{
|
||||
@ -30,7 +30,7 @@ export default function LeverageSummary(props: Props) {
|
||||
options: { prefix: '$' },
|
||||
},
|
||||
]
|
||||
}, [borrowAsset?.borrowRate, props.apy, props.asset.symbol, props.positionValue])
|
||||
}, [market?.apy.borrow, props.apy, props.asset.symbol, props.positionValue])
|
||||
|
||||
return <SummaryItems items={items} />
|
||||
}
|
||||
|
@ -4,13 +4,12 @@ import Button from 'components/common/Button'
|
||||
import { ArrowRight } from 'components/common/Icons'
|
||||
import AssetSummary from 'components/Modals/HLS/Deposit/Summary/AssetSummary'
|
||||
import YourPosition from 'components/Modals/HLS/Deposit/Summary/YourPosition'
|
||||
import useBorrowAsset from 'hooks/useBorrowAsset'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
|
||||
interface Props {
|
||||
apy: number
|
||||
borrowAmount: BigNumber
|
||||
borrowAsset: Asset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
depositAmount: BigNumber
|
||||
leverage: number
|
||||
@ -20,18 +19,14 @@ interface Props {
|
||||
}
|
||||
|
||||
export default function Summary(props: Props) {
|
||||
const borrowAsset = useBorrowAsset(props.borrowAsset.denom)
|
||||
|
||||
if (!borrowAsset) return null
|
||||
|
||||
return (
|
||||
<div id='item-3' className='p-4 flex flex-col gap-4'>
|
||||
<AssetSummary asset={props.collateralAsset} amount={props.depositAmount} />
|
||||
<AssetSummary asset={borrowAsset} amount={props.borrowAmount} isBorrow />
|
||||
<AssetSummary asset={props.borrowMarket.asset} amount={props.borrowAmount} isBorrow />
|
||||
<YourPosition
|
||||
positionValue={BNCoin.fromDenomAndBigNumber('usd', props.positionValue)}
|
||||
baseApy={props.apy || 0}
|
||||
borrowRate={borrowAsset.borrowRate || 0}
|
||||
borrowRate={props.borrowMarket.apy.borrow || 0}
|
||||
leverage={props.leverage}
|
||||
/>
|
||||
<Button
|
||||
|
@ -13,7 +13,7 @@ import useStore from 'store'
|
||||
import { isAccountEmpty } from 'utils/accounts'
|
||||
|
||||
interface Props {
|
||||
borrowAsset: BorrowAsset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
vaultAddress: string | null
|
||||
strategy?: HLSStrategy
|
||||
@ -42,7 +42,7 @@ export default function Controller(props: Props) {
|
||||
walletCollateralAsset={walletCollateralAsset}
|
||||
vault={vault}
|
||||
collateralAsset={props.collateralAsset}
|
||||
borrowAsset={props.borrowAsset}
|
||||
borrowMarket={props.borrowMarket}
|
||||
emptyHlsAccounts={emptyHlsAccounts}
|
||||
hlsAccounts={hlsAccounts}
|
||||
isOpen={isOpen}
|
||||
@ -57,7 +57,7 @@ export default function Controller(props: Props) {
|
||||
<StakingContent
|
||||
walletCollateralAsset={walletCollateralAsset}
|
||||
collateralAsset={props.collateralAsset}
|
||||
borrowAsset={props.borrowAsset}
|
||||
borrowMarket={props.borrowMarket}
|
||||
emptyHlsAccounts={emptyHlsAccounts}
|
||||
hlsAccounts={hlsAccounts}
|
||||
isOpen={isOpen}
|
||||
@ -73,7 +73,7 @@ export default function Controller(props: Props) {
|
||||
}
|
||||
|
||||
interface ContentProps {
|
||||
borrowAsset: BorrowAsset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
emptyHlsAccounts: Account[]
|
||||
hlsAccounts: Account[]
|
||||
@ -102,14 +102,14 @@ function Vault(props: VaultContentProps) {
|
||||
} = useVaultController({
|
||||
vault: props.vault,
|
||||
collateralAsset: props.collateralAsset,
|
||||
borrowAsset: props.borrowAsset,
|
||||
borrowMarket: props.borrowMarket,
|
||||
selectedAccount: props.selectedAccount,
|
||||
})
|
||||
|
||||
const items = useAccordionItems({
|
||||
apy: props.vault.apy || 0,
|
||||
borrowAmount,
|
||||
borrowAsset: props.borrowAsset,
|
||||
borrowMarket: props.borrowMarket,
|
||||
collateralAsset: props.collateralAsset,
|
||||
depositAmount,
|
||||
emptyHlsAccounts: props.emptyHlsAccounts,
|
||||
@ -148,13 +148,13 @@ function StakingContent(props: StakingContentProps) {
|
||||
execute,
|
||||
} = useStakingController({
|
||||
collateralAsset: props.collateralAsset,
|
||||
borrowAsset: props.borrowAsset,
|
||||
borrowMarket: props.borrowMarket,
|
||||
selectedAccount: props.selectedAccount,
|
||||
})
|
||||
|
||||
const items = useAccordionItems({
|
||||
borrowAmount,
|
||||
borrowAsset: props.borrowAsset,
|
||||
borrowMarket: props.borrowMarket,
|
||||
collateralAsset: props.collateralAsset,
|
||||
depositAmount,
|
||||
emptyHlsAccounts: props.emptyHlsAccounts,
|
||||
|
@ -26,7 +26,7 @@ import {
|
||||
interface Props {
|
||||
apy: number
|
||||
borrowAmount: BigNumber
|
||||
borrowAsset: BorrowAsset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
depositAmount: BigNumber
|
||||
emptyHlsAccounts: Account[]
|
||||
@ -56,18 +56,24 @@ export default function useAccordionItems(props: Props) {
|
||||
}, [props.strategy])
|
||||
|
||||
const borrowLiquidity = useMemo(
|
||||
() => props.borrowAsset.liquidity?.amount || BN_ZERO,
|
||||
[props.borrowAsset.liquidity?.amount],
|
||||
() => props.borrowMarket.liquidity || BN_ZERO,
|
||||
[props.borrowMarket.liquidity],
|
||||
)
|
||||
|
||||
const additionalDepositFromSwap = useMemo(() => {
|
||||
const value = getCoinValue(
|
||||
BNCoin.fromDenomAndBigNumber(props.borrowAsset.denom, props.borrowAmount),
|
||||
BNCoin.fromDenomAndBigNumber(props.borrowMarket.asset.denom, props.borrowAmount),
|
||||
prices,
|
||||
assets,
|
||||
)
|
||||
return getCoinAmount(props.collateralAsset.denom, value, prices, assets)
|
||||
}, [assets, prices, props.borrowAmount, props.borrowAsset.denom, props.collateralAsset.denom])
|
||||
}, [
|
||||
assets,
|
||||
prices,
|
||||
props.borrowAmount,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.collateralAsset.denom,
|
||||
])
|
||||
|
||||
const collateralWarningMessages = useMemo(() => {
|
||||
const messages: string[] = []
|
||||
@ -96,16 +102,23 @@ export default function useAccordionItems(props: Props) {
|
||||
|
||||
if (props.borrowAmount.isGreaterThan(props.maxBorrowAmount)) {
|
||||
messages.push(
|
||||
getHealthFactorMessage(props.borrowAsset.denom, props.maxBorrowAmount, 'borrow', assets),
|
||||
getHealthFactorMessage(
|
||||
props.borrowMarket.asset.denom,
|
||||
props.maxBorrowAmount,
|
||||
'borrow',
|
||||
assets,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
if (props.borrowAmount.isGreaterThan(borrowLiquidity)) {
|
||||
messages.push(getLiquidityMessage(props.borrowAsset.denom, borrowLiquidity, assets))
|
||||
messages.push(getLiquidityMessage(props.borrowMarket.asset.denom, borrowLiquidity, assets))
|
||||
}
|
||||
|
||||
if (additionalDepositFromSwap.plus(props.depositAmount).isGreaterThan(props.maxBorrowAmount)) {
|
||||
messages.push(getDepositCapMessage(props.borrowAsset.denom, depositCapLeft, 'borrow', assets))
|
||||
messages.push(
|
||||
getDepositCapMessage(props.borrowMarket.asset.denom, depositCapLeft, 'borrow', assets),
|
||||
)
|
||||
}
|
||||
|
||||
return messages
|
||||
@ -115,7 +128,7 @@ export default function useAccordionItems(props: Props) {
|
||||
borrowLiquidity,
|
||||
depositCapLeft,
|
||||
props.borrowAmount,
|
||||
props.borrowAsset.denom,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.depositAmount,
|
||||
props.maxBorrowAmount,
|
||||
])
|
||||
@ -160,7 +173,7 @@ export default function useAccordionItems(props: Props) {
|
||||
<Leverage
|
||||
leverage={props.leverage}
|
||||
amount={props.borrowAmount}
|
||||
asset={props.borrowAsset}
|
||||
borrowMarket={props.borrowMarket}
|
||||
onChangeAmount={props.onChangeDebt}
|
||||
onClickBtn={() => props.toggleIsOpen(2)}
|
||||
max={props.maxBorrowAmount}
|
||||
@ -228,7 +241,7 @@ export default function useAccordionItems(props: Props) {
|
||||
leverage={props.leverage}
|
||||
positionValue={props.positionValue}
|
||||
collateralAsset={props.collateralAsset}
|
||||
borrowAsset={props.borrowAsset}
|
||||
borrowMarket={props.borrowMarket}
|
||||
apy={props.apy}
|
||||
onClickBtn={props.execute}
|
||||
disabled={
|
||||
|
@ -10,17 +10,17 @@ import { SWAP_FEE_BUFFER } from 'utils/constants'
|
||||
import { BN } from 'utils/helpers'
|
||||
|
||||
interface Props {
|
||||
borrowAsset: Asset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
selectedAccount: Account
|
||||
}
|
||||
|
||||
export default function useStakingController(props: Props) {
|
||||
const { collateralAsset, borrowAsset, selectedAccount } = props
|
||||
const { collateralAsset, borrowMarket, selectedAccount } = props
|
||||
const addToStakingStrategy = useStore((s) => s.addToStakingStrategy)
|
||||
|
||||
const { data: swapValueLoss } = useSwapValueLoss(
|
||||
props.borrowAsset.denom,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.collateralAsset.denom,
|
||||
)
|
||||
const {
|
||||
@ -33,34 +33,39 @@ export default function useStakingController(props: Props) {
|
||||
actions,
|
||||
} = useDepositHlsVault({
|
||||
collateralDenom: collateralAsset.denom,
|
||||
borrowDenom: borrowAsset.denom,
|
||||
borrowDenom: borrowMarket.asset.denom,
|
||||
})
|
||||
|
||||
const { updatedAccount, addDeposits } = useUpdatedAccount(selectedAccount)
|
||||
const { computeMaxBorrowAmount } = useHealthComputer(updatedAccount)
|
||||
|
||||
const maxBorrowAmount = useMemo(() => {
|
||||
return computeMaxBorrowAmount(props.borrowAsset.denom, {
|
||||
return computeMaxBorrowAmount(props.borrowMarket.asset.denom, {
|
||||
swap: {
|
||||
denom_out: props.collateralAsset.denom,
|
||||
slippage: BN(swapValueLoss).plus(SWAP_FEE_BUFFER).toString(),
|
||||
},
|
||||
})
|
||||
}, [computeMaxBorrowAmount, props.borrowAsset.denom, props.collateralAsset.denom, swapValueLoss])
|
||||
}, [
|
||||
computeMaxBorrowAmount,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.collateralAsset.denom,
|
||||
swapValueLoss,
|
||||
])
|
||||
|
||||
const execute = useCallback(() => {
|
||||
useStore.setState({ hlsModal: null })
|
||||
addToStakingStrategy({
|
||||
actions,
|
||||
accountId: selectedAccount.id,
|
||||
borrowCoin: BNCoin.fromDenomAndBigNumber(borrowAsset.denom, borrowAmount),
|
||||
borrowCoin: BNCoin.fromDenomAndBigNumber(borrowMarket.asset.denom, borrowAmount),
|
||||
depositCoin: BNCoin.fromDenomAndBigNumber(collateralAsset.denom, depositAmount),
|
||||
})
|
||||
}, [
|
||||
actions,
|
||||
addToStakingStrategy,
|
||||
borrowAmount,
|
||||
borrowAsset.denom,
|
||||
borrowMarket.asset.denom,
|
||||
collateralAsset.denom,
|
||||
depositAmount,
|
||||
selectedAccount.id,
|
||||
|
@ -8,14 +8,14 @@ import useStore from 'store'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
|
||||
interface Props {
|
||||
borrowAsset: Asset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
selectedAccount: Account
|
||||
vault: Vault
|
||||
}
|
||||
|
||||
export default function useVaultController(props: Props) {
|
||||
const { vault, collateralAsset, borrowAsset, selectedAccount } = props
|
||||
const { vault, collateralAsset, borrowMarket, selectedAccount } = props
|
||||
|
||||
const depositIntoVault = useStore((s) => s.depositIntoVault)
|
||||
|
||||
@ -28,14 +28,14 @@ export default function useVaultController(props: Props) {
|
||||
positionValue,
|
||||
} = useDepositHlsVault({
|
||||
collateralDenom: collateralAsset.denom,
|
||||
borrowDenom: borrowAsset.denom,
|
||||
borrowDenom: borrowMarket.asset.denom,
|
||||
})
|
||||
|
||||
const { actions } = useDepositVault({
|
||||
vault,
|
||||
reclaims: [],
|
||||
deposits: [BNCoin.fromDenomAndBigNumber(collateralAsset.denom, depositAmount)],
|
||||
borrowings: [BNCoin.fromDenomAndBigNumber(borrowAsset.denom, borrowAmount)],
|
||||
borrowings: [BNCoin.fromDenomAndBigNumber(borrowMarket.asset.denom, borrowAmount)],
|
||||
kind: 'high_levered_strategy',
|
||||
})
|
||||
|
||||
@ -43,17 +43,17 @@ export default function useVaultController(props: Props) {
|
||||
const { computeMaxBorrowAmount } = useHealthComputer(updatedAccount)
|
||||
|
||||
const maxBorrowAmount = useMemo(() => {
|
||||
return computeMaxBorrowAmount(props.borrowAsset.denom, {
|
||||
return computeMaxBorrowAmount(props.borrowMarket.asset.denom, {
|
||||
vault: { address: props.vault?.address },
|
||||
}).plus(borrowAmount)
|
||||
}, [borrowAmount, computeMaxBorrowAmount, props.borrowAsset.denom, props.vault?.address])
|
||||
}, [borrowAmount, computeMaxBorrowAmount, props.borrowMarket.asset.denom, props.vault?.address])
|
||||
|
||||
const execute = useCallback(() => {
|
||||
depositIntoVault({
|
||||
accountId: selectedAccount.id,
|
||||
actions,
|
||||
deposits: [BNCoin.fromDenomAndBigNumber(collateralAsset.denom, depositAmount)],
|
||||
borrowings: [BNCoin.fromDenomAndBigNumber(borrowAsset.denom, borrowAmount)],
|
||||
borrowings: [BNCoin.fromDenomAndBigNumber(borrowMarket.asset.denom, borrowAmount)],
|
||||
isCreate: true,
|
||||
kind: 'high_levered_strategy',
|
||||
})
|
||||
@ -63,7 +63,7 @@ export default function useVaultController(props: Props) {
|
||||
borrowAmount,
|
||||
depositAmount,
|
||||
depositIntoVault,
|
||||
borrowAsset.denom,
|
||||
borrowMarket.asset.denom,
|
||||
collateralAsset.denom,
|
||||
selectedAccount.id,
|
||||
])
|
||||
@ -75,12 +75,12 @@ export default function useVaultController(props: Props) {
|
||||
simulateVaultDeposit(
|
||||
vault.address,
|
||||
[BNCoin.fromDenomAndBigNumber(collateralAsset.denom, amount)],
|
||||
[BNCoin.fromDenomAndBigNumber(borrowAsset.denom, borrowAmount)],
|
||||
[BNCoin.fromDenomAndBigNumber(borrowMarket.asset.denom, borrowAmount)],
|
||||
)
|
||||
},
|
||||
[
|
||||
borrowAmount,
|
||||
borrowAsset,
|
||||
borrowMarket,
|
||||
collateralAsset,
|
||||
vault.address,
|
||||
setDepositAmount,
|
||||
@ -95,11 +95,11 @@ export default function useVaultController(props: Props) {
|
||||
simulateVaultDeposit(
|
||||
vault.address,
|
||||
[BNCoin.fromDenomAndBigNumber(collateralAsset.denom, depositAmount)],
|
||||
[BNCoin.fromDenomAndBigNumber(borrowAsset.denom, amount)],
|
||||
[BNCoin.fromDenomAndBigNumber(borrowMarket.asset.denom, amount)],
|
||||
)
|
||||
},
|
||||
[
|
||||
borrowAsset,
|
||||
borrowMarket,
|
||||
collateralAsset,
|
||||
depositAmount,
|
||||
vault.address,
|
||||
|
@ -1,8 +1,8 @@
|
||||
import React, { useCallback, useMemo, useState } from 'react'
|
||||
|
||||
import Button from 'components/common/Button'
|
||||
import LeverageSummary from 'components/Modals/HLS/Deposit/LeverageSummary'
|
||||
import TokenInputWithSlider from 'components/common/TokenInput/TokenInputWithSlider'
|
||||
import LeverageSummary from 'components/Modals/HLS/Deposit/LeverageSummary'
|
||||
import { DEFAULT_SETTINGS } from 'constants/defaultSettings'
|
||||
import { LocalStorageKeys } from 'constants/localStorageKeys'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
@ -23,7 +23,7 @@ import { getDepositCapMessage, getHealthFactorMessage, getLiquidityMessage } fro
|
||||
interface Props {
|
||||
account: HLSAccountWithStrategy
|
||||
action: HlsStakingManageAction
|
||||
borrowAsset: BorrowAsset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
}
|
||||
|
||||
@ -42,19 +42,24 @@ export default function ChangeLeverage(props: Props) {
|
||||
const changeHlsStakingLeverage = useStore((s) => s.changeHlsStakingLeverage)
|
||||
const { computeMaxBorrowAmount } = useHealthComputer(props.account)
|
||||
const previousDebt: BigNumber = useMemo(
|
||||
() => props.account.debts.find(byDenom(props.borrowAsset.denom))?.amount || BN_ZERO,
|
||||
[props.account.debts, props.borrowAsset.denom],
|
||||
() => props.account.debts.find(byDenom(props.borrowMarket.asset.denom))?.amount || BN_ZERO,
|
||||
[props.account.debts, props.borrowMarket.asset.denom],
|
||||
)
|
||||
|
||||
const [currentDebt, setAmount] = useState(previousDebt)
|
||||
const maxBorrowAmount = useMemo(() => {
|
||||
return computeMaxBorrowAmount(props.borrowAsset.denom, {
|
||||
return computeMaxBorrowAmount(props.borrowMarket.asset.denom, {
|
||||
swap: {
|
||||
denom_out: props.collateralAsset.denom,
|
||||
slippage: SWAP_FEE_BUFFER.toString(),
|
||||
},
|
||||
}).plus(previousDebt)
|
||||
}, [computeMaxBorrowAmount, previousDebt, props.borrowAsset.denom, props.collateralAsset.denom])
|
||||
}, [
|
||||
computeMaxBorrowAmount,
|
||||
previousDebt,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.collateralAsset.denom,
|
||||
])
|
||||
|
||||
const onChangeAmount = useCallback(
|
||||
(currentDebt: BigNumber) => {
|
||||
@ -62,19 +67,22 @@ export default function ChangeLeverage(props: Props) {
|
||||
if (currentDebt.isLessThan(previousDebt)) {
|
||||
simulateHlsStakingWithdraw(
|
||||
props.collateralAsset.denom,
|
||||
props.borrowAsset.denom,
|
||||
props.borrowMarket.asset.denom,
|
||||
previousDebt.minus(currentDebt),
|
||||
)
|
||||
} else {
|
||||
simulateHlsStakingDeposit(
|
||||
BNCoin.fromDenomAndBigNumber(props.collateralAsset.denom, BN_ZERO),
|
||||
BNCoin.fromDenomAndBigNumber(props.borrowAsset.denom, currentDebt.minus(previousDebt)),
|
||||
BNCoin.fromDenomAndBigNumber(
|
||||
props.borrowMarket.asset.denom,
|
||||
currentDebt.minus(previousDebt),
|
||||
),
|
||||
)
|
||||
}
|
||||
},
|
||||
[
|
||||
previousDebt,
|
||||
props.borrowAsset.denom,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.collateralAsset.denom,
|
||||
simulateHlsStakingDeposit,
|
||||
simulateHlsStakingWithdraw,
|
||||
@ -98,7 +106,7 @@ export default function ChangeLeverage(props: Props) {
|
||||
previousDebt,
|
||||
currentDebt,
|
||||
props.collateralAsset.denom,
|
||||
props.borrowAsset.denom,
|
||||
props.borrowMarket.asset.denom,
|
||||
slippage,
|
||||
prices,
|
||||
assets,
|
||||
@ -108,7 +116,7 @@ export default function ChangeLeverage(props: Props) {
|
||||
currentDebt,
|
||||
previousDebt,
|
||||
props.collateralAsset.denom,
|
||||
props.borrowAsset.denom,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.account.id,
|
||||
slippage,
|
||||
prices,
|
||||
@ -127,22 +135,22 @@ export default function ChangeLeverage(props: Props) {
|
||||
)
|
||||
|
||||
const apy = useMemo(() => {
|
||||
if (!props.borrowAsset.borrowRate || !props.account.strategy.apy) return 0
|
||||
return getLeveragedApy(props.account.strategy.apy, props.borrowAsset.borrowRate, leverage)
|
||||
}, [leverage, props.account.strategy.apy, props.borrowAsset.borrowRate])
|
||||
if (!props.borrowMarket.apy.borrow || !props.account.strategy.apy) return 0
|
||||
return getLeveragedApy(props.account.strategy.apy, props.borrowMarket.apy.borrow, leverage)
|
||||
}, [leverage, props.account.strategy.apy, props.borrowMarket.apy.borrow])
|
||||
|
||||
const warningMessages = useMemo(() => {
|
||||
const messages: string[] = []
|
||||
|
||||
const borrowLiquidity = props.borrowAsset.liquidity?.amount || BN_ZERO
|
||||
const borrowLiquidity = props.borrowMarket.liquidity || BN_ZERO
|
||||
|
||||
if (borrowLiquidity.isLessThan(currentDebt.minus(previousDebt))) {
|
||||
messages.push(getLiquidityMessage(props.borrowAsset.denom, borrowLiquidity, assets))
|
||||
messages.push(getLiquidityMessage(props.borrowMarket.asset.denom, borrowLiquidity, assets))
|
||||
}
|
||||
|
||||
if (maxBorrowAmount.isLessThan(currentDebt)) {
|
||||
messages.push(
|
||||
getHealthFactorMessage(props.borrowAsset.denom, maxBorrowAmount, 'borrow', assets),
|
||||
getHealthFactorMessage(props.borrowMarket.asset.denom, maxBorrowAmount, 'borrow', assets),
|
||||
)
|
||||
}
|
||||
|
||||
@ -160,8 +168,8 @@ export default function ChangeLeverage(props: Props) {
|
||||
depositCapLeft,
|
||||
maxBorrowAmount,
|
||||
previousDebt,
|
||||
props.borrowAsset.denom,
|
||||
props.borrowAsset.liquidity?.amount,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.borrowMarket.liquidity,
|
||||
props.collateralAsset.denom,
|
||||
])
|
||||
|
||||
@ -169,7 +177,7 @@ export default function ChangeLeverage(props: Props) {
|
||||
<>
|
||||
<TokenInputWithSlider
|
||||
amount={currentDebt}
|
||||
asset={props.borrowAsset}
|
||||
asset={props.borrowMarket.asset}
|
||||
max={maxBorrowAmount}
|
||||
onChange={onChangeAmount}
|
||||
maxText='Max borrow'
|
||||
@ -180,7 +188,7 @@ export default function ChangeLeverage(props: Props) {
|
||||
warningMessages={warningMessages}
|
||||
/>
|
||||
<div className='flex flex-col gap-6'>
|
||||
<LeverageSummary asset={props.borrowAsset} positionValue={positionValue} apy={apy} />
|
||||
<LeverageSummary asset={props.borrowMarket.asset} positionValue={positionValue} apy={apy} />
|
||||
<Button
|
||||
onClick={handleOnClick}
|
||||
text='Confirm'
|
||||
|
@ -10,7 +10,7 @@ import TokenInputWithSlider from 'components/common/TokenInput/TokenInputWithSli
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useDepositActions from 'hooks/hls/useDepositActions'
|
||||
import useBorrowAsset from 'hooks/useBorrowAsset'
|
||||
import useMarket from 'hooks/markets/useMarket'
|
||||
import useCurrentWalletBalance from 'hooks/useCurrentWalletBalance'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
@ -32,7 +32,7 @@ import {
|
||||
interface Props {
|
||||
account: HLSAccountWithStrategy
|
||||
action: HlsStakingManageAction
|
||||
borrowAsset: BorrowAsset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ export default function Deposit(props: Props) {
|
||||
useCurrentWalletBalance(props.collateralAsset.denom)?.amount || '0',
|
||||
)
|
||||
const addToStakingStrategy = useStore((s) => s.addToStakingStrategy)
|
||||
const borrowRate = useBorrowAsset(props.borrowAsset.denom)?.borrowRate || 0
|
||||
const borrowRate = useMarket(props.borrowMarket.asset.denom)?.apy.borrow || 0
|
||||
|
||||
const currentLeverage = useMemo(
|
||||
() => calculateAccountLeverage(props.account, prices, assets).toNumber(),
|
||||
@ -72,10 +72,10 @@ export default function Deposit(props: Props) {
|
||||
const borrowCoin = useMemo(
|
||||
() =>
|
||||
BNCoin.fromDenomAndBigNumber(
|
||||
props.borrowAsset.denom,
|
||||
addedDebts.find(byDenom(props.borrowAsset.denom))?.amount || BN_ZERO,
|
||||
props.borrowMarket.asset.denom,
|
||||
addedDebts.find(byDenom(props.borrowMarket.asset.denom))?.amount || BN_ZERO,
|
||||
),
|
||||
[addedDebts, props.borrowAsset.denom],
|
||||
[addedDebts, props.borrowMarket.asset.denom],
|
||||
)
|
||||
|
||||
const warningMessages = useMemo(() => {
|
||||
@ -105,22 +105,22 @@ export default function Deposit(props: Props) {
|
||||
])
|
||||
|
||||
const maxBorrowAmount = useMemo(
|
||||
() => computeMaxBorrowAmount(props.borrowAsset.denom, 'deposit'),
|
||||
[computeMaxBorrowAmount, props.borrowAsset.denom],
|
||||
() => computeMaxBorrowAmount(props.borrowMarket.asset.denom, 'deposit'),
|
||||
[computeMaxBorrowAmount, props.borrowMarket.asset.denom],
|
||||
)
|
||||
|
||||
const borrowWarningMessages = useMemo(() => {
|
||||
let messages: string[] = []
|
||||
if (borrowCoin.amount.isGreaterThan(maxBorrowAmount)) {
|
||||
messages.push(
|
||||
getHealthFactorMessage(props.borrowAsset.denom, maxBorrowAmount, 'borrow', assets),
|
||||
getHealthFactorMessage(props.borrowMarket.asset.denom, maxBorrowAmount, 'borrow', assets),
|
||||
)
|
||||
}
|
||||
|
||||
const borrowLiquidity = props.borrowAsset.liquidity?.amount || BN_ZERO
|
||||
const borrowLiquidity = props.borrowMarket.liquidity || BN_ZERO
|
||||
|
||||
if (borrowCoin.amount.isGreaterThan(borrowLiquidity)) {
|
||||
messages.push(getLiquidityMessage(props.borrowAsset.denom, borrowLiquidity, assets))
|
||||
messages.push(getLiquidityMessage(props.borrowMarket.asset.denom, borrowLiquidity, assets))
|
||||
}
|
||||
|
||||
return messages
|
||||
@ -128,15 +128,15 @@ export default function Deposit(props: Props) {
|
||||
assets,
|
||||
borrowCoin.amount,
|
||||
maxBorrowAmount,
|
||||
props.borrowAsset.denom,
|
||||
props.borrowAsset.liquidity?.amount,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.borrowMarket.liquidity,
|
||||
])
|
||||
|
||||
const actions = useDepositActions({ depositCoin, borrowCoin })
|
||||
|
||||
const currentDebt: BigNumber = useMemo(
|
||||
() => props.account.debts.find(byDenom(props.borrowAsset.denom))?.amount || BN_ZERO,
|
||||
[props.account.debts, props.borrowAsset.denom],
|
||||
() => props.account.debts.find(byDenom(props.borrowMarket.asset.denom))?.amount || BN_ZERO,
|
||||
[props.account.debts, props.borrowMarket.asset.denom],
|
||||
)
|
||||
|
||||
const handleDeposit = useCallback(() => {
|
||||
@ -160,19 +160,19 @@ export default function Deposit(props: Props) {
|
||||
assets,
|
||||
)
|
||||
const borrowValue = BN(currentLeverage - 1).times(depositValue)
|
||||
additionalDebt = getCoinAmount(props.borrowAsset.denom, borrowValue, prices, assets)
|
||||
additionalDebt = getCoinAmount(props.borrowMarket.asset.denom, borrowValue, prices, assets)
|
||||
}
|
||||
|
||||
simulateHlsStakingDeposit(
|
||||
BNCoin.fromDenomAndBigNumber(props.collateralAsset.denom, amount),
|
||||
BNCoin.fromDenomAndBigNumber(props.borrowAsset.denom, additionalDebt),
|
||||
BNCoin.fromDenomAndBigNumber(props.borrowMarket.asset.denom, additionalDebt),
|
||||
)
|
||||
},
|
||||
[
|
||||
currentLeverage,
|
||||
keepLeverage,
|
||||
prices,
|
||||
props.borrowAsset.denom,
|
||||
props.borrowMarket.asset.denom,
|
||||
props.collateralAsset.denom,
|
||||
simulateHlsStakingDeposit,
|
||||
assets,
|
||||
@ -197,18 +197,18 @@ export default function Deposit(props: Props) {
|
||||
amount: borrowCoin.amount.toNumber(),
|
||||
warningMessages: borrowWarningMessages,
|
||||
options: {
|
||||
suffix: ` ${props.borrowAsset.symbol}`,
|
||||
suffix: ` ${props.borrowMarket.asset.symbol}`,
|
||||
abbreviated: true,
|
||||
decimals: props.borrowAsset.decimals,
|
||||
decimals: props.borrowMarket.asset.decimals,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'New Debt Amount',
|
||||
amount: currentDebt.plus(borrowCoin.amount).toNumber(),
|
||||
options: {
|
||||
suffix: ` ${props.borrowAsset.symbol}`,
|
||||
suffix: ` ${props.borrowMarket.asset.symbol}`,
|
||||
abbreviated: true,
|
||||
decimals: props.borrowAsset.decimals,
|
||||
decimals: props.borrowMarket.asset.decimals,
|
||||
},
|
||||
},
|
||||
]
|
||||
@ -220,8 +220,8 @@ export default function Deposit(props: Props) {
|
||||
borrowWarningMessages,
|
||||
currentDebt,
|
||||
keepLeverage,
|
||||
props.borrowAsset.decimals,
|
||||
props.borrowAsset.symbol,
|
||||
props.borrowMarket.asset.decimals,
|
||||
props.borrowMarket.asset.symbol,
|
||||
],
|
||||
)
|
||||
|
||||
|
@ -16,25 +16,25 @@ import { getNoBalanceInWalletMessage } from 'utils/messages'
|
||||
interface Props {
|
||||
account: Account
|
||||
action: HlsStakingManageAction
|
||||
borrowAsset: Asset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
}
|
||||
|
||||
export default function Repay(props: Props) {
|
||||
const { removeDebts, removedDebts } = useUpdatedAccount(props.account)
|
||||
const borrowAssetAmountInWallet = BN(
|
||||
useCurrentWalletBalance(props.borrowAsset.denom)?.amount || '0',
|
||||
useCurrentWalletBalance(props.borrowMarket.asset.denom)?.amount || '0',
|
||||
)
|
||||
const repay = useStore((s) => s.repay)
|
||||
|
||||
const currentDebt: BigNumber = useMemo(
|
||||
() => props.account.debts.find(byDenom(props.borrowAsset.denom))?.amount || BN_ZERO,
|
||||
[props.account.debts, props.borrowAsset.denom],
|
||||
() => props.account.debts.find(byDenom(props.borrowMarket.asset.denom))?.amount || BN_ZERO,
|
||||
[props.account.debts, props.borrowMarket.asset.denom],
|
||||
)
|
||||
|
||||
const repayAmount: BigNumber = useMemo(
|
||||
() => removedDebts.find(byDenom(props.borrowAsset.denom))?.amount || BN_ZERO,
|
||||
[removedDebts, props.borrowAsset.denom],
|
||||
() => removedDebts.find(byDenom(props.borrowMarket.asset.denom))?.amount || BN_ZERO,
|
||||
[removedDebts, props.borrowMarket.asset.denom],
|
||||
)
|
||||
|
||||
const maxRepayAmount = useMemo(
|
||||
@ -48,51 +48,51 @@ export default function Repay(props: Props) {
|
||||
title: 'Total Debt Repayable',
|
||||
amount: currentDebt.toNumber(),
|
||||
options: {
|
||||
suffix: ` ${props.borrowAsset.symbol}`,
|
||||
suffix: ` ${props.borrowMarket.asset.symbol}`,
|
||||
abbreviated: true,
|
||||
decimals: props.borrowAsset.decimals,
|
||||
decimals: props.borrowMarket.asset.decimals,
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'New Debt Amount',
|
||||
amount: currentDebt.minus(repayAmount).toNumber(),
|
||||
options: {
|
||||
suffix: ` ${props.borrowAsset.symbol}`,
|
||||
suffix: ` ${props.borrowMarket.asset.symbol}`,
|
||||
abbreviated: true,
|
||||
decimals: props.borrowAsset.decimals,
|
||||
decimals: props.borrowMarket.asset.decimals,
|
||||
},
|
||||
},
|
||||
],
|
||||
[currentDebt, props.borrowAsset.decimals, props.borrowAsset.symbol, repayAmount],
|
||||
[currentDebt, props.borrowMarket.asset.decimals, props.borrowMarket.asset.symbol, repayAmount],
|
||||
)
|
||||
|
||||
const handleRepay = useCallback(() => {
|
||||
useStore.setState({ hlsManageModal: null })
|
||||
repay({
|
||||
accountId: props.account.id,
|
||||
coin: BNCoin.fromDenomAndBigNumber(props.borrowAsset.denom, repayAmount),
|
||||
coin: BNCoin.fromDenomAndBigNumber(props.borrowMarket.asset.denom, repayAmount),
|
||||
fromWallet: true,
|
||||
})
|
||||
}, [props.account.id, props.borrowAsset.denom, repay, repayAmount])
|
||||
}, [props.account.id, props.borrowMarket.asset.denom, repay, repayAmount])
|
||||
|
||||
const handleOnChange = useCallback(
|
||||
(amount: BigNumber) =>
|
||||
removeDebts([BNCoin.fromDenomAndBigNumber(props.borrowAsset.denom, amount)]),
|
||||
[props.borrowAsset.denom, removeDebts],
|
||||
removeDebts([BNCoin.fromDenomAndBigNumber(props.borrowMarket.asset.denom, amount)]),
|
||||
[props.borrowMarket.asset.denom, removeDebts],
|
||||
)
|
||||
|
||||
const warningMessages = useMemo(() => {
|
||||
if (borrowAssetAmountInWallet.isZero()) {
|
||||
return [getNoBalanceInWalletMessage(props.borrowAsset.symbol)]
|
||||
return [getNoBalanceInWalletMessage(props.borrowMarket.asset.symbol)]
|
||||
}
|
||||
return []
|
||||
}, [borrowAssetAmountInWallet, props.borrowAsset.symbol])
|
||||
}, [borrowAssetAmountInWallet, props.borrowMarket.asset.symbol])
|
||||
|
||||
return (
|
||||
<>
|
||||
<TokenInputWithSlider
|
||||
amount={repayAmount}
|
||||
asset={props.borrowAsset}
|
||||
asset={props.borrowMarket.asset}
|
||||
max={maxRepayAmount}
|
||||
onChange={handleOnChange}
|
||||
maxText='In Wallet'
|
||||
|
@ -14,7 +14,6 @@ import { getHealthFactorMessage } from 'utils/messages'
|
||||
interface Props {
|
||||
account: Account
|
||||
action: HlsStakingManageAction
|
||||
borrowAsset: Asset
|
||||
collateralAsset: Asset
|
||||
}
|
||||
|
||||
|
@ -8,23 +8,23 @@ import Withdraw from 'components/Modals/HLS/Manage/Withdraw'
|
||||
import ModalContentWithSummary from 'components/Modals/ModalContentWithSummary'
|
||||
import useAccount from 'hooks/accounts/useAccount'
|
||||
import useAsset from 'hooks/assets/useAsset'
|
||||
import useBorrowAsset from 'hooks/useBorrowAsset'
|
||||
import useMarket from 'hooks/markets/useMarket'
|
||||
import useStore from 'store'
|
||||
|
||||
export default function HlsManageModalController() {
|
||||
const modal = useStore((s) => s.hlsManageModal)
|
||||
const { data: account } = useAccount(modal?.accountId)
|
||||
const collateralAsset = useAsset(modal?.staking.strategy.denoms.deposit || '')
|
||||
const borrowAsset = useBorrowAsset(modal?.staking.strategy.denoms.borrow || '')
|
||||
const market = useMarket(modal?.staking.strategy.denoms.borrow || '')
|
||||
|
||||
if (!modal || !collateralAsset || !borrowAsset || !account) return null
|
||||
if (!modal || !collateralAsset || !market || !account) return null
|
||||
|
||||
return (
|
||||
<HlsModal
|
||||
account={{ ...account, strategy: modal.staking.strategy } as HLSAccountWithStrategy}
|
||||
action={modal.staking.action}
|
||||
collateralAsset={collateralAsset}
|
||||
borrowAsset={borrowAsset}
|
||||
borrowMarket={market}
|
||||
/>
|
||||
)
|
||||
}
|
||||
@ -32,12 +32,11 @@ export default function HlsManageModalController() {
|
||||
interface Props {
|
||||
account: HLSAccountWithStrategy
|
||||
action: HlsStakingManageAction
|
||||
borrowAsset: BorrowAsset
|
||||
borrowMarket: Market
|
||||
collateralAsset: Asset
|
||||
}
|
||||
|
||||
function HlsModal(props: Props) {
|
||||
const updatedAccount = useStore((s) => s.updatedAccount)
|
||||
function handleClose() {
|
||||
useStore.setState({ hlsManageModal: null })
|
||||
}
|
||||
@ -65,7 +64,7 @@ function HlsModal(props: Props) {
|
||||
<Header
|
||||
action={props.action}
|
||||
primaryAsset={props.collateralAsset}
|
||||
secondaryAsset={props.borrowAsset}
|
||||
secondaryAsset={props.borrowMarket.asset}
|
||||
/>
|
||||
}
|
||||
onClose={handleClose}
|
||||
|
@ -1,10 +1,10 @@
|
||||
import React from 'react'
|
||||
|
||||
import Modal from 'components/Modals/Modal'
|
||||
import Content from 'components/Modals/HLS/Deposit'
|
||||
import Header from 'components/Modals/HLS/Header'
|
||||
import Modal from 'components/Modals/Modal'
|
||||
import useAsset from 'hooks/assets/useAsset'
|
||||
import useBorrowAsset from 'hooks/useBorrowAsset'
|
||||
import useMarket from 'hooks/markets/useMarket'
|
||||
import useStore from 'store'
|
||||
|
||||
export default function HlsModalController() {
|
||||
@ -14,7 +14,7 @@ export default function HlsModalController() {
|
||||
modal?.vault?.denoms.primary || modal?.strategy?.denoms.deposit || '',
|
||||
)
|
||||
|
||||
const secondaryAsset = useBorrowAsset(modal?.strategy?.denoms.borrow || '')
|
||||
const secondaryAsset = useMarket(modal?.strategy?.denoms.borrow || '')
|
||||
|
||||
if (!primaryAsset || !secondaryAsset) return null
|
||||
|
||||
@ -41,7 +41,7 @@ export default function HlsModalController() {
|
||||
|
||||
interface Props {
|
||||
primaryAsset: Asset
|
||||
secondaryAsset: BorrowAsset
|
||||
secondaryAsset: Market
|
||||
strategy?: HLSStrategy
|
||||
vaultAddress: string | null
|
||||
}
|
||||
@ -53,7 +53,9 @@ function HlsModal(props: Props) {
|
||||
|
||||
return (
|
||||
<Modal
|
||||
header={<Header primaryAsset={props.primaryAsset} secondaryAsset={props.secondaryAsset} />}
|
||||
header={
|
||||
<Header primaryAsset={props.primaryAsset} secondaryAsset={props.secondaryAsset.asset} />
|
||||
}
|
||||
headerClassName='gradient-header pl-2 pr-2.5 py-3 border-b-white/5 border-b'
|
||||
contentClassName='flex flex-col p-6'
|
||||
modalClassName='max-w-modal-md'
|
||||
@ -61,7 +63,7 @@ function HlsModal(props: Props) {
|
||||
>
|
||||
<Content
|
||||
collateralAsset={props.primaryAsset}
|
||||
borrowAsset={props.secondaryAsset}
|
||||
borrowMarket={props.secondaryAsset}
|
||||
vaultAddress={props.vaultAddress}
|
||||
strategy={props.strategy}
|
||||
/>
|
||||
|
@ -5,7 +5,6 @@ import AccountSummary from 'components/account/AccountSummary'
|
||||
import Card from 'components/common/Card'
|
||||
import { CircularProgress } from 'components/common/CircularProgress'
|
||||
import Modal, { ModalProps } from 'components/Modals/Modal'
|
||||
import useStore from 'store'
|
||||
|
||||
interface Props extends ModalProps {
|
||||
isHls?: boolean
|
||||
@ -36,7 +35,6 @@ function modalContent(content: React.ReactNode, isContentCard?: boolean, account
|
||||
}
|
||||
|
||||
export default function ModalContentWithSummary(props: Props) {
|
||||
const updatedAccount = useStore((s) => s.updatedAccount)
|
||||
return (
|
||||
<Modal
|
||||
{...props}
|
||||
@ -48,9 +46,7 @@ export default function ModalContentWithSummary(props: Props) {
|
||||
>
|
||||
{props.subHeader && props.subHeader}
|
||||
{modalContent(props.content, props.isContentCard, props.account)}
|
||||
{props.account && (
|
||||
<AccountSummary account={updatedAccount || props.account} isHls={props.isHls} />
|
||||
)}
|
||||
{props.account && <AccountSummary account={props.account} isHls={props.isHls} />}
|
||||
</Modal>
|
||||
)
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ import TokenInput from 'components/common/TokenInput'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import { ORACLE_DENOM } from 'constants/oracle'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import useStore from 'store'
|
||||
@ -39,7 +39,7 @@ export interface VaultBorrowingsProps {
|
||||
export default function VaultBorrowings(props: VaultBorrowingsProps) {
|
||||
const assets = useAllAssets()
|
||||
const { borrowings, onChangeBorrowings } = props
|
||||
const { data: marketAssets } = useMarketAssets()
|
||||
const markets = useMarkets()
|
||||
const { data: prices } = usePrices()
|
||||
const vaultModal = useStore((s) => s.vaultModal)
|
||||
const depositIntoVault = useStore((s) => s.depositIntoVault)
|
||||
@ -227,7 +227,8 @@ export default function VaultBorrowings(props: VaultBorrowingsProps) {
|
||||
</div>
|
||||
{props.borrowings.map((coin) => {
|
||||
const asset = assets.find(byDenom(coin.denom))
|
||||
const borrowRate = marketAssets?.find((market) => market.denom === coin.denom)?.apy.borrow
|
||||
const borrowRate = markets?.find((market) => market.asset.denom === coin.denom)?.apy
|
||||
.borrow
|
||||
|
||||
if (!asset || !borrowRate)
|
||||
return <React.Fragment key={`borrow-rate-${coin.denom}`}></React.Fragment>
|
||||
|
@ -8,11 +8,12 @@ import { TextLink } from 'components/common/TextLink'
|
||||
import { generateToastContent } from 'components/common/Toaster'
|
||||
import useTransactions from 'hooks/localStorage/useTransactions'
|
||||
import useStore from 'store'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
|
||||
export default function RecentTransactions() {
|
||||
const address = useStore((s) => s.address)
|
||||
const [transactions, setTransactions] = useTransactions()
|
||||
const chainConfig = useStore((s) => s.chainConfig)
|
||||
const chainConfig = useChainConfig()
|
||||
const recentTransactions = transactions.recent
|
||||
.filter((tx) => tx.address === address)
|
||||
.sort((a, b) => (a.timestamp > b.timestamp ? -1 : 1))
|
||||
|
@ -17,6 +17,7 @@ import useStore from 'store'
|
||||
import { byDenom } from 'utils/array'
|
||||
import { defaultFee } from 'utils/constants'
|
||||
import { BN } from 'utils/helpers'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
|
||||
function Bridge({ name, url, image }: Bridge) {
|
||||
return (
|
||||
@ -35,7 +36,7 @@ function Bridge({ name, url, image }: Bridge) {
|
||||
}
|
||||
|
||||
export default function WalletBridges() {
|
||||
const chainConfig = useStore((s) => s.chainConfig)
|
||||
const chainConfig = useChainConfig()
|
||||
|
||||
const address = useStore((s) => s.address)
|
||||
const currentWallet = useCurrentWallet()
|
||||
|
@ -27,6 +27,7 @@ import { NETWORK } from 'types/enums/network'
|
||||
import { ChainInfoID } from 'types/enums/wallet'
|
||||
import { truncate } from 'utils/formatters'
|
||||
import { getPage, getRoute } from 'utils/route'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
|
||||
export default function WalletConnectedButton() {
|
||||
// ---------------
|
||||
@ -40,7 +41,7 @@ export default function WalletConnectedButton() {
|
||||
const userDomain = useStore((s) => s.userDomain)
|
||||
const focusComponent = useStore((s) => s.focusComponent)
|
||||
const network = useStore((s) => s.client?.connectedWallet.network)
|
||||
const chainConfig = useStore((s) => s.chainConfig)
|
||||
const chainConfig = useChainConfig()
|
||||
const baseAsset = useBaseAsset()
|
||||
const { data: walletBalances, isLoading } = useWalletBalances(address)
|
||||
const { data: icnsData, isLoading: isLoadingICNS } = useICNSDomain(address)
|
||||
|
@ -26,8 +26,16 @@ const mapErrorMessages = (providerId: string, errorMessage: string, name: string
|
||||
}
|
||||
|
||||
export default function WalletConnecting(props: Props) {
|
||||
const { connect, mobileConnect, simulate, sign, broadcast, mobileProviders, extensionProviders } =
|
||||
useShuttle()
|
||||
const {
|
||||
connect,
|
||||
mobileConnect,
|
||||
simulate,
|
||||
sign,
|
||||
broadcast,
|
||||
mobileProviders,
|
||||
extensionProviders,
|
||||
disconnect,
|
||||
} = useShuttle()
|
||||
const providers = useMemo(
|
||||
() => [...mobileProviders, ...extensionProviders],
|
||||
[mobileProviders, extensionProviders],
|
||||
@ -85,6 +93,9 @@ export default function WalletConnecting(props: Props) {
|
||||
}}
|
||||
/>
|
||||
),
|
||||
onClose: () => {
|
||||
disconnect({ chainId: chainConfig.id })
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@ -92,7 +103,17 @@ export default function WalletConnecting(props: Props) {
|
||||
}
|
||||
if (!isConnecting) handleConnectAsync()
|
||||
},
|
||||
[isConnecting, client, setIsConnecting, connect, chainConfig, broadcast, sign, simulate],
|
||||
[
|
||||
isConnecting,
|
||||
client,
|
||||
setIsConnecting,
|
||||
connect,
|
||||
chainConfig,
|
||||
broadcast,
|
||||
sign,
|
||||
simulate,
|
||||
disconnect,
|
||||
],
|
||||
)
|
||||
|
||||
const handleMobileConnect = useCallback(
|
||||
@ -105,6 +126,9 @@ export default function WalletConnecting(props: Props) {
|
||||
userDomain: undefined,
|
||||
focusComponent: {
|
||||
component: <WalletSelect />,
|
||||
onClose: () => {
|
||||
disconnect({ chainId: chainConfig.id })
|
||||
},
|
||||
},
|
||||
})
|
||||
return
|
||||
@ -144,6 +168,9 @@ export default function WalletConnecting(props: Props) {
|
||||
}}
|
||||
/>
|
||||
),
|
||||
onClose: () => {
|
||||
disconnect({ chainId: chainConfig.id })
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@ -161,6 +188,7 @@ export default function WalletConnecting(props: Props) {
|
||||
broadcast,
|
||||
sign,
|
||||
simulate,
|
||||
disconnect,
|
||||
],
|
||||
)
|
||||
|
||||
@ -172,6 +200,9 @@ export default function WalletConnecting(props: Props) {
|
||||
userDomain: undefined,
|
||||
focusComponent: {
|
||||
component: <WalletSelect />,
|
||||
onClose: () => {
|
||||
disconnect({ chainId: chainConfig.id })
|
||||
},
|
||||
},
|
||||
})
|
||||
return
|
||||
@ -188,7 +219,15 @@ export default function WalletConnecting(props: Props) {
|
||||
return
|
||||
}
|
||||
handleConnect(provider.id)
|
||||
}, [handleConnect, isConnecting, providerId, providers, handleMobileConnect])
|
||||
}, [
|
||||
handleConnect,
|
||||
isConnecting,
|
||||
providerId,
|
||||
providers,
|
||||
handleMobileConnect,
|
||||
disconnect,
|
||||
chainConfig.id,
|
||||
])
|
||||
|
||||
return (
|
||||
<FullOverlayContent
|
||||
|
@ -13,6 +13,7 @@ import { WALLETS } from 'constants/wallets'
|
||||
import useStore from 'store'
|
||||
import { WalletID } from 'types/enums/wallet'
|
||||
import { isAndroid, isIOS, isMobile } from 'utils/mobile'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
|
||||
interface Props {
|
||||
error?: ErrorObject
|
||||
@ -52,7 +53,7 @@ function WalletOption(props: WalletOptionProps) {
|
||||
}
|
||||
|
||||
export default function WalletSelect(props: Props) {
|
||||
const chainConfig = useStore((s) => s.chainConfig)
|
||||
const chainConfig = useChainConfig()
|
||||
const { extensionProviders, mobileProviders, mobileConnect } = useShuttle()
|
||||
const [qrCodeUrl, setQRCodeUrl] = useState('')
|
||||
const [error, setError] = useState(props.error)
|
||||
|
@ -1,5 +1,4 @@
|
||||
import AssetRate from 'components/common/assets/AssetRate'
|
||||
import { byDenom } from 'utils/array'
|
||||
|
||||
export const APY_META = { accessorKey: 'apy', header: 'APY', meta: { className: 'w-30' } }
|
||||
|
||||
@ -14,7 +13,8 @@ export default function Apr(props: Props) {
|
||||
const { markets, type, denom, apy } = props
|
||||
|
||||
if (apy === 0) return <p className='w-full text-xs text-right number'>–</p>
|
||||
const isEnabled = markets.find(byDenom(denom))?.borrowEnabled ?? false
|
||||
const isEnabled =
|
||||
markets.find((market) => market.asset.denom === props.denom)?.borrowEnabled ?? false
|
||||
|
||||
return (
|
||||
<AssetRate
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { Row } from '@tanstack/react-table'
|
||||
import classNames from 'classnames'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { getAmountChangeColor } from 'components/account/AccountBalancesTable/functions'
|
||||
import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
@ -27,10 +28,9 @@ export const sizeSortingFn = (a: Row<AccountBalanceRow>, b: Row<AccountBalanceRo
|
||||
|
||||
export default function Size(props: Props) {
|
||||
const { amountChange, type, size } = props
|
||||
const color = useMemo(() => getAmountChangeColor(type, amountChange), [amountChange, type])
|
||||
|
||||
if (type === 'vault') return <p className='text-xs text-right number'>–</p>
|
||||
|
||||
const color = getAmountChangeColor(type, amountChange)
|
||||
const className = classNames('text-xs text-right', color)
|
||||
const allowZero = !amountChange.isZero()
|
||||
|
||||
@ -47,6 +47,7 @@ export default function Size(props: Props) {
|
||||
const formattedAmount = formatAmountToPrecision(size, MAX_AMOUNT_DECIMALS)
|
||||
const minimumAmount = allowZero ? 0 : MIN_AMOUNT
|
||||
const lowAmount = formattedAmount === 0 ? minimumAmount : Math.max(formattedAmount, MIN_AMOUNT)
|
||||
|
||||
return (
|
||||
<FormattedNumber
|
||||
className={className}
|
||||
|
@ -13,7 +13,7 @@ import Value, {
|
||||
VALUE_META,
|
||||
valueBalancesSortingFn,
|
||||
} from 'components/account/AccountBalancesTable/Columns/Value'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import useStore from 'store'
|
||||
|
||||
@ -21,7 +21,8 @@ export default function useAccountBalancesColumns(
|
||||
account: Account,
|
||||
showLiquidationPrice?: boolean,
|
||||
) {
|
||||
const { data: markets } = useMarketAssets()
|
||||
const markets = useMarkets()
|
||||
|
||||
const updatedAccount = useStore((s) => s.updatedAccount)
|
||||
|
||||
const { computeLiquidationPrice } = useHealthComputer(updatedAccount ?? account)
|
||||
|
@ -58,7 +58,6 @@ export function getVaultAccountBalanceRow(
|
||||
}
|
||||
|
||||
export function getAmountChangeColor(type: PositionType, amount: BigNumber) {
|
||||
if (type === 'perp') return ''
|
||||
if (type === 'borrow') {
|
||||
if (amount.isGreaterThan(0)) return 'text-loss'
|
||||
if (amount.isLessThan(0)) return 'text-profit'
|
||||
|
@ -37,6 +37,7 @@ export default function useAccountBalanceData(props: Props) {
|
||||
? hlsStrategies.find((strategy) => strategy.denoms.deposit === asset.denom)?.apy ?? 0
|
||||
: 0
|
||||
const prevDeposit = updatedAccount ? account?.deposits.find(byDenom(deposit.denom)) : deposit
|
||||
|
||||
deposits.push(
|
||||
getAssetAccountBalanceRow('deposit', asset, prices, assets, deposit, apy, prevDeposit),
|
||||
)
|
||||
|
@ -2,16 +2,16 @@ import BigNumber from 'bignumber.js'
|
||||
import classNames from 'classnames'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
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 { BN_ZERO, MAX_AMOUNT_DECIMALS } from 'constants/math'
|
||||
import { ORACLE_DENOM } from 'constants/oracle'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import useStore from 'store'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
|
@ -8,6 +8,7 @@ import AccountDetailsLeverage from 'components/account/AccountDetails/AccountDet
|
||||
import Skeleton from 'components/account/AccountDetails/Skeleton'
|
||||
import AccountPerpPositionTable from 'components/account/AccountPerpPositionTable'
|
||||
import { HealthGauge } from 'components/account/Health/HealthGauge'
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
import EscButton from 'components/common/Button/EscButton'
|
||||
import { glowElement } from 'components/common/Button/utils'
|
||||
import Card from 'components/common/Card'
|
||||
@ -15,6 +16,7 @@ import DisplayCurrency from 'components/common/DisplayCurrency'
|
||||
import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
import { ThreeDots } from 'components/common/Icons'
|
||||
import Text from 'components/common/Text'
|
||||
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
|
||||
import { DEFAULT_SETTINGS } from 'constants/defaultSettings'
|
||||
import { LocalStorageKeys } from 'constants/localStorageKeys'
|
||||
import { ORACLE_DENOM } from 'constants/oracle'
|
||||
@ -24,10 +26,8 @@ import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useLocalStorage from 'hooks/localStorage/useLocalStorage'
|
||||
import useAccountId from 'hooks/useAccountId'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import useStore from 'store'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
|
@ -10,7 +10,7 @@ import Text from 'components/common/Text'
|
||||
import WalletBridges from 'components/Wallet/WalletBridges'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useBaseAsset from 'hooks/assets/useBasetAsset'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useAutoLend from 'hooks/useAutoLend'
|
||||
import { useUpdatedAccount } from 'hooks/useUpdatedAccount'
|
||||
import useWalletBalances from 'hooks/useWalletBalances'
|
||||
@ -35,7 +35,8 @@ export default function AccountFundContent(props: Props) {
|
||||
const { autoLendEnabledAccountIds } = useAutoLend()
|
||||
const isLending = autoLendEnabledAccountIds.includes(props.accountId)
|
||||
const [fundingAssets, setFundingAssets] = useState<BNCoin[]>([])
|
||||
const { data: marketAssets } = useMarketAssets()
|
||||
const markets = useMarkets()
|
||||
|
||||
const { data: walletBalances } = useWalletBalances(props.address)
|
||||
const { simulateDeposits } = useUpdatedAccount(props.account)
|
||||
const baseAsset = useBaseAsset()
|
||||
@ -127,7 +128,7 @@ export default function AccountFundContent(props: Props) {
|
||||
const depositCapReachedCoins = useMemo(() => {
|
||||
const depositCapReachedCoins: BNCoin[] = []
|
||||
fundingAssets.forEach((asset) => {
|
||||
const marketAsset = marketAssets.find(byDenom(asset.denom))
|
||||
const marketAsset = markets.find((market) => market.asset.denom === asset.denom)
|
||||
if (!marketAsset) return
|
||||
|
||||
const capLeft = getCapLeftWithBuffer(marketAsset.cap)
|
||||
@ -137,7 +138,7 @@ export default function AccountFundContent(props: Props) {
|
||||
depositCapReachedCoins.push(BNCoin.fromDenomAndBigNumber(asset.denom, capLeft))
|
||||
})
|
||||
return depositCapReachedCoins
|
||||
}, [fundingAssets, marketAssets])
|
||||
}, [fundingAssets, markets])
|
||||
|
||||
return (
|
||||
<>
|
||||
|
@ -2,15 +2,15 @@ import { useCallback, useMemo } from 'react'
|
||||
|
||||
import AccountFundFullPage from 'components/account/AccountFund/AccountFundFullPage'
|
||||
import Skeleton from 'components/account/AccountList/Skeleton'
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
import Button from 'components/common/Button'
|
||||
import { ArrowDownLine, ArrowUpLine, TrashBin } from 'components/common/Icons'
|
||||
import SwitchAutoLend from 'components/common/Switch/SwitchAutoLend'
|
||||
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
|
||||
import useAccount from 'hooks/accounts/useAccount'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import useStore from 'store'
|
||||
import { calculateAccountApr, calculateAccountBalanceValue } from 'utils/accounts'
|
||||
|
@ -16,7 +16,7 @@ interface Props {
|
||||
}
|
||||
|
||||
function LabelAndValue(props: { label: string; children: ReactNode; className?: string }) {
|
||||
const { label, children, className } = props
|
||||
const { label, children } = props
|
||||
|
||||
return (
|
||||
<div className='flex items-center justify-between'>
|
||||
@ -58,6 +58,7 @@ function TooltipContent(props: Props) {
|
||||
|
||||
export default function Asset(props: Props) {
|
||||
const { row } = props
|
||||
|
||||
return (
|
||||
<Tooltip content={<TooltipContent row={row} />} type='info'>
|
||||
<Text size='xs' className='flex items-center gap-1 no-wrap group/asset hover:cursor-help'>
|
||||
|
@ -5,21 +5,21 @@ import AccountBalancesTable from 'components/account/AccountBalancesTable'
|
||||
import AccountComposition from 'components/account/AccountComposition'
|
||||
import AccountPerpPositionTable from 'components/account/AccountPerpPositionTable'
|
||||
import HealthBar from 'components/account/Health/HealthBar'
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
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 { DEFAULT_SETTINGS } from 'constants/defaultSettings'
|
||||
import { LocalStorageKeys } from 'constants/localStorageKeys'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import { ORACLE_DENOM } from 'constants/oracle'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useLocalStorage from 'hooks/localStorage/useLocalStorage'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import useStore from 'store'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
@ -38,7 +38,6 @@ export default function AccountSummary(props: Props) {
|
||||
const { data: prices } = usePrices()
|
||||
const assets = useAllAssets()
|
||||
const updatedAccount = useStore((s) => s.updatedAccount)
|
||||
const chainConfig = useStore((s) => s.chainConfig)
|
||||
const accountBalance = useMemo(
|
||||
() =>
|
||||
props.account
|
||||
@ -104,7 +103,7 @@ export default function AccountSummary(props: Props) {
|
||||
renderSubTitle: () => <></>,
|
||||
},
|
||||
]
|
||||
if (chainConfig.perps)
|
||||
if (props.account.perps.length > 0)
|
||||
itemsArray.push({
|
||||
title: 'Perp Positions',
|
||||
renderContent: () =>
|
||||
@ -122,7 +121,6 @@ export default function AccountSummary(props: Props) {
|
||||
borrowAssetsData,
|
||||
lendingAssetsData,
|
||||
props.isHls,
|
||||
chainConfig.perps,
|
||||
handleToggle,
|
||||
accountSummaryTabs,
|
||||
])
|
||||
|
@ -1,8 +1,8 @@
|
||||
import AvailableBorrowingsTable from 'components/borrow/Table/AvailableBorrowingsTable'
|
||||
import DepositedBorrowingsTable from 'components/borrow/Table/DepositedBorrowingsTable'
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useBorrowEnabledAssets from 'hooks/assets/useBorrowEnabledAssets'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
|
||||
export default function Borrowings() {
|
||||
const data = useBorrowMarketAssetsTableData()
|
||||
@ -30,10 +30,18 @@ function Fallback() {
|
||||
max: 0,
|
||||
liq: 0,
|
||||
},
|
||||
liquidity: null,
|
||||
marketDepositAmount: BN_ZERO,
|
||||
liquidity: BN_ZERO,
|
||||
marketLiquidityRate: 0,
|
||||
marketLiquidityAmount: BN_ZERO,
|
||||
cap: {
|
||||
denom: asset.denom,
|
||||
max: BN_ZERO,
|
||||
used: BN_ZERO,
|
||||
},
|
||||
debt: BN_ZERO,
|
||||
borrowEnabled: true,
|
||||
depositEnabled: true,
|
||||
deposits: BN_ZERO,
|
||||
accountDebt: BN_ZERO,
|
||||
}))
|
||||
|
||||
return <AvailableBorrowingsTable data={data} isLoading />
|
||||
|
@ -16,15 +16,9 @@ export const debtSortingFn = (
|
||||
): number => {
|
||||
const assetA = a.original.asset
|
||||
const assetB = b.original.asset
|
||||
if (!a.original.debt || !b.original.debt) return 0
|
||||
const assetAPrice = (a.original.liquidity?.value ?? BN_ZERO).div(
|
||||
a.original.liquidity?.amount ?? BN_ZERO,
|
||||
)
|
||||
const assetBPrice = (b.original.liquidity?.value ?? BN_ZERO).div(
|
||||
b.original.liquidity?.amount ?? BN_ZERO,
|
||||
)
|
||||
const debtA = a.original.debt.times(assetAPrice).shiftedBy(-assetA.decimals)
|
||||
const debtB = b.original.debt.times(assetBPrice).shiftedBy(-assetB.decimals)
|
||||
if (!a.original.accountDebt || !b.original.accountDebt) return 0
|
||||
const debtA = a.original.accountDebt.shiftedBy(-assetA.decimals)
|
||||
const debtB = b.original.accountDebt.shiftedBy(-assetB.decimals)
|
||||
return debtA.minus(debtB).toNumber()
|
||||
}
|
||||
|
||||
@ -38,5 +32,5 @@ export default function Debt(props: Props) {
|
||||
|
||||
if (!asset) return null
|
||||
|
||||
return <AmountAndValue asset={asset} amount={props.data?.debt ?? BN_ZERO} />
|
||||
return <AmountAndValue asset={asset} amount={props.data?.accountDebt ?? BN_ZERO} />
|
||||
}
|
||||
|
@ -19,8 +19,8 @@ export const liquiditySortingFn = (
|
||||
): number => {
|
||||
const assetA = a.original.asset
|
||||
const assetB = b.original.asset
|
||||
const liquidityA = demagnify(a.original.liquidity?.amount ?? 0, assetA)
|
||||
const liquidityB = demagnify(b.original.liquidity?.amount ?? 0, assetB)
|
||||
const liquidityA = demagnify(a.original.liquidity ?? 0, assetA)
|
||||
const liquidityB = demagnify(b.original.liquidity ?? 0, assetB)
|
||||
|
||||
return liquidityA - liquidityB
|
||||
}
|
||||
@ -35,9 +35,9 @@ export default function Liquidity(props: Props) {
|
||||
|
||||
if (!asset) return null
|
||||
|
||||
if (liquidity === null) {
|
||||
if (liquidity.isZero()) {
|
||||
return <Loading />
|
||||
}
|
||||
|
||||
return <AmountAndValue asset={asset} amount={liquidity.amount ?? BN_ZERO} />
|
||||
return <AmountAndValue asset={asset} amount={liquidity ?? BN_ZERO} />
|
||||
}
|
||||
|
@ -0,0 +1,38 @@
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
|
||||
export default function useBorrowMarketAssetsTableData() {
|
||||
const account = useCurrentAccount()
|
||||
const markets = useMarkets()
|
||||
|
||||
return useMemo((): {
|
||||
accountBorrowedAssets: BorrowMarketTableData[]
|
||||
availableAssets: BorrowMarketTableData[]
|
||||
allAssets: BorrowMarketTableData[]
|
||||
} => {
|
||||
const accountBorrowedAssets: BorrowMarketTableData[] = [],
|
||||
availableAssets: BorrowMarketTableData[] = []
|
||||
|
||||
markets
|
||||
.filter((market) => market.borrowEnabled)
|
||||
.forEach((market) => {
|
||||
const debt = account?.debts?.find((debt) => debt.denom === market.asset.denom)
|
||||
|
||||
const borrowMarketAsset: BorrowMarketTableData = {
|
||||
...market,
|
||||
accountDebt: debt?.amount,
|
||||
}
|
||||
;(borrowMarketAsset.accountDebt ? accountBorrowedAssets : availableAssets).push(
|
||||
borrowMarketAsset,
|
||||
)
|
||||
})
|
||||
|
||||
return {
|
||||
accountBorrowedAssets,
|
||||
availableAssets,
|
||||
allAssets: [...accountBorrowedAssets, ...availableAssets],
|
||||
}
|
||||
}, [account?.debts, markets])
|
||||
}
|
@ -2,28 +2,27 @@ import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
import Text from 'components/common/Text'
|
||||
|
||||
interface Props {
|
||||
availableLiquidity: BigNumber
|
||||
asset: BorrowAsset
|
||||
market: Market
|
||||
}
|
||||
|
||||
export default function AvailableLiquidityMessage(props: Props) {
|
||||
const { availableLiquidity, asset } = props
|
||||
const { market } = props
|
||||
return (
|
||||
<div className='flex items-start p-4 bg-white/5'>
|
||||
<div className='flex flex-col gap-2'>
|
||||
<Text size='sm'>Not enough Liquidty!</Text>
|
||||
<Text size='xs' className='text-white/40'>
|
||||
{`This transaction would exceed the amount of ${asset.symbol} currently available for borrowing on Mars.`}
|
||||
{`This transaction would exceed the amount of ${market.asset.symbol} currently available for borrowing on Mars.`}
|
||||
</Text>
|
||||
|
||||
<div className='flex gap-1'>
|
||||
<Text size='xs'>Available Liquidity:</Text>
|
||||
<FormattedNumber
|
||||
amount={availableLiquidity.toNumber()}
|
||||
amount={market.liquidity.toNumber()}
|
||||
options={{
|
||||
abbreviated: true,
|
||||
decimals: asset.decimals,
|
||||
suffix: ` ${asset.symbol}`,
|
||||
decimals: market.asset.decimals,
|
||||
suffix: ` ${market.asset.symbol}`,
|
||||
}}
|
||||
className='text-xs text-white/60'
|
||||
/>
|
||||
|
@ -63,8 +63,8 @@ export default function DisplayCurrency(props: Props) {
|
||||
? amount > 0
|
||||
? '+'
|
||||
: amount < 0
|
||||
? '-'
|
||||
: ''
|
||||
? '-'
|
||||
: ''
|
||||
: ''
|
||||
const approximationPrefix = isApproximation ? '~ ' : ''
|
||||
const smallerThanPrefix = isLessThanACent && !showZero ? '< ' : ''
|
||||
|
@ -23,9 +23,7 @@ export default function MarketDetails({ row, type }: Props) {
|
||||
symbol: displayCurrencySymbol,
|
||||
} = useDisplayCurrencyPrice()
|
||||
|
||||
const { asset, ltv, marketDepositAmount, marketLiquidityAmount } = row.original
|
||||
|
||||
const totalBorrowed = marketDepositAmount.minus(marketLiquidityAmount)
|
||||
const { asset, ltv, cap, liquidity, deposits, debt } = row.original
|
||||
|
||||
const details: Detail[] = useMemo(() => {
|
||||
const isDollar = displayCurrencySymbol === '$'
|
||||
@ -33,7 +31,7 @@ export default function MarketDetails({ row, type }: Props) {
|
||||
function getLendingMarketDetails() {
|
||||
return [
|
||||
{
|
||||
amount: convertAmount(asset, marketDepositAmount).toNumber(),
|
||||
amount: convertAmount(asset, deposits).toNumber(),
|
||||
options: {
|
||||
abbreviated: true,
|
||||
suffix: isDollar ? undefined : ` ${displayCurrencySymbol}`,
|
||||
@ -62,9 +60,7 @@ export default function MarketDetails({ row, type }: Props) {
|
||||
title: 'Oracle Price',
|
||||
},
|
||||
{
|
||||
amount: totalBorrowed.isZero()
|
||||
? 0
|
||||
: totalBorrowed.dividedBy(marketDepositAmount).multipliedBy(100).toNumber(),
|
||||
amount: debt.isZero() ? 0 : debt.dividedBy(deposits).multipliedBy(100).toNumber(), // TODO: Check if this number is still correct
|
||||
options: { minDecimals: 2, maxDecimals: 2, suffix: '%' },
|
||||
title: 'Utilization Rate',
|
||||
},
|
||||
@ -74,7 +70,7 @@ export default function MarketDetails({ row, type }: Props) {
|
||||
function getBorrowMarketDetails() {
|
||||
return [
|
||||
{
|
||||
amount: convertAmount(asset, totalBorrowed).toNumber(),
|
||||
amount: convertAmount(asset, debt).toNumber(),
|
||||
options: {
|
||||
abbreviated: true,
|
||||
suffix: isDollar ? undefined : ` ${displayCurrencySymbol}`,
|
||||
@ -93,9 +89,7 @@ export default function MarketDetails({ row, type }: Props) {
|
||||
title: 'Oracle Price',
|
||||
},
|
||||
{
|
||||
amount: totalBorrowed.isZero()
|
||||
? 0
|
||||
: totalBorrowed.dividedBy(marketDepositAmount).multipliedBy(100).toNumber(),
|
||||
amount: debt.isZero() ? 0 : debt.dividedBy(deposits).multipliedBy(100).toNumber(), // TODO: CHeck if this is still correct
|
||||
options: { minDecimals: 2, maxDecimals: 2, suffix: '%' },
|
||||
title: 'Utilization Rate',
|
||||
},
|
||||
@ -105,14 +99,15 @@ export default function MarketDetails({ row, type }: Props) {
|
||||
if (type === 'lend') return getLendingMarketDetails()
|
||||
return getBorrowMarketDetails()
|
||||
}, [
|
||||
type,
|
||||
asset,
|
||||
marketDepositAmount,
|
||||
ltv,
|
||||
totalBorrowed,
|
||||
displayCurrencySymbol,
|
||||
type,
|
||||
convertAmount,
|
||||
asset,
|
||||
debt,
|
||||
ltv.max,
|
||||
ltv.liq,
|
||||
getConversionRate,
|
||||
deposits,
|
||||
])
|
||||
|
||||
return (
|
||||
|
@ -7,9 +7,8 @@ import { ChevronDown, ChevronRight } from 'components/common/Icons'
|
||||
import Text from 'components/common/Text'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useAsset from 'hooks/assets/useAsset'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import { BNCoin } from 'types/classes/BNCoin'
|
||||
import { byDenom } from 'utils/array'
|
||||
import { formatValue } from 'utils/formatters'
|
||||
|
||||
interface Props extends SelectOption {
|
||||
@ -22,7 +21,8 @@ interface Props extends SelectOption {
|
||||
|
||||
export default function Option(props: Props) {
|
||||
const isCoin = !!props.denom
|
||||
const { data: marketAssets } = useMarketAssets()
|
||||
const markets = useMarkets()
|
||||
|
||||
const asset = useAsset(props.denom || '')
|
||||
|
||||
function handleOnClick(value: string | undefined) {
|
||||
@ -32,7 +32,7 @@ export default function Option(props: Props) {
|
||||
|
||||
if (isCoin) {
|
||||
const balance = props.amount ?? BN_ZERO
|
||||
const marketAsset = marketAssets.find(byDenom(props.denom || ''))
|
||||
const marketAsset = markets.find((market) => market.asset.denom === props.denom)
|
||||
|
||||
if (!asset || !marketAsset) return null
|
||||
|
||||
|
@ -15,6 +15,7 @@ import useTransactionStore from 'hooks/useTransactionStore'
|
||||
import useStore from 'store'
|
||||
import { formatAmountWithSymbol } from 'utils/formatters'
|
||||
import { BN } from 'utils/helpers'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
|
||||
const toastBodyClasses = classNames(
|
||||
'flex flex-wrap w-full group/transaction',
|
||||
@ -60,7 +61,7 @@ export default function Toaster() {
|
||||
LocalStorageKeys.REDUCE_MOTION,
|
||||
DEFAULT_SETTINGS.reduceMotion,
|
||||
)
|
||||
const chainConfig = useStore((s) => s.chainConfig)
|
||||
const chainConfig = useChainConfig()
|
||||
|
||||
const toast = useStore((s) => s.toast)
|
||||
const { addTransaction } = useTransactionStore()
|
||||
|
@ -54,7 +54,7 @@ export default function TokenInput(props: Props) {
|
||||
<div
|
||||
data-testid='token-input-wrapper'
|
||||
className={classNames(
|
||||
'relative isolate z-20 box-content flex h-11 w-full rounded-sm border bg-white/5',
|
||||
'relative isolate z-40 box-content flex h-11 w-full rounded-sm border bg-white/5',
|
||||
props.warningMessages.length ? 'border-warning' : 'border-white/20',
|
||||
)}
|
||||
>
|
||||
|
@ -5,17 +5,17 @@ import DepositedVaultsTable from 'components/earn/farm/Table/DepositedVaultsTabl
|
||||
import VaultUnlockBanner from 'components/earn/farm/VaultUnlockBanner'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useAccountId from 'hooks/useAccountId'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
import useDepositedVaults from 'hooks/useDepositedVaults'
|
||||
import useVaults from 'hooks/useVaults'
|
||||
import useStore from 'store'
|
||||
import { VaultStatus } from 'types/enums/vault'
|
||||
|
||||
function Content() {
|
||||
const accountId = useAccountId()
|
||||
const { data: vaults } = useVaults()
|
||||
const { data: depositedVaults } = useDepositedVaults(accountId || '')
|
||||
|
||||
const vaultMetaData = useStore((s) => s.chainConfig.vaults)
|
||||
const chainConfig = useChainConfig()
|
||||
const vaultMetaData = chainConfig.vaults
|
||||
|
||||
const { deposited, available } = useMemo(() => {
|
||||
return vaultMetaData.reduce(
|
||||
@ -60,7 +60,8 @@ function Content() {
|
||||
}
|
||||
|
||||
function Fallback() {
|
||||
const vaults = useStore((s) => s.chainConfig.vaults)
|
||||
const chainConfig = useChainConfig()
|
||||
const vaults = chainConfig.vaults
|
||||
const mockVaults: Vault[] = vaults.map((vault) => ({
|
||||
...vault,
|
||||
apy: null,
|
||||
|
@ -58,7 +58,7 @@ export default function LendingActionButtons(props: Props) {
|
||||
|
||||
return (
|
||||
<div className='flex flex-row space-x-2'>
|
||||
{accountLendValue && (
|
||||
{accountLendValue && accountLendValue.isGreaterThan(0) && (
|
||||
<Button
|
||||
leftIcon={<ArrowDownLine />}
|
||||
iconClassName={iconClassnames}
|
||||
|
@ -1,8 +1,8 @@
|
||||
import AvailableLendsTable from 'components/earn/lend/Table/AvailableLendsTable'
|
||||
import DepositedLendsTable from 'components/earn/lend/Table/DepositedLendsTable'
|
||||
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useLendEnabledAssets from 'hooks/assets/useLendEnabledAssets'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
import useMarketEnabledAssets from 'hooks/assets/useMarketEnabledAssets'
|
||||
|
||||
export default function Lends() {
|
||||
const { accountLentAssets, availableAssets, allAssets } = useLendingMarketAssetsTableData()
|
||||
@ -19,14 +19,15 @@ export default function Lends() {
|
||||
}
|
||||
|
||||
function Fallback() {
|
||||
const assets = useLendEnabledAssets()
|
||||
const assets = useMarketEnabledAssets()
|
||||
|
||||
const data: LendingMarketTableData[] = assets.map((asset) => ({
|
||||
asset,
|
||||
marketDepositCap: BN_ZERO,
|
||||
borrowEnabled: false,
|
||||
marketDepositAmount: BN_ZERO,
|
||||
marketLiquidityAmount: BN_ZERO,
|
||||
borrowEnabled: true,
|
||||
depositEnabled: true,
|
||||
debt: BN_ZERO,
|
||||
deposits: BN_ZERO,
|
||||
liquidity: BN_ZERO,
|
||||
cap: {
|
||||
max: BN_ZERO,
|
||||
used: BN_ZERO,
|
||||
|
@ -1,50 +1,35 @@
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useMarketDeposits from 'hooks/markets/useMarketDeposits'
|
||||
import useMarketLiquidities from 'hooks/markets/useMarketLiquidities'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useCurrentAccountLends from 'hooks/useCurrentAccountLends'
|
||||
import useDepositEnabledMarkets from 'hooks/useDepositEnabledMarkets'
|
||||
import useDisplayCurrencyPrice from 'hooks/useDisplayCurrencyPrice'
|
||||
import { byDenom } from 'utils/array'
|
||||
import { BN } from 'utils/helpers'
|
||||
|
||||
function useLendingMarketAssetsTableData(): {
|
||||
accountLentAssets: LendingMarketTableData[]
|
||||
availableAssets: LendingMarketTableData[]
|
||||
allAssets: LendingMarketTableData[]
|
||||
} {
|
||||
const markets = useDepositEnabledMarkets()
|
||||
const markets = useMarkets()
|
||||
const accountLentAmounts = useCurrentAccountLends()
|
||||
const { data: marketLiquidities } = useMarketLiquidities()
|
||||
const { data: marketDeposits } = useMarketDeposits()
|
||||
const { convertAmount } = useDisplayCurrencyPrice()
|
||||
const assets = useAllAssets()
|
||||
|
||||
return useMemo(() => {
|
||||
const accountLentAssets: LendingMarketTableData[] = [],
|
||||
availableAssets: LendingMarketTableData[] = []
|
||||
|
||||
markets.forEach(({ denom, cap, ltv, apy, borrowEnabled }) => {
|
||||
const asset = assets.find(byDenom(denom)) as Asset
|
||||
const marketDepositAmount = BN(marketDeposits.find(byDenom(denom))?.amount ?? 0)
|
||||
const marketLiquidityAmount = BN(marketLiquidities.find(byDenom(denom))?.amount ?? 0)
|
||||
const accountLentAmount = accountLentAmounts.find(byDenom(denom))?.amount ?? BN_ZERO
|
||||
markets.forEach((market) => {
|
||||
const accountLentAmount =
|
||||
accountLentAmounts.find(byDenom(market.asset.denom))?.amount ?? BN_ZERO
|
||||
const accountLentValue = accountLentAmount
|
||||
? convertAmount(asset, accountLentAmount)
|
||||
? convertAmount(market.asset, accountLentAmount)
|
||||
: undefined
|
||||
|
||||
const lendingMarketAsset: LendingMarketTableData = {
|
||||
asset,
|
||||
marketDepositAmount,
|
||||
...market,
|
||||
accountLentValue,
|
||||
accountLentAmount,
|
||||
marketLiquidityAmount,
|
||||
apy,
|
||||
ltv,
|
||||
borrowEnabled,
|
||||
cap,
|
||||
}
|
||||
|
||||
if (lendingMarketAsset.accountLentAmount?.isZero()) {
|
||||
@ -59,7 +44,7 @@ function useLendingMarketAssetsTableData(): {
|
||||
availableAssets,
|
||||
allAssets: [...accountLentAssets, ...availableAssets],
|
||||
}
|
||||
}, [markets, assets, marketDeposits, marketLiquidities, accountLentAmounts, convertAmount])
|
||||
}, [markets, accountLentAmounts, convertAmount])
|
||||
}
|
||||
|
||||
export default useLendingMarketAssetsTableData
|
@ -1,16 +1,16 @@
|
||||
import classNames from 'classnames'
|
||||
import { isDesktop } from 'react-device-detect'
|
||||
import { useMemo } from 'react'
|
||||
import { isDesktop } from 'react-device-detect'
|
||||
|
||||
import Wallet from 'components/Wallet'
|
||||
import AccountMenu from 'components/account/AccountMenu'
|
||||
import EscButton from 'components/common/Button/EscButton'
|
||||
import { Coins, CoinsSwap } from 'components/common/Icons'
|
||||
import Settings from 'components/common/Settings'
|
||||
import ChainSelect from 'components/header/ChainSelect'
|
||||
import OracleResyncButton from 'components/header/OracleResyncButton'
|
||||
import { Coins, CoinsSwap } from 'components/common/Icons'
|
||||
import DesktopNavigation from 'components/header/navigation/DesktopNavigation'
|
||||
import RewardsCenter from 'components/header/RewardsCenter'
|
||||
import Settings from 'components/common/Settings'
|
||||
import Wallet from 'components/Wallet'
|
||||
import DesktopNavigation from 'components/header/navigation/DesktopNavigation'
|
||||
import useAccountId from 'hooks/useAccountId'
|
||||
import useStore from 'store'
|
||||
import { WalletID } from 'types/enums/wallet'
|
||||
@ -83,7 +83,10 @@ export default function DesktopHeader() {
|
||||
<ChainSelect />
|
||||
</div>
|
||||
)}
|
||||
<EscButton onClick={handleCloseFocusMode} />
|
||||
<div className='flex gap-4'>
|
||||
{!address && <ChainSelect />}
|
||||
<EscButton onClick={handleCloseFocusMode} />
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className='flex gap-4'>
|
||||
|
@ -3,10 +3,11 @@ import classNames from 'classnames'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import Button from 'components/common/Button'
|
||||
import { menuTree } from 'components/header/DesktopHeader'
|
||||
import { ChevronDown, Logo } from 'components/common/Icons'
|
||||
import { menuTree } from 'components/header/DesktopHeader'
|
||||
import { NavLink } from 'components/header/navigation/NavLink'
|
||||
import { NavMenu } from 'components/header/navigation/NavMenu'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
import useToggle from 'hooks/useToggle'
|
||||
import useStore from 'store'
|
||||
import { WalletID } from 'types/enums/wallet'
|
||||
@ -19,7 +20,7 @@ export function getIsActive(pages: string[]) {
|
||||
export default function DesktopNavigation() {
|
||||
const [showMenu, setShowMenu] = useToggle()
|
||||
const { recentWallet } = useShuttle()
|
||||
const chainConfig = useStore((s) => s.chainConfig)
|
||||
const chainConfig = useChainConfig()
|
||||
const walletId = (recentWallet?.providerId as WalletID) ?? WalletID.Keplr
|
||||
const focusComponent = useStore((s) => s.focusComponent)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Navigate, Outlet, Route, Routes as RoutesWrapper } from 'react-router-dom'
|
||||
|
||||
import Layout from 'pages/_layout'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
import BorrowPage from 'pages/BorrowPage'
|
||||
import ExecuteMessagePage from 'pages/ExecuteMessagePage'
|
||||
import FarmPage from 'pages/FarmPage'
|
||||
@ -12,10 +12,10 @@ import PerpsPage from 'pages/PerpsPage'
|
||||
import PortfolioAccountPage from 'pages/PortfolioAccountPage'
|
||||
import PortfolioPage from 'pages/PortfolioPage'
|
||||
import TradePage from 'pages/TradePage'
|
||||
import useStore from 'store'
|
||||
import Layout from 'pages/_layout'
|
||||
|
||||
export default function Routes() {
|
||||
const chainConfig = useStore((s) => s.chainConfig)
|
||||
const chainConfig = useChainConfig()
|
||||
return (
|
||||
<RoutesWrapper>
|
||||
<Route
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { Suspense, useMemo } from 'react'
|
||||
|
||||
import Table from 'components/common/Table'
|
||||
import { NAME_META } from 'components/hls/Farm/Table/Columns/Name'
|
||||
import useAvailableColumns from 'components/hls/Farm/Table/Columns/useAvailableColumns'
|
||||
import Table from 'components/common/Table'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
import useVaults from 'hooks/useVaults'
|
||||
import useStore from 'store'
|
||||
|
||||
const title = 'Available HLS Vaults'
|
||||
|
||||
@ -34,7 +34,8 @@ export default function AvailableHlsVaults() {
|
||||
|
||||
function Fallback() {
|
||||
const columns = useAvailableColumns({ isLoading: true })
|
||||
const vaults = useStore((s) => s.chainConfig.vaults)
|
||||
const chainConfig = useChainConfig()
|
||||
const vaults = chainConfig.vaults
|
||||
const mockVaults: Vault[] = vaults
|
||||
.filter((v) => v.isHls)
|
||||
.map((vault) => ({
|
||||
|
@ -2,7 +2,7 @@ import React from 'react'
|
||||
|
||||
import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
import Loading from 'components/common/Loading'
|
||||
import useMarketBorrowings from 'hooks/markets/useMarketBorrowings'
|
||||
import useMarket from 'hooks/markets/useMarket'
|
||||
|
||||
export const APY_META = { accessorKey: 'apy', header: 'APY Range' }
|
||||
|
||||
@ -12,10 +12,7 @@ interface Props {
|
||||
|
||||
export default function Apy(props: Props) {
|
||||
const { vault } = props
|
||||
const { data: marketBorrowings } = useMarketBorrowings()
|
||||
|
||||
const borrowRate = marketBorrowings.find((asset) => asset.denom === vault.hls?.borrowDenom)
|
||||
?.borrowRate
|
||||
const borrowRate = useMarket(vault.hls?.borrowDenom || '')?.apy.borrow
|
||||
|
||||
if (vault.apy === null || borrowRate === null) return <Loading />
|
||||
|
||||
|
@ -20,7 +20,7 @@ export default function HLSStakingIntro() {
|
||||
leftIcon={<PlusSquared />}
|
||||
onClick={(e) => {
|
||||
e.preventDefault()
|
||||
window.open(DocURL.FARM_INTRO_URL, '_blank')
|
||||
window.open(DocURL.HLS_INTRO_URL, '_blank')
|
||||
}}
|
||||
color='secondary'
|
||||
/>
|
||||
|
@ -5,7 +5,7 @@ import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
import Loading from 'components/common/Loading'
|
||||
import TitleAndSubCell from 'components/common/TitleAndSubCell'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useBorrowAsset from 'hooks/useBorrowAsset'
|
||||
import useMarket from 'hooks/markets/useMarket'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import { calculateAccountLeverage } from 'utils/accounts'
|
||||
import { getLeveragedApy } from 'utils/math'
|
||||
@ -27,7 +27,7 @@ interface Props {
|
||||
export default function ActiveAPY(props: Props) {
|
||||
const { data: prices } = usePrices()
|
||||
const assets = useAllAssets()
|
||||
const borrowRate = useBorrowAsset(props.account.strategy.denoms.borrow)?.borrowRate
|
||||
const borrowRate = useMarket(props.account.strategy.denoms.borrow)?.apy.borrow
|
||||
|
||||
const leverage = useMemo(
|
||||
() => calculateAccountLeverage(props.account, prices, assets),
|
||||
|
@ -3,7 +3,7 @@ import { Row } from '@tanstack/react-table'
|
||||
import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
import Loading from 'components/common/Loading'
|
||||
import TitleAndSubCell from 'components/common/TitleAndSubCell'
|
||||
import useBorrowAsset from 'hooks/useBorrowAsset'
|
||||
import useMarket from 'hooks/markets/useMarket'
|
||||
import { getLeveragedApy } from 'utils/math'
|
||||
|
||||
export const APY_RANGE_META = { header: 'APY range', accessorKey: 'apy' }
|
||||
@ -19,7 +19,7 @@ interface Props {
|
||||
|
||||
export default function ApyRange(props: Props) {
|
||||
const baseApy = props.strategy.apy
|
||||
const borrowRate = useBorrowAsset(props.strategy.denoms.borrow)?.borrowRate
|
||||
const borrowRate = useMarket(props.strategy.denoms.borrow)?.apy.borrow
|
||||
|
||||
if (!borrowRate || props.isLoading || !baseApy) {
|
||||
return <Loading />
|
||||
|
@ -5,6 +5,7 @@ export const PERP_TYPE_META = { accessorKey: 'tradeDirection', header: 'Side' }
|
||||
type Props = {
|
||||
tradeDirection: TradeDirection
|
||||
className?: string
|
||||
directionChange?: boolean
|
||||
}
|
||||
|
||||
export default function TradeDirection(props: Props) {
|
||||
|
@ -1,5 +1,6 @@
|
||||
import classNames from 'classnames'
|
||||
import { useState } from 'react'
|
||||
import debounce from 'lodash.debounce'
|
||||
import { useEffect, useMemo, useState } from 'react'
|
||||
|
||||
import { Cross } from 'components/common/Icons'
|
||||
import LeverageSlider from 'components/common/LeverageSlider'
|
||||
@ -11,12 +12,16 @@ 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,
|
||||
@ -26,6 +31,36 @@ export function PerpsManageModule() {
|
||||
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 (
|
||||
@ -47,7 +82,7 @@ export function PerpsManageModule() {
|
||||
/>
|
||||
<AssetAmountInput
|
||||
label='Amount'
|
||||
max={BN(100000)} // TODO: Implement max calculation
|
||||
max={BN(1000000)} // TODO: Implement max calculation
|
||||
amount={amount ?? previousAmount}
|
||||
setAmount={setAmount}
|
||||
asset={asset}
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { useState } from 'react'
|
||||
import debounce from 'lodash.debounce'
|
||||
import { useEffect, useMemo, useState } from 'react'
|
||||
|
||||
import Card from 'components/common/Card'
|
||||
import LeverageSlider from 'components/common/LeverageSlider'
|
||||
@ -13,7 +14,10 @@ import AssetAmountInput from 'components/trade/TradeModule/SwapForm/AssetAmountI
|
||||
import OrderTypeSelector from 'components/trade/TradeModule/SwapForm/OrderTypeSelector'
|
||||
import { AvailableOrderType } from 'components/trade/TradeModule/SwapForm/OrderTypeSelector/types'
|
||||
import { BN_ZERO } from 'constants/math'
|
||||
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
|
||||
import usePerpsAsset from 'hooks/perps/usePerpsAsset'
|
||||
import { useUpdatedAccount } from 'hooks/useUpdatedAccount'
|
||||
import getPerpsPosition from 'utils/getPerpsPosition'
|
||||
import { BN } from 'utils/helpers'
|
||||
|
||||
export function PerpsModule() {
|
||||
@ -21,23 +25,43 @@ export function PerpsModule() {
|
||||
const [tradeDirection, setTradeDirection] = useState<TradeDirection>('long')
|
||||
const { perpsAsset } = usePerpsAsset()
|
||||
const [leverage, setLeverage] = useState<number>(1)
|
||||
|
||||
const account = useCurrentAccount()
|
||||
const { simulatePerps, addedPerps } = useUpdatedAccount(account)
|
||||
const [amount, setAmount] = useState<BigNumber>(BN_ZERO)
|
||||
|
||||
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(perpsAsset, amount, tradeDirection)
|
||||
debouncedUpdateAccount(perpsPosition)
|
||||
}, [debouncedUpdateAccount, amount, perpsAsset, tradeDirection])
|
||||
|
||||
if (!perpsAsset) return null
|
||||
|
||||
return (
|
||||
<Card
|
||||
contentClassName='px-4 gap-5 flex flex-col h-full pb-4'
|
||||
title={<AssetSelectorPerps asset={perpsAsset} />}
|
||||
className='mb-4 h-full'
|
||||
className='h-full mb-4'
|
||||
>
|
||||
<OrderTypeSelector selected={selectedOrderType} onChange={setSelectedOrderType} />
|
||||
|
||||
<TradeDirectionSelector direction={tradeDirection} onChangeDirection={setTradeDirection} />
|
||||
<AssetAmountInput
|
||||
label='Amount'
|
||||
max={BN(1000)} // TODO: Implement max calculation
|
||||
max={BN(1000000)} // TODO: Implement max calculation
|
||||
amount={amount}
|
||||
setAmount={setAmount}
|
||||
asset={perpsAsset}
|
||||
|
@ -1,12 +1,12 @@
|
||||
import React, { Suspense, useMemo } from 'react'
|
||||
|
||||
import AccountBalancesTable from 'components/account/AccountBalancesTable'
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
import Card from 'components/common/Card'
|
||||
import TableSkeleton from 'components/common/Table/TableSkeleton'
|
||||
import Text from 'components/common/Text'
|
||||
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
|
||||
import useAccount from 'hooks/accounts/useAccount'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
|
||||
interface Props {
|
||||
accountId: string
|
||||
|
@ -1,15 +1,15 @@
|
||||
import { Suspense, useMemo } from 'react'
|
||||
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
import DisplayCurrency from 'components/common/DisplayCurrency'
|
||||
import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
|
||||
import Skeleton from 'components/portfolio/SummarySkeleton'
|
||||
import { MAX_AMOUNT_DECIMALS } from 'constants/math'
|
||||
import useAccount from 'hooks/accounts/useAccount'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import { getAccountSummaryStats } from 'utils/accounts'
|
||||
import { DEFAULT_PORTFOLIO_STATS } from 'utils/constants'
|
||||
|
@ -2,8 +2,10 @@ import classNames from 'classnames'
|
||||
import { ReactNode, useMemo } from 'react'
|
||||
import { NavLink, useParams, useSearchParams } from 'react-router-dom'
|
||||
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
import Loading from 'components/common/Loading'
|
||||
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
|
||||
import Skeleton from 'components/portfolio/Card/Skeleton'
|
||||
import { DEFAULT_SETTINGS } from 'constants/defaultSettings'
|
||||
import { LocalStorageKeys } from 'constants/localStorageKeys'
|
||||
@ -12,10 +14,8 @@ import useAccount from 'hooks/accounts/useAccount'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useLocalStorage from 'hooks/localStorage/useLocalStorage'
|
||||
import useAccountId from 'hooks/useAccountId'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import {
|
||||
calculateAccountApr,
|
||||
|
@ -1,15 +1,15 @@
|
||||
import { useMemo } from 'react'
|
||||
import { useParams } from 'react-router-dom'
|
||||
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
import DisplayCurrency from 'components/common/DisplayCurrency'
|
||||
import { FormattedNumber } from 'components/common/FormattedNumber'
|
||||
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
|
||||
import SummarySkeleton from 'components/portfolio/SummarySkeleton'
|
||||
import { MAX_AMOUNT_DECIMALS } from 'constants/math'
|
||||
import useAccounts from 'hooks/accounts/useAccounts'
|
||||
import useAllAssets from 'hooks/assets/useAllAssets'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useHLSStakingAssets from 'hooks/useHLSStakingAssets'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import useStore from 'store'
|
||||
import { getAccountSummaryStats } from 'utils/accounts'
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import AccountBalancesTable from 'components/account/AccountBalancesTable'
|
||||
import useBorrowMarketAssetsTableData from 'components/borrow/Table/useBorrowMarketAssetsTableData'
|
||||
import useLendingMarketAssetsTableData from 'components/earn/lend/Table/useLendingMarketAssetsTableData'
|
||||
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
|
||||
import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData'
|
||||
import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData'
|
||||
|
||||
export default function AccountDetailsCard() {
|
||||
const account = useCurrentAccount()
|
||||
|
@ -6,10 +6,9 @@ import Text from 'components/common/Text'
|
||||
import AssetSelectorItem from 'components/trade/TradeModule/AssetSelector/AssetSelectorItem'
|
||||
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
|
||||
import useMarketEnabledAssets from 'hooks/assets/useMarketEnabledAssets'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarketDeposits from 'hooks/markets/useMarketDeposits'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import useStore from 'store'
|
||||
import { getMergedBalancesForAsset } from 'utils/accounts'
|
||||
import { byDenom } from 'utils/array'
|
||||
import { sortAssetsOrPairs } from 'utils/assets'
|
||||
@ -23,11 +22,11 @@ interface Props {
|
||||
}
|
||||
|
||||
export default function AssetList(props: Props) {
|
||||
const baseDenom = useStore((s) => s.chainConfig.assets[0].denom)
|
||||
const chainConfig = useChainConfig()
|
||||
const baseDenom = chainConfig.assets[0].denom
|
||||
const { assets, type, isOpen, toggleOpen, onChangeAsset } = props
|
||||
const account = useCurrentAccount()
|
||||
const { data: marketAssets } = useMarketAssets()
|
||||
const { data: marketDeposits } = useMarketDeposits()
|
||||
const markets = useMarkets()
|
||||
const { data: prices } = usePrices()
|
||||
const marketEnabledAssets = useMarketEnabledAssets()
|
||||
const balances = useMemo(() => {
|
||||
@ -36,8 +35,8 @@ export default function AssetList(props: Props) {
|
||||
}, [account, marketEnabledAssets])
|
||||
|
||||
const sortedAssets = useMemo(
|
||||
() => sortAssetsOrPairs(assets, prices, marketDeposits, balances, baseDenom) as Asset[],
|
||||
[assets, prices, marketDeposits, balances, baseDenom],
|
||||
() => sortAssetsOrPairs(assets, prices, markets, balances, baseDenom) as Asset[],
|
||||
[assets, prices, markets, balances, baseDenom],
|
||||
)
|
||||
|
||||
return (
|
||||
@ -63,9 +62,7 @@ export default function AssetList(props: Props) {
|
||||
balances={balances}
|
||||
key={`${type}-${asset.symbol}`}
|
||||
onSelect={props.onChangeAsset}
|
||||
depositCap={
|
||||
type === 'buy' ? marketAssets?.find(byDenom(asset.denom))?.cap : undefined
|
||||
}
|
||||
depositCap={type === 'buy' ? markets?.find(byDenom(asset.denom))?.cap : undefined}
|
||||
asset={asset}
|
||||
/>
|
||||
))}
|
||||
|
@ -5,8 +5,7 @@ import AssetSelectorItem from 'components/trade/TradeModule/AssetSelector/AssetS
|
||||
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
|
||||
import useBaseAsset from 'hooks/assets/useBasetAsset'
|
||||
import useMarketEnabledAssets from 'hooks/assets/useMarketEnabledAssets'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarketDeposits from 'hooks/markets/useMarketDeposits'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import usePrices from 'hooks/usePrices'
|
||||
import { getMergedBalancesForAsset } from 'utils/accounts'
|
||||
import { byDenom } from 'utils/array'
|
||||
@ -22,8 +21,7 @@ interface Props {
|
||||
|
||||
export default function PairsList(props: Props) {
|
||||
const account = useCurrentAccount()
|
||||
const { data: marketAssets } = useMarketAssets()
|
||||
const { data: marketDeposits } = useMarketDeposits()
|
||||
const markets = useMarkets()
|
||||
const { data: prices } = usePrices()
|
||||
const baseDenom = useBaseAsset().denom
|
||||
const marketEnabledAssets = useMarketEnabledAssets()
|
||||
@ -44,8 +42,8 @@ export default function PairsList(props: Props) {
|
||||
}, [props.stables, props.assets])
|
||||
|
||||
const sortedPairs = useMemo(
|
||||
() => sortAssetsOrPairs(pairs, prices, marketDeposits, balances, baseDenom) as AssetPair[],
|
||||
[pairs, prices, marketDeposits, balances, baseDenom],
|
||||
() => sortAssetsOrPairs(pairs, prices, markets, balances, baseDenom) as AssetPair[],
|
||||
[pairs, prices, markets, balances, baseDenom],
|
||||
)
|
||||
|
||||
return (
|
||||
@ -62,7 +60,7 @@ export default function PairsList(props: Props) {
|
||||
balances={balances}
|
||||
key={`${assetPair.buy.symbol}-${assetPair.sell.symbol}`}
|
||||
onSelect={props.onChangeAssetPair}
|
||||
depositCap={marketAssets?.find(byDenom(assetPair.buy.denom))?.cap}
|
||||
depositCap={markets?.find(byDenom(assetPair.buy.denom))?.cap}
|
||||
asset={assetPair.buy}
|
||||
sellAsset={assetPair.sell}
|
||||
/>
|
||||
|
@ -1,5 +1,5 @@
|
||||
import classNames from 'classnames'
|
||||
import React, { useMemo } from 'react'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import ActionButton from 'components/common/Button/ActionButton'
|
||||
import { CircularProgress } from 'components/common/CircularProgress'
|
||||
@ -108,7 +108,7 @@ export default function TradeSummary(props: Props) {
|
||||
<FormattedNumber
|
||||
className='inline'
|
||||
amount={liquidationPrice}
|
||||
options={{ abbreviated: true, prefix: `${props.buyAsset.symbol} = $ ` }}
|
||||
options={{ abbreviated: true, prefix: `${props.buyAsset.symbol} = $` }}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
@ -22,8 +22,7 @@ import { BN_ZERO } from 'constants/math'
|
||||
import useCurrentAccount from 'hooks/accounts/useCurrentAccount'
|
||||
import useMarketEnabledAssets from 'hooks/assets/useMarketEnabledAssets'
|
||||
import useLocalStorage from 'hooks/localStorage/useLocalStorage'
|
||||
import useMarketAssets from 'hooks/markets/useMarketAssets'
|
||||
import useMarketBorrowings from 'hooks/markets/useMarketBorrowings'
|
||||
import useMarkets from 'hooks/markets/useMarkets'
|
||||
import useAutoLend from 'hooks/useAutoLend'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
import useHealthComputer from 'hooks/useHealthComputer'
|
||||
@ -53,8 +52,7 @@ export default function SwapForm(props: Props) {
|
||||
const [slippage] = useLocalStorage(LocalStorageKeys.SLIPPAGE, DEFAULT_SETTINGS.slippage)
|
||||
const { computeMaxSwapAmount } = useHealthComputer(account)
|
||||
const [tradeDirection, setTradeDirection] = useState<TradeDirection>('long')
|
||||
const { data: borrowAssets } = useMarketBorrowings()
|
||||
const { data: marketAssets } = useMarketAssets()
|
||||
const markets = useMarkets()
|
||||
|
||||
const [inputAsset, outputAsset] = useMemo(() => {
|
||||
if (isAdvanced) return [sellAsset, buyAsset]
|
||||
@ -65,7 +63,8 @@ export default function SwapForm(props: Props) {
|
||||
inputAsset.denom,
|
||||
outputAsset.denom,
|
||||
)
|
||||
const isBorrowEnabled = !!marketAssets.find(byDenom(inputAsset.denom))?.borrowEnabled
|
||||
const isBorrowEnabled = !!markets.find((market) => market.asset.denom === inputAsset.denom)
|
||||
?.borrowEnabled
|
||||
const isRepayable = !!account?.debts.find(byDenom(outputAsset.denom))
|
||||
const [isMarginChecked, setMarginChecked] = useToggle(isBorrowEnabled ? useMargin : false)
|
||||
const [isAutoRepayChecked, setAutoRepayChecked] = useToggle(
|
||||
@ -87,7 +86,7 @@ export default function SwapForm(props: Props) {
|
||||
const assets = useMarketEnabledAssets()
|
||||
|
||||
const depositCapReachedCoins: BNCoin[] = useMemo(() => {
|
||||
const outputMarketAsset = marketAssets.find(byDenom(outputAsset.denom))
|
||||
const outputMarketAsset = markets.find((market) => market.asset.denom === outputAsset.denom)
|
||||
|
||||
if (!outputMarketAsset) return []
|
||||
|
||||
@ -97,7 +96,7 @@ export default function SwapForm(props: Props) {
|
||||
}
|
||||
|
||||
return []
|
||||
}, [marketAssets, outputAsset.denom, outputAssetAmount])
|
||||
}, [markets, outputAsset.denom, outputAssetAmount])
|
||||
|
||||
const onChangeInputAmount = useCallback(
|
||||
(amount: BigNumber) => {
|
||||
@ -305,9 +304,9 @@ export default function SwapForm(props: Props) {
|
||||
modal,
|
||||
])
|
||||
|
||||
const borrowAsset = useMemo(
|
||||
() => borrowAssets.find(byDenom(inputAsset.denom)),
|
||||
[borrowAssets, inputAsset.denom],
|
||||
const borrowMarket = useMemo(
|
||||
() => markets.find((market) => market.asset.denom === inputAsset.denom),
|
||||
[markets, inputAsset.denom],
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
@ -324,8 +323,8 @@ export default function SwapForm(props: Props) {
|
||||
)
|
||||
|
||||
const availableLiquidity = useMemo(
|
||||
() => borrowAsset?.liquidity?.amount ?? BN_ZERO,
|
||||
[borrowAsset?.liquidity?.amount],
|
||||
() => borrowMarket?.liquidity ?? BN_ZERO,
|
||||
[borrowMarket?.liquidity],
|
||||
)
|
||||
|
||||
const isSwapDisabled = useMemo(
|
||||
@ -349,7 +348,7 @@ export default function SwapForm(props: Props) {
|
||||
<MarginToggle
|
||||
checked={isMarginChecked}
|
||||
onChange={handleMarginToggleChange}
|
||||
disabled={!borrowAsset?.isMarket}
|
||||
disabled={!borrowMarket?.borrowEnabled}
|
||||
borrowAssetSymbol={inputAsset.symbol}
|
||||
/>
|
||||
<Divider />
|
||||
@ -411,11 +410,8 @@ export default function SwapForm(props: Props) {
|
||||
className='p-4 bg-white/5'
|
||||
/>
|
||||
|
||||
{borrowAsset && borrowAmount.isGreaterThanOrEqualTo(availableLiquidity) && (
|
||||
<AvailableLiquidityMessage
|
||||
availableLiquidity={borrowAsset?.liquidity?.amount ?? BN_ZERO}
|
||||
asset={borrowAsset}
|
||||
/>
|
||||
{borrowMarket && borrowAmount.isGreaterThanOrEqualTo(availableLiquidity) && (
|
||||
<AvailableLiquidityMessage market={borrowMarket} />
|
||||
)}
|
||||
{isAdvanced ? (
|
||||
<AssetAmountInput
|
||||
@ -450,7 +446,7 @@ export default function SwapForm(props: Props) {
|
||||
<TradeSummary
|
||||
sellAsset={inputAsset}
|
||||
buyAsset={outputAsset}
|
||||
borrowRate={borrowAsset?.borrowRate}
|
||||
borrowRate={borrowMarket?.apy.borrow}
|
||||
buyAction={handleBuyClick}
|
||||
buyButtonDisabled={isSwapDisabled}
|
||||
showProgressIndicator={isConfirming || isRouteLoading}
|
||||
|
15
src/configs/assets/milkTIA.ts
Normal file
@ -0,0 +1,15 @@
|
||||
const milkTIA: AssetMetaData = {
|
||||
symbol: 'milkTIA',
|
||||
id: 'milkTIA',
|
||||
name: 'MilkyWay liquid staked TIA',
|
||||
color: '#E69EFE',
|
||||
logo: '/images/tokens/milktia.svg',
|
||||
decimals: 6,
|
||||
hasOraclePrice: true,
|
||||
isEnabled: true,
|
||||
isMarket: true,
|
||||
isDisplayCurrency: true,
|
||||
isAutoLendEnabled: false,
|
||||
}
|
||||
|
||||
export default milkTIA
|
@ -1,8 +1,7 @@
|
||||
import Osmosis1 from 'configs/chains/osmosis/osmosis-1'
|
||||
import { NETWORK } from 'types/enums/network'
|
||||
import { ChainInfoID } from 'types/enums/wallet'
|
||||
|
||||
import Osmosis1 from './osmosis-1'
|
||||
|
||||
const Devnet: ChainConfig = {
|
||||
...Osmosis1,
|
||||
id: ChainInfoID.OsmosisDevnet,
|
||||
|
@ -11,6 +11,7 @@ import OSMO_WBTC from 'configs/assets/lp/OSMO_WBTC'
|
||||
import OSMO_WETH from 'configs/assets/lp/OSMO_WETH'
|
||||
import stATOM_ATOM from 'configs/assets/lp/stATOM_ATOM'
|
||||
import MARS from 'configs/assets/MARS'
|
||||
import milkTIA from 'configs/assets/milkTIA'
|
||||
import OSMO from 'configs/assets/OSMO'
|
||||
import stATOM from 'configs/assets/stATOM'
|
||||
import stOSMO from 'configs/assets/stOSMO'
|
||||
@ -98,6 +99,11 @@ const ASSETS = [
|
||||
poolId: 1245,
|
||||
denom: 'ibc/831F0B1BBB1D08A2B75311892876D71565478C532967545476DF4C2D7492E48C',
|
||||
},
|
||||
{
|
||||
...milkTIA,
|
||||
poolId: 1335,
|
||||
denom: 'factory/osmo1f5vfcph2dvfeqcqkhetwv75fda69z7e5c2dldm3kvgj23crkv6wqcn47a0/umilkTIA',
|
||||
},
|
||||
OSMO_ATOM,
|
||||
OSMO_USDC,
|
||||
OSMO_WETH,
|
||||
|
@ -6,7 +6,8 @@ import useChainConfig from 'hooks/useChainConfig'
|
||||
export default function useAccountIdsAndKinds(address?: string, suspense = true, noHls = false) {
|
||||
const chainConfig = useChainConfig()
|
||||
return useSWR(
|
||||
`chains/${chainConfig.id}/wallets/${address}/account-ids${noHls && '-without-hls'}`,
|
||||
address &&
|
||||
`chains/${chainConfig.id}/wallets/${address}/account-ids${noHls ? '-without-hls' : ''}`,
|
||||
() =>
|
||||
getAccountIds(chainConfig, address).then((accountIdsAndKinds) => {
|
||||
if (noHls) {
|
||||
|
@ -8,7 +8,7 @@ export default function useAccounts(kind: AccountKind, address?: string, suspens
|
||||
const chainConfig = useChainConfig()
|
||||
|
||||
return useSWR(
|
||||
`chains/${chainConfig.id}/accounts/${kind}`,
|
||||
address && `chains/${chainConfig.id}/accounts/${kind}`,
|
||||
() => getAccounts(kind, chainConfig, address),
|
||||
{
|
||||
suspense: suspense,
|
||||
|
@ -1,5 +1,6 @@
|
||||
import useStore from 'store'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
|
||||
export default function useAllAssets() {
|
||||
return useStore((s) => s.chainConfig.assets)
|
||||
const chainConfig = useChainConfig()
|
||||
return chainConfig.assets
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
import useStore from 'store'
|
||||
import useChainConfig from 'hooks/useChainConfig'
|
||||
|
||||
export default function useBaseAsset() {
|
||||
const assets = useStore((s) => s.chainConfig.assets)
|
||||
const chainConfig = useChainConfig()
|
||||
const assets = chainConfig.assets
|
||||
|
||||
return assets[0]
|
||||
}
|
||||
|