PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-core/src/bip65
Просмотр файла: locktime.ts
/*
Modified version of https://github.com/bitcoinjs/bip65/blob/master/index.js
BIP0065: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki
*/
// https://github.com/bitcoin/bitcoin/blob/v28.0/src/script/script.h#L44-L46
const LOCKTIME_THRESHOLD = 500_000_000;
/**
* @param obj
* @return number
*/
export function encodeLocktime(obj: Date | { blocks: number }): number {
if (obj instanceof Date) {
if (!Number.isFinite(obj.getTime())) {
throw new Error('invalid date');
}
const seconds = Math.floor(obj.getTime() / 1000);
if (seconds < LOCKTIME_THRESHOLD) {
throw new TypeError('Expected Number utc >= ' + LOCKTIME_THRESHOLD);
}
return seconds;
}
const { blocks } = obj;
if (!Number.isFinite(blocks) || !Number.isInteger(blocks)) {
throw new TypeError('Expected Number blocks');
}
if (blocks >= LOCKTIME_THRESHOLD) {
throw new TypeError('Expected Number blocks < ' + LOCKTIME_THRESHOLD);
}
return blocks;
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!