wallet-storage-client
Version:
Client only Wallet Storage
44 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TaskNewHeader = void 0;
const TaskCheckForProofs_1 = require("./TaskCheckForProofs");
const WalletMonitorTask_1 = require("./WalletMonitorTask");
class TaskNewHeader extends WalletMonitorTask_1.WalletMonitorTask {
constructor(monitor, triggerMsecs = 1 * monitor.oneMinute) {
super(monitor, TaskNewHeader.taskName);
this.triggerMsecs = triggerMsecs;
}
async getHeader() {
return await this.monitor.chaintracks.findChainTipHeader();
}
trigger(nowMsecsSinceEpoch) {
const run = true;
return { run };
}
async runTask() {
let log = '';
const oldHeader = this.header;
this.header = await this.getHeader();
let isNew = true;
if (!oldHeader) {
log = `first header: ${this.header.height} ${this.header.hash}`;
}
else if (oldHeader.height < this.header.height) {
const skip = this.header.height - oldHeader.height - 1;
const skipped = skip > 0 ? ` SKIPPED ${skip}` : '';
log = `new header: ${this.header.height} ${this.header.hash}${skipped}`;
}
else if (oldHeader.height === this.header.height && oldHeader.hash != this.header.hash) {
log = `reorg header: ${this.header.height} ${this.header.hash}`;
}
else {
isNew = false;
}
if (isNew)
TaskCheckForProofs_1.TaskCheckForProofs.checkNow = true;
return log;
}
}
exports.TaskNewHeader = TaskNewHeader;
TaskNewHeader.taskName = 'NewHeader';
//# sourceMappingURL=TaskNewHeader.js.map