@bcpros/crypto-wallet-core
Version:
A multi-currency support library for address derivation, private key creation, and transaction creation
61 lines • 3.15 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.BtcDeriver = exports.AbstractBitcoreLibDeriver = void 0;
var BitcoreLib = require('@bcpros/bitcore-lib');
var AbstractBitcoreLibDeriver = (function () {
function AbstractBitcoreLibDeriver() {
}
AbstractBitcoreLibDeriver.prototype.deriveAddress = function (network, pubKey, addressIndex, isChange, addressType) {
var changeNum = isChange ? 1 : 0;
var path = "m/".concat(changeNum, "/").concat(addressIndex);
return this.deriveAddressWithPath(network, pubKey, path, addressType);
};
AbstractBitcoreLibDeriver.prototype.derivePrivateKey = function (network, xPriv, addressIndex, isChange, addressType) {
var changeNum = isChange ? 1 : 0;
var path = "m/".concat(changeNum, "/").concat(addressIndex);
return this.derivePrivateKeyWithPath(network, xPriv, path, addressType);
};
AbstractBitcoreLibDeriver.prototype.deriveAddressWithPath = function (network, xpubKey, path, addressType) {
var xpub = new this.bitcoreLib.HDPublicKey(xpubKey, network);
return this.getAddress(network, xpub.derive(path).publicKey, addressType);
};
AbstractBitcoreLibDeriver.prototype.derivePrivateKeyWithPath = function (network, xprivKey, path, addressType) {
var xpriv = new this.bitcoreLib.HDPrivateKey(xprivKey, network);
var privKey = xpriv.deriveChild(path).privateKey;
var pubKey = privKey.publicKey;
var address = this.getAddress(network, pubKey, addressType);
return { address: address, privKey: privKey.toString(), pubKey: pubKey.toString(), path: path };
};
AbstractBitcoreLibDeriver.prototype.getAddress = function (network, pubKey, addressType) {
pubKey = new this.bitcoreLib.PublicKey(pubKey);
return new this.bitcoreLib.Address(pubKey, network, addressType).toString();
};
return AbstractBitcoreLibDeriver;
}());
exports.AbstractBitcoreLibDeriver = AbstractBitcoreLibDeriver;
var BtcDeriver = (function (_super) {
__extends(BtcDeriver, _super);
function BtcDeriver() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.bitcoreLib = BitcoreLib;
return _this;
}
return BtcDeriver;
}(AbstractBitcoreLibDeriver));
exports.BtcDeriver = BtcDeriver;
//# sourceMappingURL=index.js.map