UNPKG

@phuture/keep3r-cli-job-phuture-savings-vault

Version:

Phuture Savings Vault CLI Job for The Keep3r Network

74 lines 2.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const cli_utils_1 = require("@keep3r-network/cli-utils"); const eth_sdk_build_1 = require("../../eth-sdk-build"); const metadata_json_1 = __importDefault(require("./metadata.json")); const getWorkableTxs = async (args) => { const correlationId = cli_utils_1.toKebabCase(metadata_json_1.default.name); const logMetadata = { job: metadata_json_1.default.name, block: args.advancedBlock, logId: cli_utils_1.makeid(5), }; const logConsole = cli_utils_1.prelog(logMetadata); if (args.skipIds.includes(correlationId)) { logConsole.log(`Skipping job`); args.subject.complete(); return; } logConsole.log(`Trying to work`); const signer = args.fork.ethersProvider.getSigner(args.keeperAddress); const { harvestingJob: job, usdcSavingsVault } = eth_sdk_build_1.getMainnetSdk(signer); try { const paused = await job.paused({ blockTag: args.advancedBlock }); const notOrNull = paused ? `` : `not`; logConsole.warn(`Job ${job.address} is ${notOrNull} paused`); if (paused) { args.subject.complete(); return; } if (!(await job.canHarvest(usdcSavingsVault.address))) { logConsole.log(`Timeout between two harvests hasn't passed, try again later!`); args.subject.complete(); return; } let tx; if (await job.isAccountSettlementRequired(usdcSavingsVault.address)) { logConsole.log(`Account settlement is required!`); tx = await job.populateTransaction.settleAccount(usdcSavingsVault.address, { nonce: args.keeperNonce, gasLimit: 700000, type: 2, }); } else { await job.callStatic.harvest(usdcSavingsVault.address, { blockTag: args.advancedBlock }); tx = await job.populateTransaction.harvest(usdcSavingsVault.address, { nonce: args.keeperNonce, gasLimit: 2500000, type: 2, }); } const workableGroups = Array.from({ length: args.bundleBurst }, (_, index) => ({ targetBlock: args.targetBlock + index, txs: [tx], logId: `${logMetadata.logId}-${cli_utils_1.makeid(5)}`, })); args.subject.next({ workableGroups, correlationId, }); } catch (_a) { logConsole.warn('Simulation failed, probably in cool-down'); } args.subject.complete(); }; const job = { getWorkableTxs, }; module.exports = job; //# sourceMappingURL=job.js.map