deposit-scync-npm-package
v0.1.0
Published
A blockchain transaction monitoring library that allows users to track deposits and transactions across multiple networks.
Readme
Deposit Sync NPM Package
A blockchain transaction monitoring library that allows users to track deposits and transactions across multiple networks.
Features
- 🔗 Multi-network support (concurrent processing)
- 📡 Real-time transaction monitoring via EventEmitter
- 🎯 Filter transactions by wallet address
- 📊 Track deposits and statistics
- ✅ SOLID principles architecture
- 🚀 Zero external blockchain dependencies (uses native fetch)
Installation
npm install deposit-scync-npm-packageQuick Start
import {
DepositSyncService,
depositSyncEvents,
NetworkConfig
} from 'deposit-scync-npm-package';
// 1. User provides their networks
const networks: NetworkConfig[] = [
{
id: "ethereum-mainnet",
chainId: 1,
rpc: {
http: "https://eth.llamarpc.com",
ws: "wss://eth.llamarpc.com"
},
tokens: {
USDC: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
},
startingBlock: 18000000
}
];
// 2. User provides wallets to monitor
const myWallets = ['0xYourWalletAddress'];
// 3. Listen to transaction events
depositSyncEvents.on('transaction', (tx) => {
if (myWallets.includes(tx.to?.toLowerCase())) {
console.log(`Deposit received: ${tx.valueInEth} ETH`);
}
});
// 4. Start the service
const service = new DepositSyncService(networks);
await service.start();Configuration
Users provide their own configuration - nothing is hardcoded in the library.
NetworkConfig
{
id: string; // Unique network identifier
chainId: number; // Chain ID (1 for Ethereum, 137 for Polygon, etc.)
rpc: {
http: string; // HTTP RPC endpoint
ws: string; // WebSocket RPC endpoint
};
tokens: Record<string, string>; // Token addresses
startingBlock?: number; // Block to start syncing from
}Events
Transaction Event
depositSyncEvents.on('transaction', (tx: TransactionEvent) => {
console.log(`TX ${tx.txHash}: ${tx.valueInEth} ETH`);
console.log(`From: ${tx.from}`);
console.log(`To: ${tx.to}`);
console.log(`Status: ${tx.status ? 'Success' : 'Failed'}`);
});Block Event
depositSyncEvents.on('block', (block: BlockEvent) => {
console.log(`Block ${block.blockNumber} on ${block.networkId}`);
console.log(`Transactions: ${block.transactionCount}`);
});Examples
See example files for complete implementations:
example-usage.ts- Complete example with user configurationexample.ts- Basic usageexample-advanced.ts- Advanced filtering and monitoring
Run examples:
npm run example:usage
npm run example
npm run example:advancedScripts
npm run build– compile TypeScript todist/npm run example:usage– run complete usage examplenpm run clean– removedist/
Requirements
- Node.js 18+ (for native
fetchAPI) - TypeScript 5+
License
MIT
