@midnightntwrk/wallet-sdk-node-client
Client for communicating with the Midnight blockchain node.
Installation
npm install @midnightntwrk/wallet-sdk-node-client
Overview
This package provides a client for interacting with the Midnight blockchain node using Polkadot.js APIs. It handles:
- RPC communication with the node
- Transaction submission and tracking
- Blockchain state queries
- Type-safe interactions via generated types
Usage
Basic Usage
import { PolkadotNodeClient, makeConfig } from '@midnightntwrk/wallet-sdk-node-client';
// Initialize the client
const config = makeConfig({ endpoint: 'ws://localhost:9944' });
const client = await PolkadotNodeClient.init(config);
// Submit a transaction and wait for finalization
const result = await client.sendMidnightTransactionAndWait(serializedTransaction, 'Finalized');
// Clean up
await client.close();
Tracking Submission Events
// Get an observable of submission events
const events$ = client.sendMidnightTransaction(serializedTransaction);
events$.subscribe({
next: (event) => {
switch (event._tag) {
case 'Submitted':
console.log('Transaction submitted');
break;
case 'InBlock':
console.log('Transaction in block:', event.blockHash);
break;
case 'Finalized':
console.log('Transaction finalized');
break;
}
},
});
Exports
Default Export
PolkadotNodeClient- Main client class for node communicationConfig- Configuration typemakeConfig- Configuration factory functionDEFAULT_CONFIG- Default configuration values
Effect Submodule (/effect)
Effect.ts-based implementation for functional programming patterns:
import { NodeClient, PolkadotNodeClient } from '@midnightntwrk/wallet-sdk-node-client/effect';
Testing Submodule (/testing)
Testing utilities and mocks:
import { ... } from '@midnightntwrk/wallet-sdk-node-client/testing';
License
Apache-2.0