@patchworkdev/pdk
Version:
Patchwork Development Kit
35 lines (34 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BlockNumberService = void 0;
const viem_1 = require("viem");
class BlockNumberService {
async getBlockNumber(rpcUrl) {
try {
const client = (0, viem_1.createPublicClient)({
transport: (0, viem_1.http)(rpcUrl),
});
const blockNumber = await client.getBlockNumber();
return blockNumber;
}
catch (error) {
console.error('Failed to fetch block number:', error);
throw new Error('Failed to fetch block number from node');
}
}
async getDeploymentBlockNumber(rpcUrl, retries = 3, delay = 1000) {
for (let i = 0; i < retries; i++) {
try {
const blockNumber = await this.getBlockNumber(rpcUrl);
return blockNumber;
}
catch (error) {
if (i === retries - 1)
throw error;
await new Promise((resolve) => setTimeout(resolve, delay));
}
}
throw new Error('Failed to fetch block number after multiple attempts');
}
}
exports.BlockNumberService = BlockNumberService;