The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

CryptoTron::GetAccountResource - Perl extension for use with the blockchain of the crypto coin Tron.

SYNOPSIS

  use CryptoTron::GetAccountResource;

  # Set the public key as Base58 address.
  my $PublicKeyBase58 = "TY2fJ7AcsnQhfW3UJ1cjEUak5vkM87KC6R";

  # Set the visible flag.
  my $VisibleFlag = ["True"|"False"|""];

  # Set the control flag.
  my $ControlFlag = ["True"|"False"|""];

  # Set the output format.
  my $OutputFormat = ["RAW"|"STR"|""];

  # Request the account info from the mainnet.
  my $accountresource_info = GetAccount(
      PublicKey => $PublicKeyBase58
      [, VisibleFlag => $VisibleFlag]
      [, ControlFlag => $ControlFlag]
      [, OutputFormat => $OutputFormat]
  );

  # Print the account info into the terminal window.
  print $accountresource_info;

DESCRIPTION

The module requests the resource information of an account(bandwidth, energy etc.) of a Tron account from the Tron blockchain using the full-node HTTP Tron API from the Tron developer network. The module is designed for use with the Tron Mainnet. For HTTP requests the methods POST or GET can be used in general. For the method GetAccountResource the needed method is POST. The payload of the HTTP request consists of the key 'address' and the key 'visible' and the related values. The switch 'visible' can be set to "True" or "False". If the switch is set to "True" a Base58 address is used. If the switch is set to "False" a Hex address is used. A request of the service API results in a response in JSON format. The module returns formatted string JSON data as well as unformated raw JSON data based on the output format flag. The parsing of the account information is done by a separate module.

METHOD

  GetAccountResource()

OPTIONS

The named subroutine argument key PublicKey and the related value are mandatory, the named subroutine arguments keys OutputFormat as well as VisibleFlag and there values are optional. The value of the subroutine argument key PublicKey can be a Base58 address or a Hex address. The value of the subroutine argument key VisibleFlag can be "True" or "False".

PublicKey: Base58 address => VisibleFlag: True

PublicKey: Hex address => VisibleFlag: False

If the given combination is not valid, an error will be returned from the request.

The subroutine argument key ControlFlag and his value controls if the given combination address and visible should be checked. If visible is not set in a correct way, the value will be corrected if the flag is "True" and if the flag is "False" it will not be corrected.

The subroutine argument key OutputFormat and his value controls wether the output is raw JSON or or formatted JSON.

METHOD RETURN

PARAMETERDESCRIPTION
NetUsedUsed amount of bandwidth obtained by staking
NetLimitTotal bandwidth obtained by staking
freeNetUsedfree bandwidth used
freeNetLimitTotal free bandwidth
TotalNetLimitTotal bandwidth can be obtained by staking
TotalNetWeightTotal TRX staked for bandwidth
tronPowerUsedTron power used
tronPowerLimitTRON Power(vote)
EnergyUsedEnergy used
EnergyLimitTotal energy obtained by staking
TotalEnergyLimitTotal energy can be obtained by staking
TotalEnergyWeightTotal TRX staked for energy

EXAMPLES

Example 1

  # Load the required module.
  use CryptoTron::GetAccountResource;

  # Set the public key as Base58 address.
  my $PublicKeyBase58 = "TY2fJ7AcsnQhfW3UJ1cjEUak5vkM87KC6R";

  # Set the visible flag.
  my $VisibleFlag = "True";

  # Set the control flag.
  my $ControlFlag = "True";

  # Set the output format.
  my $OutputFormat = "RAW";

  # Request the account info from the mainnet.
  my $account_info = GetAccountResource({
      PublicKey => $PublicKeyBase58,
      VisibleFlag => $VisibleFlag,
      ControlFlag => $ControlFlag,
      OutputFormat => $OutputFormat
  });

  # Print the resource info into the terminal window.
  print $account_info;

Example 2

  # Load the required module.
  use CryptoTron::GetAccountResource;

  # Set the public key as Base58 address.
  my $PublicKeyBase58 = "TY2fJ7AcsnQhfW3UJ1cjEUak5vkM87KC6R";

  # Set the output format.
  my $OutputFormat = "STR";

  # Request the account info from the mainnet.
  my $response = GetAccountResource({PublicKey => $PublicKeyBase58});

  # Print the resource info into the terminal window.
  print $response;

LIMITATIONS

The module is working with the Tron Mainnet, but not with other existing Tron Testnets.

OPEN ISSUES

None

ERROR CODES

None

NOTES

None

BUGS

None

TODO

None

SEE ALSO

CryptoTron::JsonHttp

CryptoTron:ParseAccount

CryptoTron:AddressCheck

CryptoTron:AddressConvert

File::Basename

TRON Developer Hub

AUTHOR

Dr. Peter Netz, <ztenretep@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2022 by Dr. Peter Netz

This library is free software; you can redistribute it and/or modify it under the same terms of The MIT License. For more details, see the full text of the license in the attached file LICENSE in the main module folder. This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.