/*!
* common.js - bitcoin constants for bcoin
* Copyright (c) 2014-2015, Fedor Indutny (MIT License)
* Copyright (c) 2014-2017, Christopher Jeffrey (MIT License).
* https://github.com/bcoin-org/bcoin
*/
'use strict';
/**
* @module blockchain/common
*/
/**
* Locktime flags.
* @enum {Number}
*/
exports.lockFlags = {
VERIFY_SEQUENCE: 1 << 0,
MEDIAN_TIME_PAST: 1 << 1
};
/**
* Consensus locktime flags (used for block validation).
* @const {LockFlags}
* @default
*/
exports.lockFlags.MANDATORY_LOCKTIME_FLAGS = 0;
/**
* Standard locktime flags (used for mempool validation).
* @const {LockFlags}
* @default
*/
exports.lockFlags.STANDARD_LOCKTIME_FLAGS = 0
| exports.lockFlags.VERIFY_SEQUENCE
| exports.lockFlags.MEDIAN_TIME_PAST;
/**
* Threshold states for versionbits
* @enum {Number}
* @default
*/
exports.thresholdStates = {
DEFINED: 0,
STARTED: 1,
LOCKED_IN: 2,
ACTIVE: 3,
FAILED: 4
};
/**
* Verify flags for blocks.
* @enum {Number}
* @default
*/
exports.flags = {
VERIFY_NONE: 0,
VERIFY_POW: 1 << 0,
VERIFY_BODY: 1 << 1
};
/**
* Default block verify flags.
* @const {Number}
* @default
*/
exports.flags.DEFAULT_FLAGS = 0
| exports.flags.VERIFY_POW
| exports.flags.VERIFY_BODY;