PHP WebShell

Текущая директория: /var/www/bitcardoApp/models/crypto

Просмотр файла: tron_balance.php

<?php

namespace Models\Crypto;

class TronBalance
{
    private $config;

    public function __construct()
    {
        $this->config = include __DIR__ . '/../../config/tron_config.php';
    }

    /**
     * Get TRX Balance (raw Sun)
     */
    public function getTrxBalance($address)
    {
        $url = $this->config['network'] . "/v1/accounts/{$address}";
        
        $response = $this->makeRequest($url);

        if (!isset($response['data'][0]['balance'])) {
            return 0;
        }

        return $response['data'][0]['balance']; // RAW Sun units
    }

    /**
     * Get USDT (TRC20) token balance (raw integer)
     */
    public function getUsdtBalance($address)
    {
        $contract = $this->config['usdt_contract'];

        // TRC20 balance endpoint
        $url = $this->config['network'] . "/v1/accounts/{$address}/assets?limit=200";

        $response = $this->makeRequest($url);

        if (!isset($response['data'])) {
            return 0;
        }

        foreach ($response['data'] as $asset) {
            if (isset($asset['key']) && $asset['key'] === $contract) {
                return $asset['value']; // RAW integer amount
            }
        }

        return 0;
    }

    /**
     * Shared request handler with API key
     */
    private function makeRequest($url)
    {
        $ch = curl_init();

        $headers = [
            "TRON-PRO-API-KEY: " . $this->config['api_key']
        ];

        curl_setopt_array($ch, [
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER => $headers,
        ]);

        $result = curl_exec($ch);
        curl_close($ch);

        return json_decode($result, true);
    }
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!