// Public key
export const PUBKEY_SIZE = 33;
export const UNCOMPRESSED_PUBKEY_SIZE = 65;

// Inputs (bytes for non-SegWit, vBytes for SegWit)
export const P2PKH_INPUT_SIZE = 148;
export const P2SH_P2WPKH_INPUT_SIZE = 90.75;
export const P2WPKH_INPUT_SIZE = 67.75;
export const P2TR_INPUT_SIZE = 58.5;
export const P2TR_INSCRIPTION_INPUT_SIZE = 75;
export const P2PK_INPUT_SIZE_COMPRESSED = 114;
export const P2PK_UNCOMPRESSED_INPUT_SIZE = 114;

// Outputs
export const P2WPKH_OUTPUT_SIZE = 31;
export const P2WSH_OUTPUT_SIZE = 43;
export const P2TR_OUTPUT_SIZE = 43;
export const P2SH_OUTPUT_SIZE = 32;
export const P2SH_P2WPKH_OUTPUT_SIZE = 32;
export const P2SH_P2WSH_OUTPUT_SIZE = 32;
export const P2PKH_OUTPUT_SIZE = 34.25;
export const P2PK_OUTPUT_SIZE_COMPRESSED = 44;
export const P2PK_UNCOMPRESSED_OUTPUT_SIZE = 76;

// Signatures & Witness
export const P2WPKH_WITNESS_SIZE = 107;
export const P2TR_WITNESS_SIZE = 65;
export const MULTISIG_REDEEM_SCRIPT_SIZE = 1 + 1 * (1 + PUBKEY_SIZE) + 1 + 1; // OP_M + pubkey + OP_N + OP_CHECKMULTISIG
export const SIGNATURE_SIZE = 72;

// Other
export const SEQUENCE_SIZE = 4;
export const P2SH_WRAPPER_SIZE = 23;
export const OUTPOINT_SIZE = 36;
