@blockchain-api/bitcoin-js
Version:
Blockchain Api Bitcoin JS
103 lines • 4.78 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPath = exports.getNetwork = exports.signTxOffline = exports.isValidAddress = exports.generateAddressFromXPub = exports.generatePrivateKeyFromMnemonic = exports.generateAddressFromPrivatekey = exports.generateAddressFromMnemonic = exports.generateWallet = void 0;
const tslib_1 = require("tslib");
const bitcore_lib_1 = require("bitcore-lib");
const common = (0, tslib_1.__importStar)(require("../../common"));
const constants = (0, tslib_1.__importStar)(require("../../common/constants"));
/**
* Generate Bitcoin wallet
* @param testnet testnet or mainnet version of address
* @param mnemonic mnemonic seed to use
* @returns wallet
*/
const generateWallet = (testnet, mnemonic) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
const network = (0, exports.getNetwork)(testnet);
const path = (0, exports.getPath)(testnet);
return common.generateWallet(mnemonic, path.substring(0, path.length - 2), network);
});
exports.generateWallet = generateWallet;
/**
* Generate Bitcoin address from mnemonic
* @param testnet testnet or mainnet version of address
* @param mnemonic mnemonic seed to use
* @param i derivation index of address to generate. Up to 2^31 addresses can be generated.
* @returns blockchain address
*/
const generateAddressFromMnemonic = (testnet, mnemonic, i) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
const network = (0, exports.getNetwork)(testnet);
const path = (0, exports.getPath)(testnet);
return common.generateAddressFromMnemonic(path.substring(0, path.length - 2), mnemonic, i, network);
});
exports.generateAddressFromMnemonic = generateAddressFromMnemonic;
/**
* Convert Bitcoin Private Key to Address
* @param testnet testnet or mainnet version of address
* @param privkey private key to use
* @returns blockchain address
*/
const generateAddressFromPrivatekey = (testnet, privkey) => {
const network = (0, exports.getNetwork)(testnet);
return common.generateAddressFromPrivatekey(privkey, network);
};
exports.generateAddressFromPrivatekey = generateAddressFromPrivatekey;
/**
* Generate Bitcoin private key from mnemonic seed
* @param testnet testnet or mainnet version of address
* @param mnemonic mnemonic to generate private key from
* @param i derivation index of private key to generate.
* @returns blockchain private key to the address
*/
const generatePrivateKeyFromMnemonic = (testnet, mnemonic, i) => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
const network = (0, exports.getNetwork)(testnet);
const path = (0, exports.getPath)(testnet);
return common.generatePrivateKeyFromMnemonic(mnemonic, path, i, network);
});
exports.generatePrivateKeyFromMnemonic = generatePrivateKeyFromMnemonic;
/**
* Generate address from xpub
* @param currency type of blockchain
* @param testnet testnet or mainnet version of address
* @param xpub extended public key to generate address from
* @param i derivation index of address to generate. Up to 2^31 addresses can be generated.
* @returns blockchain address
*/
const generateAddressFromXPub = (testnet, xpub, i) => {
const network = (0, exports.getNetwork)(testnet);
return common.generateAddressFromXPub(xpub, i, network);
};
exports.generateAddressFromXPub = generateAddressFromXPub;
/**
* Check bitcoin address is valid
* @param testnet testnet or mainnet version of address
* @param address bitcoin address
* @returns true || false
*/
const isValidAddress = (testnet, address) => {
const network = (0, exports.getNetwork)(testnet);
return common.isValidAddress(address, network);
};
exports.isValidAddress = isValidAddress;
/**
* Sign bitcoin tx offline
* @param testnet testnet or mainnet version of address
* @param outputs transaction outputs
* @param privateKey sender private key
* @param toAddress receiver
* @param valueInBtc valut in btc
* @returns rawTx
*/
const signTxOffline = (testnet, outputs, privateKey, toAddress, valueInBtc, changeAddress) => {
const network = (0, exports.getNetwork)(testnet);
return common.signTxOffline(outputs, privateKey, toAddress, bitcore_lib_1.Unit.fromBTC(valueInBtc).toSatoshis(), network, changeAddress);
};
exports.signTxOffline = signTxOffline;
const getNetwork = (testnet) => {
return testnet === 'mainnet' ? constants.DOGE_NETWORK : constants.DOGE_TEST_NETWORK;
};
exports.getNetwork = getNetwork;
const getPath = (testnet) => {
return testnet === 'mainnet' ? constants.DOGE_DERIVATION_PATH : constants.TESTNET_DERIVATION_PATH;
};
exports.getPath = getPath;
//# sourceMappingURL=doge.js.map
;