@ordinalsbot/bitcoin-fee-estimator
Version:
A library for calculating Bitcoin transaction fees
34 lines (33 loc) • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OUTPOINT_SIZE = exports.P2SH_WRAPPER_SIZE = exports.SEQUENCE_SIZE = exports.SIGNATURE_SIZE = exports.MULTISIG_REDEEM_SCRIPT_SIZE = exports.P2TR_WITNESS_SIZE = exports.P2WPKH_WITNESS_SIZE = exports.P2PK_UNCOMPRESSED_OUTPUT_SIZE = exports.P2PK_OUTPUT_SIZE_COMPRESSED = exports.P2PKH_OUTPUT_SIZE = exports.P2SH_P2WSH_OUTPUT_SIZE = exports.P2SH_P2WPKH_OUTPUT_SIZE = exports.P2SH_OUTPUT_SIZE = exports.P2TR_OUTPUT_SIZE = exports.P2WSH_OUTPUT_SIZE = exports.P2WPKH_OUTPUT_SIZE = exports.P2PK_UNCOMPRESSED_INPUT_SIZE = exports.P2PK_INPUT_SIZE_COMPRESSED = exports.P2TR_INSCRIPTION_INPUT_SIZE = exports.P2TR_INPUT_SIZE = exports.P2WPKH_INPUT_SIZE = exports.P2SH_P2WPKH_INPUT_SIZE = exports.P2PKH_INPUT_SIZE = exports.UNCOMPRESSED_PUBKEY_SIZE = exports.PUBKEY_SIZE = void 0;
// Public key
exports.PUBKEY_SIZE = 33;
exports.UNCOMPRESSED_PUBKEY_SIZE = 65;
// Inputs (bytes for non-SegWit, vBytes for SegWit)
exports.P2PKH_INPUT_SIZE = 148;
exports.P2SH_P2WPKH_INPUT_SIZE = 90.75;
exports.P2WPKH_INPUT_SIZE = 67.75;
exports.P2TR_INPUT_SIZE = 58.5;
exports.P2TR_INSCRIPTION_INPUT_SIZE = 75;
exports.P2PK_INPUT_SIZE_COMPRESSED = 114;
exports.P2PK_UNCOMPRESSED_INPUT_SIZE = 114;
// Outputs
exports.P2WPKH_OUTPUT_SIZE = 31;
exports.P2WSH_OUTPUT_SIZE = 43;
exports.P2TR_OUTPUT_SIZE = 43;
exports.P2SH_OUTPUT_SIZE = 32;
exports.P2SH_P2WPKH_OUTPUT_SIZE = 32;
exports.P2SH_P2WSH_OUTPUT_SIZE = 32;
exports.P2PKH_OUTPUT_SIZE = 34.25;
exports.P2PK_OUTPUT_SIZE_COMPRESSED = 44;
exports.P2PK_UNCOMPRESSED_OUTPUT_SIZE = 76;
// Signatures & Witness
exports.P2WPKH_WITNESS_SIZE = 107;
exports.P2TR_WITNESS_SIZE = 65;
exports.MULTISIG_REDEEM_SCRIPT_SIZE = 1 + 1 * (1 + exports.PUBKEY_SIZE) + 1 + 1; // OP_M + pubkey + OP_N + OP_CHECKMULTISIG
exports.SIGNATURE_SIZE = 72;
// Other
exports.SEQUENCE_SIZE = 4;
exports.P2SH_WRAPPER_SIZE = 23;
exports.OUTPOINT_SIZE = 36;