Gas Optimization
Konfigurasi gas untuk menghemat biaya transaksi:
// config.js
module.exports = {
gas: {
maxFeePerGas: null, // null = auto detect
maxPriorityFeePerGas: null,
gasLimit: 21000, // Adjust per transaction type
gasPriceMultiplier: 1.1, // 10% above base fee
}
}
Retry Logic
Implementasi retry untuk handle failed transactions:
// Retry configuration
const retryConfig = {
maxRetries: 3,
retryDelay: 5000, // 5 seconds
exponentialBackoff: true,
retryOn: ['NONCE_EXPIRED', 'TIMEOUT', 'NETWORK_ERROR']
}
Concurrency Control
Mengelola jumlah operasi paralel:
// Limit concurrent operations
const { pLimit } = require('p-limit');
const limit = pLimit(5); // Max 5 concurrent
const promises = wallets.map(wallet =>
limit(() => processWallet(wallet))
);
await Promise.all(promises);
Logging & Monitoring
Setup proper logging untuk debugging:
// logger.js
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
💡 Pro Tips
- • Monitor gas prices dengan tools seperti Etherscan Gas Tracker
- • Set up alerts untuk failed transactions
- • Use nonce manager untuk handle concurrent transactions
- • Implement circuit breaker pattern untuk handle outages