steven-ok / laravel-web3
Laravel SDK wrapper for the Web3 PHP API client that interacts with the Ethereum blockchain.
Fund package maintenance!
Patreon
Requires
- php: >=7.1
- steven-ok/web3.php: dev-master
Requires (Dev)
- mockery/mockery: ^1.4
- orchestra/testbench: ^5.0|^6.0
This package is auto-updated.
Last update: 2024-10-12 15:44:24 UTC
README
Laravel Web3 is a Laravel SDK wrapper for the Web3 PHP API client that interacts with the Ethereum blockchain.
🤝 Supporting
If you are using one or more Renoki Co. open-source packages in your production apps, in presentation demos, hobby projects, school projects or so, spread some kind words about our work or sponsor our work via Patreon. 📦
You will sometimes get exclusive content on tips about Laravel, AWS or Kubernetes on Patreon and some early-access to projects or packages.
🚀 Installation
You can install the package via composer:
composer require renoki-co/laravel-web3 --ignore-platform-reqs
Publish the config:
$ php artisan vendor:publish --provider="RenokiCo\LaravelWeb3\LaravelWeb3ServiceProvider" --tag="config"
🙌 Usage
The client configuration can be found in the config/web3.php
file. Each call will be made from the \Web3\Web3
class:
use RenokiCo\LaravelWeb3\Web3Facade; Web3Facade::eth()->provider->execute(function ($err, $data) { // });
Multiple connections
The package supports multiple connections configurations. If you wish to select a specific one (not the default one), call connection
before getting the cluster.
use RenokiCo\LaravelWeb3\Web3Facade; Web3Facade::connection('http2')->eth()->provider->execute(function ($err, $data) { // });
Additional methods
The following methods are also available to start with:
use RenokiCo\LaravelWeb3\Web3Facade; Web3Facade::eth(); // equivalent of $web3->eth Web3Facade::net(); // equivalent of $web3->net Web3Facade::personal(); // equivalent of $web3->personal Web3Facade::shh(); // equivalent of $web3->shh Web3Facade::utils(); // equivalent of $web3->utils
Working with Contracts
You can also initialize contracts with the same configuration:
use RenokiCo\LaravelWeb3\Web3Facade; Web3Facade::contract($abi, 'latest') ->bytecode($bytecode) ->new($params, $callback);
🐛 Testing
vendor/bin/phpunit
🤝 Contributing
Please see CONTRIBUTING for details.
🔒 Security
If you discover any security related issues, please email alex@renoki.org instead of using the issue tracker.