NAME
CryptoTron::GetAccount - Perl extension for use with the blockchain of the crypto coin Tron.
SYNOPSIS
use CryptoTron::GetAccount;
# 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 $account_info = GetAccount(
PublicKey => $PublicKeyBase58
[, VisibleFlag => $VisibleFlag]
[, ControlFlag => $ControlFlag]
[, OutputFormat => $OutputFormat]
);
# Print the account info into the terminal window.
print $account_info;
DESCRIPTION
The module requests the account information of an Tron account from the Tron blockchain using the so-called full-node HTTP API from the Tron developer network. The module is designed for use with Tron Mainnet. For HTTP requests the methods POST
or GET
can be used in general. For the method GetAccount
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
GetAccount()
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".
Public key and visible flag are related to each other:
PublicKey
: Base58 address => VisibleFlag
: True
PublicKey
: Hex address => VisibleFlag
: False
If the given combination in the subroutine arguments is not valid, an error will be returned from the request.
The subroutine argument key ControlFlag
and his value controls if the given combination of public key and visible flag 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
Next others, the method returns informations about the balance, the staked and voted balance, and timestamps.
Free available balance
Frozen staked balance
Voted balance
SR vote address and number of votes
Frozen BANDWIDTH
Expiration date and time of frozen BANDWIDTH
Frozen ENERGY
Expiration date and time of frozen ENERGY
Creation date and time of account
Date and time of last operation
Last date and time when BANDWIDTH was consumed
Last date and time when ENERGY was consumed
Lastest consume date and time
Lastest withdraw date and time
The format of returned data and time is a Epoch Unix timestamp given in milliseconds. 1 second equals to 1 milliseconds. The epoch Unix timestamp is a way to track time as a running total of seconds since the Epoch on January 1st, 1970 at UTC.
The values of the balances are returned in SUN. 1 TRX equals to 1,000,000 SUN. SUN is named after the founder of Tron. A Tron balance in TRX given as a decimal value can never have more than six digits after the decimal point.
With the above knowledge, both raw JSON data as well as string JSON data can be interpreted directly by the user without automated parsing.
EXAMPLES
Example 1
# Load the required module.
use CryptoTron::GetAccount;
# 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 = GetAccount({
PublicKey => $PublicKeyBase58,
VisibleFlag => $VisibleFlag,
ControlFlag => $ControlFlag,
OutputFormat => $OutputFormat
});
# Print the account info into the terminal window.
print $account_info;
Example 2
# Load the required module.
use CryptoTron::GetAccount;
# 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 = GetAccount({PublicKey => $PublicKeyBase58});
# Print the account info into the terminal window.
print $response;
LIMITATIONS
The module is working with the Tron Mainnet, but not with other existing Tron Testnets.
NOTES
As long as there is no balance in a Tron account, information's about such an account cannot be retrieved. It is only possible to check if the Tron public address is valid or not.
ERROR CODES
No error codes returned yet.
OPEN ISSUES
No open issues yet.
BUGS
No known bugs yet.
TODO
Nothing to do yet.
SEE ALSO
CryptoTron::JsonHttp
CryptoTron:ParseAccount
CryptoTron:AddressCheck
CryptoTron:AddressConvert
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.