UNPKG

@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
'use strict'; 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;