EthRpcClient for raw parity, JsonRpcProvider for typed abstractions) aligns well with modern PHP architectures needing both audit-grade precision and developer-friendly APIs.maxFeePerGas = 2 × baseFee + tip) mirrors ethers.js v6, reducing friction for developers familiar with JavaScript tooling.EthereumTransaction, EthereumFeeData) reduce runtime errors and improve IDE support (e.g., PHPStan, PhpStorm). Decimal-string handling for large wei values avoids floating-point precision issues.0x returns, pre-London blocks), reducing operational overhead for multi-node setups.EthRpcClient parity is critical, or is JsonRpcProvider’s abstraction sufficient?amashukov/eip1559-tx-signer-php.CurlClient or integrate an existing PSR-18 client (e.g., Guzzle)? Middleware (retries, auth) must be planned upfront.eth_* method compatibility.HttpClient facade (PSR-18) + JsonRpcProvider in services.CurlClient with middleware (e.g., RetryMiddleware) via DIC.web3.php (if used) with EthRpcClient for audit paths, JsonRpcProvider for new code.JsonRpcProvider for typed queries (e.g., getBalance, getFeeData).EthRpcClient for hex-parity needs (e.g., debugging).amashukov/http-client-php):
$http = new Pipeline([
new RetryMiddleware(),
new AuthMiddleware('Bearer ' . $apiKey),
new CurlClient($psr17, $psr17),
]);
$client = new EthRpcClient($http, $psr17, $psr17, $rpcUrl);
debug_traceCall) are not relied upon.composer require amashukov/eth-rpc-client-php amashukov/http-client-php
ext-gmp and ext-bcmath in php.ini..env or Symfony’s parameters.yml).Psr\Clock\ClockInterface for waitForTransaction deadlines.eth_getBalance), then enable writes (e.g., eth_sendRawTransaction).eth_call, eth_getLogs).EthRpcClient for raw hex inspection when JsonRpcProvider returns unexpected data.0x returns).eth_call for multiple addresses).getBalance for contracts with high token supplies.eth_call with complex state changes.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| RPC Node Unavailable | App downtime | Multi |
How can I help you explore Laravel packages today?