mollsoft / laravel-tron-module
Laravel Tron Module
Requires
- php: >=8.1
- ext-ctype: *
- ext-decimal: *
- ext-gmp: *
- furqansiddiqui/bip39-mnemonic-php: ^0.1.7
- illuminate/contracts: ^10.0|^11.0
- kornrunner/secp256k1: ^0.2.0
- minter/minter-php-bip-44: ^1.2
- simplito/elliptic-php: ^1.0
- spatie/laravel-package-tools: ^1.15
- web3p/web3.php: ^0.1.6
README
Laravel Tron Module is a Laravel package for work with cryptocurrency Tron, with the support TRC-20 tokens.It allows you to generate HD wallets using mnemonic phrase, validate addresses, get addresses balances and resources, preview and send TRX/TRC-20 tokens. You can automate the acceptance and withdrawal of cryptocurrency in your application.
You can contact me for help in integrating payment acceptance into your project.
Requirements
The following versions of PHP are supported by this version.
- PHP 8.1 and older
- Laravel 10 or older
- PHP Extensions: Decimal, GMP, BCMath, CType.
Installation
You can install the package via composer:
composer require mollsoft/laravel-tron-module
After you can run installer using command:
php artisan tron:install
And run migrations:
php artisan migrate
Register Service Provider and Facade in app, edit config/app.php
:
'providers' => ServiceProvider::defaultProviders()->merge([ ..., \Mollsoft\LaravelTronModule\TronServiceProvider::class, ])->toArray(), 'aliases' => Facade::defaultAliases()->merge([ ..., 'Tron' => \Mollsoft\LaravelTronModule\Facades\Tron::class, ])->toArray(),
For Laravel 10 you edit file app/Console/Kernel
in method schedule(Schedule $schedule)
add:
$schedule->command('tron:sync') ->everyMinute() ->runInBackground();
or for Laravel 11+ add this content to routes/console.php
:
use Illuminate\Support\Facades\Schedule; Schedule::command('tron:sync') ->everyMinute() ->runInBackground();
How use?
- Firstly register an account on the TronGrid website and get an API key.
- Using the following code, create a node through which the library will work:
$apiKey = "..."; // API Key from TronGrid.io Tron::createTronGridNode($apiKey, 'node_name');
- Now you can create Tron Wallet using code:
$mnemonic = Tron::mnemonicGenerate(); echo 'Mnemonic: '.implode(' ', $mnemonic); $wallet = Tron::createWallet('wallet_name', $mnemonic);
- Create primary Tron Address in your Wallet using code:
$address = Tron::createAddress($wallet, 'primary_address_name'); echo 'Primary Address: '.$address->address;
- Now you can send TRX using this code:
$to = 'receiver tron address'; $amount = 1; $transfer = Tron::transfer($address, $to, $amount); echo 'TXID: '.$transfer->txid;
If you want work with TRC-20
For example: Tether USDT
- You must create TronTRC20 model using this code:
$contractAddress = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'; $trc20Token = TronTRC20::create($contractAddress);
- For transfer Tether USDT TRC-20 for another address you can use this code:
$to = 'receiver tron address'; $amount = 1; $transferTRC20 = Tron::transferTRC20($address, $to, $amount); echo 'TXID: '.$transferTRC20->txid;
Commands
Synchronizing everything
php artisan tron:sync
Node synchronization
php artisan tron:sync-node NODE_ID
Wallet synchronization
php artisan tron:sync-wallet WALLET_ID
Address synchronization
php artisan tron:sync-address ADDRESS_ID
Create Tron Node. Before you need register account in https://trongrid.io and generate API Key.
php artisan tron:new-node
Create Tron Wallet.
php artisan tron:new-wallet
Generate Tron Address.
php artisan tron:new-address
Import watch only address.
php artisan tron:import-address
Create TRC-20 Token
php artisan tron:new-trc20