Perl SDK for CircleChain
Install
use cpanm
to install perl module Circle::Chain from cpan.org:
cpanm -n Circle::Chain
Usage
User register and login
use Circle::Chain qw(:user :wallet :block);
# 1. first register and login or login with verify code
## option1: register and login
my $response = send_register_verify_code({
email => 'circle-node@gmail.com'
});
if ($response->{status} != 200) {
croak 'cannot send register verify code:' . $response->{status};
}
# receive you verify code in email or your mobile phone.
$response = register({
email => 'circle-node@gmail.com',
passwordInput1 => '<password>',
passwordInput2 => '<password>',
verifyCode => '<verify_code>'
});
if ($response->{status} != 200) {
croak 'cannot register status' . $response->{status};
}
# 2. then login
$response = login({
email => 'circle-node@gmail.com',
password => '<password>'
});
if ($response->{status} != 200) {
croak 'cannot login status' . $response->{status};
}
## option2: login with verify code without register
$response = send_verify_code({
email => 'circle-node@gmail.com'
});
if ($response->{status} != 200) {
croak 'cannot send login verify code:' . $response->{status};
}
# receive you verify code in email or your mobile phone.
# then login
$response = login({
email => 'circle-node@gmail.com',
verifyCode => '<verifyCode>'
});
if ($response->{status} != 200) {
croak 'cannot login status' . $response->{status};
}
## for you login, option1 and option2 are ok, you just select one.
# now your login in.
# 3. set pay password.
$response = send_pay_verify_code({
email => 'circle-node@gmail.com'
});
if ($response->{status} != 200) {
croak 'cannot send pay password verify code:' . $response->{status};
}
# receive you payVerifyCode from your email.
$response = set_pay_password({
account => {
email => 'circle-node@gmail.com'
},
verifyCode => '<verify_code>',
password => '<password>'
});
if ($response->{status} != 200) {
croak 'cannot set pay password status:' . $response->{status};
}
# now the pay password is set success.
Wallet functions
# 3. create your wallets, you can create 3 wallets at most.
$response = create_wallet();
if ($response->{status} != 200) {
croak 'cannot create wallet status:' . $response->{status};
}
# 4. see your wallets info
$response = list_wallet();
if ($response->{status} != 200) {
croak 'cannot list wallet status:' . $response->{status};
}
# now we get the wallet info.
$response = assets_of_wallet();
if ($response->{status} != 200) {
croak 'cannot get assets of wallet status:' . $response->{status};
}
# now we get assets of wallet.
# 5. send assets to others
my $uuid = '<uuid>'; # the ownership uuid
$response = send_to({
from => '<from address>',
address => '<receive address>',
transContent => {
type => 1, # 1 ownership, 2 identity
uuid => $uuid,
},
payPassword => '<pay password>'
});
if ($response->{status} != 200) {
croak 'cannot send assets status:' . $response->{status};
}
# 6. pay balance to others
$response = pay({
from => '<from address>',
to => '<receive address>',
value => 100,
payPassword => '<pay password>'
});
if ($response->{status} != 200) {
croak 'cannot pay balance status:' . $response->{status};
}
# 7. let me try to mine the block
$response = let_me_try();
if ($response->{status} != 200) {
croak 'cannot let me try status:' . $response->{status};
}
# 8. even more, please refer the java sdk doc... :).
APIs
Circle::Node
-
subcribe
-
server_features
-
broadcast_transaction
Circle::User
send_register_verify_code
register
send_verify_code
login
logout
send_pay_verify_code
set_pay_password
have_pay_password
send_reset_password_verify_code
reset_password
add_contacts
list_contacts
save_or_update_user_info
get_user_info
Circle::Wallet
cloud wallets
create_wallet
list_wallet
blance_of_address
balance_of_wallet
assets_of_wallet
assets_of_address
public_key_hash_from_address
send_to
pay
search_tx_by_type
search_tx_by_time
let_me_try
open wallets
public_address_by_uid
public_assets_of_address
public_balance_of_address
public_search_transaction
Circle::Block
get_block_hash_list
get_block
get_block_header_list
get_block_data
get_block_tail_hash_list
get_block_tails_po
get_transaction_by_txid
search_tx_by_txid
search_tx_by_address
search_utxo