@ivanoliverfabra/bloom
v1.1.3
Published
Bloom is a TypeScript library designed to interact with a virtual currency system for a Minecraft SMP. This library facilitates account creation, address management, transactions, and searching functionalities through a RESTful API.
Downloads
13
Readme
Bloom: Virtual Currency for Minecraft SMP
Bloom is a TypeScript library designed to interact with a virtual currency system for a Minecraft SMP. This library facilitates account creation, address management, transactions, and searching functionalities through a RESTful API.
Table of Contents
Installation
To install the Bloom library, use npm or yarn:
npm install @ivanoliverfabra/bloom
yarn add @ivanoliverfabra/bloom
pnpm add @ivanoliverfabra/bloom
bun add @ivanoliverfabra/bloom
Usage
Creating an Instance
To create an instance of the Bloom client, import the library and initialize it with the base URL of the Bloom API:
import Bloom from "@ivanoliverfabra/bloom";
const bloom = new Bloom("https://bloom.fabra.me/api");
Account Management
Bloom provides methods to create, retrieve, and list accounts.
Create an Account
const account = await bloom.account.create();
console.log(account);
Get an Account
const account = await bloom.account.get("b123456789");
console.log(account);
List Accounts
const accounts = await bloom.account.getMany({ limit: 10, offset: 0 });
console.log(accounts);
List Specific Accounts
const accounts = await bloom.account.getMany({ limit: 10, offset: 0 }, [
"b123456789",
"b234567890",
]);
console.log(accounts);
Address Management
Bloom provides methods to create, retrieve, list, and transfer addresses.
Create an Address
const address = await bloom.address.create(
"pk-1234567890abcdef",
"example_address"
);
console.log(address);
Get an Address
const address = await bloom.address.get("example_address");
console.log(address);
List Addresses
const addresses = await bloom.address.getMany({ limit: 10, offset: 0 });
console.log(addresses);
Transfer an Address
const transferredAddress = await bloom.address.transfer(
"pk-1234567890abcdef",
"example_address",
"new_owner"
);
console.log(transferredAddress);
Transactions
Bloom provides methods to create, retrieve, and list transactions.
Create a Transaction
const transaction = await bloom.transaction.create(
"pk-1234567890abcdef",
"recipient_address",
100,
BloomTransactionType.Transfer,
undefined,
{ note: "Payment for services" }
);
console.log(transaction);
Create a Request
const transaction = await bloom.transaction.create(
"pk-1234567890abcdef",
"recipient_address",
100,
BloomTransactionType.Request,
undefined,
{ note: "Payment for services" }
);
console.log(transaction);
Pay a Request
const transaction = await bloom.transaction.create(
"pk-1234567890abcdef",
"recipient_address",
100,
BloomTransactionType.Payment,
"rq-1234567890abcdef",
{ note: "Payment for services" }
);
console.log(transaction);
Get a Transaction
const transaction = await bloom.transaction.get("transaction_id");
console.log(transaction);
List Transactions
const transactions = await bloom.transaction.getMany({ limit: 10, offset: 0 });
console.log(transactions);
Search
Bloom provides a search function to query accounts, addresses, and transactions.
const searchResults = await bloom.search("query");
console.log(searchResults);
Validation
Bloom provides validation functions for account addresses, addresses, private keys, and request IDs.
const isValidAccountAddress = bloom.validate.accountAddress("b123456789");
console.log(isValidAccountAddress); // true or false
const isValidAddress = bloom.validate.address("[email protected]");
console.log(isValidAddress); // true or false
const isValidPrivateKey = bloom.validate.privateKey("pk-1234567890abcdef");
console.log(isValidPrivateKey); // true or false
const isValidRequestId = bloom.validate.requestId("rq-1234567890abcdef");
console.log(isValidRequestId); // true or false
Types
Bloom provides various TypeScript types for better development experience.
BloomAccount
BloomAddress
BloomTransaction
BloomPaginationProps
BloomPaginatedResponse
Refer to the code for detailed type definitions.
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any features, bug fixes, or improvements.
License
This project is licensed under the MIT License. See the LICENSE file for details.