NAME

Circle::Block - the block module for Circle::Chain SDK

VERSION

Version 0.02

SYNOPSIS

my $response = get_block_hashlist(0);
if ($response->{status} != 200) {
    croak 'cannot get block hash list:' . $response->{status};
}
my $data = $response->{data};
# process the block hash list data here.
my $hash = $data->[0];
$response = get_block($hash);
if ($response->{status} != 200) {
    croak 'cannot get block:' . $response->{status};
}
// process block data here.

DESCRIPTION

The module provides block functions.

EXPORT

Export the following methods in default:

our @EXPORT = qw(
  get_block_hashlist
  get_block
  get_block_header_list
  get_block_data
  get_blocktails_hashlist
  get_blocktails_po
  get_tx_by_txid
  search_tx_by_txid
  search_tx_by_address
  search_utxos
);

So you just use the module:

use Circle::Block;

METHODS

get_block_hashlist($base_height)

my $response = get_block_hashlist(0);
if ($response->{status} != 200) {
    croak 'cannot get block hash list:' . $response->{status};
}
my $data = $response->{data};
# process the block hash list data here.

get_block($hash)

my $hash = 'xxxxxxxxx';
my $response = get_block($hash);
if ($response->{status} != 200) {
    croak 'cannot get block:' . $response->{status};
}
my $data = $response->{data};
// process block data here.

get_block_header_list($base_height)

my $response = get_block_header_list(0);
if ($response->{status} != 200) {
    croak 'cannot get block header list:' . $response->{status};
}
my $data = $response->{data};
# process the block hash header list here.

get_block_data($hash)

my $hash = 'xxxxxxxxx';
my $response = get_block_data($hash);
if ($response->{status} != 200) {
    croak 'cannot get block data:' . $response->{status};
}
my $data = $response->{data};
// process block data here.

get_blocktails_hashlist($base_height)

my $response = get_blocktails_hashlist(0);
if ($response->{status} != 200) {
    croak 'cannot get block tails hashlist status: ' . $response->{status};
}
my $data = $response->{data};
// process block tails hash list here.

get_blocktails_po($hash)

my $hash = 'xxxxxxxxx';
my $response = get_blocktails_po($hash);
if ($response->{status} != 200) {
    croak 'cannot get block tails data:' . $response->{status};
}
my $data = $response->{data};
// process block tails here.

get_tx_by_txid($txid)

my $txid = 'xxxxxxxxx';
my $response = get_tx_by_txid($txid);
if ($response->{status} != 200) {
    croak 'cannot get tx by txid:' . $txid . ' status: ' . $response->{status};
}
my $data = $response->{data};
// process tx here.

search_tx_by_txid($txid)

my $txid = 'xxxxxxxxx';
my $response = search_tx_by_txid($txid);
if ($response->{status} != 200) {
    croak 'cannot search tx by txid:' . $txid . ' status: ' . $response->{status};
}
my $data = $response->{data};
// process tx list here.

search_tx_by_address(address, min_output_key, limit)

my $address = 'xxxxxxxxx';
my $response = search_tx_by_address($address, '', 100);
if ($response->{status} != 200) {
    croak 'cannot search tx by address:' . $address . ' status: ' . $response->{status};
}
my $data = $response->{data};
// process tx list here

address: the searched address min_output_key: the min output key to start with limit: the batch count for the search.

how to set min_output_key? In the response, we can get outputs:

my $min_output_key = $data->{minOutputKey};

search_utxos(address, min_output_key, limit)

my $address = 'xxxxxxxxx';
my $response = search_utxos($address, '', 100);
if ($response->{status} != 200) {
    croak 'cannot search utxos by address:' . $address . ' status: ' . $response->{status};
}
my $data = $response->{data};
// process utxos here.

address: the searched address min_output_key: the min output key to start with limit: the batch count for the search.

how to set min_output_key? In the response, we can get outputs:

my $outputs = $data->{outputs};
my $output = $outputs->[@{$outputs} - 1];
$min_output_key = $output->{txIdStr} . ':' . $output->{idx};

SEE ALSO

See Circle::Common for circle common module.

See Circle::Wallet for circle wallet module.

See Circle::User for circle user module.

COPYRIGHT AND LICENSE

Copyright 2024-2030 Charles li

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.