Skip to content

Commit 16e8886

Browse files
committed
Merge branch 'main' into feat/cow-collateral-swaps
2 parents 13e0c23 + ec68991 commit 16e8886

File tree

83 files changed

+2215
-772
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+2215
-772
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"dependencies": {
3434
"@aave/contract-helpers": "1.36.1",
3535
"@aave/math-utils": "1.36.1",
36+
"@aave/react": "^0.4.0",
3637
"@amplitude/analytics-browser": "^2.13.0",
3738
"@bgd-labs/aave-address-book": "^4.25.1",
3839
"@cowprotocol/app-data": "^3.1.0",

pages/_app.page.tsx

Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import '/public/fonts/inter/inter.css';
22
import '/src/styles/variables.css';
33

4+
import { AaveClient, AaveProvider } from '@aave/react';
45
import { CacheProvider, EmotionCache } from '@emotion/react';
56
import { NoSsr } from '@mui/material';
67
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
@@ -95,6 +96,8 @@ type NextPageWithLayout = NextPage & {
9596
getLayout?: (page: React.ReactElement) => React.ReactNode;
9697
};
9798

99+
export const client = AaveClient.create();
100+
98101
interface MyAppProps extends AppProps {
99102
emotionCache?: EmotionCache;
100103
Component: NextPageWithLayout;
@@ -141,51 +144,53 @@ export default function MyApp(props: MyAppProps) {
141144
imageUrl="https://app.aave.com/aave-com-opengraph.png"
142145
/>
143146
<NoSsr>
144-
<LanguageProvider>
145-
<WagmiProvider config={wagmiConfig}>
146-
<QueryClientProvider client={queryClient}>
147-
<ConnectKitProvider
148-
onDisconnect={cleanLocalStorage}
149-
onConnect={({ connectorId }) => setWalletType(connectorId)}
150-
>
151-
<Web3ContextProvider>
152-
<AppGlobalStyles>
153-
<AddressBlocked>
154-
<CowOrderToastProvider>
155-
<ModalContextProvider>
156-
<SharedDependenciesProvider>
157-
<AppDataProvider>
158-
<GasStationProvider>
159-
{getLayout(<Component {...pageProps} />)}
160-
<SupplyModal />
161-
<WithdrawModal />
162-
<BorrowModal />
163-
<RepayModal />
164-
<CollateralChangeModal />
165-
<DebtSwitchModal />
166-
<ClaimRewardsModal />
167-
<EmodeModal />
168-
<FaucetModal />
169-
<TransactionEventHandler />
170-
<SwitchModal />
171-
<CollateralSwapModal />
172-
<StakingMigrateModal />
173-
<BridgeModal />
174-
<ReadOnlyModal />
175-
<CowOrderToast />
176-
</GasStationProvider>
177-
</AppDataProvider>
178-
</SharedDependenciesProvider>
179-
</ModalContextProvider>
180-
</CowOrderToastProvider>
181-
</AddressBlocked>
182-
</AppGlobalStyles>
183-
</Web3ContextProvider>
184-
</ConnectKitProvider>
185-
<ReactQueryDevtools initialIsOpen={false} />
186-
</QueryClientProvider>
187-
</WagmiProvider>
188-
</LanguageProvider>
147+
<AaveProvider client={client}>
148+
<LanguageProvider>
149+
<WagmiProvider config={wagmiConfig}>
150+
<QueryClientProvider client={queryClient}>
151+
<ConnectKitProvider
152+
onDisconnect={cleanLocalStorage}
153+
onConnect={({ connectorId }) => setWalletType(connectorId)}
154+
>
155+
<Web3ContextProvider>
156+
<AppGlobalStyles>
157+
<AddressBlocked>
158+
<CowOrderToastProvider>
159+
<ModalContextProvider>
160+
<SharedDependenciesProvider>
161+
<AppDataProvider>
162+
<GasStationProvider>
163+
{getLayout(<Component {...pageProps} />)}
164+
<SupplyModal />
165+
<WithdrawModal />
166+
<BorrowModal />
167+
<RepayModal />
168+
<CollateralChangeModal />
169+
<DebtSwitchModal />
170+
<ClaimRewardsModal />
171+
<EmodeModal />
172+
<FaucetModal />
173+
<TransactionEventHandler />
174+
<SwitchModal />
175+
<CollateralSwapModal />
176+
<StakingMigrateModal />
177+
<BridgeModal />
178+
<ReadOnlyModal />
179+
<CowOrderToast />
180+
</GasStationProvider>
181+
</AppDataProvider>
182+
</SharedDependenciesProvider>
183+
</ModalContextProvider>
184+
</CowOrderToastProvider>
185+
</AddressBlocked>
186+
</AppGlobalStyles>
187+
</Web3ContextProvider>
188+
</ConnectKitProvider>
189+
<ReactQueryDevtools initialIsOpen={false} />
190+
</QueryClientProvider>
191+
</WagmiProvider>
192+
</LanguageProvider>
193+
</AaveProvider>
189194
</NoSsr>
190195
</CacheProvider>
191196
);

pages/sgho.page.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ import { WalletBalance } from 'src/modules/reserve-overview/ReserveActions';
1515
import { SGHODepositPanel } from 'src/modules/sGho/SGhoDepositPanel';
1616
import { SGHOHeader } from 'src/modules/sGho/SGhoHeader';
1717
import { useRootStore } from 'src/store/root';
18+
import { CustomMarket } from 'src/ui-config/marketsConfig';
1819
import { SAFETY_MODULE } from 'src/utils/events';
20+
import { useShallow } from 'zustand/shallow';
1921

2022
import { useWeb3Context } from '../src/libs/hooks/useWeb3Context';
2123

@@ -33,14 +35,24 @@ const SavingsGhoWithdrawModal = dynamic(() =>
3335
export default function SavingsGho() {
3436
const { openSavingsGhoDeposit, openSavingsGhoWithdraw } = useModalContext();
3537
const { currentAccount } = useWeb3Context();
36-
const trackEvent = useRootStore((store) => store.trackEvent);
38+
const [trackEvent, currentMarket, setCurrentMarket] = useRootStore(
39+
useShallow((store) => [store.trackEvent, store.currentMarket, store.setCurrentMarket])
40+
);
3741
const currentMarketData = useRootStore((store) => store.currentMarketData);
3842
const { breakpoints } = useTheme();
3943
const downToXsm = useMediaQuery(breakpoints.down('xsm'));
4044
const { data: stakeUserResult } = useUserStakeUiData(currentMarketData);
4145

4246
const { data: stakeGeneralResult } = useGeneralStakeUiData(currentMarketData);
4347

48+
// Automatically switch to mainnet if not already on mainnet
49+
// since sGHO only exists on Ethereum mainnet
50+
useEffect(() => {
51+
if (currentMarket !== CustomMarket.proto_mainnet_v3) {
52+
setCurrentMarket(CustomMarket.proto_mainnet_v3);
53+
}
54+
}, [currentMarket, setCurrentMarket]);
55+
4456
useEffect(() => {
4557
trackEvent('Page Viewed', {
4658
'Page Name': 'sGHO',

src/components/ConnectWalletPaperStaking.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,12 @@ export const ConnectWalletPaperStaking = ({
4646
)}
4747
</Typography>
4848
<ConnectWalletButton funnel={'Staking page'} />
49-
<Grid container spacing={1} pt={6} sx={{ maxWidth: '758px', textAlign: 'right' }}>
50-
<Grid item xs={12} md={4}>
51-
<StakingPanelNoWallet stakedToken={'GHO'} icon={'gho'} />
52-
</Grid>
49+
<Grid
50+
container
51+
spacing={1}
52+
pt={6}
53+
sx={{ maxWidth: '758px', textAlign: 'right', justifyContent: 'center' }}
54+
>
5355
<Grid item xs={12} md={4}>
5456
<StakingPanelNoWallet stakedToken={'AAVE'} icon={'aave'} />
5557
</Grid>

src/components/ContentWithTooltip.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ interface ContentWithTooltipProps {
55
children: ReactNode;
66
// eslint-disable-next-line
77
tooltipContent: ReactElement<any, string | JSXElementConstructor<any>>;
8-
placement?: 'top' | 'bottom';
8+
placement?: 'right' | 'left' | 'bottom';
99
withoutHover?: boolean;
1010
open?: boolean;
1111
setOpen?: (value: boolean) => void;
@@ -34,7 +34,7 @@ export const PopperComponent = styled(Popper)(({ theme }) =>
3434
export const ContentWithTooltip = ({
3535
children,
3636
tooltipContent,
37-
placement = 'top',
37+
placement = 'right',
3838
withoutHover,
3939
open,
4040
setOpen,
@@ -66,6 +66,12 @@ export const ContentWithTooltip = ({
6666
offset: offset ?? [],
6767
},
6868
},
69+
{
70+
name: 'flip',
71+
options: {
72+
fallbackPlacements: ['left', 'bottom'],
73+
},
74+
},
6975
],
7076
onClick: (e) => {
7177
e.stopPropagation();

0 commit comments

Comments
 (0)