UNPKG

@blockchain-api/bitcoin-js

Version:
103 lines 4.78 kB
"use strict"; 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