feat: complete module scaffolding — all 6 modules with controllers, routes, services
Modules built:
- Home: landing page with live chain stats and service directory
- Chain: DaemonRpc singleton, config, events
- Explorer: web + API controllers (block, tx, alias, search, stats)
- Names: TLD registrar (availability, lookup, directory, registration)
- Trade: DEX controllers + API (config, pairs, orders)
- Pool: dashboard + PoolClient service (stats, blocks, payments, miner)
Infrastructure:
- composer.json: lthn/lthn.io deps (core/php + laravel 12)
- Dockerfile: FrankenPHP with Caddy
- Caddyfile: PHP server config
Co-Authored-By: Charon <charon@lethean.io>
2026-04-03 16:26:17 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
|
use Mod\Pool\Services\PoolClient;
|
|
|
|
|
|
2026-04-03 23:04:27 +01:00
|
|
|
Route::get('/stats', function () {
|
|
|
|
|
$stats = app(PoolClient::class)->getStats();
|
|
|
|
|
return response()->json($stats ?: ['status' => 'offline']);
|
|
|
|
|
});
|
|
|
|
|
Route::get('/blocks', function () {
|
|
|
|
|
$blocks = app(PoolClient::class)->getBlocks();
|
|
|
|
|
return response()->json($blocks ?: ['status' => 'offline']);
|
|
|
|
|
});
|
|
|
|
|
Route::get('/payments', function () {
|
|
|
|
|
$payments = app(PoolClient::class)->getPayments();
|
|
|
|
|
return response()->json($payments ?: ['status' => 'offline']);
|
|
|
|
|
});
|