UNPKG

@patchworkdev/pdk

Version:

Patchwork Development Kit

35 lines (34 loc) 1.23 kB
"use strict"; 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;