crypto-wallet-core
Version:
A multi-currency support library for address derivation, private key creation, and transaction creation
40 lines • 1.76 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.XrpDeriver = void 0;
const xrpl_1 = require("xrpl");
const bitcore_lib_1 = __importDefault(require("bitcore-lib"));
class XrpDeriver {
deriveAddress(network, xpubkey, addressIndex, isChange) {
const changeNum = isChange ? 1 : 0;
const path = `m/${changeNum}/${addressIndex}`;
return this.deriveAddressWithPath(network, xpubkey, path);
}
derivePrivateKey(network, xPriv, addressIndex, isChange) {
const changeNum = isChange ? 1 : 0;
const path = `m/${changeNum}/${addressIndex}`;
return this.derivePrivateKeyWithPath(network, xPriv, path);
}
deriveAddressWithPath(network, xpubKey, path) {
const xpub = new bitcore_lib_1.default.HDPublicKey(xpubKey, network);
const pubKey = xpub.derive(path).toObject().publicKey;
const address = (0, xrpl_1.deriveAddress)(pubKey);
return address;
}
derivePrivateKeyWithPath(network, xprivKey, path) {
const xpriv = new bitcore_lib_1.default.HDPrivateKey(xprivKey, network);
const derivedXPriv = xpriv.derive(path);
const privKey = derivedXPriv.toObject().privateKey.toUpperCase();
const pubKey = derivedXPriv.hdPublicKey.toObject().publicKey.toUpperCase();
const address = (0, xrpl_1.deriveAddress)(pubKey);
return { address, privKey, pubKey, path };
}
getAddress(network, pubKey) {
const address = (0, xrpl_1.deriveAddress)(pubKey);
return address;
}
}
exports.XrpDeriver = XrpDeriver;
//# sourceMappingURL=index.js.map