farbcode/laravel-evm 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

farbcode/laravel-evm

最新稳定版本:v0.3.0

Composer 安装命令:

composer require farbcode/laravel-evm

包简介

Simple, Reliable Ethereum Integration for Laravel

README 文档

README

Laravel EVM (Ethereum Virtual Machine)

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Simple, Reliable Ethereum Integration for Laravel

Laravel EVM Logo

Features

  • 💡 EIP-1559 Support: Seamlessly handle modern Ethereum transactions with dynamic fee management.
  • 🚀 Asynchronous Transaction Queue: Process blockchain transactions safely through Laravel Queues — no blocking, no delays.
  • 🔗 Event-driven Workflow: Stay in control with Laravel Events for every step: TxQueued, TxBroadcasted, TxMined, TxFailed.
  • 🧠 Smart Nonce & Fee Strategy: Automatic nonce tracking and adaptive fee logic for consistent, reliable execution.

Documentation

All information on how to use this package can be found on our official documentation website. → Read the Docs

Requirements

  • PHP >= 8.4
  • Laravel >= 12
  • GMP PHP extension installed and enabled

Installation

Install the package via composer:

composer require farbcode/laravel-evm

You can publish the config file with:

php artisan vendor:publish --tag="evm-config"

Then set your blockchain RPC URL, chain id and private key in .env:

EVM_CHAIN_ID=137
EVM_RPC_1=https://polygon-mainnet.g.alchemy.com/v2/KEY
EVM_PRIVATE_KEY=0xabc123...64hex

Usage (Quick Glimpse)

use Farbcode\LaravelEvm\Facades\Evm;

$abi = file_get_contents(storage_path('app/abi/MyContract.abi.json'));
$contract = LaravelEvm::at('0xYourContract', $abi);

// Read call
$balance = $contract->call('balanceOf', ['0xUser']);

// Write (async - enqueued on EVM_QUEUE default:evm-send, see https://laravel-evm.farbcode.net/basic-usage#writes-async-transactions for more information)
$jobId = $contract->sendAsync('transfer', ['0xRecipient', 100]);

Wait for a known tx hash:

$receipt = $contract->wait('0xTxHash');

Log Filtering & Event Decoding

use Farbcode\LaravelEvm\Facades\EvmLogs;
use Farbcode\LaravelEvm\Support\LogFilterBuilder;

$abi = file_get_contents(storage_path('app/abi/ERC20.abi.json'));
$logs = EvmLogs::query()
    ->fromBlock(18_000_000)
    ->toBlock('latest')
    ->address('0xToken')
    ->eventByAbi($abi, 'Transfer')
    ->topicAny(1, [LogFilterBuilder::padAddress($addrA), LogFilterBuilder::padAddress($addrB)])
    ->get();
$decoded = array_map(fn($l) => LogFilterBuilder::decodeEvent($abi, $l), $logs);

All information on how to use this package can be found on our official documentation website. → Read the Docs

Changelog

Notable changes to this package are documented in our changelog for every new release.

→ See what's changed

Contributing

We welcome contributions to this package.

→ Read our Contribution Guidelines

→ Open an Issue

→ Submit a Pull Request

License

The MIT License (MIT). See License File for more information.

farbcode Logo

Made with ❤️ by //farbcode.

统计信息

  • 总下载量: 287
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-04