leap-node
Version:
[](https://codecov.io/gh/leapdao/leap-node) [](https://quay.io/re
31 lines (25 loc) • 1.04 kB
JavaScript
const startNewPeriod = require('./periods/startNewPeriod');
const submitPeriod = require('./periods/submitPeriod');
const saveSubmission = require('../utils/saveSubmission');
module.exports = async (height, bridgeState) => {
if (height % 32 === 0) {
await startNewPeriod(height, bridgeState);
}
const { periodProposal } = bridgeState;
if (!periodProposal) return;
const submission = bridgeState.submissions[periodProposal.blocksRoot];
const submissionInDatabase = await bridgeState.db.getPeriodDataByBlocksRoot(
periodProposal.blocksRoot
);
if (submission || submissionInDatabase) {
if (!submissionInDatabase) {
await saveSubmission(periodProposal, submission, bridgeState.db);
}
const { blocksRoot, periodRoot } = submission || submissionInDatabase;
delete bridgeState.submissions[blocksRoot];
bridgeState.lastProcessedPeriodRoot = periodRoot;
bridgeState.periodProposal = null;
} else if (!periodProposal.txHash) {
await submitPeriod(periodProposal, bridgeState);
}
};