6phere/laravel-ethereum

the ethereum json rpc api

dev-master 2020-04-09 09:41 UTC

This package is auto-updated.

Last update: 2024-11-09 20:34:06 UTC


README

Ethereum Package for Laravel

Latest Stable Version Latest Unstable Version License Total Downloads

Introduction

This is a simple Laravel Service Provider providing for Generic JSON RPC

and Management API

Installation

To install the PHP client library using Composer:

composer require jcsofts/laravel-ethereum

Alternatively, add these two lines to your composer require section:

{
    "require": {
        "jcsofts/laravel-ethereum": "dev-master"
    }
}

Laravel 5.5+

If you're using Laravel 5.5 or above, the package will automatically register the Ethereum provider and facade.

Laravel 5.4 and below

Add Jcsofts\LaravelEthereum\EthereumServiceProvider to the providers array in your config/app.php:

'providers' => [
    // Other service providers...

    Jcsofts\LaravelEthereum\EthereumServiceProvider::class,
],

If you want to use the facade interface, you can use the facade class when needed:

use Jcsofts\LaravelEthereum\Facade\Ethereum;

Or add an alias in your config/app.php:

'aliases' => [
    ...
    'Ethereum' => Jcsofts\LaravelEthereum\Facade\Ethereum::class,
],

Using Laravel-Ethereum with Lumen

laravel-ethereum works with Lumen too! You'll need to do a little work by hand to get it up and running. First, install the package using composer:

composer require jcsofts/laravel-ethereum

Next, we have to tell Lumen that our library exists. Update bootstrap/app.php and register the EthereumServiceProvider:

$app->register(Jcsofts\LaravelEthereum\EthereumServiceProvider::class);

Finally, we need to configure the library. Unfortunately Lumen doesn't support auto-publishing files so you'll have to create the config file yourself by creating a config directory and copying the config file out of the package in to your project:

mkdir config
cp vendor/jcsofts/laravel-ethereum/config/ethereum.php config/ethereum.php

At this point, set ETH_HOST and ETH_PORT in your .env file and it should be working for you. You can test this with the following route:

try{
        $ret = \Jcsofts\LaravelEthereum\Facade\Ethereum::eth_protocolVersion();
        print_r($ret);
    }catch (Exception $e){
        echo $e->getMessage();
    }

Configuration

You can use artisan vendor:publish to copy the distribution configuration file to your app's config directory:

php artisan vendor:publish

Then update config/ethereum.php with your credentials. Alternatively, you can update your .env file with the following:

ETH_HOST=http://localhost
ETH_PORT=8545

Usage

To use the Ethereum Client Library you can use the facade, or request the instance from the service container:

try{
        $ret = \Jcsofts\LaravelEthereum\Facade\Ethereum::eth_protocolVersion();
        print_r($ret);
    }catch (Exception $e){
        echo $e->getMessage();
    }

Or

$thereum = app('Ethereum');

$result=$thereum->eth_protocolVersion();