Skip to content

Commit

Permalink
♻️ revert optimism network
Browse files Browse the repository at this point in the history
  • Loading branch information
jgalat authored and franm91 committed Mar 2, 2023
1 parent 9982823 commit 6f40fd4
Show file tree
Hide file tree
Showing 11 changed files with 63 additions and 100 deletions.
10 changes: 5 additions & 5 deletions components/DisclaimerModal/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ export default function DisclaimerModal() {
<DialogContent dividers>
<>
<Typography variant="body1" mb={2}>
Exactly is an open source, non-custodial protocol that operates on both the Ethereum Mainnet (L1) and
Optimism roll-up (L2) networks. The protocol is designed to bring fixed-income solutions for lenders and
borrowers (the &quot;Platform&quot;). The Platform will permit its users, among other things, enter into
certain transaction involving digital assets (including but not limited to digital loans and credit
products) (the &quot;Digital Assets Services&quot;).
Exactly is an open source, non-custodial protocol that operates on the Ethereum Mainnet network. The
protocol is designed to bring fixed-income solutions for lenders and borrowers (the &quot;Platform&quot;).
The Platform will permit its users, among other things, enter into certain transaction involving digital
assets (including but not limited to digital loans and credit products) (the &quot;Digital Assets
Services&quot;).
</Typography>
<Typography variant="body1" mb={2}>
The Platform does not allow it use by, or operates in any way with, US Persons. US Persons are prohibited
Expand Down
4 changes: 0 additions & 4 deletions config/networkData.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,5 @@
"5": {
"etherscan": "https://goerli.etherscan.io",
"subgraph": "https://api.thegraph.com/subgraphs/name/exactly-protocol/exactly-goerli"
},
"420": {
"etherscan": "https://goerli-optimism.etherscan.io/",
"subgraph": "https://api.thegraph.com/subgraphs/name/exactly/exactly-optimism-goerli"
}
}
25 changes: 2 additions & 23 deletions hooks/useAuditor.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,7 @@
import { useMemo } from 'react';
import { Contract } from '@ethersproject/contracts';
import { useSigner } from 'wagmi';
import { mainnet, goerli, optimismGoerli } from 'wagmi/chains';
import type { Auditor } from 'types/contracts/Auditor';
import mainnetAuditor from '@exactly-protocol/protocol/deployments/mainnet/Auditor.json' assert { type: 'json' };
import goerliAuditor from '@exactly-protocol/protocol/deployments/goerli/Auditor.json' assert { type: 'json' };
import optimismGoerliAuditor from '@exactly-protocol/protocol/deployments/optimism-goerli/Auditor.json' assert { type: 'json' };
import auditorABI from 'abi/Auditor.json' assert { type: 'json' };
import { useWeb3 } from './useWeb3';
import useContract from './useContract';

export default () => {
const { data: signer } = useSigner();
const { chain } = useWeb3();

return useMemo(() => {
if (!signer || !chain) return null;

const address = {
[goerli.id]: goerliAuditor.address,
[mainnet.id]: mainnetAuditor.address,
[optimismGoerli.id]: optimismGoerliAuditor.address,
}[chain.id];
if (!address) return null;

return new Contract(address, auditorABI, signer) as Auditor;
}, [chain, signer]);
return useContract<Auditor>('Auditor', auditorABI);
};
33 changes: 33 additions & 0 deletions hooks/useContract.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { useState, useEffect } from 'react';
import { useSigner } from 'wagmi';
import { mainnet } from 'wagmi/chains';
import { Contract, ContractInterface } from '@ethersproject/contracts';
import { captureException } from '@sentry/nextjs';

import { useWeb3 } from './useWeb3';

export default function <T>(contractName: string, abi: ContractInterface): T | undefined {
const { data: signer } = useSigner();
const { chain } = useWeb3();

const [contract, setContract] = useState<T | undefined>(undefined);

useEffect(() => {
const loadContract = async () => {
if (!chain || !signer) return;

const { address } = await import(
`@exactly-protocol/protocol/deployments/${
{ [mainnet.id]: 'mainnet' }[chain.id] ?? chain.network
}/${contractName}.json`,
{ assert: { type: 'json' } }
);

setContract(new Contract(address, abi, signer) as T);
};

loadContract().catch(captureException);
}, [contractName, chain, signer, abi]);

return contract;
}
34 changes: 4 additions & 30 deletions hooks/useETHRouter.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,7 @@
import { useEffect, useState } from 'react';
import { useSigner } from 'wagmi';
import { mainnet } from 'wagmi/chains';
import { Contract } from '@ethersproject/contracts';
import { MarketETHRouter } from 'types/contracts';
import MarketETHRouterABI from 'abi/MarketETHRouter.json';
import { captureException } from '@sentry/nextjs';
import { useWeb3 } from './useWeb3';
import MarketETHRouterABI from 'abi/MarketETHRouter.json' assert { type: 'json' };
import useContract from './useContract';

