@descent-protocol/sdk
Version:
A Typescript library for interacting with the Descent Protocol
59 lines (52 loc) • 2.13 kB
text/typescript
import { ContractName, SupportedNetwork } from './types';
const addresses: Record<ContractName, Partial<Record<SupportedNetwork | string, string>>> = {
Vault: {
[]: '0xE2386C5eF4deC9d5815C60168e36c7153ba00D0C',
[]: '0x3d35807343CbF4fDb16E42297F2214f62848D032',
},
MultiStaticcall: {
[]: '0x5226c32C94acdd44743FC5c376582d6782FA7592',
[]: '0x53D0ec27F7221535e72C11BA85BA1a1De34298c5',
},
VaultGetters: {
[]: '0x63642E2E49922DA2095cFDB0781cFf01a0d69786',
[]: '0x50fC21F951Bc42421815e104d21C5f094da9e70C',
},
VaultRouter: {
[]: '0x7FCF3897429Af4e5f3A397330AD638D819e53328',
[]: '0x7F46a4944F9C3ecF4Ea622364132b3fE9aBa1015',
},
Currency: {
[]: '0xee2bDAE7896910c49BeA25106B9f8e9f4B671c82',
[]: '0xB8747e5cce01AA5a51021989BA11aE33097db485',
},
Feed: {
[]: '0x970066EE55DF2134D1b52451afb49034AE5Fa29a',
[]: '0xFBD26B871D55ba56B7a780eF1fF243Db7A3E81f4',
},
USDC: {
[]: '0xF175520C52418dfE19C8098071a252da48Cd1C19',
[]: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
},
Rate: {
[]: '0x00A0BcB0e2099f4a0564c26e24eBfA866D3235D6',
},
};
export const getContractAddress = (
contractName: ContractName,
network: SupportedNetwork | string,
) => {
try {
const contractAddresses = addresses[contractName];
if (!contractAddresses) {
throw new Error(`No addresses defined for contract ${contractName}`);
}
const address = contractAddresses[network];
if (!address) {
throw new Error(`No address defined for network ${network} for contract ${contractName}`);
}
return address;
} catch (error) {
throw new Error(`Error getting contract address: ${error.message}`);
}
};