You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

bitcore-lib

Package Overview
Dependencies
Maintainers
3
Versions
123
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bitcore-lib - npm Package Compare versions

Comparing version

to
11.1.4

87

lib/address.js

@@ -75,9 +75,7 @@ 'use strict';

if (type && (
type !== Address.PayToPublicKeyHash
&& type !== Address.PayToScriptHash
&& type !== Address.PayToWitnessPublicKeyHash
&& type !== Address.PayToWitnessScriptHash
&& type !== Address.PayToTaproot)) {
throw new TypeError('Third argument must be "pubkeyhash", "scripthash", "witnesspubkeyhash", "witnessscripthash", or "taproot".');
if (type) {
if (!Address.isValidType(type)) {
throw new TypeError('Third argument must be one of: "' + Address.AllTypes.join('", "') + '".');
}
type = Address.TypesMap[type.toLowerCase()];
}

@@ -127,13 +125,60 @@

/** @static */
Address.TypesMap = {};
Address.PayToPublicKeyHash = 'pubkeyhash';
/** @static */
Address.PayToPublicKeyHashAlt = 'p2pkh';
Address.TypesMap[Address.PayToPublicKeyHash] = Address.PayToPublicKeyHash;
Address.TypesMap[Address.PayToPublicKeyHashAlt] = Address.PayToPublicKeyHash;
Address.isPayToPublicKeyHash = function(type) {
return typeof type === 'string' && [Address.PayToPublicKeyHash, Address.PayToPublicKeyHashAlt].includes(type.toLowerCase());
};
Address.PayToScriptHash = 'scripthash';
/** @static */
Address.PayToScriptHashAlt = 'p2sh';
Address.TypesMap[Address.PayToScriptHash] = Address.PayToScriptHash;
Address.TypesMap[Address.PayToScriptHashAlt] = Address.PayToScriptHash;
Address.isPayToScriptHash = function(type) {
return typeof type === 'string' && [Address.PayToScriptHash, Address.PayToScriptHashAlt].includes(type.toLowerCase());
};
Address.PayToWitnessPublicKeyHash = 'witnesspubkeyhash';
/** @static */
Address.PayToWitnessPublicKeyHashAlt = 'p2wpkh';
Address.TypesMap[Address.PayToWitnessPublicKeyHash] = Address.PayToWitnessPublicKeyHash;
Address.TypesMap[Address.PayToWitnessPublicKeyHashAlt] = Address.PayToWitnessPublicKeyHash;
Address.isPayToWitnessPublicKeyHash = function(type) {
return typeof type === 'string' && [Address.PayToWitnessPublicKeyHash, Address.PayToWitnessPublicKeyHashAlt].includes(type.toLowerCase());
};
Address.PayToWitnessScriptHash = 'witnessscripthash';
/** @static */
Address.PayToWitnessScriptHashAlt = 'p2wsh';
Address.TypesMap[Address.PayToWitnessScriptHash] = Address.PayToWitnessScriptHash;
Address.TypesMap[Address.PayToWitnessScriptHashAlt] = Address.PayToWitnessScriptHash;
Address.isPayToWitnessScriptHash = function(type) {
return typeof type === 'string' && [Address.PayToWitnessScriptHash, Address.PayToWitnessScriptHashAlt].includes(type.toLowerCase());
};
Address.PayToTaproot = 'taproot';
Address.PayToTaprootAlt = 'p2tr';
Address.TypesMap[Address.PayToTaproot] = Address.PayToTaproot;
Address.TypesMap[Address.PayToTaprootAlt] = Address.PayToTaproot;
Address.isPayToTaproot = function(type) {
return typeof type === 'string' && [Address.PayToTaproot, Address.PayToTaprootAlt].includes(type.toLowerCase());
};
Address.isValidType = function(type) {
return Address.isPayToPublicKeyHash(type) ||
Address.isPayToScriptHash(type) ||
Address.isPayToWitnessPublicKeyHash(type) ||
Address.isPayToWitnessScriptHash(type) ||
Address.isPayToTaproot(type);
};
Address.isValidMultisigType = function(type) {
return Address.isPayToScriptHash(type) ||
Address.isPayToWitnessScriptHash(type);
};
Address.AllTypes = Object.keys(Address.TypesMap);
/**

@@ -286,11 +331,11 @@ * @param {Buffer} hash - An instance of a hash Buffer

}
if (type && type !== Address.PayToScriptHash && type !== Address.PayToWitnessPublicKeyHash && type !== Address.PayToPublicKeyHash && type !== Address.PayToTaproot) {
if (type && !Address.isPayToScriptHash(type) && !Address.isPayToWitnessPublicKeyHash(type) && !Address.isPayToPublicKeyHash(type) && !Address.isPayToTaproot(type)) {
throw new TypeError('Type must be either pubkeyhash, witnesspubkeyhash, scripthash, or taproot to transform public key.');
}
if (!pubkey.compressed && (type === Address.PayToScriptHash || type === Address.PayToWitnessPublicKeyHash)) {
if (!pubkey.compressed && (Address.isPayToScriptHash(type) || Address.isPayToWitnessPublicKeyHash(type))) {
throw new TypeError('Witness addresses must use compressed public keys.');
}
if (type === Address.PayToScriptHash) {
if (Address.isPayToScriptHash(type)) {
info.hashBuffer = Hash.sha256ripemd160(Script.buildWitnessV0Out(pubkey).toBuffer());
} else if (type === Address.PayToTaproot) {
} else if (Address.isPayToTaproot(type)) {
info.hashBuffer = pubkey.createTapTweak().tweakedPubKey;

@@ -336,6 +381,6 @@ } else {

network = network || publicKeys[0].network || Networks.defaultNetwork;
if (type && type !== Address.PayToScriptHash && type !== Address.PayToWitnessScriptHash) {
if (type && !Address.isPayToScriptHash(type) && !Address.isPayToWitnessScriptHash(type)) {
throw new TypeError('Type must be either scripthash or witnessscripthash to create multisig.');
}
if (nestedWitness || type === Address.PayToWitnessScriptHash) {
if (nestedWitness || Address.isPayToWitnessScriptHash(type)) {
publicKeys = _.map(publicKeys, PublicKey);

@@ -383,3 +428,3 @@ for (var i = 0; i < publicKeys.length; i++) {

} catch (e) {
if (type === Address.PayToWitnessPublicKeyHash || type === Address.PayToWitnessScriptHash || type === Address.PayToTaproot) {
if (Address.isPayToWitnessPublicKeyHash(type) || Address.isPayToWitnessScriptHash(type) || Address.isPayToTaproot(type)) {
throw e;

@@ -431,3 +476,3 @@ }

var info = Address._transformHash(hash);
if (type === Address.PayToWitnessScriptHash && hash.length !== 32) {
if (Address.isPayToWitnessScriptHash(type) && hash.length !== 32) {
throw new TypeError('Address hashbuffer must be exactly 32 bytes for v0 witness script hash.');

@@ -454,3 +499,3 @@ }

var hash;
if (type === Address.PayToWitnessScriptHash) {
if (Address.isPayToWitnessScriptHash(type)) {
hash = Hash.sha256(script.toBuffer());

@@ -457,0 +502,0 @@ } else {

@@ -752,3 +752,4 @@ 'use strict';

outputScript = outputScript instanceof Script ? outputScript : new Script(outputScript);
$.checkArgumentType(satoshis, 'number', 'satoshis');
satoshis = parseInt(satoshis);
$.checkArgument(JSUtil.isNaturalNumber(satoshis), 'satoshis must be a natural number');
input.output = new Output({

@@ -797,2 +798,3 @@ script: outputScript,

Transaction.prototype.fee = function(amount) {
amount = parseInt(amount);
$.checkArgument(!isNaN(amount), 'amount must be a number');

@@ -813,2 +815,3 @@ this._fee = amount;

Transaction.prototype.feePerKb = function(amount) {
amount = parseFloat(amount); // fee rate can be a fractional number (float)
$.checkArgument(!isNaN(amount), 'amount must be a number');

@@ -829,3 +832,4 @@ this._feePerKb = amount;

*/
Transaction.prototype.feePerByte = function (amount) {
Transaction.prototype.feePerByte = function(amount) {
amount = parseFloat(amount); // fee rate can be a fractional number (float)
$.checkArgument(!isNaN(amount), 'amount must be a number');

@@ -890,6 +894,4 @@ this._feePerByte = amount;

$.checkArgument(
JSUtil.isNaturalNumber(amount),
'Amount is expected to be a positive integer'
);
amount = parseInt(amount);
$.checkArgument(JSUtil.isNaturalNumber(amount), 'Amount is expected to be a positive integer');
this.addOutput(new Output({

@@ -896,0 +898,0 @@ script: Script(new Address(address)),

{
"name": "bitcore-lib",
"version": "11.1.1",
"version": "11.1.4",
"description": "A pure and powerful JavaScript Bitcoin library.",

@@ -54,3 +54,3 @@ "author": "BitPay <dev@bitpay.com>",

"license": "MIT",
"gitHead": "74d81834ca0e7cd02a5b9fda69484d4c972e4d30"
"gitHead": "a4d34be71e726559795747d3f8fb97b746841324"
}

@@ -33,3 +33,3 @@ 'use strict';

return new Address(P2WPKHLivenet[0], 'livenet', 'pubkey');
}).should.throw('Third argument must be "pubkeyhash", "scripthash", "witnesspubkeyhash", "witnessscripthash", or "taproot".');
}).should.throw('Third argument must be one of: "pubkeyhash", "p2pkh", "scripthash", "p2sh", "witnesspubkeyhash", "p2wpkh", "witnessscripthash", "p2wsh", "taproot", "p2tr".');
});

@@ -36,0 +36,0 @@

@@ -39,3 +39,3 @@ 'use strict';

return new Address(PKHLivenet[0], 'livenet', 'pubkey');
}).should.throw('Third argument must be "pubkeyhash", "scripthash", "witnesspubkeyhash", "witnessscripthash", or "taproot".');
}).should.throw('Third argument must be one of: "pubkeyhash", "p2pkh", "scripthash", "p2sh", "witnesspubkeyhash", "p2wpkh", "witnessscripthash", "p2wsh", "taproot", "p2tr".');
});

@@ -42,0 +42,0 @@

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.