Skip to content

Commit

Permalink
refactor: export addresses by network
Browse files Browse the repository at this point in the history
  • Loading branch information
coreyar committed Jan 25, 2024
1 parent 00bd21e commit c05766e
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 8 deletions.
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
"prettier:check": "prettier --check \"**/*.{js,json,md,sol,ts,yaml,yml}\"",
"build": "rm -rf dist && hardhat compile && tsc --declaration",
"docgen": "hardhat docgen",
"prepare": "husky install"
"prepare": "husky install",
"generate-subgraph-types": "rm -rf /subgraph-client/.graphclient && npx graphclient build --dir ./subgraph-client"
},
"keywords": [],
"author": "Venus",
Expand Down Expand Up @@ -89,6 +90,7 @@
"dependencies": {
"@openzeppelin/contracts-upgradeable": "4.9.3",
"@venusprotocol/governance-contracts": "^1.4.0",
"@venusprotocol/isolated-pools": "^2.3.0",
"@venusprotocol/protocol-reserve": "^1.4.0",
"@venusprotocol/venus-protocol": "^7.1.0",
"viem": "^2.1.1"
Expand Down
28 changes: 27 additions & 1 deletion src/config/addresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,48 @@ import bscmainnetProtocolReserve from "@venusprotocol/protocol-reserve/deploymen
import bsctestnetProtocolReserve from "@venusprotocol/protocol-reserve/deployments/bsctestnet_addresses.json";
import bscmainnetCore from "@venusprotocol/venus-protocol/deployments/bscmainnet_addresses.json";
import bsctestnetCore from "@venusprotocol/venus-protocol/deployments/bsctestnet_addresses.json";
import bscmainnetIsolated from "@venusprotocol/isolated-pools/deployments/bscmainnet_addresses.json";
import bsctestnetIsolated from "@venusprotocol/isolated-pools/deployments/bsctestnet_addresses.json";
import { SUPPORTED_CHAINS } from './chains';

export const addresses = {
const addresses = {
bscmainnet: {
...bscmainnetCore.addresses,
...bscmainnetProtocolReserve.addresses,
...bscmainnetGovernance.addresses,
...bscmainnetIsolated.addresses,
BUSD: "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56",
USDT: "0x55d398326f99059fF775485246999027B3197955",
USDC: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
WBNB: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
PancakeSwapRouter: "0x13f4EA83D0bd40E75C8222255bc855a974568Dd4",

BTCBPrimeConverter: bscmainnetProtocolReserve.addresses.BTCBPrimeConverter,
ConverterNetwork: bscmainnetProtocolReserve.addresses.ConverterNetwork,
ETHPrimeConverter: bscmainnetProtocolReserve.addresses.ETHPrimeConverter,
RiskFundConverter: bscmainnetProtocolReserve.addresses.RiskFundConverter,
USDCPrimeConverter: bscmainnetProtocolReserve.addresses.USDCPrimeConverter,
USDTPrimeConverter: bscmainnetProtocolReserve.addresses.USDTPrimeConverter,
XVSVaultConverter: bscmainnetProtocolReserve.addresses.XVSVaultConverter,
TokenConverterOperator: '0x',
},
bsctestnet: {
...bsctestnetCore.addresses,
...bsctestnetProtocolReserve.addresses,
...bsctestnetGovernance.addresses,
...bsctestnetIsolated.addresses,
PancakeSwapRouter: "0x1b81D678ffb9C0263b24A97847620C99d213eB14",
xvsHolder: "0x2Ce1d0ffD7E869D9DF33e28552b12DdDed326706",
usdtHolder: "0x2Ce1d0ffD7E869D9DF33e28552b12DdDed326706",

BTCBPrimeConverter: bsctestnetProtocolReserve.addresses.BTCBPrimeConverter,
ConverterNetwork: bsctestnetProtocolReserve.addresses.ConverterNetwork,
ETHPrimeConverter: bsctestnetProtocolReserve.addresses.ETHPrimeConverter,
RiskFundConverter: bsctestnetProtocolReserve.addresses.RiskFundConverter,
USDCPrimeConverter: bsctestnetProtocolReserve.addresses.USDCPrimeConverter,
USDTPrimeConverter: bsctestnetProtocolReserve.addresses.USDTPrimeConverter,
XVSVaultConverter: bsctestnetProtocolReserve.addresses.XVSVaultConverter,

TokenConverterOperator: "0x9222F8b71603318d5EEbBf0074c2Da07fEbbB9eb",
},
} as const;
Expand All @@ -33,3 +55,7 @@ type Addresses = typeof addresses;
export type HasAddressFor<ContractName extends string> = {
[ChainT in keyof Addresses]: Addresses[ChainT] extends Record<ContractName, any> ? ChainT : never;
}[keyof Addresses];

const network = process.env.FORKED_NETWORK as SUPPORTED_CHAINS;

export default addresses[network];
2 changes: 0 additions & 2 deletions src/config/chains.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,3 @@ export const chains = {
bscmainnet: bsc,
bsctestnet: bscTestnet,
} as const;

export type SUPPORTED_CHAINS = keyof typeof chains;
9 changes: 5 additions & 4 deletions src/converter-bot/tokenConverterBot.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { Address, parseAbi, parseUnits } from "viem";

import TokenConverterOperator from "../config/abis/TokenConverterOperator";
import { type HasAddressFor, addresses } from "../config/addresses";
import type { SUPPORTED_CHAINS } from "../config/chains";
import addresses, { HasAddressFor } from "../config/addresses";
import { chains } from "../config/chains";
import { getPublicClient, getWalletClient } from "../config/clients";
import { Path, parsePath } from "./path";
Expand All @@ -17,18 +16,20 @@ type SupportedConverters =

const REVERT_IF_NOT_MINED_AFTER = 60n; //seconds

export type SUPPORTED_CHAINS = HasAddressFor<"TokenConverterOperator" | SupportedConverters>;

class Bot {
private chainName: SUPPORTED_CHAINS;
private operator: { address: Address; abi: typeof TokenConverterOperator };
private addresses: typeof addresses[SupportedChains];
private addresses: typeof addresses;
private _walletClient?: ReturnType<typeof getWalletClient>;
private _publicClient?: ReturnType<typeof getPublicClient>;

constructor(chainName: SUPPORTED_CHAINS) {
this.chainName = chainName;
this.addresses = addresses[chainName];
this.operator = {
address: addresses[chainName].TokenConverterOperator,
address: addresses.TokenConverterOperator,
abi: TokenConverterOperator,
};
}
Expand Down

0 comments on commit c05766e

Please sign in to comment.