Skip to main content
Glama
provider.js1.27 kB
/** * Starknet Provider Utilities */ import { RpcProvider } from 'starknet'; // Default RPC URLs const DEFAULT_RPC_URLS = { mainnet: 'https://starknet-mainnet.public.blastapi.io', sepolia: 'https://starknet-sepolia.public.blastapi.io' }; /** * Create a configured Starknet RPC provider */ export function createProvider(config) { const network = process.env.STARKNET_NETWORK || config?.network || 'mainnet'; const nodeUrl = process.env.STARKNET_RPC_URL || config?.nodeUrl || DEFAULT_RPC_URLS[network]; return new RpcProvider({ nodeUrl }); // Starknet addresses start with 0x and are 64 hex characters (+ 0x prefix) const addressRegex = /^0x[0-9a-fA-F]{1,64}$/; return addressRegex.test(address); } /** * Retry helper with exponential backoff */ export async function retryWithBackoff(fn, maxRetries = 3, baseDelay = 1000) { let lastError; for (let i = 0; i < maxRetries; i++) { try { return await fn(); } catch (error) { lastError = error; if (i < maxRetries - 1) { const delay = baseDelay * Math.pow(2, i); await new Promise(resolve => setTimeout(resolve, delay)); } } } throw lastError; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/joadataarg/Mcp-mistcash'

If you have feedback or need assistance with the MCP directory API, please join our Discord server