Wallet Hash Manager
Wallet Hash Manager is a TypeScript package designed to generate and manage cryptographic hashes for wallet recovery phrases and files. It provides functionality for creating random word mnemonics and secure random files, along with their corresponding hashes.
Features
- Generate random 24-word mnemonic phrases
- Create cryptographic hashes for word lists
- Generate random data files
- Compute hashes for data files
- Save and load data files securely
Installation
To install the package and its dependencies, run:
npm install wallet-hash-manager
Building the Project
To compile the TypeScript files, use:
npm run build
This will create compiled JavaScript files in the ./dist
directory.
Running Tests
To run the test suite, use:
npm test
This will execute all test files in the ./dist
directory.
Usage
WalletHashManager
The main class WalletHashManager
provides the following methods:
generateNewWords(pass?: string)
: Generates a new 24-word mnemonic phrase and its hash.getHashForWords(words: string[], pass?: string)
: Computes the hash for a given list of words.generateNewFile(pass?: string)
: Creates a new random data file and its hash.getHashForFile(data: Buffer, pass?: string)
: Computes the hash for a given data buffer.saveFile(fileName: string, data: Buffer)
: Saves data to a file.openFile(fileName: string, pass?: string)
: Opens a file and computes its hash.
Example
import { WalletHashManager } from "wallet-hash-manager";
async function example() {
const manager = new WalletHashManager();
// Generate new words
const { words, hash } = await manager.generateNewWords();
console.log("Generated words:", words.join(" "));
console.log("Hash:", hash);
// Generate new file
const { data, hash: fileHash } = await manager.generateNewFile();
console.log("File hash:", fileHash);
// Save file
await manager.saveFile("example.bin", data);
// Open file
const { data: loadedData, hash: loadedHash } = await manager.openFile(
"example.bin"
);
console.log("Loaded file hash:", loadedHash);
}
example().catch(console.error);
License
This project is licensed under the ISC License.
Contributing
Contributions are welcome. Please feel free to submit a Pull Request.