@lido-sdk/contracts
Version:
This project is being slowly deprecated and may not receive further updates. Check out [modern Lido SDK](https://github.com/lidofinance/lido-ethereum-sdk/pulls) to access latest functionality. It is actively maintained and is built for interacting with Li
43 lines (38 loc) • 2.23 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var AggregatorAbi__factory = require('./generated/factories/AggregatorAbi__factory.js');
var Erc20Abi__factory = require('./generated/factories/Erc20Abi__factory.js');
var StethAbi__factory = require('./generated/factories/StethAbi__factory.js');
var WstethAbi__factory = require('./generated/factories/WstethAbi__factory.js');
var LdoAbi__factory = require('./generated/factories/LdoAbi__factory.js');
var WithdrawalQueueAbi__factory = require('./generated/factories/WithdrawalQueueAbi__factory.js');
const createContractGetter = (factory) => {
const providerCache = new WeakMap();
return (address, signerOrProvider, cacheSeed = 0) => {
const cacheByAddressKey = `${address}-${cacheSeed}`;
let cacheByAddress = providerCache.get(signerOrProvider);
let contract = cacheByAddress === null || cacheByAddress === void 0 ? void 0 : cacheByAddress[cacheByAddressKey];
if (!cacheByAddress) {
cacheByAddress = {};
providerCache.set(signerOrProvider, cacheByAddress);
}
if (!contract) {
contract = factory.connect(address, signerOrProvider);
cacheByAddress[cacheByAddressKey] = contract;
}
return contract;
};
};
const getAggregatorContract = createContractGetter(AggregatorAbi__factory.AggregatorAbi__factory);
const getERC20Contract = createContractGetter(Erc20Abi__factory.Erc20Abi__factory);
const getSTETHContract = createContractGetter(StethAbi__factory.StethAbi__factory);
const getWSTETHContract = createContractGetter(WstethAbi__factory.WstethAbi__factory);
const getLDOContract = createContractGetter(LdoAbi__factory.LdoAbi__factory);
const getWithdrawalQueueContract = createContractGetter(WithdrawalQueueAbi__factory.WithdrawalQueueAbi__factory);
exports.createContractGetter = createContractGetter;
exports.getAggregatorContract = getAggregatorContract;
exports.getERC20Contract = getERC20Contract;
exports.getLDOContract = getLDOContract;
exports.getSTETHContract = getSTETHContract;
exports.getWSTETHContract = getWSTETHContract;
exports.getWithdrawalQueueContract = getWithdrawalQueueContract;