A flexible and extensible library for wallet data storage, supporting multiple storage engine implementations.
This library is part of the Wallet SDK.
lib-wallet-store provides a consistent interface for wallet data storage, allowing developers to choose or implement the storage engine that best fits their needs. Whether you need in-memory storage, file-based persistence, or distributed data structures, lib-wallet-store offers a unified API to work with various backend technologies.
- 🔢 Consistent key-value storage API
- 🔌 Pluggable storage engine architecture
- 🔄 Asynchronous operations
- 🧩 Support for multiple instances
- 🔐 Designed for wallet data management
Here's a quick example of how to use lib-wallet-store with the Hyperbee engine:
const { WalletStoreHyperbee } = require('lib-wallet-store');
async function example() {
const store = new WalletStoreHyperbee({});
await store.init();
await store.put('key1', 'value1');
const value = await store.get('key1');
console.log(value); // Outputs: value1
await store.close();
}
example();
lib-wallet-store currently supports the following storage engines:
- Hyperbee Engine: Utilizes the Hyperbee data structure for efficient and distributed storage.
To implement a new storage engine:
- Create a new class that extends the base
WalletStore
class. - Implement the required methods:
init()
,get()
,put()
,delete()
,clear()
,close()
, etc. - Place your implementation in the project's root directory (e.g.,
wallet-store-yourenginename.js
).
To set up the development environment:
-
Clone the repository:
git clone https://github.com/tetherto/lib-wallet-store.git cd lib-wallet-store
-
Install dependencies:
npm install
-
Start coding! 👨💻👩💻
We use the Brittle testing framework for our unit tests.
To run the tests:
-
Make sure you have the testing dependencies installed:
npm install brittle
-
Run the tests:
npm run test
Contributions are welcome! Here are some ways you can contribute:
- Implement new storage engines
- Improve existing implementations
- Add more test cases
- Enhance documentation