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

Circle::Wallet - the circle chain SDK in PERL

VERSION

Version 0.02

SYNOPSIS

    use Circle::Wallet;
    # first of all, you must login and then do the following operations.
    # how to login please refer to Circle::User module.
    # first time to use, each user has 3 wallets to create.
    my $response = create_wallet();
    my $address;
    if ($response->{status} == 200) {
        $address = $response->{data};
    }
    $response = balance_of_address($address);
    # $response->{status} == 200, get the balance: $response->{data}
    $response = assets_of_address($address);
    # $response->{status} == 200, get the assets: $response->{data}
    # if you created 3 wallets
    $response = list_wallet();
    # $response->{status} == 200, get the address list: $response->{data}
    ...

EXPORT

The default exported methods:

1. create_wallet
2. list_wallet
3. balance_of_address
4. balance_of_wallet
5. assets_of_address
6. assets_of_wallet
7. public_key_hash_from_address
8. send_to
9. pay
10. search_tx_by_type
11. search_tx_by_time
12. let_me_try
13. public_address_of_uid
14. public_balance_of_address
15. public_assets_of_address
16. public_search_transaction

SUBROUTINES/METHODS

create_wallet

create wallet in the cloud.

list_wallet

list the wallet address

   my $response = list_wallet();
   if ($response->{status} == 200) {
      my $addresses = $response->{data};
      // process address list here.
   }

balance_of_address

get the balance of the address

   my $response = balance_of_address( $address, $type ); # type: 1 ownership, 2 identity
   if ($response->{status} == 200) {
     my $balance = $response->{data};
     // process the balance here.
   }

balance_of_wallet

get the balance of the wallets

   $response = balance_of_wallet();
   if ($response->{status} == 200) {
     my $balance_infos = $response->{data};
     // process balance_infos data here.
   }

assets_of_address

get the assets of the address

  my $response = assets_of_address( $address, $type);  # type: 1 ownership, 2 identity
  if ($response->{status} == 200) {
    my $asset_infos = $response->{data};
    // process assets info here.
  }

assets_of_wallet

get the assets of the wallet

  my $response = assets_of_wallet();
  if ($response->{status} == 200) {
    my $assets_infos = $response->{data};
    // process assets info here.
  }

public_key_hash_from_address

get the public key hash from address

  my $response = public_key_hash_from_address( $address );
  if ($response->{status} == 200) {
    my $public_key_hash = $response->{data};
    // process public key hash here.
  }

send_to

send assets to others

  my $response = send_to({
    from => '<from-address>',
    address => '<to-address>',
    email => 'test@gmail.com',
    transContent => {
      type => 1, # 1 ownership, 2 identity
      uuid => '<asset uuid string>',
    },
    payPassword => '<pay password>'
  });
  if ($response->{status} == 200) {
    my $success = $response->{data};
    // check the sendTo api success or failure here.
  }

pay

pay balance to others

  my $response = pay({
    from => '<from-address>',
    to => '<to-address>',
    value => 1000, # send 1000 li to others.
    payPassword => '<pay password>'
  });
  if ($response->{status} == 200) {
    my $success = $response->{data};
    // check pay api success or failure.
  }

search_tx_by_type

search transaction by type.

  my $type = 0; // balance
  my $page_no = 1;
  my $page_size = 100;
  my $response = search_tx_by_type( $type, $page_no, $page_size );
  if ($response->{status} == 20) {
    my $tx_info_list = $response->{data};
    // process your tx info list here.
  }

search_tx_by_time

search transaction by time

  my $start_time = 1764233300;
  my $end_time = 18343232300;
  my $page_size = 100;
  my $response = search_tx_by_time( $start_time, $end_time, $page_size );
  if ( $response->{status} == 20 ) {
    my $tx_info_list = $response->{data};
    // process your tx info list here .;
  }

let_me_try

let me try to mine the block, and get some assets and balances.

  my $response = let_me_try();
  if ($response->{status} == 200) {
    my $transaction_info = $response->{data};
    // process transaction info here.
  }

public_address_of_uid

public api without user login, address of uid.

  my $response = public_address_of_uid( $uid );
  if ($response->{status} == 200) {
    my $address = $response->{data};
    // process address code here.
  }

public_balance_of_address

public api without user login. balance_of_address

  my $response = public_balance_of_address( $address );
  if ($response->{status} == 200) {
    my $balance = $response->{data};
    // process balance code here.
  }

public_assets_of_address

public api without user login, assets of address

  my $response = public_assets_of_address( $address, $type ); # type: 1 ownership 2 identity
  if ($response->{status} == 200) {
    my $assets = $response->{data};
    // process assets here.
  }

public_search_transaction

public api without user login, search transaction

  my $response = public_search_transaction({
    address => '<address>',
    inOut => 'IN', # IN/OUT
    transactionContent => {
      type => 1, # 0 balance, 1 ownership, 2 identity
       # uid hex string or (uid hex string + '' + data hash hex)
      uuid => '<uid hex string>',
    }
  });
  if ($response->{status} == 200) {
    my $trans = $response->{data};
    // process trans data here.
  }

AUTHOR

charles li, <lidh04 at gmail.com>

BUGS

Please report any bugs or feature requests to bug-circle-chain at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Circle-Chain. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SEE ALSO

See Circle::Common for circle common module.

See L <Circle::User> for circle user module .

See Circle::Wallet for circle wallet module.

See Circle::Block for circle block module.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Circle::Wallet

You can also look for information at:

ACKNOWLEDGEMENTS

This module belong to author lidh04@gmail

LICENSE AND COPYRIGHT

This software is Copyright (c) 2024 by charles li.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)