@btc-vision/transaction
Version:
OPNet transaction library allows you to create and sign transactions for the OPNet network.
83 lines • 3.09 kB
JavaScript
/**
* BIP (Bitcoin Improvement Proposal) derivation path standards
*
* These define standardized derivation paths for different address types
* in hierarchical deterministic (HD) wallets.
*
* @see https://github.com/bitcoin/bips
*/
export var BIPStandard;
(function (BIPStandard) {
/**
* BIP44: Multi-Account Hierarchy for Deterministic Wallets
*
* Path: m/44'/coin_type'/account'/change/address_index
* Original standard for P2PKH (legacy) addresses
* Widely used by wallets like Unisat for all address types
*
* @see https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
*/
BIPStandard[BIPStandard["BIP44"] = 44] = "BIP44";
/**
* BIP49: Derivation scheme for P2WPKH-nested-in-P2SH based accounts
*
* Path: m/49'/coin_type'/account'/change/address_index
* For wrapped SegWit addresses (P2SH-P2WPKH starting with '3')
*
* @see https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki
*/
BIPStandard[BIPStandard["BIP49"] = 49] = "BIP49";
/**
* BIP84: Derivation scheme for P2WPKH based accounts
*
* Path: m/84'/coin_type'/account'/change/address_index
* For native SegWit addresses (P2WPKH starting with 'bc1q')
* DEFAULT for this library
*
* @see https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki
*/
BIPStandard[BIPStandard["BIP84"] = 84] = "BIP84";
/**
* BIP86: Derivation scheme for P2TR based accounts
*
* Path: m/86'/coin_type'/account'/change/address_index
* For Taproot addresses (P2TR starting with 'bc1p')
*
* @see https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki
*/
BIPStandard[BIPStandard["BIP86"] = 86] = "BIP86";
})(BIPStandard || (BIPStandard = {}));
/**
* Get a human-readable description of a BIP standard
*
* @param standard - The BIP standard
* @returns A description of the standard and its typical use case
*/
export function getBIPDescription(standard) {
switch (standard) {
case BIPStandard.BIP44:
return 'BIP44: Legacy addresses (P2PKH), widely used by Unisat and other wallets';
case BIPStandard.BIP49:
return 'BIP49: Wrapped SegWit addresses (P2SH-P2WPKH)';
case BIPStandard.BIP84:
return 'BIP84: Native SegWit addresses (P2WPKH) - DEFAULT';
case BIPStandard.BIP86:
return 'BIP86: Taproot addresses (P2TR)';
default:
return 'Unknown BIP standard';
}
}
/**
* Build a derivation path for a given BIP standard
*
* @param standard - The BIP standard to use
* @param coinType - The coin type (0 for mainnet, 1 for testnet/regtest)
* @param account - The account index
* @param change - The change index (0 for receiving, 1 for change)
* @param addressIndex - The address index
* @returns The full derivation path
*/
export function buildBIPPath(standard, coinType, account, change, addressIndex) {
return `m/${standard}'/${coinType}'/${account}'/${change}/${addressIndex}`;
}
//# sourceMappingURL=BIPStandard.js.map