vance-page/laravel-web3

Laravel SDK wrapper for the Web3 PHP API client that interacts with the Ethereum blockchain.

Fund package maintenance!
Patreon

1.0.1 2022-03-06 11:04 UTC

This package is auto-updated.

Last update: 2024-05-06 20:10:14 UTC


README

CI codecov StyleCI Latest Stable Version Total Downloads Monthly Downloads License

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.

68747470733a2f2f63352e70617472656f6e2e636f6d2f65787465726e616c2f6c6f676f2f6265636f6d655f615f706174726f6e5f627574746f6e2e706e67

🚀 Installation

You can install the package via composer:

composer require vance-page/laravel-web3 --ignore-platform-reqs

Publish the config:

$ php artisan vendor:publish --provider="Vance\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 Vance\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 Vance\LaravelWeb3\Web3Facade;

Web3Facade::connection('http2')->eth()->provider->execute(function ($err, $data) {
    //
});

Additional methods

The following methods are also available to start with:

use Vance\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 Vance\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.

🎉 Credits