mist-chainz-client
v1.0.5
Published
TypeScript client library for the GGL-DS-MIST blockchain system
Maintainers
Readme
mist-chainz-client
TypeScript client library for the GGL-DS-MIST blockchain system. Provides wallet creation, transaction management, and signature verification over a simple HTTP API.
Installation
npm install mist-chainz-clientUsage
import { MistClient } from 'mist-chainz-client';
const client = new MistClient('https://your-mist-node-url');Create a wallet
const wallet = await client.createWallet();
// { address: '0x...', privateKey: '...' }Create a transaction
const tx = await client.createTransaction({
senderAddress: wallet.address,
recipient: '0xRecipientAddress',
data: {
id: 'my-object-id',
// ...any additional fields
},
});The transaction ID is automatically persisted to a local store file (default: mist-store.json) keyed by data.id, so you can look it up later.
Get a transaction
const tx = await client.getTransaction(transactionId);Validate a transaction
const result = await client.validateTransaction(transactionId, rawData);
// { transactionId: '...', isValid: true }Look up a stored transaction UUID
const transactionId = client.getTransactionUuid('my-object-id');API Reference
new MistClient(baseUrl, storeFilename?)
| Parameter | Type | Default | Description |
|---|---|---|---|
| baseUrl | string | — | Base URL of the MIST node |
| storeFilename | string | mist-store.json | Path for the local transaction ID store |
Methods
| Method | Returns | Description |
|---|---|---|
| createWallet() | Promise<Wallet> | Creates a new wallet on the node |
| createTransaction(body) | Promise<Transaction> | Submits a transaction and caches its ID locally |
| getTransaction(id) | Promise<Transaction> | Fetches a transaction by its blockchain ID |
| validateTransaction(id, rawData) | Promise<VerifyResult> | Verifies a transaction's signature externally |
| getTransactionUuid(objectId) | string \| null | Looks up a cached transaction ID by object ID |
Types
interface Wallet {
address: string;
privateKey: string;
}
interface Transaction {
id: string;
status: string;
input: { timestamp: number; address: string; signature: string };
outputMap: { destination: string; data: any };
}
interface CreateTransactionBody {
senderAddress: string;
recipient: string;
data: Record<string, any> & { id: string };
}
interface VerifyResult {
transactionId: string;
isValid: boolean;
}License
ISC
