UNPKG

bitriel-wallet-sdk

Version:

This is bitriel Wallet SDK

222 lines (148 loc) 5.18 kB
# Bitriel Wallet SDK [![Version](https://img.shields.io/npm/v/bitriel-wallet-sdk.svg)](https://www.npmjs.com/package/bitriel-wallet-sdk) [![License](https://img.shields.io/npm/l/bitriel-wallet-sdk.svg)](https://github.com/bitriel/wallet-sdk/blob/main/LICENSE) A powerful TypeScript SDK for interacting with multiple blockchain networks, including the Selendra network, Polkadot ecosystem, and Ethereum EVM chains. This SDK provides a unified interface for wallet operations, token management, and transaction handling across different blockchain networks. ## Features - 🌐 Multi-chain support: - Selendra Network - Polkadot Ecosystem - Ethereum EVM Chains - 💼 Unified wallet interface - 💰 Token management (ERC-20, native tokens) - 🔐 Secure account management - 📊 Real-time balance queries - 🔄 Network switching capabilities - 📝 Message signing - 🔍 Transaction history ## Installation ```bash # Using npm npm install bitriel-wallet-sdk # Using yarn yarn add bitriel-wallet-sdk # Using pnpm pnpm add bitriel-wallet-sdk ``` ## Quick Start ```typescript import { BitrielWalletSDK } from "bitriel-wallet-sdk"; // Initialize the SDK const sdk = new BitrielWalletSDK(); // Get supported networks const networks = sdk.getSupportedNetworks(); // Connect to a network (e.g., Selendra Mainnet) await sdk.connect("selendra"); // Get wallet state const walletState = await sdk.getWalletState(); // Send a transaction const txHash = await sdk.sendTransaction({ to: "0x...", value: "1000000000000000000", // 1 SEL }); // Sign a message const signature = await sdk.signMessage("Hello, World!"); // Disconnect await sdk.disconnect(); ``` ## Supported Networks ### Selendra Network - Mainnet - Testnet ### Polkadot Ecosystem - Polkadot Mainnet - Kusama ### Ethereum EVM Ecosystem - Ethereum Mainnet - Polygon Mainnet ## API Reference ### BitrielWalletSDK #### Constructor ```typescript new BitrielWalletSDK(options?: SDKOptions) ``` #### Methods ##### Connection Management - `connect(networkId: string): Promise<void>` - Connects to the specified network - Throws an error if the network is not supported - Returns a promise that resolves when connected - `disconnect(): Promise<void>` - Disconnects from the current network - Cleans up resources and connections ##### Wallet Operations - `getWalletState(): Promise<WalletState>` - Returns the current wallet state including: - Address - Network - Balances (native and tokens) - Connection status - `sendTransaction(tx: TransactionRequest): Promise<string>` - Sends a transaction and returns the transaction hash - Supports both EVM and Polkadot transaction formats - Handles gas estimation and fee calculation - `signMessage(message: string): Promise<string>` - Signs a message using the current account - Returns the signature in the appropriate format for the network ##### Network Management - `getSupportedNetworks(): NetworkConfig[]` - Returns a list of all supported networks - Includes network details and configuration - `getCurrentNetwork(): NetworkConfig | null` - Returns the currently connected network - Returns null if not connected ##### Token Operations - `getTokenBalance(tokenAddress: string): Promise<string>` - Returns the balance of a specific token - Supports both ERC-20 and native tokens - `getTokenInfo(tokenAddress: string): Promise<TokenInfo>` - Returns detailed information about a token - Includes decimals, symbol, and name ## Development Setup 1. Clone the repository: ```bash git clone https://github.com/bitriel/wallet-sdk.git cd wallet-sdk ``` 2. Install dependencies: ```bash pnpm install ``` 3. Build the project: ```bash pnpm build ``` 4. Run tests: ```bash pnpm test ``` ## Testing The SDK includes comprehensive tests: - Unit tests: `pnpm test` - Watch mode: `pnpm test:watch` - Coverage report: `pnpm test:coverage` - Integration tests: `pnpm test:execute` ## Troubleshooting ### Common Issues 1. **Connection Failures** - Ensure you have a stable internet connection - Check if the network is supported - Verify network configuration 2. **Transaction Failures** - Check sufficient balance - Verify gas/fee settings - Ensure correct network selection 3. **Token Operations** - Verify token contract address - Check token decimals - Ensure token is supported on the network ## Contributing We welcome contributions! Please follow these steps: 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## Support For support, please open an issue in the [GitHub repository](https://github.com/bitriel/wallet-sdk/issues) or contact the maintainers.