diff --git a/README.md b/README.md index 72af0ad7..65d51d06 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,18 @@ -# Lyra Interface +# Kwenta Options Interface An open source interface for the Lyra Protocol, a decentralized options exchange built on Optimistic Ethereum. -## Accessing the Lyra Interface +## Accessing the Kwenta Options Interface -To access the Lyra Interface, use an IPFS gateway link from the [latest release](https://github.com/lyra-finance/interface/releases/latest) or visit [app.lyra.finance](https://app.lyra.finance). +To access the Kwenta Options Interface, use an IPFS gateway link from the [latest release](https://github.com/Kwenta/lyra-interface/releases/latest) or visit [options.kwenta.eth.limo](https://options.kwenta.eth.limo). ## Contributions -The Lyra Interface is open source, permissionless software that can be developed and hosted by anyone. Thanks in advance for your contributions! +The Kwenta Options Interface is open source, permissionless software that can be developed and hosted by anyone. Thanks in advance for your contributions! Contributors should fork this repository and submit pull requests against the `kwenta/lyra-interface:dev` branch. + +The `master` branch will be regularly synchronized in line with changes incoming from the `lyra-finance/interface:master` branch by the devDAO PM. + +Once changes in the `dev` branch have been thoroughly tested and approved, new releases to the Kwenta-hosted Lyra frontend will be pushed to the `deploy` branch. ### Setup @@ -26,4 +30,4 @@ yarn start ``` yarn build -``` +``` \ No newline at end of file diff --git a/app/.env.production b/app/.env.production index b7d66b10..c52f2a2a 100644 --- a/app/.env.production +++ b/app/.env.production @@ -10,6 +10,8 @@ REACT_APP_ENABLE_TERMS_OF_USE=true # Node Providers REACT_APP_INFURA_PROJECT_ID=0454e8da3dd7418c8cc8bf0961417068 REACT_APP_ALCHEMY_PROJECT_ID=PAYPVgUFFCJE6uKwBWzZI_PjrSF79-0I +REACT_APP_ALCHEMY_ARBITRUM_PROJECT_ID=zHh7If3eVmL8WETSWzpqFV61YqUNARwe +REACT_APP_ALCHEMY_ETHEREUM_PROJECT_ID=7CT7Q2obESWD4Kfvf8tUo2PynUzaZh1N # Analytics REACT_APP_POST_HOG_API_KEY=phc_1duTJdHbYFcVN268FV4CI3vDf3dgM0AqKsBkM2nasBt diff --git a/app/craco.config.cjs b/app/craco.config.cjs index be66714a..399c2624 100644 --- a/app/craco.config.cjs +++ b/app/craco.config.cjs @@ -25,6 +25,14 @@ module.exports = { new BundleAnalyzerPlugin({ analyzerMode: process.env.REACT_APP_INTERACTIVE_ANALYZE ? 'server' : 'json' }) ) } + if (process.env.NODE_ENV !== 'production') { + webpackConfig.devtool = 'eval-cheap-module-source-map' + webpackConfig.ignoreWarnings = [ + { + message: /Failed to parse source map/, + }, + ] + } webpackConfig.plugins.push( new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], diff --git a/app/public/favicon/android-chrome-192x192.png b/app/public/favicon/android-chrome-192x192.png index 248dae15..f9f2059c 100644 Binary files a/app/public/favicon/android-chrome-192x192.png and b/app/public/favicon/android-chrome-192x192.png differ diff --git a/app/public/favicon/android-chrome-512x512.png b/app/public/favicon/android-chrome-512x512.png index 42377d31..6dc4ffce 100644 Binary files a/app/public/favicon/android-chrome-512x512.png and b/app/public/favicon/android-chrome-512x512.png differ diff --git a/app/public/favicon/apple-touch-icon.png b/app/public/favicon/apple-touch-icon.png index 8364b5ba..b658b2f6 100644 Binary files a/app/public/favicon/apple-touch-icon.png and b/app/public/favicon/apple-touch-icon.png differ diff --git a/app/public/favicon/favicon-16x16.png b/app/public/favicon/favicon-16x16.png index 79185e4c..c7d35dc1 100644 Binary files a/app/public/favicon/favicon-16x16.png and b/app/public/favicon/favicon-16x16.png differ diff --git a/app/public/favicon/favicon-32x32.png b/app/public/favicon/favicon-32x32.png index 8370bb9e..e3175c55 100644 Binary files a/app/public/favicon/favicon-32x32.png and b/app/public/favicon/favicon-32x32.png differ diff --git a/app/public/favicon/favicon.ico b/app/public/favicon/favicon.ico index e2e81b7f..fe267276 100644 Binary files a/app/public/favicon/favicon.ico and b/app/public/favicon/favicon.ico differ diff --git a/app/public/favicon/mstile-150x150.png b/app/public/favicon/mstile-150x150.png index e9b8debe..35ed595e 100644 Binary files a/app/public/favicon/mstile-150x150.png and b/app/public/favicon/mstile-150x150.png differ diff --git a/app/public/favicon/safari-pinned-tab.svg b/app/public/favicon/safari-pinned-tab.svg index c64df8e2..23e2e8ec 100644 --- a/app/public/favicon/safari-pinned-tab.svg +++ b/app/public/favicon/safari-pinned-tab.svg @@ -2,42 +2,29 @@ Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - + diff --git a/app/public/images/logo-yellow.svg b/app/public/images/logo-yellow.svg new file mode 100644 index 00000000..a3929a3f --- /dev/null +++ b/app/public/images/logo-yellow.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/public/images/logo.svg b/app/public/images/logo.svg new file mode 100644 index 00000000..96f2633d --- /dev/null +++ b/app/public/images/logo.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/public/index.html b/app/public/index.html index b151b530..42044b2c 100644 --- a/app/public/index.html +++ b/app/public/index.html @@ -7,21 +7,21 @@ - Lyra Interface | Decentralized Options Liquidity - + Kwenta Options | Decentralized Options Liquidity + - + - + diff --git a/app/src/App.tsx b/app/src/App.tsx index 593217d8..f1e67ff9 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -16,8 +16,11 @@ import AdminMarketPage from './pages/AdminPage' import NotFoundPage from './pages/NotFoundPage' import PortfolioPage from './pages/PortfolioPage' import PositionPage from './pages/PositionPage' -import RewardsHistoryPage from './pages/RewardsHistoryPage' -import RewardsPage from './pages/RewardsPage' +import RewardsEthLyraLPPage from './pages/RewardsEthLyraLPPage' +import RewardsIndexPage from './pages/RewardsIndexPage' +import RewardsShortsPage from './pages/RewardsShortsPage' +import RewardsTradingPage from './pages/RewardsTradingPage' +import RewardsVaultsPage from './pages/RewardsVaultsPage' import StoryBookPage from './pages/StoryBookPage' import TradePage from './pages/TradePage' import VaultsHistoryPage from './pages/VaultsHistoryPage' @@ -126,8 +129,12 @@ function App(): JSX.Element { } /> } /> } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> } /> {typeof label === 'string' ? ( - + {label} ) : ( diff --git a/app/src/components/dev/TableDemoCard/index.tsx b/app/src/components/dev/TableDemoCard/index.tsx index 5ab05183..b7ddd3b1 100644 --- a/app/src/components/dev/TableDemoCard/index.tsx +++ b/app/src/components/dev/TableDemoCard/index.tsx @@ -1,5 +1,6 @@ import Card, { CardElement } from '@lyra/ui/components/Card' import CardSection from '@lyra/ui/components/Card/CardSection' +import CardSeparator from '@lyra/ui/components/Card/CardSeparator' import Table, { TableCellProps, TableColumn, TableData } from '@lyra/ui/components/Table' import Text from '@lyra/ui/components/Text' import { MarginProps } from '@lyra/ui/types' @@ -62,6 +63,7 @@ export default function TableDemoCard({ ...marginProps }: MarginProps): CardElem +
diff --git a/app/src/components/position/PositionCard/index.tsx b/app/src/components/position/PositionCard/index.tsx index f466095e..38a62e3b 100644 --- a/app/src/components/position/PositionCard/index.tsx +++ b/app/src/components/position/PositionCard/index.tsx @@ -12,6 +12,7 @@ import React, { useState } from 'react' import PositionStatusText from '@/app/components/common/PositionStatusText' import { UNIT, ZERO_BN } from '@/app/constants/bn' import ShortYieldValue from '@/app/containers/common/ShortYieldValue' +import TradeCollateralFormModal from '@/app/containers/trade/TradeCollateralFormModal' import TradeFormModal from '@/app/containers/trade/TradeFormModal' import useWallet from '@/app/hooks/account/useWallet' @@ -31,7 +32,8 @@ const PositionCard = ({ position, option }: Props): JSX.Element | null => { const equity = position.isLong ? currentPrice.mul(size).div(UNIT) : position?.collateral?.value ?? ZERO_BN const [isBuy, setIsBuy] = useState(false) - const [isOpen, setIsOpen] = useState(false) + const [isTradeFormOpen, setIsTradeFormOpen] = useState(false) + const [isCollateralFormOpen, setIsCollateralFormOpen] = useState(false) const { account, isOverride } = useWallet() const isOwner = account === position.owner && !isOverride @@ -85,30 +87,43 @@ const PositionCard = ({ position, option }: Props): JSX.Element | null => { label="Open Position" onClick={() => { setIsBuy(position.isLong) - setIsOpen(true) + setIsTradeFormOpen(true) }} />