diff --git a/.github/workflows/mstable-dev.yml b/.github/workflows/mstable-dev.yml
deleted file mode 100644
index c0639cd2..00000000
--- a/.github/workflows/mstable-dev.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-name: mstable Dev
-
-on:
- workflow_dispatch:
- push:
- branches:
- - main
- paths:
- - 'apps/mstable/**'
- - 'libs/mstable/**'
- - 'libs/shared/**'
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-env:
- NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
-
-jobs:
- build_and_publish:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- name: Checkout [main]
- with:
- fetch-depth: 0
-
- - uses: actions/setup-node@v3
- name: Setup node
- with:
- node-version: 20
- cache: 'yarn'
-
- - name: Install jq
- run: |
- sudo apt-get update
- sudo apt-get install jq
-
- - run: yarn install --frozen-lockfile
- name: Install dependencies
-
- - name: Build
- env:
- alchemyMain: ${{ secrets.ALCHEMY_FALLBACK_API_KEY }}
- alchemyFallback: ${{ secrets.ALCHEMY_FALLBACK_API_KEY }}
- walletConnectProjectId: ${{ secrets.WALLET_CONNECT_PROJECT_ID }}
- run: NX_ALCHEMY_MAIN_API_KEY=$alchemyMain NX_ALCHEMY_FALLBACK_API_KEY=$alchemyFallback NX_WALLET_CONNECT_PROJECT_ID=$walletConnectProjectId yarn nx build mstable
-
- - name: Copy Firebase mStable to Firebase
- run: cp firebase.mstable.json firebase.json
-
- - name: Firebase deploy
- uses: FirebaseExtended/action-hosting-deploy@v0
- with:
- repoToken: '${{ secrets.GITHUB_TOKEN }}'
- firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_FRONTEND_7E17F }}'
- expires: 30d
- projectId: frontend-7e17f
- channelId: dev
diff --git a/.github/workflows/mstable-main.yml b/.github/workflows/mstable-main.yml
deleted file mode 100644
index 2a70607c..00000000
--- a/.github/workflows/mstable-main.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: mstable Main
-
-on:
- workflow_dispatch:
-
-env:
- NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
-
-jobs:
- build_and_publish:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- name: Checkout [main]
- with:
- fetch-depth: 0
-
- - uses: actions/setup-node@v3
- name: Setup node
- with:
- node-version: 20
- cache: 'yarn'
-
- - name: Install jq
- run: |
- sudo apt-get update
- sudo apt-get install jq
-
- - run: yarn install --frozen-lockfile
- name: Install dependencies
-
- - name: Build
- env:
- mainnet: ${{ secrets.NX_THE_GRAPH_MV_MAINNET_URL }}
- goerli: ${{ secrets.NX_THE_GRAPH_MV_GOERLI_URL }}
- alchemyMain: ${{ secrets.ALCHEMY_MAIN_API_KEY }}
- alchemyFallback: ${{ secrets.ALCHEMY_FALLBACK_API_KEY }}
- walletConnectProjectId: ${{ secrets.WALLET_CONNECT_PROJECT_ID }}
- run: NX_THE_GRAPH_MV_MAINNET_URL=$mainnet NX_THE_GRAPH_MV_GOERLI_URL=$goerli NX_ALCHEMY_MAIN_API_KEY=$alchemyMain NX_ALCHEMY_FALLBACK_API_KEY=$alchemyFallback NX_WALLET_CONNECT_PROJECT_ID=$walletConnectProjectId yarn nx build mstable
-
- - name: Copy Firebase mStable to Firebase
- run: cp firebase.mstable.json firebase.json
-
- - name: Firebase deploy
- uses: FirebaseExtended/action-hosting-deploy@v0
- with:
- repoToken: '${{ secrets.GITHUB_TOKEN }}'
- firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_FRONTEND_7E17F }}'
- projectId: frontend-7e17f
- channelId: live
diff --git a/.github/workflows/mstable-preview.yml b/.github/workflows/mstable-preview.yml
deleted file mode 100644
index 911909e1..00000000
--- a/.github/workflows/mstable-preview.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-name: preview mStable
-
-on:
- pull_request:
- paths:
- - 'apps/mstable/**'
- - 'libs/mstable/**'
- - 'libs/shared/**'
- - 'package.json'
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-env:
- NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
-
-jobs:
- build_and_publish:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- name: Checkout
-
- - uses: actions/setup-node@v3
- name: Setup node
- with:
- node-version: 20
- cache: 'yarn'
-
- - name: webfactory/ssh-agent
- uses: webfactory/ssh-agent@v0.8.0
- with:
- 'ssh-private-key': '${{ secrets.SSH_PRIVATE_KEY }}'
-
- - name: Install jq
- run: |
- sudo apt-get update
- sudo apt-get install jq
-
- - run: yarn install --frozen-lockfile
- name: Install dependencies
-
- - name: Build
- env:
- alchemyMain: ${{ secrets.ALCHEMY_FALLBACK_API_KEY }}
- alchemyFallback: ${{ secrets.ALCHEMY_FALLBACK_API_KEY }}
- walletConnectProjectId: ${{ secrets.WALLET_CONNECT_PROJECT_ID }}
- run: NX_ALCHEMY_MAIN_API_KEY=$alchemyMain NX_ALCHEMY_FALLBACK_API_KEY=$alchemyFallback NX_WALLET_CONNECT_PROJECT_ID=$walletConnectProjectId yarn nx build mstable
-
- - name: Copy Firebase mStable to Firebase
- run: cp firebase.mstable.json firebase.json
-
- - name: Firebase deploy
- uses: FirebaseExtended/action-hosting-deploy@v0
- with:
- repoToken: '${{ secrets.GITHUB_TOKEN }}'
- firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_FRONTEND_7E17F }}'
- expires: 8d
- projectId: frontend-7e17f
diff --git a/.github/workflows/subgraph.yml b/.github/workflows/subgraph.yml
deleted file mode 100644
index 58c964e3..00000000
--- a/.github/workflows/subgraph.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: Deploy Meta Vault Subgraph
-
-on:
- push:
- branches:
- - main
- tags-ignore:
- - "**"
- paths:
- - "libs/subgraph/config/**"
- - "libs/subgraph/src/metavaults.template.ts"
- - "libs/subgraph/schema.graphql"
- - "libs/subgraph/subgraph.template"
-
-jobs:
- build_and_publish:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- - uses: actions/setup-node@v3
- with:
- node-version: 16
- cache: "yarn"
-
- - name: Build and publish subgraph
- env:
- THE_GRAPH_API_KEY: ${{ secrets.THE_GRAPH_API_KEY }}
- COMMIT_HASH: ${{ github.sha }}
- run: |
- yarn install
- yarn run nx prepare subgraph --network=mainnet
- yarn run nx build subgraph
- yarn graph deploy --studio mstable-metavault -o ./libs/subgraph/build --deploy-key $THE_GRAPH_API_KEY --version-label $COMMIT_HASH ./libs/subgraph/subgraph.yaml
-
- - name: Discord notification
- env:
- DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
- COMMIT_HASH: ${{ github.sha }}
- uses: Ilshidur/action-discord@0.3.2
- with:
- args: "🤖 New Meta Vault subgraph **{{ COMMIT_HASH }}** 🚀 The Graph: https://thegraph.com/studio/subgraph/mstable-meta-vaults/"
diff --git a/README.md b/README.md
index 56a77fae..272320a7 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ The following table lists the mStable apps included in this repository
| Status | Name | Nx project | Port | Public hosts |
| :---: | :---------------- | :--------- | :--- | :------------------------------------------------------ |
-| ✅ | Meta Vaults | `mstable` | 4200 | [Google Cloud](https://yield.mstable.org/) |
+| ✅ | dHEDGE V1 Withdraw | `dhedge` | 4200 | [Firebase](https://dhedge-v1-withdraw.web.app/) |
| ✅ | Long Term Support | `lts` | 4201 | [Google Cloud](https://withdraw.mstable.org/) |
## Quickstart
@@ -29,14 +29,14 @@ If you encounter any issues during the installation process, please refer to the
### Running an app
```bash
-yarn nx serve mstable
+yarn nx serve dhedge
yarn nx serve lts
```
### Building an app
```bash
-yarn nx run build mstable
+yarn nx run build dhedge
yarn nx run build lts
```
@@ -48,10 +48,6 @@ For detailed instructions and information on local development, please refer to
If you would like to contribute to this repository, please refer to the [Contributing Guide](./docs/CONTRIBUTING.md).
-## Subgraph
-
-To learn more about our Meta Vault Subgraph, please refer to the [Meta Vault Subgraph](./docs/SUBGRAPH.md).
-
## Contact us
If you have any questions or concerns, please join our [Discord server](https://discordapp.com/channels/525087739801239552/).
diff --git a/apps/mstable/.babelrc b/apps/mstable/.babelrc
deleted file mode 100644
index 61641ec8..00000000
--- a/apps/mstable/.babelrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "presets": [
- [
- "@nrwl/react/babel",
- {
- "runtime": "automatic"
- }
- ]
- ],
- "plugins": []
-}
diff --git a/apps/mstable/.browserslistrc b/apps/mstable/.browserslistrc
deleted file mode 100644
index f1d12df4..00000000
--- a/apps/mstable/.browserslistrc
+++ /dev/null
@@ -1,16 +0,0 @@
-# This file is used by:
-# 1. autoprefixer to adjust CSS to support the below specified browsers
-# 2. babel preset-env to adjust included polyfills
-#
-# For additional information regarding the format and rule options, please see:
-# https://github.com/browserslist/browserslist#queries
-#
-# If you need to support different browsers in production, you may tweak the list below.
-
-last 1 Chrome version
-last 1 Firefox version
-last 2 Edge major versions
-last 2 Safari major version
-last 2 iOS major versions
-Firefox ESR
-not IE 9-11 # For IE 9-11 support, remove 'not'.
\ No newline at end of file
diff --git a/apps/mstable/.eslintrc.json b/apps/mstable/.eslintrc.json
deleted file mode 100644
index 734ddace..00000000
--- a/apps/mstable/.eslintrc.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": ["plugin:@nrwl/nx/react", "../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
- "overrides": [
- {
- "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
- "rules": {}
- },
- {
- "files": ["*.ts", "*.tsx"],
- "rules": {}
- },
- {
- "files": ["*.js", "*.jsx"],
- "rules": {}
- }
- ]
-}
diff --git a/apps/mstable/i18n/en.json b/apps/mstable/i18n/en.json
deleted file mode 100644
index 58f68faa..00000000
--- a/apps/mstable/i18n/en.json
+++ /dev/null
@@ -1,686 +0,0 @@
-{
- "8ywLSf": {
- "defaultMessage": "Twitter"
- },
- "Ew5cbe": {
- "defaultMessage": "Flatcoin"
- },
- "FvmV6q": {
- "defaultMessage": "Discord"
- },
- "SOievI": {
- "defaultMessage": "Flatcoin app by dHEDGE"
- },
- "Vn76qV": {
- "defaultMessage": "Github"
- },
- "6T7RIi": {
- "defaultMessage": "BuyBack MTA"
- },
- "GH3iro": {
- "defaultMessage": "BuyBack mUSD"
- },
- "PXAur5": {
- "defaultMessage": "Withdraw"
- },
- "ovJ26C": {
- "defaultMessage": "Medium"
- },
- "sy+pv5": {
- "defaultMessage": "Email"
- },
- "+k7bPd": {
- "defaultMessage": "The selected network is not supported by this application."
- },
- "1XVJUl": {
- "defaultMessage": "Switch to {defaultChain}"
- },
- "Bak2Yy": {
- "defaultMessage": "Select from supported list"
- },
- "DRXWXB": {
- "defaultMessage": "404"
- },
- "EhET/Q": {
- "defaultMessage": "Yield app by mStable"
- },
- "Ez6tQm": {
- "defaultMessage": "Powered by dHEDGE"
- },
- "PmkP1H": {
- "defaultMessage": "Unsupported Network"
- },
- "cyR7Kh": {
- "defaultMessage": "Back"
- },
- "+U6ozc": {
- "defaultMessage": "Type"
- },
- "/54G9d": {
- "defaultMessage": "Approving Token"
- },
- "0NMLMN": {
- "defaultMessage": "My Position"
- },
- "0OPmis": {
- "defaultMessage": "Approve Position Close"
- },
- "0fFawv": {
- "defaultMessage": "Stable Position Value"
- },
- "1uz/I3": {
- "defaultMessage": "1M"
- },
- "1v6yZm": {
- "defaultMessage": "Announce Leverage Position Close"
- },
- "3xhnWF": {
- "defaultMessage": "You Spend"
- },
- "6bJGds": {
- "defaultMessage": "1W"
- },
- "8lLHeh": {
- "defaultMessage": "1Y"
- },
- "90axO4": {
- "defaultMessage": "Trade"
- },
- "AA5h7P": {
- "defaultMessage": "Performance"
- },
- "AeA4mw": {
- "defaultMessage": "Minimum Received"
- },
- "AlCWDq": {
- "defaultMessage": "Leveraged Positions"
- },
- "CB1174": {
- "defaultMessage": "Funding Rate"
- },
- "DUR59o": {
- "defaultMessage": "Total Value Locked"
- },
- "Gh1Vm9": {
- "defaultMessage": "You Receive"
- },
- "Gtmi1D": {
- "defaultMessage": "Set As Infinite"
- },
- "IB0eky": {
- "defaultMessage": "Annual percentage yield."
- },
- "ImPhdW": {
- "defaultMessage": "Order expires at"
- },
- "LGv1C5": {
- "defaultMessage": "Announced Orders"
- },
- "MLTKb6": {
- "defaultMessage": "APY"
- },
- "MQ02gW": {
- "defaultMessage": "Skew"
- },
- "NpWjvV": {
- "defaultMessage": "Trading"
- },
- "PQiNnk": {
- "defaultMessage": "Open Interest"
- },
- "Px2xWV": {
- "defaultMessage": "Open Position"
- },
- "SKB/G9": {
- "defaultMessage": "TVL"
- },
- "Ty3dr6": {
- "defaultMessage": "Entry Price"
- },
- "WCaf5C": {
- "defaultMessage": "Approve"
- },
- "X/RW9w": {
- "defaultMessage": "Slippage Tolerance"
- },
- "XnpuKy": {
- "defaultMessage": "Approve {symbol}"
- },
- "aTX7LJ": {
- "defaultMessage": "1D"
- },
- "cg1VJ2": {
- "defaultMessage": "Connect Wallet"
- },
- "d21Els": {
- "defaultMessage": "Execute"
- },
- "dlRkGS": {
- "defaultMessage": "Keeper fee"
- },
- "ehxGBh": {
- "defaultMessage": "Token Price"
- },
- "inIeEz": {
- "defaultMessage": "Margin Deposited"
- },
- "k3YWIR": {
- "defaultMessage": "Max slippage"
- },
- "kaPKOB": {
- "defaultMessage": "Insufficient balance"
- },
- "n9CFUs": {
- "defaultMessage": "Token Approval"
- },
- "oNO7VY": {
- "defaultMessage": "Flatcoin Withdraw"
- },
- "pbpdV6": {
- "defaultMessage": "Leverage"
- },
- "qcHHVw": {
- "defaultMessage": "Announce Leverage Position"
- },
- "rbrahO": {
- "defaultMessage": "Close"
- },
- "rfzzi6": {
- "defaultMessage": "Profit/Loss"
- },
- "sjr65W": {
- "defaultMessage": "Execute Order"
- },
- "tw0ig8": {
- "defaultMessage": "Executable at"
- },
- "wfUbwI": {
- "defaultMessage": "Flatcoin Deposit"
- },
- "wqlXwW": {
- "defaultMessage": "Wrong Network"
- },
- "OWWJyo": {
- "defaultMessage": "Your {symbol} tokens will be sent to the same {network} address you used."
- },
- "XW7Rd1": {
- "defaultMessage": "After redeeming your vault tokens from Ethereum, please wait while the bridge issues your {symbol} tokens."
- },
- "j5iKZ9": {
- "defaultMessage": "Burn your mUSD and receive"
- },
- "20X0BC": {
- "defaultMessage": "Transaction Cancelled"
- },
- "4K2D1N": {
- "defaultMessage": "Withdraw to stablecoins"
- },
- "5WragJ": {
- "defaultMessage": "Burn your MTA tokens to receive mStable Treasury Yield tokens"
- },
- "5eoReb": {
- "defaultMessage": "Burn MTA to receive {yield} vault tokens on Optimism at a value of {price} per MTA.
Here is the {roadmap} to help you make a better informed decision."
- },
- "8cv9D4": {
- "defaultMessage": "Next Step"
- },
- "Au/yTc": {
- "defaultMessage": "MTA Buyback"
- },
- "CuTvKy": {
- "defaultMessage": "Swap on Velodrome"
- },
- "ENufDd": {
- "defaultMessage": "MTA"
- },
- "K1NWSN": {
- "defaultMessage": "Price is more favorable on Velodrome"
- },
- "NnFu82": {
- "defaultMessage": "Withdraw your mStable Treasury Yield tokens to stables"
- },
- "URTaZg": {
- "defaultMessage": "If you burned MTA from Ethereum, please wait while the bridge issues your MTy tokens."
- },
- "WZwD4F": {
- "defaultMessage": "Burn MTA and receive MTy on Optimism"
- },
- "a42kxt": {
- "defaultMessage": "Your mStable Treasury Yield tokens are earning yield and you can hold on to them.
Optionally you can go to dHEDGE app to withdraw your MTy tokens to stablecoins."
- },
- "d7AHfy": {
- "defaultMessage": "Burn your MTA and receive stablecoins"
- },
- "iD4mN7": {
- "defaultMessage": "mStable roadmap"
- },
- "p8bsw4": {
- "defaultMessage": "Transaction Error"
- },
- "rgdwQX": {
- "defaultMessage": "Transaction Confirmed"
- },
- "sUIPLS": {
- "defaultMessage": "Burn"
- },
- "v1vY2k": {
- "defaultMessage": "Exchange rate {price} USD per MTA. This is the floor price for the MTA token, backed by the mStable Treasury Yield.
If burning MTA from Ethereum, it may take a few minutes to be issued yield tokens on Optimism."
- },
- "vclhrb": {
- "defaultMessage": "Balance: {balance}"
- },
- "w1LBDB": {
- "defaultMessage": "Sign Transaction"
- },
- "wAUtNd": {
- "defaultMessage": "Total Burned"
- },
- "xfMpIF": {
- "defaultMessage": "Withdraw to stables"
- },
- "yNEh8X": {
- "defaultMessage": "mStable Treasury Yield"
- },
- "5ObBlW": {
- "defaultMessage": "Dark Mode"
- },
- "mQHAsW": {
- "defaultMessage": "Slippage"
- },
- "mqpAbT": {
- "defaultMessage": "Show Empty"
- },
- "yuiyES": {
- "defaultMessage": "General Settings"
- },
- "/b/fRE": {
- "defaultMessage": "mStable Withdraw"
- },
- "47FYwb": {
- "defaultMessage": "Cancel"
- },
- "8q2nwN": {
- "defaultMessage": "mAssets"
- },
- "R0V7vk": {
- "defaultMessage": "This app simplifies the process of exiting all mStable products and positions.
By connecting your wallet, you can easily access your remaining balances and initiate the withdrawal process."
- },
- "SRo6uF": {
- "defaultMessage": "Meta Vaults"
- },
- "U6qGuO": {
- "defaultMessage": "Position"
- },
- "XSdWHA": {
- "defaultMessage": "Redeem"
- },
- "Zab6JA": {
- "defaultMessage": "Withdraw Cost"
- },
- "aBbsWU": {
- "defaultMessage": "Connect your wallet to easily access your remaining balances and initiate the withdrawal process."
- },
- "bAqUW1": {
- "defaultMessage": "Withdrawing"
- },
- "bnF8kf": {
- "defaultMessage": "Current Base Fee"
- },
- "cA+gxG": {
- "defaultMessage": "Legacy Pools"
- },
- "djdjSw": {
- "defaultMessage": "Exit {name}"
- },
- "hPs6J+": {
- "defaultMessage": "Exit Position"
- },
- "hesDHZ": {
- "defaultMessage": "{fee} GWEI"
- },
- "hk3oTU": {
- "defaultMessage": "{gtBal, plural, =0 {No Balance} =1 {# Item} other {# Items}}"
- },
- "jvo0vs": {
- "defaultMessage": "Save"
- },
- "rSsD3z": {
- "defaultMessage": "Switch Network"
- },
- "s2zphO": {
- "defaultMessage": "Vaults"
- },
- "sLLUMv": {
- "defaultMessage": "Switch your wallet to {name} to use this contract."
- },
- "sk4xVe": {
- "defaultMessage": "Feeder Pools"
- },
- "vsI1HY": {
- "defaultMessage": "Redeem Vault"
- },
- "yzP6XU": {
- "defaultMessage": "MTA Governance"
- },
- "zS899f": {
- "defaultMessage": "Allow {slippage} of slippage"
- },
- "7JlauX": {
- "defaultMessage": "Explore"
- },
- "7ynb1z": {
- "defaultMessage": "{value} GWEI"
- },
- "Am173P": {
- "defaultMessage": "The current price of 1 token. Return is represented as an increase in token price value."
- },
- "Do29Mx": {
- "defaultMessage": "P&L"
- },
- "H5+NAX": {
- "defaultMessage": "Balance"
- },
- "Imiiiv": {
- "defaultMessage": "No Data Available"
- },
- "LAazWH": {
- "defaultMessage": "Account token balance"
- },
- "LiHQih": {
- "defaultMessage": "Coming Soon"
- },
- "P1xtEU": {
- "defaultMessage": "Earn diversified yield across DeFi."
- },
- "P8Xs51": {
- "defaultMessage": "ROI"
- },
- "PxG1Yq": {
- "defaultMessage": "Total Value Locked in vault"
- },
- "ULHfQE": {
- "defaultMessage": "The current price of 1 share. Return is represented as a increase in share price value."
- },
- "WKCp0D": {
- "defaultMessage": "Asset"
- },
- "YC/ZXg": {
- "defaultMessage": "Share price"
- },
- "YZUa24": {
- "defaultMessage": "Earn optimized, automated, and diversified yield across DeFi."
- },
- "g6UhRO": {
- "defaultMessage": "Vault name"
- },
- "qNhf66": {
- "defaultMessage": "Perf"
- },
- "yFvqzw": {
- "defaultMessage": "Meta Harvester"
- },
- "zFNxtv": {
- "defaultMessage": "Protocols"
- },
- "zKtTJT": {
- "defaultMessage": "Return on investment since Vault inception."
- },
- "/r/mPc": {
- "defaultMessage": "Sending order to your wallet"
- },
- "0/F4cj": {
- "defaultMessage": "The {symbol} Vault charges a {fee} exit fee."
- },
- "1vtEYS": {
- "defaultMessage": "Flexible min slippage value that is likely enough to process the transaction."
- },
- "2Dq322": {
- "defaultMessage": "You can sell your {symbol} tokens in {cooldownEndsInTime}"
- },
- "2fed1y": {
- "defaultMessage": "A deposit into a vault requires an approval transaction.
Set as infinite to avoid approving multiple times and save gas on subsequent deposits.
Deactiviting is safer, but would require approval on every subsequent deposit and hence results in higher gas cost."
- },
- "42xcXv": {
- "defaultMessage": "Ensure that you understand the risks associated with high slippage and are comfortable proceeding with the trade."
- },
- "47GkyG": {
- "defaultMessage": "Minimum deposit is ${minDepositUSD}"
- },
- "4cX/rf": {
- "defaultMessage": "Management Fee"
- },
- "5gorcB": {
- "defaultMessage": "Minimum received"
- },
- "9AgXoz": {
- "defaultMessage": "Sell"
- },
- "9RAHhM": {
- "defaultMessage": "Strategy & Risks"
- },
- "Ar5obI": {
- "defaultMessage": "No balance"
- },
- "C9fFq/": {
- "defaultMessage": "We recommend 1%, but usually it will be < 1%."
- },
- "EnCOBJ": {
- "defaultMessage": "Buy"
- },
- "FGu/VK": {
- "defaultMessage": "The following strategy pipeline is used in {symbol}"
- },
- "HOsSgX": {
- "defaultMessage": "More info"
- },
- "IBFkFM": {
- "defaultMessage": "You {operation}"
- },
- "LDz7xI": {
- "defaultMessage": "Assets that are used by this vault."
- },
- "MMvFMz": {
- "defaultMessage": "{symbol} token is no longer active. Please withdraw from them."
- },
- "MqZGhr": {
- "defaultMessage": "Vault Performance"
- },
- "ObjU4O": {
- "defaultMessage": "Mining"
- },
- "Pk6qK4": {
- "defaultMessage": "Fees that are charged by this vault."
- },
- "S0seuN": {
- "defaultMessage": "Recommended min slippage"
- },
- "TL3yAY": {
- "defaultMessage": "Position Value"
- },
- "VyTtUL": {
- "defaultMessage": "The {symbol} Vault charges a {fee} entry fee."
- },
- "X/I7ge": {
- "defaultMessage": "You will receive no less than this amount."
- },
- "b1gVRq": {
- "defaultMessage": "Minimum deposit in USD."
- },
- "d1uESJ": {
- "defaultMessage": "Assets"
- },
- "eTGEXC": {
- "defaultMessage": "Approve {slippage}% max slippage"
- },
- "fJjSsb": {
- "defaultMessage": "Performance Fee"
- },
- "fhnmhR": {
- "defaultMessage": "Vault strategy pipeline."
- },
- "hAz8Yo": {
- "defaultMessage": "$"
- },
- "i0ofjL": {
- "defaultMessage": "Entry fee"
- },
- "in6iXe": {
- "defaultMessage": "Deposit/Withdraw"
- },
- "kZcqo0": {
- "defaultMessage": "%"
- },
- "korbaG": {
- "defaultMessage": "The following assets are used in this strategy and therefore are exposed (partially) to their risk:"
- },
- "le9cwx": {
- "defaultMessage": "Exit Fee"
- },
- "lubHZr": {
- "defaultMessage": "Setting up transaction"
- },
- "obSWjR": {
- "defaultMessage": "Please switch your wallet network to {name} to interact with {symbol} vault."
- },
- "pWv8jk": {
- "defaultMessage": "Entry Fee"
- },
- "pwg4Vp": {
- "defaultMessage": "Analytics on dHEDGE"
- },
- "qZbedW": {
- "defaultMessage": "Fees"
- },
- "qzgBwU": {
- "defaultMessage": "The {symbol} Vault charges a {fee} performance upon underlying asset appreciation."
- },
- "r2pety": {
- "defaultMessage": "Please consider the following before confirming:"
- },
- "sHyaBT": {
- "defaultMessage": "This pool is currently private."
- },
- "t3IytM": {
- "defaultMessage": "Minimum deposit"
- },
- "tivZoE": {
- "defaultMessage": "The {symbol} Vault charges a {fee} management fee."
- },
- "uBC8fe": {
- "defaultMessage": "Entry fees are collected during deposit. The entry fee is distributed to all token holders to pay for rebalancing costs after new deposits."
- },
- "x8vY9w": {
- "defaultMessage": "Not Connected"
- },
- "xrKHS6": {
- "defaultMessage": "Success"
- },
- "yL//gV": {
- "defaultMessage": "Be aware that the final amount of assets you receive may be different from the initially quoted value."
- },
- "yap3X0": {
- "defaultMessage": "When the \"Auto\" option is selected, the app tests various slippage ranges by starting with lower values and gradually increasing until it reaches a point where the transaction is likely to succeed.
Alternatively, a custom slippage value can be set, but it is recommended to keep it within the range of 1-2%."
- },
- "zGHadw": {
- "defaultMessage": "Strategy"
- },
- "7CAm2s": {
- "defaultMessage": "mStable is a protocol for yield aggregation and diversification."
- },
- "LMK5Bl": {
- "defaultMessage": "The Uniswap Protocol is an open-source protocol for providing liquidity and trading ERC20 tokens on Ethereum."
- },
- "ePxmfo": {
- "defaultMessage": "Aave is a decentralised non-custodial liquidity market protocol where users can participate as depositors or borrowers."
- },
- "meocUp": {
- "defaultMessage": "Convex is a platform that boosts rewards for CRV stakers and liquidity providers alike, all in a simple and easy to use interface."
- },
- "vS/YSY": {
- "defaultMessage": "Curve is an exchange liquidity pool on Ethereum designed for: extremely efficient stablecoin trading, low risk, supplemental fee income for liquidity providers, without an opportunity cost."
- },
- "+vVZ/G": {
- "defaultMessage": "Connect"
- },
- "6GZbSi": {
- "defaultMessage": "The selected network is not supported by the application."
- },
- "X0zKZO": {
- "defaultMessage": "Connected User"
- },
- "qj1uhz": {
- "defaultMessage": "Disconnect"
- },
- "+6JrYn": {
- "defaultMessage": "Make sure your wallet is on Ethereum Mainnet network."
- },
- "/p1GSi": {
- "defaultMessage": "Check connectivity"
- },
- "2zD+V+": {
- "defaultMessage": "Wrong network selected"
- },
- "5Jlmp5": {
- "defaultMessage": "The contracts will always remain live and allow for withdrawals. However, it is recommended to withdraw remaining assets from the contracts since value accrual has been disabled."
- },
- "6OuLVd": {
- "defaultMessage": "Tips"
- },
- "6z2ptx": {
- "defaultMessage": "Want to use a testnet?"
- },
- "8XZjyW": {
- "defaultMessage": "There was an error while loading this component, you can try to reload."
- },
- "9ghOJK": {
- "defaultMessage": "Unhandled Error!"
- },
- "9lt7g1": {
- "defaultMessage": "Discord support channel"
- },
- "EobEOB": {
- "defaultMessage": "Please confirm to proceed"
- },
- "IdL95F": {
- "defaultMessage": "Make sure you are on the right URL."
- },
- "MSTVqC": {
- "defaultMessage": "Reload Page"
- },
- "N2IrpM": {
- "defaultMessage": "Confirm"
- },
- "PWrOlv": {
- "defaultMessage": "mStable has been acquired by dHEDGE. Following the outlined acquisition update, certain mStable products will be sunset."
- },
- "RnacAD": {
- "defaultMessage": "Make sure your internet connection is working."
- },
- "STj9QY": {
- "defaultMessage": "Oops, something went wrong."
- },
- "UkXeBW": {
- "defaultMessage": "If the problem persists, you can contact us through our {support}."
- },
- "UlMgTq": {
- "defaultMessage": "If the problem persists, contact us on our {support}."
- },
- "W87PYU": {
- "defaultMessage": "View on {name}"
- },
- "XYEIBG": {
- "defaultMessage": "App supports Goerli Testnet."
- },
- "YP4aoM": {
- "defaultMessage": "Read the Announcement"
- },
- "p556q3": {
- "defaultMessage": "Copied"
- },
- "smAgyB": {
- "defaultMessage": "Share on"
- },
- "y1NA43": {
- "defaultMessage": "Check URL"
- }
-}
diff --git a/apps/mstable/index.html b/apps/mstable/index.html
deleted file mode 100644
index 02bfa859..00000000
--- a/apps/mstable/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- mStable
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/mstable/project.json b/apps/mstable/project.json
deleted file mode 100644
index 3e7cf1af..00000000
--- a/apps/mstable/project.json
+++ /dev/null
@@ -1,121 +0,0 @@
-{
- "name": "mstable",
- "$schema": "../../node_modules/nx/schemas/project-schema.json",
- "sourceRoot": "apps/mstable/src",
- "projectType": "application",
- "targets": {
- "build": {
- "executor": "@nrwl/vite:build",
- "outputs": ["{options.outputPath}"],
- "defaultConfiguration": "production",
- "dependsOn": ["^build", "i18n-compile"],
- "options": {
- "outputPath": "dist/apps/mstable"
- },
- "configurations": {
- "development": {
- "extractLicenses": false,
- "optimization": false,
- "sourceMap": true,
- "vendorChunk": true
- },
- "production": {
- "fileReplacements": [
- {
- "replace": "apps/mstable/src/environments/environment.ts",
- "with": "apps/mstable/src/environments/environment.prod.ts"
- }
- ],
- "optimization": true,
- "outputHashing": "all",
- "sourceMap": false,
- "namedChunks": false,
- "extractLicenses": true,
- "vendorChunk": false
- }
- }
- },
- "serve": {
- "executor": "@nrwl/vite:dev-server",
- "defaultConfiguration": "development",
- "options": {
- "buildTarget": "mstable:build"
- },
- "configurations": {
- "development": {
- "buildTarget": "mstable:build:development",
- "hmr": true
- },
- "production": {
- "buildTarget": "mstable:build:production",
- "hmr": false
- }
- }
- },
- "preview": {
- "executor": "@nrwl/vite:preview-server",
- "defaultConfiguration": "development",
- "options": {
- "buildTarget": "mstable:build"
- },
- "configurations": {
- "development": {
- "buildTarget": "mstable:build:development"
- },
- "production": {
- "buildTarget": "mstable:build:production"
- }
- }
- },
- "lint": {
- "executor": "@nrwl/linter:eslint",
- "outputs": ["{options.outputFile}"],
- "options": {
- "lintFilePatterns": ["apps/mstable/**/*.{ts,tsx,js,jsx}"]
- }
- },
- "deploy": {
- "executor": "nx:run-commands",
- "dependsOn": ["build"],
- "options": {
- "commands": [
- "yarn firebase use mstable",
- "yarn firebase deploy -c ./firebase.mstable.json --only hosting"
- ],
- "parallel": false
- }
- },
- "deploy:dev": {
- "executor": "nx:run-commands",
- "dependsOn": ["build"],
- "options": {
- "commands": [
- "yarn firebase use mstable",
- "yarn firebase hosting:channel:deploy dev -c ./firebase.mstable.json --expires 7d"
- ],
- "parallel": false
- }
- },
- "i18n-extract": {
- "executor": "nx:run-commands",
- "options": {
- "commands": [
- "yarn run formatjs extract 'apps/mstable/src/**/*.{ts,tsx}' --out-file i18n-extractions/apps-mstable.json --id-interpolation-pattern '[sha512:contenthash:base64:6]'"
- ]
- }
- },
- "i18n-compile": {
- "executor": "nx:run-commands",
- "dependsOn": ["i18n-extract", "^i18n-extract"],
- "options": {
- "commands": [
- "jq -rs 'reduce .[] as $item ({}; . * $item)' i18n-extractions/* > apps/mstable/i18n/en.json",
- "yarn run formatjs compile apps/mstable/i18n/en.json --ast --out-file apps/mstable/src/assets/lang/en.json",
- "yarn run nx format:write --files apps/mstable/src/assets/lang/en.json"
- ],
- "parallel": false
- }
- }
- },
- "tags": ["mstable"]
-}
diff --git a/apps/mstable/public/favicon.ico b/apps/mstable/public/favicon.ico
deleted file mode 100644
index 57243a58..00000000
Binary files a/apps/mstable/public/favicon.ico and /dev/null differ
diff --git a/apps/mstable/public/ipfs-404.html b/apps/mstable/public/ipfs-404.html
deleted file mode 100644
index a26dbb24..00000000
--- a/apps/mstable/public/ipfs-404.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- mStable
-
-
-
diff --git a/apps/mstable/public/robots.txt b/apps/mstable/public/robots.txt
deleted file mode 100644
index e9e57dc4..00000000
--- a/apps/mstable/public/robots.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# https://www.robotstxt.org/robotstxt.html
-User-agent: *
-Disallow:
diff --git a/apps/mstable/src/assets/lang/en.json b/apps/mstable/src/assets/lang/en.json
deleted file mode 100644
index 2f918d79..00000000
--- a/apps/mstable/src/assets/lang/en.json
+++ /dev/null
@@ -1,1765 +0,0 @@
-{
- "+6JrYn": [
- {
- "type": 0,
- "value": "Make sure your wallet is on Ethereum Mainnet network."
- }
- ],
- "+U6ozc": [
- {
- "type": 0,
- "value": "Type"
- }
- ],
- "+k7bPd": [
- {
- "type": 0,
- "value": "The selected network is not supported by this application."
- }
- ],
- "+vVZ/G": [
- {
- "type": 0,
- "value": "Connect"
- }
- ],
- "/54G9d": [
- {
- "type": 0,
- "value": "Approving Token"
- }
- ],
- "/b/fRE": [
- {
- "type": 0,
- "value": "mStable Withdraw"
- }
- ],
- "/p1GSi": [
- {
- "type": 0,
- "value": "Check connectivity"
- }
- ],
- "/r/mPc": [
- {
- "type": 0,
- "value": "Sending order to your wallet"
- }
- ],
- "0/F4cj": [
- {
- "type": 0,
- "value": "The "
- },
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " Vault charges a "
- },
- {
- "type": 1,
- "value": "fee"
- },
- {
- "type": 0,
- "value": " exit fee."
- }
- ],
- "0NMLMN": [
- {
- "type": 0,
- "value": "My Position"
- }
- ],
- "0OPmis": [
- {
- "type": 0,
- "value": "Approve Position Close"
- }
- ],
- "0fFawv": [
- {
- "type": 0,
- "value": "Stable Position Value"
- }
- ],
- "1XVJUl": [
- {
- "type": 0,
- "value": "Switch to "
- },
- {
- "type": 1,
- "value": "defaultChain"
- }
- ],
- "1uz/I3": [
- {
- "type": 0,
- "value": "1M"
- }
- ],
- "1v6yZm": [
- {
- "type": 0,
- "value": "Announce Leverage Position Close"
- }
- ],
- "1vtEYS": [
- {
- "type": 0,
- "value": "Flexible min slippage value that is likely enough to process the transaction."
- }
- ],
- "20X0BC": [
- {
- "type": 0,
- "value": "Transaction Cancelled"
- }
- ],
- "2Dq322": [
- {
- "type": 0,
- "value": "You can sell your "
- },
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " tokens in "
- },
- {
- "type": 1,
- "value": "cooldownEndsInTime"
- }
- ],
- "2fed1y": [
- {
- "type": 0,
- "value": "A deposit into a vault requires an approval transaction."
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "type": 0,
- "value": "Set as infinite to avoid approving multiple times and save gas on subsequent deposits."
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "type": 0,
- "value": "Deactiviting is safer, but would require approval on every subsequent deposit and hence results in higher gas cost."
- }
- ],
- "2zD+V+": [
- {
- "type": 0,
- "value": "Wrong network selected"
- }
- ],
- "3xhnWF": [
- {
- "type": 0,
- "value": "You Spend"
- }
- ],
- "42xcXv": [
- {
- "type": 0,
- "value": "Ensure that you understand the risks associated with high slippage and are comfortable proceeding with the trade."
- }
- ],
- "47FYwb": [
- {
- "type": 0,
- "value": "Cancel"
- }
- ],
- "47GkyG": [
- {
- "type": 0,
- "value": "Minimum deposit is $"
- },
- {
- "type": 1,
- "value": "minDepositUSD"
- }
- ],
- "4K2D1N": [
- {
- "type": 0,
- "value": "Withdraw to stablecoins"
- }
- ],
- "4cX/rf": [
- {
- "type": 0,
- "value": "Management Fee"
- }
- ],
- "5Jlmp5": [
- {
- "type": 0,
- "value": "The contracts will always remain live and allow for withdrawals. However, it is recommended to withdraw remaining assets from the contracts since value accrual has been disabled."
- }
- ],
- "5ObBlW": [
- {
- "type": 0,
- "value": "Dark Mode"
- }
- ],
- "5WragJ": [
- {
- "type": 0,
- "value": "Burn your MTA tokens to receive mStable Treasury Yield tokens"
- }
- ],
- "5eoReb": [
- {
- "type": 0,
- "value": "Burn MTA to receive "
- },
- {
- "type": 1,
- "value": "yield"
- },
- {
- "type": 0,
- "value": " vault tokens on Optimism at a value of "
- },
- {
- "children": [
- {
- "type": 1,
- "value": "price"
- }
- ],
- "type": 8,
- "value": "b"
- },
- {
- "type": 0,
- "value": " per MTA."
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "type": 0,
- "value": "Here is the "
- },
- {
- "type": 1,
- "value": "roadmap"
- },
- {
- "type": 0,
- "value": " to help you make a better informed decision."
- }
- ],
- "5gorcB": [
- {
- "type": 0,
- "value": "Minimum received"
- }
- ],
- "6GZbSi": [
- {
- "type": 0,
- "value": "The selected network is not supported by the application."
- }
- ],
- "6OuLVd": [
- {
- "type": 0,
- "value": "Tips"
- }
- ],
- "6T7RIi": [
- {
- "type": 0,
- "value": "BuyBack MTA"
- }
- ],
- "6bJGds": [
- {
- "type": 0,
- "value": "1W"
- }
- ],
- "6z2ptx": [
- {
- "type": 0,
- "value": "Want to use a testnet?"
- }
- ],
- "7CAm2s": [
- {
- "type": 0,
- "value": "mStable is a protocol for yield aggregation and diversification."
- }
- ],
- "7JlauX": [
- {
- "type": 0,
- "value": "Explore"
- }
- ],
- "7ynb1z": [
- {
- "type": 1,
- "value": "value"
- },
- {
- "type": 0,
- "value": " GWEI"
- }
- ],
- "8XZjyW": [
- {
- "type": 0,
- "value": "There was an error while loading this component, you can try to reload."
- }
- ],
- "8cv9D4": [
- {
- "type": 0,
- "value": "Next Step"
- }
- ],
- "8lLHeh": [
- {
- "type": 0,
- "value": "1Y"
- }
- ],
- "8q2nwN": [
- {
- "type": 0,
- "value": "mAssets"
- }
- ],
- "8ywLSf": [
- {
- "type": 0,
- "value": "Twitter"
- }
- ],
- "90axO4": [
- {
- "type": 0,
- "value": "Trade"
- }
- ],
- "9AgXoz": [
- {
- "type": 0,
- "value": "Sell"
- }
- ],
- "9RAHhM": [
- {
- "type": 0,
- "value": "Strategy & Risks"
- }
- ],
- "9ghOJK": [
- {
- "type": 0,
- "value": "Unhandled Error!"
- }
- ],
- "9lt7g1": [
- {
- "type": 0,
- "value": "Discord support channel"
- }
- ],
- "AA5h7P": [
- {
- "type": 0,
- "value": "Performance"
- }
- ],
- "AeA4mw": [
- {
- "type": 0,
- "value": "Minimum Received"
- }
- ],
- "AlCWDq": [
- {
- "type": 0,
- "value": "Leveraged Positions"
- }
- ],
- "Am173P": [
- {
- "type": 0,
- "value": "The current price of 1 token. Return is represented as an increase in token price value."
- }
- ],
- "Ar5obI": [
- {
- "type": 0,
- "value": "No balance"
- }
- ],
- "Au/yTc": [
- {
- "type": 0,
- "value": "MTA Buyback"
- }
- ],
- "Bak2Yy": [
- {
- "type": 0,
- "value": "Select from supported list"
- }
- ],
- "C9fFq/": [
- {
- "type": 0,
- "value": "We recommend 1%, but usually it will be < 1%."
- }
- ],
- "CB1174": [
- {
- "type": 0,
- "value": "Funding Rate"
- }
- ],
- "CuTvKy": [
- {
- "type": 0,
- "value": "Swap on Velodrome"
- }
- ],
- "DRXWXB": [
- {
- "type": 0,
- "value": "404"
- }
- ],
- "DUR59o": [
- {
- "type": 0,
- "value": "Total Value Locked"
- }
- ],
- "Do29Mx": [
- {
- "type": 0,
- "value": "P&L"
- }
- ],
- "ENufDd": [
- {
- "type": 0,
- "value": "MTA"
- }
- ],
- "EhET/Q": [
- {
- "children": [
- {
- "type": 0,
- "value": "Yield app"
- }
- ],
- "type": 8,
- "value": "strong"
- },
- {
- "type": 0,
- "value": " by mStable"
- }
- ],
- "EnCOBJ": [
- {
- "type": 0,
- "value": "Buy"
- }
- ],
- "EobEOB": [
- {
- "type": 0,
- "value": "Please confirm to proceed"
- }
- ],
- "Ew5cbe": [
- {
- "type": 0,
- "value": "Flatcoin"
- }
- ],
- "Ez6tQm": [
- {
- "type": 0,
- "value": "Powered by "
- },
- {
- "children": [
- {
- "type": 0,
- "value": "dHEDGE"
- }
- ],
- "type": 8,
- "value": "strong"
- }
- ],
- "FGu/VK": [
- {
- "type": 0,
- "value": "The following strategy pipeline is used in "
- },
- {
- "type": 1,
- "value": "symbol"
- }
- ],
- "FvmV6q": [
- {
- "type": 0,
- "value": "Discord"
- }
- ],
- "GH3iro": [
- {
- "type": 0,
- "value": "BuyBack mUSD"
- }
- ],
- "Gh1Vm9": [
- {
- "type": 0,
- "value": "You Receive"
- }
- ],
- "Gtmi1D": [
- {
- "type": 0,
- "value": "Set As Infinite"
- }
- ],
- "H5+NAX": [
- {
- "type": 0,
- "value": "Balance"
- }
- ],
- "HOsSgX": [
- {
- "type": 0,
- "value": "More info"
- }
- ],
- "IB0eky": [
- {
- "type": 0,
- "value": "Annual percentage yield."
- }
- ],
- "IBFkFM": [
- {
- "type": 0,
- "value": "You "
- },
- {
- "type": 1,
- "value": "operation"
- }
- ],
- "IdL95F": [
- {
- "type": 0,
- "value": "Make sure you are on the right URL."
- }
- ],
- "ImPhdW": [
- {
- "type": 0,
- "value": "Order expires at"
- }
- ],
- "Imiiiv": [
- {
- "type": 0,
- "value": "No Data Available"
- }
- ],
- "K1NWSN": [
- {
- "type": 0,
- "value": "Price is more favorable on Velodrome"
- }
- ],
- "LAazWH": [
- {
- "type": 0,
- "value": "Account token balance"
- }
- ],
- "LDz7xI": [
- {
- "type": 0,
- "value": "Assets that are used by this vault."
- }
- ],
- "LGv1C5": [
- {
- "type": 0,
- "value": "Announced Orders"
- }
- ],
- "LMK5Bl": [
- {
- "type": 0,
- "value": "The Uniswap Protocol is an open-source protocol for providing liquidity and trading ERC20 tokens on Ethereum."
- }
- ],
- "LiHQih": [
- {
- "type": 0,
- "value": "Coming Soon"
- }
- ],
- "MLTKb6": [
- {
- "type": 0,
- "value": "APY"
- }
- ],
- "MMvFMz": [
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " token is no longer active. Please withdraw from them."
- }
- ],
- "MQ02gW": [
- {
- "type": 0,
- "value": "Skew"
- }
- ],
- "MSTVqC": [
- {
- "type": 0,
- "value": "Reload Page"
- }
- ],
- "MqZGhr": [
- {
- "type": 0,
- "value": "Vault Performance"
- }
- ],
- "N2IrpM": [
- {
- "type": 0,
- "value": "Confirm"
- }
- ],
- "NnFu82": [
- {
- "type": 0,
- "value": "Withdraw your mStable Treasury Yield tokens to stables"
- }
- ],
- "NpWjvV": [
- {
- "type": 0,
- "value": "Trading"
- }
- ],
- "OWWJyo": [
- {
- "type": 0,
- "value": "Your "
- },
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " tokens will be sent to the same "
- },
- {
- "type": 1,
- "value": "network"
- },
- {
- "type": 0,
- "value": " address you used."
- }
- ],
- "ObjU4O": [
- {
- "type": 0,
- "value": "Mining"
- }
- ],
- "P1xtEU": [
- {
- "type": 0,
- "value": "Earn diversified yield across DeFi."
- }
- ],
- "P8Xs51": [
- {
- "type": 0,
- "value": "ROI"
- }
- ],
- "PQiNnk": [
- {
- "type": 0,
- "value": "Open Interest"
- }
- ],
- "PWrOlv": [
- {
- "type": 0,
- "value": "mStable has been acquired by dHEDGE. Following the outlined acquisition update, certain mStable products will be sunset."
- }
- ],
- "PXAur5": [
- {
- "type": 0,
- "value": "Withdraw"
- }
- ],
- "Pk6qK4": [
- {
- "type": 0,
- "value": "Fees that are charged by this vault."
- }
- ],
- "PmkP1H": [
- {
- "type": 0,
- "value": "Unsupported Network"
- }
- ],
- "Px2xWV": [
- {
- "type": 0,
- "value": "Open Position"
- }
- ],
- "PxG1Yq": [
- {
- "type": 0,
- "value": "Total Value Locked in vault"
- }
- ],
- "R0V7vk": [
- {
- "type": 0,
- "value": "This app simplifies the process of exiting all mStable products and positions."
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "type": 0,
- "value": "By connecting your wallet, you can easily access your remaining balances and initiate the withdrawal process."
- }
- ],
- "RnacAD": [
- {
- "type": 0,
- "value": "Make sure your internet connection is working."
- }
- ],
- "S0seuN": [
- {
- "type": 0,
- "value": "Recommended min slippage"
- }
- ],
- "SKB/G9": [
- {
- "type": 0,
- "value": "TVL"
- }
- ],
- "SOievI": [
- {
- "children": [
- {
- "type": 0,
- "value": "Flatcoin app"
- }
- ],
- "type": 8,
- "value": "strong"
- },
- {
- "type": 0,
- "value": " by dHEDGE"
- }
- ],
- "SRo6uF": [
- {
- "type": 0,
- "value": "Meta Vaults"
- }
- ],
- "STj9QY": [
- {
- "type": 0,
- "value": "Oops, something went wrong."
- }
- ],
- "TL3yAY": [
- {
- "type": 0,
- "value": "Position Value"
- }
- ],
- "Ty3dr6": [
- {
- "type": 0,
- "value": "Entry Price"
- }
- ],
- "U6qGuO": [
- {
- "type": 0,
- "value": "Position"
- }
- ],
- "ULHfQE": [
- {
- "type": 0,
- "value": "The current price of 1 share. Return is represented as a increase in share price value."
- }
- ],
- "URTaZg": [
- {
- "type": 0,
- "value": "If you burned MTA from Ethereum, please wait while the bridge issues your MTy tokens."
- }
- ],
- "UkXeBW": [
- {
- "type": 0,
- "value": "If the problem persists, you can contact us through our "
- },
- {
- "type": 1,
- "value": "support"
- },
- {
- "type": 0,
- "value": "."
- }
- ],
- "UlMgTq": [
- {
- "type": 0,
- "value": "If the problem persists, contact us on our "
- },
- {
- "type": 1,
- "value": "support"
- },
- {
- "type": 0,
- "value": "."
- }
- ],
- "Vn76qV": [
- {
- "type": 0,
- "value": "Github"
- }
- ],
- "VyTtUL": [
- {
- "type": 0,
- "value": "The "
- },
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " Vault charges a "
- },
- {
- "type": 1,
- "value": "fee"
- },
- {
- "type": 0,
- "value": " entry fee."
- }
- ],
- "W87PYU": [
- {
- "type": 0,
- "value": "View on "
- },
- {
- "type": 1,
- "value": "name"
- }
- ],
- "WCaf5C": [
- {
- "type": 0,
- "value": "Approve"
- }
- ],
- "WKCp0D": [
- {
- "type": 0,
- "value": "Asset"
- }
- ],
- "WZwD4F": [
- {
- "type": 0,
- "value": "Burn MTA and receive MTy on Optimism"
- }
- ],
- "X/I7ge": [
- {
- "type": 0,
- "value": "You will receive no less than this amount."
- }
- ],
- "X/RW9w": [
- {
- "type": 0,
- "value": "Slippage Tolerance"
- }
- ],
- "X0zKZO": [
- {
- "type": 0,
- "value": "Connected User"
- }
- ],
- "XSdWHA": [
- {
- "type": 0,
- "value": "Redeem"
- }
- ],
- "XW7Rd1": [
- {
- "type": 0,
- "value": "After redeeming your vault tokens from Ethereum, please wait while the bridge issues your "
- },
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " tokens."
- }
- ],
- "XYEIBG": [
- {
- "type": 0,
- "value": "App supports Goerli Testnet."
- }
- ],
- "XnpuKy": [
- {
- "type": 0,
- "value": "Approve "
- },
- {
- "type": 1,
- "value": "symbol"
- }
- ],
- "YC/ZXg": [
- {
- "type": 0,
- "value": "Share price"
- }
- ],
- "YP4aoM": [
- {
- "type": 0,
- "value": "Read the Announcement"
- }
- ],
- "YZUa24": [
- {
- "type": 0,
- "value": "Earn optimized, automated, and diversified yield across DeFi."
- }
- ],
- "Zab6JA": [
- {
- "type": 0,
- "value": "Withdraw Cost"
- }
- ],
- "a42kxt": [
- {
- "type": 0,
- "value": "Your mStable Treasury Yield tokens are earning yield and you can hold on to them."
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "type": 0,
- "value": "Optionally you can go to dHEDGE app to withdraw your MTy tokens to stablecoins."
- }
- ],
- "aBbsWU": [
- {
- "type": 0,
- "value": "Connect your wallet to easily access your remaining balances and initiate the withdrawal process."
- }
- ],
- "aTX7LJ": [
- {
- "type": 0,
- "value": "1D"
- }
- ],
- "b1gVRq": [
- {
- "type": 0,
- "value": "Minimum deposit in USD."
- }
- ],
- "bAqUW1": [
- {
- "type": 0,
- "value": "Withdrawing"
- }
- ],
- "bnF8kf": [
- {
- "type": 0,
- "value": "Current Base Fee"
- }
- ],
- "cA+gxG": [
- {
- "type": 0,
- "value": "Legacy Pools"
- }
- ],
- "cg1VJ2": [
- {
- "type": 0,
- "value": "Connect Wallet"
- }
- ],
- "cyR7Kh": [
- {
- "type": 0,
- "value": "Back"
- }
- ],
- "d1uESJ": [
- {
- "type": 0,
- "value": "Assets"
- }
- ],
- "d21Els": [
- {
- "type": 0,
- "value": "Execute"
- }
- ],
- "d7AHfy": [
- {
- "type": 0,
- "value": "Burn your MTA and receive stablecoins"
- }
- ],
- "djdjSw": [
- {
- "type": 0,
- "value": "Exit "
- },
- {
- "type": 1,
- "value": "name"
- }
- ],
- "dlRkGS": [
- {
- "type": 0,
- "value": "Keeper fee"
- }
- ],
- "ePxmfo": [
- {
- "type": 0,
- "value": "Aave is a decentralised non-custodial liquidity market protocol where users can participate as depositors or borrowers."
- }
- ],
- "eTGEXC": [
- {
- "type": 0,
- "value": "Approve "
- },
- {
- "type": 1,
- "value": "slippage"
- },
- {
- "type": 0,
- "value": "% max slippage"
- }
- ],
- "ehxGBh": [
- {
- "type": 0,
- "value": "Token Price"
- }
- ],
- "fJjSsb": [
- {
- "type": 0,
- "value": "Performance Fee"
- }
- ],
- "fhnmhR": [
- {
- "type": 0,
- "value": "Vault strategy pipeline."
- }
- ],
- "g6UhRO": [
- {
- "type": 0,
- "value": "Vault name"
- }
- ],
- "hAz8Yo": [
- {
- "type": 0,
- "value": "$"
- }
- ],
- "hPs6J+": [
- {
- "type": 0,
- "value": "Exit Position"
- }
- ],
- "hesDHZ": [
- {
- "type": 1,
- "value": "fee"
- },
- {
- "type": 0,
- "value": " GWEI"
- }
- ],
- "hk3oTU": [
- {
- "offset": 0,
- "options": {
- "=0": {
- "value": [
- {
- "type": 0,
- "value": "No Balance"
- }
- ]
- },
- "=1": {
- "value": [
- {
- "type": 7
- },
- {
- "type": 0,
- "value": " Item"
- }
- ]
- },
- "other": {
- "value": [
- {
- "type": 7
- },
- {
- "type": 0,
- "value": " Items"
- }
- ]
- }
- },
- "pluralType": "cardinal",
- "type": 6,
- "value": "gtBal"
- }
- ],
- "i0ofjL": [
- {
- "type": 0,
- "value": "Entry fee"
- }
- ],
- "iD4mN7": [
- {
- "type": 0,
- "value": "mStable roadmap"
- }
- ],
- "in6iXe": [
- {
- "type": 0,
- "value": "Deposit/Withdraw"
- }
- ],
- "inIeEz": [
- {
- "type": 0,
- "value": "Margin Deposited"
- }
- ],
- "j5iKZ9": [
- {
- "type": 0,
- "value": "Burn your mUSD and receive"
- }
- ],
- "jvo0vs": [
- {
- "type": 0,
- "value": "Save"
- }
- ],
- "k3YWIR": [
- {
- "type": 0,
- "value": "Max slippage"
- }
- ],
- "kZcqo0": [
- {
- "type": 0,
- "value": "%"
- }
- ],
- "kaPKOB": [
- {
- "type": 0,
- "value": "Insufficient balance"
- }
- ],
- "korbaG": [
- {
- "type": 0,
- "value": "The following assets are used in this strategy and therefore are exposed (partially) to their risk:"
- }
- ],
- "le9cwx": [
- {
- "type": 0,
- "value": "Exit Fee"
- }
- ],
- "lubHZr": [
- {
- "type": 0,
- "value": "Setting up transaction"
- }
- ],
- "mQHAsW": [
- {
- "type": 0,
- "value": "Slippage"
- }
- ],
- "meocUp": [
- {
- "type": 0,
- "value": "Convex is a platform that boosts rewards for CRV stakers and liquidity providers alike, all in a simple and easy to use interface."
- }
- ],
- "mqpAbT": [
- {
- "type": 0,
- "value": "Show Empty"
- }
- ],
- "n9CFUs": [
- {
- "type": 0,
- "value": "Token Approval"
- }
- ],
- "oNO7VY": [
- {
- "type": 0,
- "value": "Flatcoin Withdraw"
- }
- ],
- "obSWjR": [
- {
- "type": 0,
- "value": "Please switch your wallet network to "
- },
- {
- "type": 1,
- "value": "name"
- },
- {
- "type": 0,
- "value": " to interact with "
- },
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " vault."
- }
- ],
- "ovJ26C": [
- {
- "type": 0,
- "value": "Medium"
- }
- ],
- "p556q3": [
- {
- "type": 0,
- "value": "Copied"
- }
- ],
- "p8bsw4": [
- {
- "type": 0,
- "value": "Transaction Error"
- }
- ],
- "pWv8jk": [
- {
- "type": 0,
- "value": "Entry Fee"
- }
- ],
- "pbpdV6": [
- {
- "type": 0,
- "value": "Leverage"
- }
- ],
- "pwg4Vp": [
- {
- "type": 0,
- "value": "Analytics on "
- },
- {
- "children": [
- {
- "type": 0,
- "value": "dHEDGE"
- }
- ],
- "type": 8,
- "value": "strong"
- }
- ],
- "qNhf66": [
- {
- "type": 0,
- "value": "Perf"
- }
- ],
- "qZbedW": [
- {
- "type": 0,
- "value": "Fees"
- }
- ],
- "qcHHVw": [
- {
- "type": 0,
- "value": "Announce Leverage Position"
- }
- ],
- "qj1uhz": [
- {
- "type": 0,
- "value": "Disconnect"
- }
- ],
- "qzgBwU": [
- {
- "type": 0,
- "value": "The "
- },
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " Vault charges a "
- },
- {
- "type": 1,
- "value": "fee"
- },
- {
- "type": 0,
- "value": " performance upon underlying asset appreciation."
- }
- ],
- "r2pety": [
- {
- "type": 0,
- "value": "Please consider the following before confirming:"
- }
- ],
- "rSsD3z": [
- {
- "type": 0,
- "value": "Switch Network"
- }
- ],
- "rbrahO": [
- {
- "type": 0,
- "value": "Close"
- }
- ],
- "rfzzi6": [
- {
- "type": 0,
- "value": "Profit/Loss"
- }
- ],
- "rgdwQX": [
- {
- "type": 0,
- "value": "Transaction Confirmed"
- }
- ],
- "s2zphO": [
- {
- "type": 0,
- "value": "Vaults"
- }
- ],
- "sHyaBT": [
- {
- "type": 0,
- "value": "This pool is currently private."
- }
- ],
- "sLLUMv": [
- {
- "type": 0,
- "value": "Switch your wallet to "
- },
- {
- "type": 1,
- "value": "name"
- },
- {
- "type": 0,
- "value": " to use this contract."
- }
- ],
- "sUIPLS": [
- {
- "type": 0,
- "value": "Burn"
- }
- ],
- "sjr65W": [
- {
- "type": 0,
- "value": "Execute Order"
- }
- ],
- "sk4xVe": [
- {
- "type": 0,
- "value": "Feeder Pools"
- }
- ],
- "smAgyB": [
- {
- "type": 0,
- "value": "Share on"
- }
- ],
- "sy+pv5": [
- {
- "type": 0,
- "value": "Email"
- }
- ],
- "t3IytM": [
- {
- "type": 0,
- "value": "Minimum deposit"
- }
- ],
- "tivZoE": [
- {
- "type": 0,
- "value": "The "
- },
- {
- "type": 1,
- "value": "symbol"
- },
- {
- "type": 0,
- "value": " Vault charges a "
- },
- {
- "type": 1,
- "value": "fee"
- },
- {
- "type": 0,
- "value": " management fee."
- }
- ],
- "tw0ig8": [
- {
- "type": 0,
- "value": "Executable at"
- }
- ],
- "uBC8fe": [
- {
- "type": 0,
- "value": "Entry fees are collected during deposit. The entry fee is distributed to all token holders to pay for rebalancing costs after new deposits."
- }
- ],
- "v1vY2k": [
- {
- "type": 0,
- "value": "Exchange rate "
- },
- {
- "children": [
- {
- "type": 1,
- "value": "price"
- },
- {
- "type": 0,
- "value": " USD"
- }
- ],
- "type": 8,
- "value": "b"
- },
- {
- "type": 0,
- "value": " per MTA. This is the floor price for the MTA token, backed by the mStable Treasury Yield."
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "type": 0,
- "value": " If burning MTA from Ethereum, it may take a few minutes to be issued yield tokens on Optimism."
- }
- ],
- "vS/YSY": [
- {
- "type": 0,
- "value": "Curve is an exchange liquidity pool on Ethereum designed for: extremely efficient stablecoin trading, low risk, supplemental fee income for liquidity providers, without an opportunity cost."
- }
- ],
- "vclhrb": [
- {
- "type": 0,
- "value": "Balance: "
- },
- {
- "type": 1,
- "value": "balance"
- }
- ],
- "vsI1HY": [
- {
- "type": 0,
- "value": "Redeem Vault"
- }
- ],
- "w1LBDB": [
- {
- "type": 0,
- "value": "Sign Transaction"
- }
- ],
- "wAUtNd": [
- {
- "type": 0,
- "value": "Total Burned"
- }
- ],
- "wfUbwI": [
- {
- "type": 0,
- "value": "Flatcoin Deposit"
- }
- ],
- "wqlXwW": [
- {
- "type": 0,
- "value": "Wrong Network"
- }
- ],
- "x8vY9w": [
- {
- "type": 0,
- "value": "Not Connected"
- }
- ],
- "xfMpIF": [
- {
- "type": 0,
- "value": "Withdraw to stables"
- }
- ],
- "xrKHS6": [
- {
- "type": 0,
- "value": "Success"
- }
- ],
- "y1NA43": [
- {
- "type": 0,
- "value": "Check URL"
- }
- ],
- "yFvqzw": [
- {
- "type": 0,
- "value": "Meta Harvester"
- }
- ],
- "yL//gV": [
- {
- "type": 0,
- "value": "Be aware that the final amount of assets you receive may be different from the initially quoted value."
- }
- ],
- "yNEh8X": [
- {
- "type": 0,
- "value": "mStable Treasury Yield"
- }
- ],
- "yap3X0": [
- {
- "type": 0,
- "value": "When the \"Auto\" option is selected, the app tests various slippage ranges by starting with lower values and gradually increasing until it reaches a point where the transaction is likely to succeed. "
- },
- {
- "children": [],
- "type": 8,
- "value": "br"
- },
- {
- "type": 0,
- "value": " Alternatively, a custom slippage value can be set, but it is recommended to keep it within the range of 1-2%."
- }
- ],
- "yuiyES": [
- {
- "type": 0,
- "value": "General Settings"
- }
- ],
- "yzP6XU": [
- {
- "type": 0,
- "value": "MTA Governance"
- }
- ],
- "zFNxtv": [
- {
- "type": 0,
- "value": "Protocols"
- }
- ],
- "zGHadw": [
- {
- "type": 0,
- "value": "Strategy"
- }
- ],
- "zKtTJT": [
- {
- "type": 0,
- "value": "Return on investment since Vault inception."
- }
- ],
- "zS899f": [
- {
- "type": 0,
- "value": "Allow "
- },
- {
- "type": 1,
- "value": "slippage"
- },
- {
- "type": 0,
- "value": " of slippage"
- }
- ]
-}
diff --git a/apps/mstable/src/clients/chartjs.ts b/apps/mstable/src/clients/chartjs.ts
deleted file mode 100644
index c23c79c1..00000000
--- a/apps/mstable/src/clients/chartjs.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import {
- CategoryScale,
- Chart as ChartJS,
- Filler,
- Legend,
- LinearScale,
- LineElement,
- PointElement,
- Title,
- Tooltip,
-} from 'chart.js';
-
-export const registerCharts = () => {
- ChartJS.register(
- CategoryScale,
- LinearScale,
- PointElement,
- LineElement,
- Title,
- Tooltip,
- Filler,
- Legend,
- );
-};
diff --git a/apps/mstable/src/clients/google-analytics.ts b/apps/mstable/src/clients/google-analytics.ts
deleted file mode 100644
index 7bf80810..00000000
--- a/apps/mstable/src/clients/google-analytics.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { initializeApp } from 'firebase/app';
-
-const firebaseConfig = Object.freeze({
- apiKey: 'AIzaSyCTHewGXSG63A4U90BME7ywVf11W5d8Ks0',
- authDomain: 'frontend-7e17f.firebaseapp.com',
- projectId: 'frontend-7e17f',
- storageBucket: 'frontend-7e17f.appspot.com',
- messagingSenderId: '907321051507',
- appId: '1:907321051507:web:b94f6ecbb3316069f3dd06',
- measurementId: 'G-KYQ5RJCN8K',
-});
-export const firebaseApp = initializeApp(firebaseConfig);
diff --git a/apps/mstable/src/clients/index.ts b/apps/mstable/src/clients/index.ts
deleted file mode 100644
index 8945c3dc..00000000
--- a/apps/mstable/src/clients/index.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export * from './google-analytics';
-export * from './plausible';
-export * from './chartjs';
-export * from './react-location';
-export * from './react-query';
-export * from './wagmi';
diff --git a/apps/mstable/src/clients/plausible.ts b/apps/mstable/src/clients/plausible.ts
deleted file mode 100644
index d30450e9..00000000
--- a/apps/mstable/src/clients/plausible.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import plausible from 'plausible-tracker';
-
-export const plausibleClient = plausible({
- domain: 'yield.mstable.org',
-});
diff --git a/apps/mstable/src/clients/react-location.ts b/apps/mstable/src/clients/react-location.ts
deleted file mode 100644
index cadfd984..00000000
--- a/apps/mstable/src/clients/react-location.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { ReactLocation } from '@tanstack/react-location';
-
-export const reactLocationClient = new ReactLocation();
diff --git a/apps/mstable/src/clients/react-query.ts b/apps/mstable/src/clients/react-query.ts
deleted file mode 100644
index 7c5749d3..00000000
--- a/apps/mstable/src/clients/react-query.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { QueryClient } from '@tanstack/react-query';
-
-const DEFAULT_STALE_TIME = 0;
-const DEFAULT_CACHE_TIME = 1000 * 60 * 60 * 24; // 24 hours
-
-export const reactQueryClient = new QueryClient({
- defaultOptions: {
- queries: {
- refetchOnWindowFocus: false,
- staleTime: DEFAULT_STALE_TIME,
- cacheTime: DEFAULT_CACHE_TIME,
- retry: false,
- },
- },
-});
diff --git a/apps/mstable/src/clients/wagmi.ts b/apps/mstable/src/clients/wagmi.ts
deleted file mode 100644
index 49a22953..00000000
--- a/apps/mstable/src/clients/wagmi.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-/* eslint-disable @typescript-eslint/no-explicit-any */
-import '@rainbow-me/rainbowkit/styles.css';
-
-import { getAlchemyRpcProvider } from '@frontend/shared-utils';
-import { SafeConnector } from '@gnosis.pm/safe-apps-wagmi';
-import { connectorsForWallets } from '@rainbow-me/rainbowkit';
-import {
- argentWallet,
- braveWallet,
- coinbaseWallet,
- imTokenWallet,
- injectedWallet,
- metaMaskWallet,
- rainbowWallet,
- walletConnectWallet,
-} from '@rainbow-me/rainbowkit/wallets';
-import { configureChains, createClient } from 'wagmi';
-import { optimism } from 'wagmi/chains';
-
-import type { Chain as RainbowKitChain, Wallet } from '@rainbow-me/rainbowkit';
-import type { Chain, Connector } from 'wagmi';
-
-const optimismWithCustomIconUrl = {
- ...optimism,
- // https://www.rainbowkit.com/docs/custom-chains
- iconUrl:
- 'https://firebasestorage.googleapis.com/v0/b/toros-leverage-bots.appspot.com/o/images%2Ficons%2Fnetworks%2Foptimism-network.png?alt=media&token=dc1a451a-1c89-4df3-b86f-9a3712068e4c',
-} as const satisfies RainbowKitChain;
-
-const POLLING_INTERVAL = 15_000;
-
-export const { chains, provider } = configureChains(
- [optimismWithCustomIconUrl],
- [
- getAlchemyRpcProvider({
- apiKey: process.env['NX_ALCHEMY_MAIN_API_KEY'],
- }) as any,
- getAlchemyRpcProvider({
- apiKey: process.env['NX_ALCHEMY_FALLBACK_API_KEY'],
- }) as any,
- ],
- { pollingInterval: POLLING_INTERVAL },
-);
-
-const gnosisSafeWallet = ({ chains }: { chains: Chain[] }): Wallet => ({
- id: 'safe',
- name: 'Gnosis Safe',
- iconUrl:
- 'https://raw.githubusercontent.com/safe-global/safe-react/dev/src/assets/logo.svg',
- iconBackground: '#ffffff',
- createConnector: () => ({
- connector: new SafeConnector({ chains }) as Connector,
- }),
-});
-
-const projectId =
- process.env['NX_WALLET_CONNECT_PROJECT_ID'] ??
- '3f4efb414b934af2cd6a6a764443e06e';
-
-const connectors = connectorsForWallets([
- {
- groupName: 'Recommended',
- wallets: [
- metaMaskWallet({ chains, shimDisconnect: true, projectId }),
- // ledgerWallet({ chains, projectId }),
- walletConnectWallet({
- chains,
- projectId,
- }),
- coinbaseWallet({ appName: 'mStable', chains }),
- ],
- },
- {
- groupName: 'Others',
- wallets: [
- injectedWallet({ chains, shimDisconnect: true }),
- gnosisSafeWallet({ chains }),
- rainbowWallet({ chains, projectId }),
- braveWallet({ chains, shimDisconnect: true }),
- argentWallet({ chains, projectId }),
- imTokenWallet({ chains, projectId }),
- ],
- },
-]);
-
-export const wagmiClient = createClient({
- autoConnect: true,
- connectors,
- provider,
-});
diff --git a/apps/mstable/src/components/App/index.tsx b/apps/mstable/src/components/App/index.tsx
deleted file mode 100644
index c2d4a9e2..00000000
--- a/apps/mstable/src/components/App/index.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import { useScrollToTop } from '@frontend/shared-hooks';
-import { useTrack } from '@frontend/shared-providers';
-import { ErrorBoundary, ErrorPage } from '@frontend/shared-ui';
-import { Box, Stack } from '@mui/material';
-import { Outlet } from '@tanstack/react-location';
-import { useEffectOnce } from 'react-use';
-
-import { registerCharts } from '../../clients';
-import { HotjarScript } from '../../scripts';
-import { GradientBackground } from '../Backgrounds';
-import { Footer } from '../Footer';
-import { Topnav } from '../Topnav';
-
-export const App = () => {
- const track = useTrack();
- useScrollToTop();
-
- useEffectOnce(() => {
- registerCharts();
- });
-
- return (
- theme.mixins.paddings.page}
- onMount={() => {
- track('error', { name: 'Unhandled Error Main Page' });
- }}
- />
- }
- >
-
-
-
-
-
-
-
-
-
-
-
- );
-};
diff --git a/apps/mstable/src/components/Backgrounds/components/GradientBackground.tsx b/apps/mstable/src/components/Backgrounds/components/GradientBackground.tsx
deleted file mode 100644
index f49d9b12..00000000
--- a/apps/mstable/src/components/Backgrounds/components/GradientBackground.tsx
+++ /dev/null
@@ -1,114 +0,0 @@
-import { useMemo } from 'react';
-
-import { alpha, Box, useTheme } from '@mui/material';
-import { usePrevious } from 'react-use';
-
-import { Provider, useTrackedState } from '../state';
-import { linearGradient, maskLinearGradient } from '../utils';
-
-import type { BoxProps } from '@mui/material';
-
-const GradientBackgroundWrapped = (props: BoxProps) => {
- const { next } = useTrackedState();
- const {
- palette: {
- mode,
- background: { default: bkg },
- },
- mixins: {
- gradients: { colorCloud },
- },
- } = useTheme();
- const prev = usePrevious(next);
-
- const mainGradient = useMemo(
- () =>
- [
- maskLinearGradient(
- '0deg',
- bkg,
- mode === 'light' ? '30' : '60',
- mode === 'light' ? 0.3 : 0,
- ),
- maskLinearGradient(
- '180deg',
- bkg,
- mode === 'light' ? '40' : '60',
- mode === 'light' ? 0.2 : 0,
- ),
- colorCloud,
- ].join(','),
-
- [bkg, colorCloud, mode],
- );
- const nextGradient = useMemo(
- () =>
- [
- maskLinearGradient(
- '0deg',
- bkg,
- mode === 'light' ? '30' : '60',
- mode === 'light' ? 0.3 : 0,
- ),
- maskLinearGradient(
- '180deg',
- bkg,
- mode === 'light' ? '40' : '60',
- mode === 'light' ? 0.2 : 0,
- ),
- ...(next
- ? [
- linearGradient('90deg', [
- `${alpha(next, 0.5)} 0%`,
- `${alpha(next, 0.25)} 60%`,
- `${alpha(next, 0.5)} 100%`,
- ]),
- ]
- : prev
- ? [
- linearGradient('90deg', [
- `${alpha(prev, 0.5)} 0%`,
- `${alpha(prev, 0.1)} 60%`,
- `${alpha(prev, 0.5)} 100%`,
- ]),
- ]
- : []),
- bkg,
- ].join(','),
- [bkg, mode, next, prev],
- );
-
- return (
-
- );
-};
-
-export const GradientBackground = (props: BoxProps) => (
-
-
-
-);
diff --git a/apps/mstable/src/components/Backgrounds/hooks.ts b/apps/mstable/src/components/Backgrounds/hooks.ts
deleted file mode 100644
index 8846bdbf..00000000
--- a/apps/mstable/src/components/Backgrounds/hooks.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { useCallback } from 'react';
-
-import produce from 'immer';
-
-import { useUpdate } from './state';
-
-export const useTransitionBackgroundColor = () => {
- const update = useUpdate();
-
- return useCallback(
- (color: string | null) => {
- update(
- produce((draft) => {
- draft.next = color;
- }),
- );
- },
- [update],
- );
-};
diff --git a/apps/mstable/src/components/Backgrounds/index.ts b/apps/mstable/src/components/Backgrounds/index.ts
deleted file mode 100644
index bc5d8604..00000000
--- a/apps/mstable/src/components/Backgrounds/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './components/GradientBackground';
-export * from './hooks';
diff --git a/apps/mstable/src/components/Backgrounds/state.ts b/apps/mstable/src/components/Backgrounds/state.ts
deleted file mode 100644
index ed8a6e9c..00000000
--- a/apps/mstable/src/components/Backgrounds/state.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { useState } from 'react';
-
-import { createContainer } from 'react-tracked';
-
-export const { Provider, useTrackedState, useUpdate } = createContainer(() =>
- useState({ next: null }),
-);
diff --git a/apps/mstable/src/components/Backgrounds/utils.ts b/apps/mstable/src/components/Backgrounds/utils.ts
deleted file mode 100644
index 638ed5a8..00000000
--- a/apps/mstable/src/components/Backgrounds/utils.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { alpha } from '@mui/material';
-
-export const linearGradient = (orientation: string, steps: string[]) =>
- `linear-gradient(${orientation}, ${steps.join(', ')})`;
-
-export const maskLinearGradient = (
- orientation: string,
- maskColor: string,
- threshold: string,
- maskOpacity = 0.2,
-) =>
- linearGradient(orientation, [
- `${maskColor} 0%`,
- `${alpha(maskColor, maskOpacity)} ${threshold}%`,
- 'transparent 100%',
- ]);
diff --git a/apps/mstable/src/components/Errors/index.tsx b/apps/mstable/src/components/Errors/index.tsx
deleted file mode 100644
index ac42a91a..00000000
--- a/apps/mstable/src/components/Errors/index.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-import { OpenNetworkModalButton, useTrack } from '@frontend/shared-providers';
-import { ErrorPage, NetworkTips, RouterLink } from '@frontend/shared-ui';
-import { Button, Stack } from '@mui/material';
-import { useIntl } from 'react-intl';
-import { useNetwork, useSwitchNetwork } from 'wagmi';
-
-export const UnsupportedVaultPage = () => {
- const intl = useIntl();
- const track = useTrack();
-
- return (
-
-
-
- }
- onMount={() => {
- track('error', { name: 'Unsupported Vault' });
- }}
- />
- );
-};
-
-export const WrongNetworkPage = () => {
- const intl = useIntl();
- const track = useTrack();
- const { chains, chain } = useNetwork();
- const { switchNetwork } = useSwitchNetwork();
-
- return (
-
-
- {intl.formatMessage({
- defaultMessage: 'Select from supported list',
- id: 'Bak2Yy',
- })}
-
-
-
- }
- tips={}
- onMount={() => {
- track('error', {
- name: 'Unsupported Network',
- chain: chain?.id ?? 'undefined',
- });
- }}
- />
- );
-};
diff --git a/apps/mstable/src/components/Footer/index.tsx b/apps/mstable/src/components/Footer/index.tsx
deleted file mode 100644
index 394658bb..00000000
--- a/apps/mstable/src/components/Footer/index.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-import {
- DHEDGE,
- DISCORD,
- EMAIL,
- GITHUB,
- MEDIUM,
- TWITTER,
-} from '@frontend/shared-constants';
-import { Discord, Email, Github, Twitter } from '@frontend/shared-icons';
-import { useLogAnalyticsEvent } from '@frontend/shared-providers';
-import { IconButton, Link, Stack, Typography } from '@mui/material';
-import { MediumLogo } from 'phosphor-react';
-import { useIntl } from 'react-intl';
-
-import type { StackProps } from '@mui/material';
-
-export const Footer = (props: StackProps) => {
- const intl = useIntl();
- const logEvent = useLogAnalyticsEvent();
-
- const socialIcons = [
- {
- title: intl.formatMessage({ defaultMessage: 'Github', id: 'Vn76qV' }),
- icon: ,
- href: GITHUB,
- },
- {
- title: intl.formatMessage({ defaultMessage: 'Discord', id: 'FvmV6q' }),
- icon: ,
- href: DISCORD,
- },
- {
- title: intl.formatMessage({ defaultMessage: 'Twitter', id: '8ywLSf' }),
- icon: ,
- href: TWITTER,
- },
- {
- title: intl.formatMessage({ defaultMessage: 'Medium', id: 'ovJ26C' }),
- icon: ,
- href: MEDIUM,
- },
- {
- title: intl.formatMessage({ defaultMessage: 'Email', id: 'sy+pv5' }),
- icon: ,
- href: EMAIL,
- },
- ];
-
- return (
-
-
-
- {intl.formatMessage({
- defaultMessage: 'Yield app by mStable',
- id: 'EhET/Q',
- })}
-
-
-
- {intl.formatMessage({
- defaultMessage: 'Powered by dHEDGE',
- id: 'Ez6tQm',
- })}
-
-
-
-
- {socialIcons.map((social) => (
- {
- logEvent('footer_link_clicked', { link: social.title });
- }}
- >
- {social.icon}
-
- ))}
-
-
- );
-};
diff --git a/apps/mstable/src/components/Topnav/index.tsx b/apps/mstable/src/components/Topnav/index.tsx
deleted file mode 100644
index a549c59d..00000000
--- a/apps/mstable/src/components/Topnav/index.tsx
+++ /dev/null
@@ -1,77 +0,0 @@
-import { useCallback } from 'react';
-
-import { SettingsButton } from '@frontend/mstable-settings';
-import { MStable, MStableShort } from '@frontend/shared-icons';
-import {
- OpenAccountModalButton,
- OpenNetworkModalButton,
- useLogAnalyticsEvent,
-} from '@frontend/shared-providers';
-import {
- alpha,
- AppBar,
- Button,
- Stack,
- useMediaQuery,
- useTheme,
-} from '@mui/material';
-import { useNavigate } from '@tanstack/react-location';
-
-export const Topnav = () => {
- const navigate = useNavigate();
- const theme = useTheme();
- const wide = useMediaQuery(theme.breakpoints.up('sm'));
- const logEvent = useLogAnalyticsEvent();
-
- const logSettingsMenuOpen = useCallback(() => {
- logEvent('open_app_settings');
- }, [logEvent]);
-
- return (
-
- theme.mixins.paddings.page.paddingX,
- borderBottom: (theme) => `1px solid ${theme.palette.divider}`,
- backgroundColor: (theme) =>
- alpha(theme.palette.background.default, 0.5),
- backdropFilter: 'blur(20px)',
- }}
- >
-
-
-
-
-
-
-
-
- );
-};
diff --git a/apps/mstable/src/environments/environment.prod.ts b/apps/mstable/src/environments/environment.prod.ts
deleted file mode 100644
index c9669790..00000000
--- a/apps/mstable/src/environments/environment.prod.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export const environment = {
- production: true,
-};
diff --git a/apps/mstable/src/environments/environment.ts b/apps/mstable/src/environments/environment.ts
deleted file mode 100644
index 7ed83767..00000000
--- a/apps/mstable/src/environments/environment.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file can be replaced during build by using the `fileReplacements` array.
-// When building for production, this file is replaced with `environment.prod.ts`.
-
-export const environment = {
- production: false,
-};
diff --git a/apps/mstable/src/main.tsx b/apps/mstable/src/main.tsx
deleted file mode 100644
index aa56b7b1..00000000
--- a/apps/mstable/src/main.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import { StrictMode } from 'react';
-import * as ReactDOM from 'react-dom/client';
-
-import { SettingsProvider } from '@frontend/mstable-settings';
-import {
- dark,
- light,
- rbkDarkTheme,
- rbkLightTheme,
-} from '@frontend/mstable-theme';
-import {
- AnalyticsProvider,
- GoogleAnalyticsProvider,
- I18nProvider,
- ModalsProvider,
- NotificationsProvider,
- PricesProvider,
- ThemeProvider,
- WagmiProvider,
- WalletAnalyticsProvider,
- WalletGoogleAnalyticsProvider,
-} from '@frontend/shared-providers';
-import { composeContexts } from '@frontend/shared-utils';
-import { Router } from '@tanstack/react-location';
-import { QueryClientProvider } from '@tanstack/react-query';
-
-import en from './assets/lang/en.json';
-import {
- chains,
- firebaseApp,
- plausibleClient,
- reactLocationClient,
- reactQueryClient,
- wagmiClient,
-} from './clients';
-import { App } from './components/App';
-import { CoreUIToolkitProvider } from './providers';
-import { routes } from './routes';
-
-const root = ReactDOM.createRoot(
- document.getElementById('root') as HTMLElement,
-);
-root.render(
- composeContexts(
- [
- [StrictMode],
- [GoogleAnalyticsProvider, { client: firebaseApp }],
- [AnalyticsProvider, { client: plausibleClient }],
- [QueryClientProvider, { client: reactQueryClient }],
- [I18nProvider, { messages: { en } }],
- [ThemeProvider, { themes: { light, dark } }],
- [Router, { location: reactLocationClient, routes }],
- [NotificationsProvider],
- [
- WagmiProvider,
- {
- client: wagmiClient,
- chains: chains,
- rbkThemes: { dark: rbkDarkTheme, light: rbkLightTheme },
- },
- ],
- [WalletAnalyticsProvider],
- [WalletGoogleAnalyticsProvider],
- [PricesProvider],
- [ModalsProvider],
- [SettingsProvider],
- [CoreUIToolkitProvider],
- ],
- ,
- ),
-);
diff --git a/apps/mstable/src/providers/core-ui-toolkit.tsx b/apps/mstable/src/providers/core-ui-toolkit.tsx
deleted file mode 100644
index 18f37b70..00000000
--- a/apps/mstable/src/providers/core-ui-toolkit.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-import { DEFAULT_ERROR_MESSAGE } from '@dhedge/core-ui-kit/const';
-import { getExplorerLink, isErrorWithMessage } from '@dhedge/core-ui-kit/utils';
-import { CORE_UI_TOOLKIT_POOL_CONFIG_MAP } from '@frontend/shared-constants';
-import {
- CoreUIToolkitProvider as ToolkitProvider,
- usePushNotification,
-} from '@frontend/shared-providers';
-import { simulateTransaction } from '@frontend/shared-services';
-import { ViewEtherscanLink } from '@frontend/shared-ui';
-import { Button } from '@mui/material';
-
-import type { TradingPanelContextConfig } from '@dhedge/core-ui-kit/types';
-import type { FC, ReactNode } from 'react';
-
-const getActions = (
- pushNotification: ReturnType,
-): TradingPanelContextConfig['actions'] => ({
- onTransactionError: (error, action, chainId, txHash) => {
- console.debug('[mStable]: trading transaction failed', error);
-
- if (txHash) {
- const link = getExplorerLink(txHash, 'transaction', chainId);
- pushNotification({
- title: 'Transaction failed',
- content: ,
- severity: 'error',
- });
- }
- },
- onTransactionSuccess: (data, _, link) => {
- console.debug('[mStable]: trading transaction succeeded', data);
-
- pushNotification({
- title: 'Transaction has passed successfully!',
- content: ,
- severity: 'success',
- });
- },
- onTransactionEstimationError: (error) => {
- const errorMessage = isErrorWithMessage(error)
- ? error.message
- : DEFAULT_ERROR_MESSAGE;
-
- pushNotification({
- title: 'Tx is expected to fail',
- content: (
- <>
- {errorMessage}
- {error?.onBypass && (
-
- )}
- >
- ),
- severity: 'warning',
- });
- },
- onSimulateTransaction: async ({ chainId, from, to, gas, value, input }) => {
- try {
- const { data } = await simulateTransaction({
- chainId,
- from,
- to,
- input,
- gas,
- value,
- });
- console.debug('[mStable] simulation data:', data);
- return data?.data;
- } catch (error) {
- console.debug('[mStable] failed to simulate tx:', error);
- return null;
- }
- },
- onLog: (eventName, payload) => {
- console.log(`[core-ui-toolkit]: log ${eventName}`, payload);
- },
-});
-
-export const CoreUIToolkitProvider: FC = ({
- children,
-}: {
- children: ReactNode;
-}) => {
- const pushNotification = usePushNotification();
-
- return (
-
- {children}
-
- );
-};
diff --git a/apps/mstable/src/providers/index.ts b/apps/mstable/src/providers/index.ts
deleted file mode 100644
index 8ff302d1..00000000
--- a/apps/mstable/src/providers/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './core-ui-toolkit';
diff --git a/apps/mstable/src/routes.tsx b/apps/mstable/src/routes.tsx
deleted file mode 100644
index b67e817f..00000000
--- a/apps/mstable/src/routes.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Home } from './views/Home';
-
-import type { Route } from '@tanstack/react-location';
-
-export const routes: Route[] = [
- {
- id: 'vault',
- path: '/vault',
- children: [
- {
- path: ':address',
- element: () => import('./views/Vault').then((mod) => ),
- },
- ],
- },
- {
- id: 'explore',
- path: '/',
- element: ,
- },
-];
diff --git a/apps/mstable/src/scripts/HotjarScript.tsx b/apps/mstable/src/scripts/HotjarScript.tsx
deleted file mode 100644
index 5266b58f..00000000
--- a/apps/mstable/src/scripts/HotjarScript.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-import { useEffectOnce } from 'react-use';
-
-import type { FC } from 'react';
-
-export const HotjarScript: FC = () => {
- useEffectOnce(() => {
- const script = document.createElement('script');
-
- script.type = 'text/javascript';
- script.innerHTML = `
- (function(h,o,t,j,a,r){
- h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
- h._hjSettings={hjid:3620820,hjsv:6};
- a=o.getElementsByTagName('head')[0];
- r=o.createElement('script');r.async=1;
- r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
- a.appendChild(r);
- })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=')
- `;
-
- document.head.appendChild(script);
- });
-
- return null;
-};
diff --git a/apps/mstable/src/scripts/index.ts b/apps/mstable/src/scripts/index.ts
deleted file mode 100644
index 6b966083..00000000
--- a/apps/mstable/src/scripts/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './HotjarScript';
diff --git a/apps/mstable/src/views/Home.tsx b/apps/mstable/src/views/Home.tsx
deleted file mode 100644
index 363a8d49..00000000
--- a/apps/mstable/src/views/Home.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import { MHRVST_OPTIMISM } from '@frontend/shared-constants';
-import { Navigate } from '@tanstack/react-location';
-import { useMount } from 'react-use';
-
-import { useTransitionBackgroundColor } from '../components/Backgrounds';
-
-export const Home = () => {
- const updateBkgColor = useTransitionBackgroundColor();
-
- useMount(() => {
- updateBkgColor(null);
- });
-
- return ;
-};
diff --git a/apps/mstable/src/views/Vault.tsx b/apps/mstable/src/views/Vault.tsx
deleted file mode 100644
index 78cba49c..00000000
--- a/apps/mstable/src/views/Vault.tsx
+++ /dev/null
@@ -1,47 +0,0 @@
-import { useEffect, useMemo } from 'react';
-
-import { Vault as V } from '@frontend/mstable-vault';
-import {
- CORE_UI_TOOLKIT_POOL_CONFIG_MAP,
- VAULT_CONFIG_MAP,
-} from '@frontend/shared-constants';
-import { useLogAnalyticsEvent } from '@frontend/shared-providers';
-import { useMatch } from '@tanstack/react-location';
-import { useMount } from 'react-use';
-
-import { useTransitionBackgroundColor } from '../components/Backgrounds';
-import { UnsupportedVaultPage } from '../components/Errors';
-
-import type { VaultRoute } from '@frontend/mstable-vault';
-
-export const Vault = () => {
- const logEvent = useLogAnalyticsEvent();
- const updateBkgColor = useTransitionBackgroundColor();
- const {
- params: { address },
- } = useMatch();
- const { config, vault } = useMemo(
- () => ({
- config: CORE_UI_TOOLKIT_POOL_CONFIG_MAP[address.toLowerCase()],
- vault: VAULT_CONFIG_MAP[address.toLowerCase()],
- }),
- [address],
- );
-
- useMount(() => {
- if (vault) {
- updateBkgColor(vault.primaryColor);
- }
- });
-
- useEffect(() => {
- if (!config?.address) return;
- logEvent('vault_page_view', {
- chainId: config?.chainId,
- });
- }, [config?.address, logEvent, config?.chainId]);
-
- if (!config) return ;
-
- return ;
-};
diff --git a/apps/mstable/tsconfig.app.json b/apps/mstable/tsconfig.app.json
deleted file mode 100644
index a650214e..00000000
--- a/apps/mstable/tsconfig.app.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "outDir": "../../dist/out-tsc",
- "types": ["node"]
- },
- "files": [
- "../../node_modules/@nrwl/react/typings/cssmodule.d.ts",
- "../../node_modules/@nrwl/react/typings/image.d.ts",
- "../../libs/mstable/theme/src/mui/types.ts",
- ],
- "exclude": [
- "jest.config.ts",
- "**/*.spec.ts",
- "**/*.test.ts",
- "**/*.spec.tsx",
- "**/*.test.tsx",
- "**/*.spec.js",
- "**/*.test.js",
- "**/*.spec.jsx",
- "**/*.test.jsx"
- ],
- "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"]
-}
diff --git a/apps/mstable/tsconfig.json b/apps/mstable/tsconfig.json
deleted file mode 100644
index d5e07529..00000000
--- a/apps/mstable/tsconfig.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "extends": "../../tsconfig.base.json",
- "compilerOptions": {
- "target": "ESNext",
- "useDefineForClassFields": true,
- "lib": ["DOM", "DOM.Iterable", "ESNext"],
- "allowJs": false,
- "skipLibCheck": true,
- "esModuleInterop": false,
- "allowSyntheticDefaultImports": true,
- "strict": false,
- "forceConsistentCasingInFileNames": true,
- "module": "ESNext",
- "moduleResolution": "Node",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
- "jsx": "react-jsx",
- "types": ["vite/client"]
- },
- "files": [],
- "include": ["src"],
- "references": [
- {
- "path": "./tsconfig.app.json"
- }
- ]
-}
diff --git a/apps/mstable/vite.config.ts b/apps/mstable/vite.config.ts
deleted file mode 100644
index 0c75f538..00000000
--- a/apps/mstable/vite.config.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-/* eslint-disable new-cap */
-import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill';
-import react from '@vitejs/plugin-react';
-import rollupNodePolyFill from 'rollup-plugin-node-polyfills';
-import { defineConfig } from 'vite';
-import svgr from 'vite-plugin-svgr';
-import tsconfigPaths from 'vite-tsconfig-paths';
-
-export default defineConfig({
- cacheDir: '../../node_modules/.vite/mstable',
-
- server: {
- port: 4200,
- host: 'localhost',
- fs: {
- strict: false,
- },
- },
-
- preview: {
- port: 4300,
- host: 'localhost',
- },
-
- define: {
- 'process.env': Object.entries(process.env).reduce(
- (acc, [key, value]) => ({
- ...acc,
- ...((key.startsWith('NX') || ['NODE_ENV'].includes(key)) && {
- [key]: value,
- }),
- }),
- {},
- ),
- },
-
- optimizeDeps: {
- esbuildOptions: {
- define: {
- global: 'globalThis',
- },
- plugins: [
- NodeGlobalsPolyfillPlugin({
- process: true,
- buffer: true,
- }),
- ],
- },
- },
-
- build: {
- chunkSizeWarningLimit: 2500,
- rollupOptions: {
- plugins: [rollupNodePolyFill()],
- },
- },
-
- plugins: [
- svgr(),
- react(),
- tsconfigPaths({
- root: '../../',
- projects: ['tsconfig.base.json'],
- }),
- ],
-});
diff --git a/docs/DEVELOPING.md b/docs/DEVELOPING.md
index 100fa140..65f5d843 100644
--- a/docs/DEVELOPING.md
+++ b/docs/DEVELOPING.md
@@ -26,10 +26,6 @@ cp .env .env.local
Here are the environment variables you can set:
- `NX_CLOUD_ACCESS_TOKEN`: Allows you to push local build files to nx cloud.
-- `NX_THE_GRAPH_MV_MAINNET_URL`: TheGraph endpoint for mainnet Meta Vault subgraph.
-- `NX_THE_GRAPH_MV_GOERLI_URL`: TheGraph endpoint for Goerli Meta Vault subgraph.
-- `NX_ALCHEMY_MAIN_API_KEY`: Your own Alchemy API key for mstable dapp.
-- `NX_ALCHEMY_FALLBACK_API_KEY`: Your own Alchemy API key for mstable dapp.
## Nx
diff --git a/docs/SUBGRAPH.md b/docs/SUBGRAPH.md
deleted file mode 100644
index 6423d977..00000000
--- a/docs/SUBGRAPH.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# Meta Vault Subgraph
-
-We use [TheGraph](https://thegraph.com/) to easily consume on-chain data in the frontend. To keep track of all the historicized metrics we need, we've published the [Meta Vault Subgraph](https://thegraph.com/studio/subgraph/mstable-meta-vaults/).
-
-The code for generating and deploying this subgraph is located in the libs/subgraph folder of our monorepo.
-
-## Authentication
-
-To deploy or publish the subgraphs, you'll need access to the deploy token. You can pass it to the deploy command by adding the `--deploy-key flag`. Alternatively, you can authenticate locally with `yarn graph auth`. For simplicity, we'll assume you're already logged in for the rest of this document.
-
-## Templates
-
-We use the template pattern described in the documentation to deploy the subgraph to different networks. Before building or publishing the subgraph, we need to generate the files by combining the config and the templates. To do this, run the following command:
-
-```bash
-# available networks are mainnet and goerli
-nx prepare subgraph --network=
-```
-
-## Build
-
-Once the files are generated, we call the CLI to build the types and `wasm` files:
-
-```bash
-nx build subgraph
-```
-
-## Deploy
-
-To deploy the subgraph from your local environment, use the `graph deploy` command and pass the subgraph names:
-
-- mainnet: `mstable-meta-vaults`
-- goerli: `mstable-metavault-goerli`
-
-```bash
-yarn graph deploy --studio -o ./libs/subgraph/build ./libs/subgraph/subgraph.yaml
-```
-
-You'll be prompted for the version number, which you should increment following [semantic versioning](https://semver.org/) rules.
-
-### Example for mainnet
-
-```bash
-nx prepare subgraph --network=mainnet
-nx build subgraph
-yarn graph deploy --studio mstable-meta-vaults -o ./libs/subgraph/build ./libs/subgraph/subgraph.yaml
-```
-
-## Use latest version
-
-Update the env variable `NX_THE_GRAPH_MV_MAINNET_URL` in `.env` or `.env.local` to use the latest URL. Note that `dev` or `PR` deploys will use the versions defined in the env file, while the main production deploy will use the endpoints from Github secrets. Don't forget to update them when releasing to the live channel.
-
-> ❗Publishing a new subgraph version causes The Graph to immediately archive the previous version. In most cases, you should wait until the new version finishes indexing before starting to consume it in the app. To keep the previous version's URL working, unarchive the old subgraph version on Subgraph Studio.
diff --git a/firebase.mstable.json b/firebase.mstable.json
deleted file mode 100644
index 6f97ce73..00000000
--- a/firebase.mstable.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "hosting": {
- "public": "dist/apps/mstable",
- "ignore": [
- "firebase.json",
- "**/.*",
- "**/node_modules/**"
- ],
- "rewrites": [
- {
- "source": "**",
- "destination": "/index.html"
- }
- ]
- }
-}
diff --git a/libs/mstable/data-access/.babelrc b/libs/mstable/data-access/.babelrc
deleted file mode 100644
index ccae900b..00000000
--- a/libs/mstable/data-access/.babelrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "presets": [
- [
- "@nrwl/react/babel",
- {
- "runtime": "automatic",
- "useBuiltIns": "usage"
- }
- ]
- ],
- "plugins": []
-}
diff --git a/libs/mstable/data-access/.eslintrc.json b/libs/mstable/data-access/.eslintrc.json
deleted file mode 100644
index 50e59482..00000000
--- a/libs/mstable/data-access/.eslintrc.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": ["plugin:@nrwl/nx/react", "../../../.eslintrc.json"],
- "ignorePatterns": ["!**/*"],
- "overrides": [
- {
- "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
- "rules": {}
- },
- {
- "files": ["*.ts", "*.tsx"],
- "rules": {}
- },
- {
- "files": ["*.js", "*.jsx"],
- "rules": {}
- }
- ]
-}
diff --git a/libs/mstable/data-access/README.md b/libs/mstable/data-access/README.md
deleted file mode 100644
index 3544f152..00000000
--- a/libs/mstable/data-access/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# mstable-data-access
-
-This library was generated with [Nx](https://nx.dev).
-
-## Running unit tests
-
-Run `nx test mstable-data-access` to execute the unit tests via [Jest](https://jestjs.io).
diff --git a/libs/mstable/data-access/codegen.js b/libs/mstable/data-access/codegen.js
deleted file mode 100644
index b9271697..00000000
--- a/libs/mstable/data-access/codegen.js
+++ /dev/null
@@ -1,19 +0,0 @@
-module.exports = {
- generates: {
- 'libs/mstable/data-access/src/generated/graphql.ts': {
- schema: process.env['NX_THE_GRAPH_MV_MAINNET_URL'],
- documents: ['**/src/**/*.graphql'],
- plugins: ['typescript'],
- },
- 'libs/mstable/**/src': {
- schema: process.env['NX_THE_GRAPH_MV_MAINNET_URL'],
- documents: ['**/src/**/*.graphql'],
- preset: 'near-operation-file',
- presetConfig: {
- extension: '.generated.tsx',
- baseTypesPath: '~@frontend/mstable-data-access',
- },
- plugins: ['typescript-operations', 'typescript-react-query'],
- },
- },
-};
diff --git a/libs/mstable/data-access/project.json b/libs/mstable/data-access/project.json
deleted file mode 100644
index b8441c1d..00000000
--- a/libs/mstable/data-access/project.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "mstable-data-access",
- "$schema": "../../../node_modules/nx/schemas/project-schema.json",
- "sourceRoot": "libs/mstable/data-access/src",
- "projectType": "library",
- "tags": [],
- "targets": {
- "codegen": {
- "executor": "nx:run-commands",
- "options": {
- "commands": ["yarn nx run mstable-data-access:codegen-graphql"],
- "parallel": false
- }
- },
- "codegen-graphql": {
- "executor": "nx:run-commands",
- "options": {
- "commands": [
- "yarn graphql-codegen --config 'libs/mstable/data-access/codegen.js'"
- ]
- }
- },
- "lint": {
- "executor": "@nrwl/linter:eslint",
- "outputs": ["{options.outputFile}"],
- "options": {
- "lintFilePatterns": ["libs/mstable/data-access/**/*.{ts,tsx,js,jsx}"]
- }
- }
- }
-}
diff --git a/libs/mstable/data-access/src/generated/graphql.ts b/libs/mstable/data-access/src/generated/graphql.ts
deleted file mode 100644
index f5d91122..00000000
--- a/libs/mstable/data-access/src/generated/graphql.ts
+++ /dev/null
@@ -1,987 +0,0 @@
-export type Maybe = T | null;
-export type InputMaybe = Maybe;
-export type Exact = { [K in keyof T]: T[K] };
-export type MakeOptional = Omit & { [SubKey in K]?: Maybe };
-export type MakeMaybe = Omit & { [SubKey in K]: Maybe };
-/** All built-in and custom scalars, mapped to their actual values */
-export type Scalars = {
- ID: string;
- String: string;
- Boolean: boolean;
- Int: number;
- Float: number;
- BigDecimal: any;
- BigInt: any;
- Bytes: any;
-};
-
-export type Asset = {
- __typename?: 'Asset';
- address: Scalars['Bytes'];
- decimals: Scalars['Int'];
- id: Scalars['ID'];
-};
-
-export type Asset_Filter = {
- /** Filter for the block changed event. */
- _change_block?: InputMaybe;
- address?: InputMaybe;
- address_contains?: InputMaybe;
- address_gt?: InputMaybe;
- address_gte?: InputMaybe;
- address_in?: InputMaybe>;
- address_lt?: InputMaybe;
- address_lte?: InputMaybe;
- address_not?: InputMaybe;
- address_not_contains?: InputMaybe;
- address_not_in?: InputMaybe>;
- and?: InputMaybe>>;
- decimals?: InputMaybe;
- decimals_gt?: InputMaybe;
- decimals_gte?: InputMaybe;
- decimals_in?: InputMaybe>;
- decimals_lt?: InputMaybe;
- decimals_lte?: InputMaybe;
- decimals_not?: InputMaybe;
- decimals_not_in?: InputMaybe>;
- id?: InputMaybe;
- id_gt?: InputMaybe;
- id_gte?: InputMaybe;
- id_in?: InputMaybe>;
- id_lt?: InputMaybe;
- id_lte?: InputMaybe;
- id_not?: InputMaybe;
- id_not_in?: InputMaybe>;
- or?: InputMaybe>>;
-};
-
-export enum Asset_OrderBy {
- Address = 'address',
- Decimals = 'decimals',
- Id = 'id'
-}
-
-export type BlockChangedFilter = {
- number_gte: Scalars['Int'];
-};
-
-export type Block_Height = {
- hash?: InputMaybe;
- number?: InputMaybe;
- number_gte?: InputMaybe;
-};
-
-export type DailyVaultBalance = {
- __typename?: 'DailyVaultBalance';
- assetBalance: Scalars['BigInt'];
- assetDeposited: Scalars['BigInt'];
- id: Scalars['ID'];
- shareBalance: Scalars['BigInt'];
- timestamp: Scalars['BigInt'];
- vaultBalance: VaultBalance;
-};
-
-export type DailyVaultBalance_Filter = {
- /** Filter for the block changed event. */
- _change_block?: InputMaybe;
- and?: InputMaybe>>;
- assetBalance?: InputMaybe;
- assetBalance_gt?: InputMaybe;
- assetBalance_gte?: InputMaybe;
- assetBalance_in?: InputMaybe>;
- assetBalance_lt?: InputMaybe;
- assetBalance_lte?: InputMaybe;
- assetBalance_not?: InputMaybe;
- assetBalance_not_in?: InputMaybe>;
- assetDeposited?: InputMaybe;
- assetDeposited_gt?: InputMaybe;
- assetDeposited_gte?: InputMaybe;
- assetDeposited_in?: InputMaybe>;
- assetDeposited_lt?: InputMaybe;
- assetDeposited_lte?: InputMaybe;
- assetDeposited_not?: InputMaybe;
- assetDeposited_not_in?: InputMaybe>;
- id?: InputMaybe;
- id_gt?: InputMaybe;
- id_gte?: InputMaybe;
- id_in?: InputMaybe>;
- id_lt?: InputMaybe;
- id_lte?: InputMaybe;
- id_not?: InputMaybe;
- id_not_in?: InputMaybe>;
- or?: InputMaybe>>;
- shareBalance?: InputMaybe;
- shareBalance_gt?: InputMaybe;
- shareBalance_gte?: InputMaybe;
- shareBalance_in?: InputMaybe>;
- shareBalance_lt?: InputMaybe;
- shareBalance_lte?: InputMaybe;
- shareBalance_not?: InputMaybe;
- shareBalance_not_in?: InputMaybe>;
- timestamp?: InputMaybe;
- timestamp_gt?: InputMaybe;
- timestamp_gte?: InputMaybe;
- timestamp_in?: InputMaybe>;
- timestamp_lt?: InputMaybe;
- timestamp_lte?: InputMaybe;
- timestamp_not?: InputMaybe;
- timestamp_not_in?: InputMaybe>;
- vaultBalance?: InputMaybe;
- vaultBalance_?: InputMaybe;
- vaultBalance_contains?: InputMaybe;
- vaultBalance_contains_nocase?: InputMaybe;
- vaultBalance_ends_with?: InputMaybe;
- vaultBalance_ends_with_nocase?: InputMaybe;
- vaultBalance_gt?: InputMaybe;
- vaultBalance_gte?: InputMaybe;
- vaultBalance_in?: InputMaybe>;
- vaultBalance_lt?: InputMaybe;
- vaultBalance_lte?: InputMaybe;
- vaultBalance_not?: InputMaybe;
- vaultBalance_not_contains?: InputMaybe;
- vaultBalance_not_contains_nocase?: InputMaybe;
- vaultBalance_not_ends_with?: InputMaybe;
- vaultBalance_not_ends_with_nocase?: InputMaybe;
- vaultBalance_not_in?: InputMaybe>;
- vaultBalance_not_starts_with?: InputMaybe;
- vaultBalance_not_starts_with_nocase?: InputMaybe;
- vaultBalance_starts_with?: InputMaybe;
- vaultBalance_starts_with_nocase?: InputMaybe;
-};
-
-export enum DailyVaultBalance_OrderBy {
- AssetBalance = 'assetBalance',
- AssetDeposited = 'assetDeposited',
- Id = 'id',
- ShareBalance = 'shareBalance',
- Timestamp = 'timestamp',
- VaultBalance = 'vaultBalance',
- VaultBalanceAssetBalance = 'vaultBalance__assetBalance',
- VaultBalanceAssetDeposited = 'vaultBalance__assetDeposited',
- VaultBalanceId = 'vaultBalance__id',
- VaultBalanceOwner = 'vaultBalance__owner',
- VaultBalanceShareBalance = 'vaultBalance__shareBalance',
- VaultBalanceTimestamp = 'vaultBalance__timestamp'
-}
-
-export type DailyVaultStat = {
- __typename?: 'DailyVaultStat';
- apy: Scalars['BigDecimal'];
- assetPerShare: Scalars['BigDecimal'];
- blockNumber: Scalars['BigInt'];
- id: Scalars['ID'];
- timestamp: Scalars['BigInt'];
- totalAssets: Scalars['BigInt'];
- totalSupply: Scalars['BigInt'];
- vault: Vault;
-};
-
-export type DailyVaultStat_Filter = {
- /** Filter for the block changed event. */
- _change_block?: InputMaybe;
- and?: InputMaybe>>;
- apy?: InputMaybe;
- apy_gt?: InputMaybe;
- apy_gte?: InputMaybe;
- apy_in?: InputMaybe>;
- apy_lt?: InputMaybe;
- apy_lte?: InputMaybe;
- apy_not?: InputMaybe;
- apy_not_in?: InputMaybe>;
- assetPerShare?: InputMaybe;
- assetPerShare_gt?: InputMaybe;
- assetPerShare_gte?: InputMaybe;
- assetPerShare_in?: InputMaybe>;
- assetPerShare_lt?: InputMaybe;
- assetPerShare_lte?: InputMaybe;
- assetPerShare_not?: InputMaybe;
- assetPerShare_not_in?: InputMaybe>;
- blockNumber?: InputMaybe;
- blockNumber_gt?: InputMaybe;
- blockNumber_gte?: InputMaybe;
- blockNumber_in?: InputMaybe>;
- blockNumber_lt?: InputMaybe;
- blockNumber_lte?: InputMaybe;
- blockNumber_not?: InputMaybe;
- blockNumber_not_in?: InputMaybe>;
- id?: InputMaybe;
- id_gt?: InputMaybe;
- id_gte?: InputMaybe;
- id_in?: InputMaybe>;
- id_lt?: InputMaybe;
- id_lte?: InputMaybe;
- id_not?: InputMaybe;
- id_not_in?: InputMaybe>;
- or?: InputMaybe>>;
- timestamp?: InputMaybe;
- timestamp_gt?: InputMaybe;
- timestamp_gte?: InputMaybe;
- timestamp_in?: InputMaybe>;
- timestamp_lt?: InputMaybe;
- timestamp_lte?: InputMaybe;
- timestamp_not?: InputMaybe;
- timestamp_not_in?: InputMaybe>;
- totalAssets?: InputMaybe;
- totalAssets_gt?: InputMaybe;
- totalAssets_gte?: InputMaybe;
- totalAssets_in?: InputMaybe>;
- totalAssets_lt?: InputMaybe;
- totalAssets_lte?: InputMaybe;
- totalAssets_not?: InputMaybe;
- totalAssets_not_in?: InputMaybe>;
- totalSupply?: InputMaybe;
- totalSupply_gt?: InputMaybe;
- totalSupply_gte?: InputMaybe;
- totalSupply_in?: InputMaybe>;
- totalSupply_lt?: InputMaybe;
- totalSupply_lte?: InputMaybe;
- totalSupply_not?: InputMaybe;
- totalSupply_not_in?: InputMaybe>;
- vault?: InputMaybe;
- vault_?: InputMaybe;
- vault_contains?: InputMaybe;
- vault_contains_nocase?: InputMaybe;
- vault_ends_with?: InputMaybe;
- vault_ends_with_nocase?: InputMaybe;
- vault_gt?: InputMaybe;
- vault_gte?: InputMaybe;
- vault_in?: InputMaybe>;
- vault_lt?: InputMaybe;
- vault_lte?: InputMaybe;
- vault_not?: InputMaybe;
- vault_not_contains?: InputMaybe;
- vault_not_contains_nocase?: InputMaybe;
- vault_not_ends_with?: InputMaybe;
- vault_not_ends_with_nocase?: InputMaybe;
- vault_not_in?: InputMaybe>;
- vault_not_starts_with?: InputMaybe;
- vault_not_starts_with_nocase?: InputMaybe;
- vault_starts_with?: InputMaybe;
- vault_starts_with_nocase?: InputMaybe;
-};
-
-export enum DailyVaultStat_OrderBy {
- Apy = 'apy',
- AssetPerShare = 'assetPerShare',
- BlockNumber = 'blockNumber',
- Id = 'id',
- Timestamp = 'timestamp',
- TotalAssets = 'totalAssets',
- TotalSupply = 'totalSupply',
- Vault = 'vault',
- VaultAddress = 'vault__address',
- VaultApy = 'vault__apy',
- VaultAssetPerShare = 'vault__assetPerShare',
- VaultDecimals = 'vault__decimals',
- VaultId = 'vault__id',
- VaultTimestamp = 'vault__timestamp',
- VaultTotalAssets = 'vault__totalAssets',
- VaultTotalSupply = 'vault__totalSupply'
-}
-
-/** Defines the order direction, either ascending or descending */
-export enum OrderDirection {
- Asc = 'asc',
- Desc = 'desc'
-}
-
-export type Query = {
- __typename?: 'Query';
- /** Access to subgraph metadata */
- _meta?: Maybe<_Meta_>;
- asset?: Maybe;
- assets: Array;
- dailyVaultBalance?: Maybe;
- dailyVaultBalances: Array;
- dailyVaultStat?: Maybe;
- dailyVaultStats: Array;
- transaction?: Maybe;
- transactions: Array;
- vault?: Maybe;
- vaultBalance?: Maybe;
- vaultBalances: Array;
- vaults: Array;
-};
-
-
-export type Query_MetaArgs = {
- block?: InputMaybe;
-};
-
-
-export type QueryAssetArgs = {
- block?: InputMaybe;
- id: Scalars['ID'];
- subgraphError?: _SubgraphErrorPolicy_;
-};
-
-
-export type QueryAssetsArgs = {
- block?: InputMaybe;
- first?: InputMaybe;
- orderBy?: InputMaybe;
- orderDirection?: InputMaybe;
- skip?: InputMaybe;
- subgraphError?: _SubgraphErrorPolicy_;
- where?: InputMaybe;
-};
-
-
-export type QueryDailyVaultBalanceArgs = {
- block?: InputMaybe;
- id: Scalars['ID'];
- subgraphError?: _SubgraphErrorPolicy_;
-};
-
-
-export type QueryDailyVaultBalancesArgs = {
- block?: InputMaybe;
- first?: InputMaybe;
- orderBy?: InputMaybe;
- orderDirection?: InputMaybe;
- skip?: InputMaybe;
- subgraphError?: _SubgraphErrorPolicy_;
- where?: InputMaybe;
-};
-
-
-export type QueryDailyVaultStatArgs = {
- block?: InputMaybe;
- id: Scalars['ID'];
- subgraphError?: _SubgraphErrorPolicy_;
-};
-
-
-export type QueryDailyVaultStatsArgs = {
- block?: InputMaybe;
- first?: InputMaybe;
- orderBy?: InputMaybe;
- orderDirection?: InputMaybe;
- skip?: InputMaybe;
- subgraphError?: _SubgraphErrorPolicy_;
- where?: InputMaybe;
-};
-
-
-export type QueryTransactionArgs = {
- block?: InputMaybe;
- id: Scalars['ID'];
- subgraphError?: _SubgraphErrorPolicy_;
-};
-
-
-export type QueryTransactionsArgs = {
- block?: InputMaybe;
- first?: InputMaybe;
- orderBy?: InputMaybe;
- orderDirection?: InputMaybe;
- skip?: InputMaybe;
- subgraphError?: _SubgraphErrorPolicy_;
- where?: InputMaybe;
-};
-
-
-export type QueryVaultArgs = {
- block?: InputMaybe;
- id: Scalars['ID'];
- subgraphError?: _SubgraphErrorPolicy_;
-};
-
-
-export type QueryVaultBalanceArgs = {
- block?: InputMaybe;
- id: Scalars['ID'];
- subgraphError?: _SubgraphErrorPolicy_;
-};
-
-
-export type QueryVaultBalancesArgs = {
- block?: InputMaybe;
- first?: InputMaybe;
- orderBy?: InputMaybe;
- orderDirection?: InputMaybe;
- skip?: InputMaybe;
- subgraphError?: _SubgraphErrorPolicy_;
- where?: InputMaybe;
-};
-
-
-export type QueryVaultsArgs = {
- block?: InputMaybe;
- first?: InputMaybe;
- orderBy?: InputMaybe;
- orderDirection?: InputMaybe;
- skip?: InputMaybe;
- subgraphError?: _SubgraphErrorPolicy_;
- where?: InputMaybe;
-};
-
-export type Subscription = {
- __typename?: 'Subscription';
- /** Access to subgraph metadata */
- _meta?: Maybe<_Meta_>;
- asset?: Maybe;
- assets: Array;
- dailyVaultBalance?: Maybe;
- dailyVaultBalances: Array;
- dailyVaultStat?: Maybe