NRG
  • Overview
    • 💡What is NRG?
    • ✨NRG Features
  • How to guides
    • âš¡Rent Tron Energy
    • âš¡Providing Tron Energy
    • âš¡Claiming Rewards
    • âš¡How to remove your TRX
    • âš¡How to use the swap module
    • âš¡Make money with NRG Energy affiliates
    • âš¡User energy costs
    • âš¡System voting rewards
    • âš¡Telegram support
  • Developer Docs
    • âš¡How to estimate Tron smart contract energy costs
    • âš¡How to check user energy levels
    • âš¡Rent Tron Energy - TronWeb
    • âš¡Rent Tron Energy PHP - IEXBase TronAPI
    • âš¡How to Inherit the NRG Smart Contract for seamless energy rental
  • NRG Security Audit
    • âš¡Smart Contract Audit
Powered by GitBook
On this page
  1. Developer Docs

How to check user energy levels

Prerequisites

Ensure that you have the TronWeb library installed and properly configured. You need to have a Tron node either a private node or using a public gateway such as TronGrid

Step 1: Define the Energy Requirement

Please note the minimum order is 25,000 energy units

Define how much energy your operation will need. This value should be set according to the specific action the user wants to take. For example, if your operation requires 100,000 units of energy, you should set amountRequired to 100000.

var amountRequired = 100000; // adjust this value based on your needs


/**
 * Function to check if the user has sufficient energy.
 *
 * @param {number} amountRequired - The amount of energy required for the operation.
 * @returns {number} The additional amount of energy required by the user.
 */
async function checkUserEnergyNeeded(amountRequired) {
    // Initialize the variable for the additional energy needed.
    var userNeeds = 0;
   
    // Retrieve the account's resources.
        await tronWeb.trx.getAccountResources(window.tronWeb.defaultAddress.base58)
            .then(result => {
                let userNeeds;
                // Check if 'EnergyLimit' and 'EnergyUsed' properties exist in the result.
                if ('EnergyLimit' in result && 'EnergyUsed' in result) {
                    // Calculate the available energy.
                    let availableEnergy = result.EnergyLimit - result.EnergyUsed;
                    console.log(availableEnergy)
                    // If the required energy is greater than the available energy,
                    // calculate the additional amount needed.
                    if (amountRequired > availableEnergy) {
                        userNeeds = amountRequired - availableEnergy;
                    }
                } else if ('EnergyLimit' in result) {
                    // If 'EnergyLimit' exists but 'EnergyUsed' doesn't, assume the user has full energy.
                    let availableEnergy = result.EnergyLimit;
                    if (amountRequired > availableEnergy) {
                        userNeeds = amountRequired - availableEnergy;
                    }
                } else {
                    // If 'EnergyLimit' and 'EnergyUsed' don't exist, assume the user needs all the required amount.
                    userNeeds = amountRequired;
                }
               
            });

    // Return the additional amount of energy needed, if any.
    // If no additional energy is needed, this will be zero.
    return userNeeds;
}

Step 2: Call the Function

Call your checkUserEnergyLevels function and pass the amountRequired as a parameter.

var extraEnergyNeeded = await checkUserEnergyNeeded(amountRequired);

Step 3: Interpret the Results

Interpret the results of the function call. The function will return the amount of additional energy the user needs to perform the operation. If no extra energy is needed, the function will return 0. If additional energy is required, it will return the amount of energy needed.

if (extraEnergyNeeded === 0) {
    console.log('The user has sufficient energy for this operation.');
} else {
    console.log('The user needs additional units of energy for this operation. ');
}

Step 4: Order the energy

PreviousHow to estimate Tron smart contract energy costs NextRent Tron Energy - TronWeb

Last updated 1 year ago

Now you have determined how much if any the user may need you can now go to the next to dynamically assign the amount the user needs

âš¡
section