export default (): MarketETHRouter | undefined => {
const { data: signer } = useSigner();
const { chain } = useWeb3();

const [marketETHRouterContract, setMarketETHRouterContract] = useState<MarketETHRouter | undefined>(undefined);

useEffect(() => {
const loadMarketETHRouter = async () => {
if (!chain || !signer) return;

const { address } = await import(
`@exactly-protocol/protocol/deployments/${
{ [mainnet.id]: 'mainnet' }[chain.id] ?? chain.network
}/MarketETHRouter.json`,
{ assert: { type: 'json' } }
);

setMarketETHRouterContract(new Contract(address, MarketETHRouterABI, signer) as MarketETHRouter);
};
loadMarketETHRouter().catch(captureException);
}, [chain, signer]);

return marketETHRouterContract;
export default () => {
return useContract<MarketETHRouter>('MarketETHRouter', MarketETHRouterABI);
};
6 changes: 2 additions & 4 deletions hooks/usePreviewer.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import { useMemo } from 'react';
import { Contract } from '@ethersproject/contracts';
import { useProvider } from 'wagmi';
import { mainnet, goerli, optimismGoerli } from 'wagmi/chains';

import { mainnet, goerli } from 'wagmi/chains';
import type { Previewer } from 'types/contracts/Previewer';
import mainnetPreviewer from '@exactly-protocol/protocol/deployments/mainnet/Previewer.json' assert { type: 'json' };
import goerliPreviewer from '@exactly-protocol/protocol/deployments/goerli/Previewer.json' assert { type: 'json' };
import optimismGoerliPreviewer from '@exactly-protocol/protocol/deployments/optimism-goerli/Previewer.json' assert { type: 'json' };
import previewerABI from 'abi/Previewer.json' assert { type: 'json' };
import { useWeb3 } from './useWeb3';

Expand All @@ -20,10 +18,10 @@ export default () => {
const address = {
[goerli.id]: goerliPreviewer.address,
[mainnet.id]: mainnetPreviewer.address,
[optimismGoerli.id]: optimismGoerliPreviewer.address,
}[chain.id];

if (!address) return null;

return new Contract(address, previewerABI, provider) as Previewer;
}, [chain, provider]);
};
21 changes: 2 additions & 19 deletions hooks/useRewardsController.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,7 @@
import { useMemo } from 'react';
import { Contract } from '@ethersproject/contracts';
import { useSigner } from 'wagmi';
import { optimismGoerli } from 'wagmi/chains';
import type { RewardsController } from 'types/contracts/RewardsController';
import optimismGoerliRewardsController from '@exactly-protocol/protocol/deployments/optimism-goerli/RewardsController.json' assert { type: 'json' };
import rewardsControllerABI from 'abi/RewardsController.json' assert { type: 'json' };
import { useWeb3 } from './useWeb3';
import useContract from './useContract';

export default () => {
const { data: signer } = useSigner();
const { chain } = useWeb3();

return useMemo(() => {
if (!signer || !chain) return null;

const address = {
[optimismGoerli.id]: optimismGoerliRewardsController.address,
}[chain.id];
if (!address) return null;

return new Contract(address, rewardsControllerABI, signer) as RewardsController;
}, [chain, signer]);
return useContract<RewardsController>('RewardsController', rewardsControllerABI);
};
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"@ethersproject/contracts": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
"@ethersproject/providers": "^5.7.2",
"@exactly-protocol/protocol": "exactly/protocol#deploy",
"@exactly-protocol/protocol": "exactly/protocol#upgrade",
"@mui/icons-material": "^5.11.9",
"@mui/lab": "^5.0.0-alpha.120",
"@mui/material": "^5.11.10",
Expand Down
14 changes: 7 additions & 7 deletions scripts/postinstall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ const writeABI = async (path: string, abi: unknown) => {
};

void Promise.all([
readABI('node_modules/@exactly-protocol/protocol/deployments/optimism-goerli/DAI.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/optimism-goerli/Auditor.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/optimism-goerli/Previewer.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/optimism-goerli/MarketDAI.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/optimism-goerli/MarketETHRouter.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/optimism-goerli/InterestRateModelDAI.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/optimism-goerli/RewardsController.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/goerli/DAI.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/goerli/Auditor.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/goerli/Previewer.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/goerli/MarketDAI.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/goerli/MarketETHRouter.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/goerli/InterestRateModelDAI.json'),
readABI('node_modules/@exactly-protocol/protocol/deployments/goerli/RewardsController.json'),
mkdir('abi', { recursive: true }),
]).then(async ([erc20, auditor, previewer, market, marketETHRouter, irm, rewards]) => {
const allFiles = await Promise.all([
Expand Down
6 changes: 3 additions & 3 deletions utils/client.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { EthereumClient, modalConnectors, walletConnectProvider } from '@web3modal/ethereum';
import { createClient, configureChains } from 'wagmi';
import { mainnet, goerli, optimismGoerli } from 'wagmi/chains';
import { mainnet, goerli } from 'wagmi/chains';
import { publicProvider } from 'wagmi/providers/public';
import { SafeConnector } from 'wagmi/connectors/safe';

export const walletConnectId = '11ddaa8aaede72cb5d6b0dae2fed7baa';

export const supportedChains = [
mainnet,
...(JSON.parse(process.env.NEXT_PUBLIC_ENABLE_TESTNETS ?? 'false') ? [goerli, optimismGoerli] : []),
...(JSON.parse(process.env.NEXT_PUBLIC_ENABLE_TESTNETS ?? 'false') ? [goerli] : []),
];

export const defaultChain = { mainnet, goerli, optimismGoerli }[process.env.NEXT_PUBLIC_NETWORK ?? 'mainnet'];
export const defaultChain = { mainnet, goerli }[process.env.NEXT_PUBLIC_NETWORK ?? 'mainnet'];

const { chains, provider } = configureChains(supportedChains, [
publicProvider(),
Expand Down

0 comments on commit 6f40fd4

Please sign in to comment.