UNPKG

@sovryn-zero/lib-ethers

Version:
86 lines 5.86 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports._connectToContracts = exports._priceFeedIsTestnet = exports._LiquityContract = void 0; const contracts_1 = require("@ethersproject/contracts"); const ActivePool_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/ActivePool.json")); const BorrowerOperations_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/BorrowerOperations.json")); const TroveManager_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/TroveManager.json")); const TroveManagerRedeemOps_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/TroveManagerRedeemOps.json")); const ZUSDToken_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/ZUSDToken.json")); const IERC20_json_1 = __importDefault(require("@sovryn-zero/contracts/artifacts/contracts/Dependencies/IERC20.sol/IERC20.json")); const CollSurplusPool_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/CollSurplusPool.json")); const CommunityIssuance_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/CommunityIssuance.json")); const DefaultPool_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/DefaultPool.json")); const ZEROToken_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/ZEROToken.json")); const HintHelpers_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/HintHelpers.json")); const ZEROStaking_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/ZEROStaking.json")); const MultiTroveGetter_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/MultiTroveGetter.json")); const PriceFeed_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/PriceFeed.json")); const PriceFeedTestnet_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynTestnet/PriceFeedTestnet.json")); const SortedTroves_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/SortedTroves.json")); const StabilityPool_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/StabilityPool.json")); const GasPool_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/GasPool.json")); const LiquityBaseParams_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/LiquityBaseParams.json")); const FeeDistributor_json_1 = __importDefault(require("@sovryn-zero/contracts/deployment/rskSovrynMainnet/FeeDistributor.json")); const buildEstimatedFunctions = (estimateFunctions, functions) => Object.fromEntries(Object.keys(estimateFunctions).map(functionName => [ functionName, async (overrides, adjustEstimate, ...args) => { if (overrides.gasLimit === undefined) { const estimatedGas = await estimateFunctions[functionName](...args, overrides); overrides = { ...overrides, gasLimit: adjustEstimate(estimatedGas).add(10000), }; } return functions[functionName](...args, overrides); } ])); class _LiquityContract extends contracts_1.Contract { constructor(addressOrName, contractInterface, signerOrProvider) { super(addressOrName, contractInterface, signerOrProvider); // this.estimateAndCall = buildEstimatedFunctions(this.estimateGas, this); this.estimateAndPopulate = buildEstimatedFunctions(this.estimateGas, this.populateTransaction); } extractEvents(logs, name) { return logs .filter(log => log.address === this.address) .map(log => this.interface.parseLog(log)) .filter(e => e.name === name); } } exports._LiquityContract = _LiquityContract; /** @internal */ const _priceFeedIsTestnet = (priceFeed) => "setPrice" in priceFeed; exports._priceFeedIsTestnet = _priceFeedIsTestnet; const getAbi = (priceFeedIsTestnet) => ({ activePool: ActivePool_json_1.default.abi, borrowerOperations: BorrowerOperations_json_1.default.abi, troveManager: TroveManager_json_1.default.abi, troveManagerRedeemOps: TroveManagerRedeemOps_json_1.default.abi, zusdToken: ZUSDToken_json_1.default.abi, nueToken: IERC20_json_1.default.abi, communityIssuance: CommunityIssuance_json_1.default.abi, defaultPool: DefaultPool_json_1.default.abi, zeroToken: ZEROToken_json_1.default.abi, hintHelpers: HintHelpers_json_1.default.abi, zeroStaking: ZEROStaking_json_1.default.abi, multiTroveGetter: MultiTroveGetter_json_1.default.abi, priceFeed: priceFeedIsTestnet ? PriceFeedTestnet_json_1.default.abi : PriceFeed_json_1.default.abi, sortedTroves: SortedTroves_json_1.default.abi, stabilityPool: StabilityPool_json_1.default.abi, gasPool: GasPool_json_1.default.abi, collSurplusPool: CollSurplusPool_json_1.default.abi, liquityBaseParams: LiquityBaseParams_json_1.default.abi, feeDistributor: FeeDistributor_json_1.default.abi, }); const mapLiquityContracts = (contracts, f) => Object.fromEntries(Object.entries(contracts).map(([key, t]) => [key, f(t, key)])); /** @internal */ const _connectToContracts = (signerOrProvider, { addresses, _priceFeedIsTestnet }) => { const abi = getAbi(_priceFeedIsTestnet); return mapLiquityContracts(addresses, (address, key) => new _LiquityContract(address, abi[key], signerOrProvider)); }; exports._connectToContracts = _connectToContracts; //# sourceMappingURL=contracts.js.map