UNPKG

ecash-quicksend

Version:

A unified transaction manager for eCash (XEC), SLP, and ALP token transactions

75 lines 3.16 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeWallet = initializeWallet; const constants_1 = require("../config/constants"); const mnemonic_utils_1 = require("./mnemonic-utils"); const wif = __importStar(require("wif")); const ecashLib = __importStar(require("ecash-lib")); const { Ecc, Script, fromHex, shaRmd160, } = ecashLib; /** * 初始化钱包 - 优化版本,只调用一次 deriveBuyerKey * @param addressIndex - 地址索引,默认为0 * @param mnemonic - 可选:直接提供助记词,否则从环境变量获取 * @returns 钱包相关的密钥、脚本和地址 */ function initializeWallet(addressIndex = 0, mnemonic) { // 如果提供了助记词参数就使用,否则从环境变量获取 const finalMnemonic = mnemonic || (0, constants_1.getMnemonic)(); if (!finalMnemonic) { throw new Error('助记词未设置:请在环境变量中设置 MNEMONIC 或在函数调用中提供助记词参数'); } console.log('使用助记词派生私钥...'); // 只调用一次 deriveBuyerKey,获取完整信息 const derived = (0, mnemonic_utils_1.deriveBuyerKey)(finalMnemonic, addressIndex); const ecc = new Ecc(); const decoded = wif.decode(derived.wif); const privateKey = decoded.privateKey; const privateKeyHex = Buffer.from(privateKey).toString('hex'); const walletSk = fromHex(privateKeyHex); const walletPk = ecc.derivePubkey(walletSk); const walletPkh = shaRmd160(walletPk); const walletP2pkh = Script.p2pkh(walletPkh); return { ecc, walletSk, walletPk, walletPkh, walletP2pkh, address: derived.address, // 新增:返回地址信息 addressIndex }; } //# sourceMappingURL=wallet-utils.js.map