دعم JSON-RPC
تتحدث نقاط نهاية Rome EVM بروتوكول Ethereum JSON-RPC القياسي. تعمل Foundry وHardhat وethers وviem وMetaMask مع Rome بالطريقة نفسها التي تعمل بها على أي سلسلة EVM. تسرد هذه الصفحة ما هو مدعوم وبعض السلوكيات الخاصة بـ Rome التي يجدر معرفتها.
الطرق المدعومة
الأساسية (الحالة والتنفيذ): eth_chainId, eth_blockNumber, eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_call, eth_estimateGas, eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory.
الكتل والمعاملات: eth_getBlockByNumber, eth_getBlockByHash, eth_getBlockReceipts, eth_getTransactionByHash, eth_getTransactionReceipt, eth_sendRawTransaction، وتباينات الكتل حسب الفهرس/العدد.
السجلات والمرشحات: eth_getLogs, eth_newFilter, eth_newBlockFilter, eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter.
اشتراكات WebSocket: eth_subscribe / eth_unsubscribe (newHeads, logs). راجع اشتراكات WebSocket.
Net / web3: net_version, net_listening, net_peerCount, web3_clientVersion.
غير مدعوم
debug_traceTransaction / trace_* (تتبّع المعاملات)، eth_getProof, eth_createAccessList, eth_blobBaseFee (لا توجد معاملات blob)، txpool_* (لا توجد mempool عامة). newPendingTransactions تُقبل الاشتراكات ولكنها لا تُصدر أبدًا.
السلوكيات الخاصة بـ Rome
الغاز مشتق من Solana — قدّر، لا تثبّت قيمته
يقيس Rome التنفيذ بوحدات الحوسبة في Solana، وتُعرض كغاز EVM. النتائج العملية:
دع أدواتك تقدّر الغاز دائمًا.
forge create,cast، وHardhat يستدعيانeth_estimateGasعلى السلسلة ويحصلان تلقائيًا على القيمة الصحيحة.لا تثبّت قيمة
21000للتحويلات الأصلية. التحويل إلى عنوان غير موجود بعد يتطلب أكثر من 21000 (إذ ينشئ حساب المستلم). تتولى عملية التقدير ذلك؛ أما21000فسيَفشل حدّ الغاز للمستلمين الجدد.
forge script --broadcast يحتاج إلى --skip-simulation
forge script --broadcast يحتاج إلى --skip-simulationforge script يضبط حدّ الغاز للبث من محاكاة محلية، وهذا يوفّر كمية أقل من اللازم وفق نموذج الغاز في Rome. أضف --skip-simulation حتى يستخدم Foundry eth_estimateGas بدلًا من ذلك:
forge create, cast send، وHardhat غير متأثرة — فهي بالفعل تقدر على السلسلة.
eth_getLogs مقيد بالنطاق (حوالي 12,000 كتلة)
eth_getLogs مقيد بالنطاق (حوالي 12,000 كتلة)مثل Infura وAlchemy وغيرها من واجهات RPC الإنتاجية، eth_getLogs يرفض نطاقات الكتل الواسعة جدًا (خطأ -32005). حدّد نطاق استعلاماتك:
إن queryFilter من دون نطاق تمسح كل السجلّات وستتجاوز الحد — مرّر fromBlock/toBlock. لا تتأثر عبارات التحقق من الأحداث المعتمدة على الإيصال (مثل الانتظار على معاملة وقراءة سجلاتها).
الرسوم
eth_gasPrice يُرجع السعر الحقيقي المستمد من الأوراكل؛ وتستخدمه المحافظ (بما فيها MetaMask) وتعرض الرسوم الصحيحة. تُقبل حقول الرسوم المرسلة بمرونة — سواء معاملات legacy أو EIP-1559 تصل بالإعدادات الافتراضية القياسية للأدوات.
آخر تحديث
هل كان هذا مفيدا؟