@okxweb3/coin-bitcoin
Version:
@okxweb3/coin-bitcoin is a Bitcoin SDK for building Web3 wallets and applications. It supports BTC, BSV, DOGE, LTC, and TBTC, enabling private key management, transaction signing, address generation, and inscriptions like BRC-20, Runes, CAT, and Atomicals
35 lines • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeConverter = void 0;
function makeConverter(TYPE_BYTE) {
function decode(keyVal) {
if (keyVal.key[0] !== TYPE_BYTE || keyVal.key.length !== 1) {
throw new Error('Decode Error: could not decode tapInternalKey with key 0x' +
keyVal.key.toString('hex'));
}
if (keyVal.value.length !== 32) {
throw new Error('Decode Error: tapInternalKey not a 32-byte x-only pubkey');
}
return keyVal.value;
}
function encode(value) {
const key = Buffer.from([TYPE_BYTE]);
return { key, value };
}
const expected = 'Buffer';
function check(data) {
return Buffer.isBuffer(data) && data.length === 32;
}
function canAdd(currentData, newData) {
return (!!currentData && !!newData && currentData.tapInternalKey === undefined);
}
return {
decode,
encode,
check,
expected,
canAdd,
};
}
exports.makeConverter = makeConverter;
//# sourceMappingURL=tapInternalKey.js.map