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_coderegistersend_verify_codeloginlogoutsend_pay_verify_codeset_pay_passwordhave_pay_passwordsend_reset_password_verify_codereset_passwordadd_contactslist_contactssave_or_update_user_infoget_user_info
Circle::Wallet
cloud wallets
create_walletlist_walletblance_of_addressbalance_of_walletassets_of_walletassets_of_addresspublic_key_hash_from_addresssend_topaysearch_tx_by_typesearch_tx_by_timelet_me_try
open wallets
public_address_by_uidpublic_assets_of_addresspublic_balance_of_addresspublic_search_transaction
Circle::Block
get_block_hash_listget_blockget_block_header_listget_block_dataget_block_tail_hash_listget_block_tails_poget_transaction_by_txidsearch_tx_by_txidsearch_tx_by_addresssearch_utxo