descent-js
Version:
A Typescript library for interacting with the Descent Protocol
31 lines (30 loc) • 1.36 kB
JavaScript
// src/contracts/index.ts
import { getContractAddress } from "./getContractAddresses.mjs";
var ContractManager = class {
constructor(signerOrProvider) {
this.generateContractGetter = (name) => {
return async (passedProvider) => {
const mod = await globImport_generated_factories___factory(`../generated/factories/${name}__factory`);
let chainId;
let inputAddress;
chainId = (await this.signerOrProvider.provider.getNetwork()).chainId.toString(10);
inputAddress = (getContractAddress(name) || {})[chainId];
if (!inputAddress) {
throw new Error(`No address for contract ${name}`);
}
return mod[`${name}__factory`]?.connect(inputAddress, this.signerOrProvider);
};
};
this.getVaultGetterContract = this.generateContractGetter("VaultGetters");
this.getVaultRouterContract = this.generateContractGetter("VaultRouter");
this.getVaultContract = this.generateContractGetter("Vault");
this.getMultistaticcallContract = this.generateContractGetter("MultiStaticcall");
this.getCurrencyContract = this.generateContractGetter("Currency");
this.getUSDCContract = this.generateContractGetter("USDC");
this.getFeedContract = this.generateContractGetter("Feed");
this.signerOrProvider = signerOrProvider;
}
};
export {
ContractManager as default
};