0.1.14 • Published 6 months ago
runes-sdk v0.1.14
Runes SDK
A TypeScript and Rust SDK for interacting with the Runes protocol.
Features
- Hybrid architecture with TypeScript and Rust
- RPC client for blockchain interaction
- WebSocket support for real-time updates
- Market data streaming
- Trading operations support
- Type-safe API
- Comprehensive test coverage
- Security features and API key management
Documentation
Installation
npm install runes-sdk
Quick Start
import { RunesSDK } from 'runes-sdk';
// Initialize SDK
const sdk = new RunesSDK({
rpcUrl: 'http://your-node:8332',
wsUrl: 'ws://your-node:8333' // Optional WebSocket support
});
// Connect to WebSocket (optional)
sdk.connect();
// Query transaction
const tx = await sdk.getTransaction('your-tx-id');
console.log(tx);
// Cleanup
sdk.disconnect();
Architecture
The SDK follows a hybrid architecture:
- Core functionality implemented in Rust
- TypeScript wrapper for ease of use
- WebSocket support for real-time updates
- Comprehensive type definitions
- Built-in security features
Development Setup
Prerequisites
- Node.js (v16 or later)
- Rust (latest stable)
Local Development
- Clone the repository:
git clone https://github.com/qvkare/runes-sdk.git
cd runes-sdk
- Install dependencies:
npm install
- Run tests:
npm run test # Run all tests
npm run test:ts # Run TypeScript tests
cargo test # Run Rust tests
- Build the project:
npm run build
Project Structure
src/
├── typescript/ # TypeScript implementation
│ ├── api/ # API endpoints
│ ├── services/ # Core services
│ ├── types/ # TypeScript types
│ └── utils/ # Utilities
├── rust/ # Rust implementation
├── api/ # Rust API
├── services/ # Core services
└── types/ # Rust types
docs/ # Documentation
examples/ # Usage examples
tests/ # Test files
Configuration
The SDK can be configured through the configuration object:
const sdk = new RunesSDK({
rpcUrl: process.env.RUNES_RPC_URL,
wsUrl: process.env.RUNES_WS_URL,
network: 'mainnet',
timeout: 30000
});
Testing
# Run all tests
npm run test
# Run specific test suites
npm run test:ts
cargo test
# Run with coverage
npm run test:coverage
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
ISC License - see the LICENSE file for details