pyacryl2 API

client module

pyacryl2.client

This module provides API client class

class pyacryl2.client.AcrylClient(node_address='https://nodes.acrylplatform.com', matcher_address='https://matcher.acrylplatform.com', chain_id=None, api_key=None, raise_exception=True, request_params=None, online=True)[source]

Bases: pyacryl2.client.BaseClient

Acryl API client class based on requests HTTP client Class method names usually consist of a API endpoint, like /blocks/height is blocks_height or /utils/seed/{length} is utils_seed_length, also HTTP methods may affect class method name like POST /address is address_create or DELETE /address is address_delete. Check out node API documentation at https://nodes.acrylplatform.com/api-docs/index.html

activation_status()[source]

Get node activation status

Returns

address_balance(address)[source]

Address acryl balance

Parameters

address

Returns

Return type

AcrylClientResponse

address_balance_confirmed(address, confirmations)[source]

Get confirmed address balance

Parameters
  • address

  • confirmations

Returns

Return type

AcrylClientResponse

address_balance_details(address)[source]

Get address details

Parameters

address

Returns

Return type

AcrylClientResponse

address_create()[source]

Create node address

Returns

Return type

AcrylClientResponse

address_data(address_data)[source]

Set address data

Parameters

address_data

Returns

Return type

AcrylClientResponse

address_data_address(address, matches=None)[source]

Get full address data

Parameters

address

Returns

Return type

AcrylClientResponse

address_data_key(address, key)[source]

Get address data by key

Parameters
  • address – address in base58

  • key – string key

Returns

Return type

AcrylClientResponse

address_delete(address)[source]

Delete address from node

Parameters

address – address in base58

Returns

Return type

AcrylClientResponse

address_effective_balance(address)[source]

Address effective balance

Parameters

address

Returns

Return type

AcrylClientResponse

address_effective_balance_confirmed(address, confirmations)[source]

Get confirmed address effective balance

Parameters
  • address

  • confirmations

Returns

Return type

AcrylClientResponse

address_public_key(public_key)[source]

Get address by public key

Parameters

public_key

Returns

Return type

AcrylClientResponse

address_script_info(address)[source]

Get address script info

Parameters

address – address in base58

Returns

Return type

AcrylClientResponse

address_seed(address)[source]

Get address seed

Parameters

address

Returns

Return type

AcrylClientResponse

address_sign_text(address, message)[source]

Sign text

Parameters
  • address

  • message – message string

Returns

Return type

AcrylClientResponse

address_validate(address)[source]

Validate address

Parameters

address

Returns

Return type

AcrylClientResponse

address_verify_text(address, message_data)[source]

Verify text

Parameters
  • address

  • message_data

Returns

Return type

AcrylClientResponse

addresses()[source]

Get node addresses

Returns

Return type

AcrylClientResponse

addresses_sequence(address_from, address_to)[source]

Get address sequence

Returns

Return type

AcrylClientResponse

alias_broadcast_create(transaction_data)[source]

Create alias

Parameters

transaction_data

Returns

alias_by_address(address)[source]

Get alias by address

Parameters

address – acryl address

Returns

Return type

AcrylClientResponse

alias_by_alias(alias)[source]

Get address by alias

Parameters

alias (str) – alias (without preifx and chain id)

Returns

Return type

AcrylClientResponse

asset_broadcast_burn(transaction_data)[source]

Burn asset (v1)

Parameters

transaction_data

Returns

Return type

AcrylClientResponse

asset_broadcast_issue(transaction_data)[source]

Issue asset (v1)

Parameters

transaction_data

Returns

Return type

AcrylClientResponse

asset_broadcast_reissue(transaction_data)[source]

Reissue asset (transaction v1)

Parameters

transaction_data

Returns

Return type

AcrylClientResponse

asset_broadcast_transfer(transfer_data)[source]

Broadcast asset transfer transaction (v1)

Parameters

transfer_data

Returns

Return type

AcrylClientResponse

asset_distribution_at_height(asset_id, height, limit)[source]

Get asset distribution at height

Parameters
  • asset_id

  • height

  • limit

Returns

Return type

AcrylClientResponse

assets_balance(address)[source]

Get assets balance

Parameters

address

Returns

Return type

AcrylClientResponse

assets_balance_asset(address, asset_id)[source]

Get asset balance

Parameters
  • address

  • asset_id

Returns

Return type

AcrylClientResponse

assets_details(asset_id, full=None)[source]

Get asset details

Parameters
  • asset_id

  • full

Returns

Return type

AcrylClientResponse

assets_nft_balance(address, limit, after=None)[source]

Get NFT balance (node version 1.0 and higher)

Parameters
  • address

  • limit

  • after

Returns

Return type

AcrylClientResponse

blocks_address(address, height_from, height_to)[source]

Get blocks generated by address

Parameters
  • address

  • height_from

  • height_to

Returns

Return type

AcrylClientResponse

blocks_at(height)[source]

Get block at height

Parameters

height

Returns

Return type

AcrylClientResponse

blocks_checkpoint(checkpoint_data)[source]

Get blocks checkpoint

Returns

Return type

AcrylClientResponse

blocks_child(block_signature)[source]

Get successor of specified block

Parameters

block_signature

Returns

Return type

AcrylClientResponse

blocks_delay(signature, block_number)[source]

Get blocks delay by signature and block number

Parameters
  • signature

  • block_number

Returns

Return type

AcrylClientResponse

blocks_first()[source]

Get first block

Returns

Return type

AcrylClientResponse

blocks_headers_at(block_height)[source]

Get headers of block at height

Parameters

block_height

Returns

Return type

AcrylClientResponse

blocks_headers_last()[source]

Last block headers

Returns

Return type

AcrylClientResponse

blocks_headers_sequence(height_from, height_to)[source]

Get headers of blocks at heights

Parameters
  • height_from

  • height_to

Returns

Return type

AcrylClientResponse

blocks_height()[source]

Get node blockchain height

Returns

Return type

AcrylClientResponse

blocks_height_signature(block_signature)[source]

Get signature of block at height

Parameters

block_signature

Returns

Return type

AcrylClientResponse

blocks_last()[source]

Get last block

Returns

Return type

AcrylClientResponse

blocks_signature(signature)[source]

Get block by signature

Parameters

signature

Returns

Return type

AcrylClientResponse

close_session()[source]

Close requests session

Returns

nothing

Return type

None

consensus_algo()[source]

Get consensus algorithm

Returns

consensus_base_target()[source]

Get consensus base target

Returns

Return type

AcrylClientResponse

consensus_base_target_block(block_id)[source]

Get consensus base target block

Parameters

block_id

Returns

consensus_generating_balance_address(address)[source]

Get address generating balance

Parameters

address

Returns

Return type

AcrylClientResponse

consensus_generation_signature()[source]

Get generation signature of a last block

Returns

Return type

AcrylClientResponse

consensus_generation_signature_block(signature, block_id)[source]

Get generation signature of a block with specified id

Parameters
  • signature

  • block_id

Returns

Return type

AcrylClientResponse

leasing_active(address)[source]

Get active leasing

Parameters

address

Returns

Return type

AcrylClientResponse

leasing_broadcast_cancel_lease(transaction_data)[source]

Create cancel lease transaction

Parameters

transaction_data

Returns

Return type

AcrylClientResponse

leasing_broadcast_lease(transaction_data)[source]

Create lease transaction

Parameters

transaction_data

Returns

Return type

AcrylClientResponse

matcher()[source]

Get matcher public key

Returns

Return type

AcrylClientResponse

matcher_balance_reserved(public_key)[source]

Get reserved balance of open orders

Parameters

public_key

Returns

Return type

AcrylClientResponse

matcher_debug_all_snapshot_offsets()[source]

Get all snapshots’ offsets in the queue TODO:

Returns

Return type

AcrylClientResponse

matcher_debug_current_offset()[source]

Get a current offset in the queue TODO:

Returns

Return type

AcrylClientResponse

matcher_debug_last_offset()[source]

Get the last offset in the queue TODO:

Returns

Return type

AcrylClientResponse

matcher_delete_asset_rate(asset_id)[source]

Delete rate for the specified asset TODO:

Parameters

asset_id

Returns

Return type

AcrylClientResponse

matcher_order_create(order_data)[source]

Create order

Returns

Return type

AcrylClientResponse

matcher_order_status(amount_asset, price_asset, order_id)[source]

Get order status for asset pair

Parameters
  • amount_asset

  • price_asset

  • order_id

Returns

Return type

AcrylClientResponse

matcher_orderbook()[source]

Get trading markets

Returns

Return type

AcrylClientResponse

matcher_orderbook_get_asset_pair_status(amount_asset_id, price_asset_id)[source]

Get orderbook status for asset pair

Parameters
  • amount_asset_id

  • price_asset_id

Returns

Return type

AcrylClientResponse

matcher_orderbook_history(public_key)[source]

Get orderbook history for a public key

Returns

Return type

AcrylClientResponse

matcher_orderbook_remove(amount_asset_id, price_asset_id)[source]

Remove orderbook for asset pair

Parameters
  • amount_asset_id

  • price_asset_id

Returns

Return type

AcrylClientResponse

matcher_orderbook_tradable_balance(amount_asset, price_asset, address)[source]

Get tradable balance for asset pair

Parameters
  • amount_asset

  • price_asset

  • address

Returns

Return type

AcrylClientResponse

matcher_orders_address(address)[source]

Get address order history for an address

Parameters

address

Returns

Return type

AcrylClientResponse

matcher_orders_cancel_order(order_id, transaction_data)[source]

Cancel order by id

Parameters
  • order_id

  • transaction_data

Returns

Return type

AcrylClientResponse

matcher_orders_cancel_order_without_signature(order_id)[source]

Cancel order with API key

Parameters

order_id

Returns

Return type

AcrylClientResponse

matcher_set_asset_rate(asset_id, rate)[source]

Asset rates TODO:

Parameters
  • asset_id

  • rate

Returns

Return type

AcrylClientResponse

matcher_settings()[source]

Get matcher settings

Returns

Return type

AcrylClientResponse

matcher_settings_rates()[source]

Get matcher rates in Acryl

Returns

Return type

AcrylClientResponse

matcher_transactions_order(order_id)[source]

Get exchange transactions created on DEX for the given order

Parameters

order_id

Returns

Return type

AcrylClientResponse

matcher_v1_orderbook_get_asset_pair(amount_asset_id, price_asset_id, depth=None)[source]

Get orderbook for asset pair (API v1)

Parameters
  • amount_asset_id

  • price_asset_id

  • depth

Returns

Return type

AcrylClientResponse

node_status()[source]

Get node status

Returns

Return type

AcrylClientResponse

node_stop()[source]

Stop node

Returns

Return type

AcrylClientResponse

node_version()[source]

Get node version

Returns

Return type

AcrylClientResponse

peers_blacklisted()[source]

Get blacklisted peers

Returns

Return type

AcrylClientResponse

peers_clear_blacklist()[source]

Clear peers blacklist

Returns

Return type

AcrylClientResponse

peers_connect(peer_data)[source]

Connect to peer

Parameters

peer_data

Returns

Return type

AcrylClientResponse

peers_connected()[source]

Get connected peer list

Returns

Return type

AcrylClientResponse

peers_suspended()[source]

Get suspended peers

Returns

Return type

AcrylClientResponse

request(method, endpoint, params=None, data=None, json_data=None, headers=None, matcher=False)[source]

Make a request to API

Parameters
  • method – HTTP method

  • endpoint – API endpoint

  • params – query params

  • data – body data

  • json_data – body data in json

  • headers – HTTP headers

  • matcher – matcher request

Returns

handled result if online else request params dict

Return type

AcrylClientResponse or dict

start_session()[source]

Create requests session

Returns

nothing

Return type

None

transaction_broadcast(transaction_data)[source]

Broadcast new transaction

Parameters

transaction_data

Returns

Return type

AcrylClientResponse

transaction_calculate_fee(transaction_data)[source]

Calculate transaction fee

Parameters

transaction_data

Returns

Return type

AcrylClientResponse

transaction_info(transaction_id)[source]

Get transaction info

Parameters

transaction_id

Returns

Return type

AcrylClientResponse

transaction_sign(transaction_data)[source]

Sign transaction

Parameters

transaction_data

Returns

Return type

AcrylClientResponse

transaction_sign_address(signer_address, transaction_data)[source]

Sign address transaction

Parameters
  • signer_address

  • transaction_data

Returns

Return type

AcrylClientResponse

transaction_unconfirmed()[source]

Get unconfirmed transactions

Returns

Return type

AcrylClientResponse

transaction_unconfirmed_info(transaction_id)[source]

Get unconfirmed transaction info

Parameters

transaction_id

Returns

Return type

AcrylClientResponse

transaction_unconfirmed_size()[source]

Get size of unconfirmed transactions

Returns

Return type

AcrylClientResponse

transactions_address(address, limit, after=None)[source]

Get address transactions

Parameters
  • address – Acryl address

  • limit – transaction limit

  • after – show transactions after transaction id

Returns

Return type

AcrylClientResponse

utils_hash_fast(message)[source]

Get FastCryptographicHash for message

Parameters

message

Returns

utils_hash_secure(message)[source]

Get SecureCryptographicHash for message

Parameters

message

Returns

utils_script_compile(code)[source]

Compile string code (deprecated on node version 1.0 and higher)

Parameters

code

Returns

utils_script_estimate(code)[source]

Estimate compiled script

Parameters

code

Returns

utils_seed()[source]

Generate random seed on node

Returns

utils_seed_length(length)[source]

Generate random seed of specified length on node

Parameters

length

Returns

utils_time()[source]

Get node time

Returns

utils_transaction_serialize(transaction_data)[source]

Serialize transaction

Parameters

transaction_data

Returns

exception pyacryl2.client.AcrylClientException[source]

Bases: Exception

Exception for Acryl client

class pyacryl2.client.AcrylClientResponse(successful, endpoint, response_data=None, error_code=None, error_message=None)[source]

Bases: object

API client response. Any API method of AcrylClient returns AcrylClientResponse with response data or error (if raise_exception is False)

Parameters
  • successful – is request was successful

  • response_data – data, returned in response

  • error_code – error code in response (key “code”)

  • error_message – error message in response (key “message” if response has json else response body as text)

class pyacryl2.client.BaseClient(node_address='https://nodes.acrylplatform.com', matcher_address='https://matcher.acrylplatform.com', chain_id=None, api_key=None, raise_exception=True, request_params=None, online=True)[source]

Bases: object

Base class for API clients

Parameters
  • node_address (str) – node url

  • matcher_address (str) – node url

  • chain_id (str) – chain id

  • api_key (str) – API key for private methods

  • raise_exception (bool) – raise AcrylClientException on request error

  • request_params (dict) – request params dict e.g. timeout, proxies. May vary by client, see client lib docs

  • online (bool) – send requests to node if true, else return prepared request with data

async_client module

pyacryl2.async_client

This module provides async API client class

class pyacryl2.async_client.AcrylAsyncClient(node_address='https://nodes.acrylplatform.com', matcher_address='https://matcher.acrylplatform.com', chain_id=None, api_key=None, raise_exception=True, request_params=None, online=True)[source]

Bases: pyacryl2.client.BaseClient

Acryl async API client class based on aiohttp.client

async activation_status()[source]

Get node activation status

Returns

async address_balance(address)[source]

Address acryl balance

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async address_balance_confirmed(address, confirmations)[source]

Get confirmed address balance

Parameters
  • address

  • confirmations

Returns

Return type

AcrylAsyncClientResponse

async address_balance_details(address)[source]

Get address details

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async address_create()[source]

Create node address

Returns

Return type

AcrylAsyncClientResponse

async address_data(address_data)[source]

Set address data

Parameters

address_data

Returns

Return type

AcrylAsyncClientResponse

async address_data_address(address, matches=None)[source]

Get full address data

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async address_data_key(address, key)[source]

Get address data by key

Parameters
  • address – address in base58

  • key – string key

Returns

Return type

AcrylAsyncClientResponse

async address_delete(address)[source]

Delete address from node

Parameters

address – address in base58

Returns

Return type

AcrylAsyncClientResponse

async address_effective_balance(address)[source]

Address effective balance

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async address_effective_balance_confirmed(address, confirmations)[source]

Get confirmed address effective balance

Parameters
  • address

  • confirmations

Returns

Return type

AcrylAsyncClientResponse

async address_public_key(public_key)[source]

Get address by public key

Parameters

public_key

Returns

Return type

AcrylAsyncClientResponse

async address_script_info(address)[source]

Get address script info

Parameters

address – address in base58

Returns

Return type

AcrylAsyncClientResponse

async address_seed(address)[source]

Get address seed

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async address_sign_text(address, message)[source]

Sign text

Parameters
  • address

  • message – message string

Returns

Return type

AcrylAsyncClientResponse

async address_validate(address)[source]

Validate address

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async address_verify_text(address, message_data)[source]

Verify text

Parameters
  • address

  • message_data

Returns

Return type

AcrylAsyncClientResponse

async addresses()[source]

Get node addresses

Returns

Return type

AcrylAsyncClientResponse

async addresses_sequence(address_from, address_to)[source]

Get address sequence

Returns

Return type

AcrylAsyncClientResponse

async alias_broadcast_create(transaction_data)[source]

Create alias

Parameters

transaction_data

Returns

async alias_by_address(address)[source]

Get alias by address

Parameters

address – acryl address

Returns

Return type

AcrylAsyncClientResponse

async alias_by_alias(alias)[source]

Get address by alias

Parameters

alias (str) – alias (without preifx and chain id)

Returns

Return type

AcrylAsyncClientResponse

async asset_broadcast_burn(transaction_data)[source]

Burn asset (v1)

Parameters

transaction_data

Returns

Return type

AcrylAsyncClientResponse

async asset_broadcast_issue(transaction_data)[source]

Issue asset (v1)

Parameters

transaction_data

Returns

Return type

AcrylAsyncClientResponse

async asset_broadcast_reissue(transaction_data)[source]

Reissue asset (transaction v1)

Parameters

transaction_data

Returns

Return type

AcrylAsyncClientResponse

async asset_broadcast_transfer(transfer_data)[source]

Broadcast asset transfer transaction (v1)

Parameters

transfer_data

Returns

Return type

AcrylAsyncClientResponse

async asset_distribution_at_height(asset_id, height, limit)[source]

Get asset distribution at height

Parameters
  • asset_id

  • height

  • limit

Returns

Return type

AcrylAsyncClientResponse

async assets_balance(address)[source]

Get assets balance

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async assets_balance_asset(address, asset_id)[source]

Get asset balance

Parameters
  • address

  • asset_id

Returns

Return type

AcrylAsyncClientResponse

async assets_details(asset_id, full=None)[source]

Get asset details

Parameters
  • asset_id

  • full

Returns

Return type

AcrylAsyncClientResponse

async assets_nft_balance(address, limit, after=None)[source]

Get NFT balance (node version 1.0 and higher)

Parameters
  • address

  • limit

  • after

Returns

Return type

AcrylAsyncClientResponse

async blocks_address(address, height_from, height_to)[source]

Get blocks generated by address

Parameters
  • address

  • height_from

  • height_to

Returns

Return type

AcrylAsyncClientResponse

async blocks_at(height)[source]

Get block at height

Parameters

height

Returns

Return type

AcrylAsyncClientResponse

async blocks_checkpoint(checkpoint_data)[source]

Get blocks checkpoint

Returns

Return type

AcrylAsyncClientResponse

async blocks_child(block_signature)[source]

Get successor of specified block

Parameters

block_signature

Returns

Return type

AcrylAsyncClientResponse

async blocks_delay(signature, block_number)[source]

Get blocks delay by signature and block number

Parameters
  • signature

  • block_number

Returns

Return type

AcrylAsyncClientResponse

async blocks_first()[source]

Get first block

Returns

Return type

AcrylAsyncClientResponse

async blocks_headers_at(block_height)[source]

Get headers of block at height

Parameters

block_height

Returns

Return type

AcrylAsyncClientResponse

async blocks_headers_last()[source]

Last block headers

Returns

Return type

AcrylAsyncClientResponse

async blocks_headers_sequence(height_from, height_to)[source]

Get headers of blocks at heights

Parameters
  • height_from

  • height_to

Returns

Return type

AcrylAsyncClientResponse

async blocks_height()[source]

Get node blockchain height

Returns

Return type

AcrylAsyncClientResponse

async blocks_height_signature(block_signature)[source]

Get signature of block at height

Parameters

block_signature

Returns

Return type

AcrylAsyncClientResponse

async blocks_last()[source]

Get last block

Returns

Return type

AcrylAsyncClientResponse

async blocks_signature(signature)[source]

Get block by signature

Parameters

signature

Returns

Return type

AcrylAsyncClientResponse

async close_session()[source]

Close aiothttp client session

Returns

nothing

Return type

None

async consensus_algo()[source]

Get consensus algorithm

Returns

async consensus_base_target()[source]

Get consensus base target

Returns

Return type

AcrylAsyncClientResponse

async consensus_base_target_block(block_id)[source]

Get consensus base target block

Parameters

block_id

Returns

async consensus_generating_balance_address(address)[source]

Get address generating balance

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async consensus_generation_signature()[source]

Get generation signature of a last block

Returns

Return type

AcrylAsyncClientResponse

async consensus_generation_signature_block(signature, block_id)[source]

Get generation signature of a block with specified id

Parameters
  • signature

  • block_id

Returns

Return type

AcrylAsyncClientResponse

async leasing_active(address)[source]

Get active leasing

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async leasing_broadcast_cancel_lease(transaction_data)[source]

Create cancel lease transaction

Parameters

transaction_data

Returns

Return type

AcrylAsyncClientResponse

async leasing_broadcast_lease(transaction_data)[source]

Create lease transaction

Parameters

transaction_data

Returns

Return type

AcrylAsyncClientResponse

async matcher()[source]

Get matcher public key

Returns

Return type

AcrylAsyncClientResponse

async matcher_balance_reserved(public_key)[source]

Get reserved balance of open orders

Parameters

public_key

Returns

Return type

AcrylAsyncClientResponse

async matcher_order_create(order_data)[source]

Create order

Returns

Return type

AcrylAsyncClientResponse

async matcher_order_status(amount_asset, price_asset, order_id)[source]

Get order status for asset pair

Parameters
  • amount_asset

  • price_asset

  • order_id

Returns

Return type

AcrylAsyncClientResponse

async matcher_orderbook()[source]

Get trading markets

Returns

Return type

AcrylAsyncClientResponse

async matcher_orderbook_get_asset_pair(amount_asset_id, price_asset_id)[source]

Get orderbook for asset pair

Parameters
  • amount_asset_id

  • price_asset_id

Returns

Return type

AcrylAsyncClientResponse

async matcher_orderbook_get_asset_pair_status(amount_asset_id, price_asset_id)[source]

Get orderbook status for asset pair

Parameters
  • amount_asset_id

  • price_asset_id

Returns

Return type

AcrylAsyncClientResponse

async matcher_orderbook_history(public_key)[source]

Get orderbook history for a public key

Returns

Return type

AcrylAsyncClientResponse

async matcher_orderbook_remove(amount_asset_id, price_asset_id)[source]

Remove orderbook for asset pair

Parameters
  • amount_asset_id

  • price_asset_id

Returns

Return type

AcrylAsyncClientResponse

async matcher_orderbook_tradable_balance(amount_asset, price_asset, address)[source]

Get tradable balance for asset pair

Parameters
  • amount_asset

  • price_asset

  • address

Returns

Return type

AcrylAsyncClientResponse

async matcher_orders_address(address)[source]

Get address order history for an address

Parameters

address

Returns

Return type

AcrylAsyncClientResponse

async matcher_orders_cancel_order(order_id, transaction_data)[source]

Cancel order by id

Parameters

order_id

Returns

Return type

AcrylAsyncClientResponse

async matcher_settings()[source]

Get matcher settings

Returns

Return type

AcrylAsyncClientResponse

async matcher_transactions_order(order_id)[source]

Get exchange transactions created on DEX for the given order

Parameters

order_id

Returns

Return type

AcrylAsyncClientResponse

async node_status()[source]

Get node status

Returns

Return type

AcrylAsyncClientResponse

async node_stop()[source]

Stop node

Returns

Return type

AcrylAsyncClientResponse

async node_version()[source]

Get node version

Returns

Return type

AcrylAsyncClientResponse

async peers_blacklisted()[source]

Get blacklisted peers

Returns

Return type

AcrylAsyncClientResponse

async peers_clear_blacklist()[source]

Clear peers blacklist

Returns

Return type

AcrylAsyncClientResponse

async peers_connect(peer_data)[source]

Connect to peer

Parameters

peer_data

Returns

Return type

AcrylAsyncClientResponse

async peers_connected()[source]

Get connected peer list

Returns

Return type

AcrylAsyncClientResponse

async peers_suspended()[source]

Get suspended peers

Returns

Return type

AcrylAsyncClientResponse

async request(method, endpoint, params=None, data=None, json_data=None, headers=None, matcher=False)[source]

Make a asynchronous request to API If session was created outside (e.g. in context manager method) don’t create new and don’t close on request finish, else create new session and close it after request

Parameters
  • method – HTTP method

  • endpoint – API endpoint

  • params – query params

  • data – body data

  • json_data – body data in json

  • headers – HTTP headers

Param

matcher: matcher request

Returns

handled result if online else request params dict

Return type

AcrylAsyncClientResponse or dict

async start_session()[source]

Create aiothttp client session

Returns

nothing

Return type

None

async transaction_broadcast(transaction_data)[source]

Broadcast new transaction

Parameters

transaction_data

Returns

Return type

AcrylAsyncClientResponse

async transaction_calculate_fee(transaction_data)[source]

Calculate transaction fee

Parameters

transaction_data

Returns

Return type

AcrylAsyncClientResponse

async transaction_info(transaction_id)[source]

Get transaction info

Parameters

transaction_id

Returns

Return type

AcrylAsyncClientResponse

async transaction_sign(transaction_data)[source]

Sign transaction

Parameters

transaction_data

Returns

Return type

AcrylAsyncClientResponse

async transaction_sign_address(signer_address, transaction_data)[source]

Sign address transaction

Parameters
  • signer_address

  • transaction_data

Returns

Return type

AcrylAsyncClientResponse

async transaction_unconfirmed()[source]

Get unconfirmed transactions

Returns

Return type

AcrylAsyncClientResponse

async transaction_unconfirmed_info(transaction_id)[source]

Get unconfirmed transaction info

Parameters

transaction_id

Returns

Return type

AcrylAsyncClientResponse

async transaction_unconfirmed_size()[source]

Get size of unconfirmed transactions

Returns

Return type

AcrylAsyncClientResponse

async transactions_address(address, limit, after=None)[source]

Get address transactions

Parameters
  • address – Acryl address

  • limit – transaction limit

  • after – show transactions after transaction id

Returns

Return type

AcrylAsyncClientResponse

async utils_hash_fast(message)[source]

Get FastCryptographicHash for message

Parameters

message

Returns

async utils_hash_secure(message)[source]

Get SecureCryptographicHash for message

Parameters

message

Returns

async utils_script_compile(code)[source]

Compile string code (deprecated on node version 1.0 and higher)

Parameters

code

Returns

async utils_script_estimate(code)[source]

Estimate compiled script

Parameters

code

Returns

async utils_seed()[source]

Generate random seed on node :return:

async utils_seed_length(length)[source]

Generate random seed of specified length on node

Parameters

length

Returns

async utils_time()[source]

Get node time

Returns

async utils_transaction_serialize(transaction_data)[source]

Serialize transaction

Parameters

transaction_data

Returns

exception pyacryl2.async_client.AcrylAsyncClientException[source]

Bases: pyacryl2.client.AcrylClientException

Exception for async acryl client

class pyacryl2.async_client.AcrylAsyncClientResponse(successful, endpoint, response_data=None, error_code=None, error_message=None)[source]

Bases: pyacryl2.client.AcrylClientResponse

Async API client response

utils module

pyacryl2.utils

Utilities for addresses and transactions

pyacryl2.utils.address

Acryl address

class pyacryl2.utils.address.AcrylAddress(*args, **kwargs)[source]

Bases: pyacryl2.utils.address.BaseAcrylAddress

Acryl address class. Simplifies transaction data generation and data requests

Parameters
  • value – address text value in base58

  • private_key – address private key string in base58

  • public_key – address public key string in base58

  • address_seed – address seed

  • chain_id – address chain id

  • nonce – nonce

asset_sponsorship(asset_id, min_sponsored_asset_fee, transaction_fee=100000000, timestamp=0)[source]

Sponsor asset

Parameters
  • asset_id

  • min_sponsored_asset_fee

  • transaction_fee

  • timestamp

Returns

burn_asset(asset_id, quantity, transaction_fee=100000, timestamp=0)[source]

Burn asset

Parameters
  • asset_id – asset id

  • quantity – asset quantity

  • transaction_fee

  • timestamp – transaction timestamp

Returns

create_alias(alias, transaction_fee=100000, timestamp=0)[source]

Create alias for address

Parameters
  • alias – alias (min 4, max 30 chars)

  • transaction_fee

  • timestamp

Returns

data_transaction(data, fee=0, version=1, timestamp=0)[source]

Create data transaction

Parameters
  • data (list) – data for data transaction (list of dicts with keys type, key, value) Suitable python types for transaction data types: - boolean - bool - binary - bytes (converts them to base64 string) - integer - int - string - str

  • version (int) – data transaction version

  • fee (int) – transaction fee. 1000000 is minimum.

  • timestamp (int) – transaction timestamp

Returns

client request result

Return type

AcrylClientResponse or dict

from_alias(alias)[source]

Set address value from alias

Parameters

alias – alias of address

Returns

address object with address value

get_address_data()[source]

Get address data from blockchain

Returns

data in dict

Return type

dict

get_address_info()[source]

Collect address info (balances, assets, data) :return: address info dict :rtype: dict

get_aliases(flat=True)[source]

Get address aliases

Parameters

flat – get only alias names without chain ids

Returns

list of dicts with prefix, chain ids and alias names or only alias names

Return type

list or dict

get_assets()[source]

Get address assets

Returns

asset balances in dict

Return type

int or dict

get_balance()[source]

Get address balance

Returns

balance value

Return type

int or dict

get_confirmed_balance(confirmations)[source]

Get address balance

Returns

balance value

Return type

int or dict

get_effective_balance()[source]

Get address effective balance

Returns

balance value

Return type

int or dict

issue_asset(name, description, quantity, decimals, reissuable, transaction_fee=100000000, version=1, timestamp=0)[source]

Issue asset in acryl blockchain

Parameters
  • name – asset name (min 4, max 16 chars)

  • description – asset description

  • quantity – asset quantity

  • decimals – asset decimals

  • reissuable – is asset reissuable

  • transaction_fee – asset issue transaction fee

  • version – transaction version

  • timestamp – transaction timestamp

Returns

issue_smart_asset(name, description, quantity, decimals, reissuable, script, transaction_fee=100000000, timestamp=0)[source]

Issue smart asset in acryl blockchain (asset with script)

Parameters
  • name – asset name (min 4, max 16 chars)

  • description – asset description

  • quantity – asset quantity

  • decimals – asset decimals

  • reissuable – is asset reissuable

  • transaction_fee – asset issue transaction fee

  • timestamp – transaction timestamp

Returns

lease_acryl(recipient, amount, transaction_fee=100000, timestamp=0)[source]

Lease acryl to address

Parameters
  • recipient

  • amount

  • transaction_fee

  • timestamp

Returns

lease_cancel(transaction_id, transaction_fee=100000, timestamp=0)[source]

Cancel acryl lease

Parameters
  • transaction_id

  • transaction_fee

  • timestamp

Returns

mass_transfer_acryl(transfer_data, attachment=None, timestamp=None)[source]

Mass transfer acryl

Parameters
  • transfer_data – list of dicts with recipient and amount i.e. [{ ‘recipient’: ‘3N1xca2DY8AEwqRDAJpzUgY99eq8J9h4rB3’, ‘amount’: 1000 }]

  • attachment – transaction attachment

  • transaction_fee – mass transfer transaction fee

  • timestamp – transaction timestamp

Returns

Return type

AcrylClientResponse or dict

mass_transfer_assets(transfer_data, asset_id=None, attachment=None, version=1, timestamp=None)[source]

Mass transfer acryl

Parameters
  • transfer_data – list of dicts with recipient and amount i.e. [{ ‘recipient’: ‘3N1xca2DY8AEwqRDAJpzUgY99eq8J9h4rB3’, ‘amount’: 1000 }]

  • attachment – transaction attachment

  • asset_id – ID of transferring asset

  • timestamp – transaction timestamp

Returns

reissue_asset(asset_id, quantity, reissuable, transaction_fee=100000000, timestamp=0)[source]

Reissue asset in acryl blockchain

Parameters
  • asset_id – asset id

  • quantity – asset quantity

  • transaction_fee

  • timestamp – transaction timestamp

Returns

set_asset_script(script, asset_id, transaction_fee=100000000, timestamp=None, version=1)[source]

Set script for asset

Parameters
  • script

  • asset_id

  • transaction_fee

  • timestamp

  • version

Returns

set_script(script, transaction_fee=1000000, timestamp=None, version=1)[source]

Set script for account

Parameters
  • script

  • transaction_fee

  • timestamp

  • version

Returns

transfer_acryl(recipient, amount, attachment=None, transaction_fee=100000, timestamp=0)[source]

Send acryl to address

Parameters
  • recipient (str or AcrylAddress or AcrylAsyncAddress) – recipient address in base58

  • amount (int) – amount of acryl

  • attachment (str) – attachment string

  • transaction_fee (int) – fee for transfer transaction

  • timestamp (int) – timestamp of transaction

Returns

transfer result

Return type

AcrylClientResponse or dict

transfer_asset(recipient, asset_id, fee_asset_id, amount, attachment=None, transaction_fee=100000, timestamp=0)[source]

Send asset to address. If asset_id or fee_asset_id is None then acryl will be used

Parameters
  • recipient (str or AcrylAddress or AcrylAsyncAddress) – recipient address in base58

  • asset_id (str or None) – asset id

  • fee_asset_id (str or None) – fee asset id

  • amount (int) – amount of acryl

  • attachment (str) – attachment string

  • transaction_fee (int) – fee for transfer transaction

  • timestamp (int) – timestamp of transaction

Returns

transfer result

Return type

AcrylClientResponse or dict

validate()[source]

Validate address :return: :rtype bool or dict

class pyacryl2.utils.address.BaseAcrylAddress(value=None, private_key=None, public_key=None, address_seed=None, chain_id=None, nonce=0, node_address='https://nodes.acrylplatform.com', version=1, online=True, client_request_params=None)[source]

Bases: object

Base address class. Has methods for transaction data generation, common for child address classes

Parameters
  • value – address text value in base58

  • private_key – address private key string in base58

  • public_key – address public key string in base58

  • address_seed – address seed

  • chain_id – address chain id

  • nonce – nonce

  • node_address – node API address for data retrieve and transaction broadcast

  • version – address version (currently, only for information)

  • online – make requests or return only request data

  • client_request_params – client API request param (check API client doc)

property base58_seed

Seed encoded base58

Returns

seed in base58

Return type

bytes

property can_sign

Ability to sign requests

Returns

yes or no

Return type

bool

property chain

Address chain name

Returns

chain name

Return type

str

property client

Current API client instance

Returns

API client instance

load_from_json(file_path, decode_seed=False)[source]

Get address data from json file :param file_path: file path :param decode_seed: decode seed from base58 :return: nothing :rtype: None

save_as_json(file_path, encode_seed=False)[source]

Save address data as json :param file_path: file path :param encode_seed: encode seed to base58 :return: nothing :rtype: None

pyacryl2.utils.address.sign_required(method)[source]

Decorator. Check if address can sign request data, if not then raises ValueError

Parameters

method – address class method

Returns

wrapped method

Return type

Callable

Raises

ValueError

pyacryl2.utils.address_generator

Address generator for Acryl blockchain

class pyacryl2.utils.address_generator.AcrylAddressGenerator(node_address='https://nodes.acrylplatform.com', async_address=False)[source]

Bases: object

Acryl address generator

Parameters
  • node_address (str) – node API URL

  • async_address (bool) – return address with async client instead of default sync

generate(value=None, private_key=None, public_key=None, seed=None, chain_id='A', nonce=0, version=1, online=True, client_request_params=None)[source]
Generate address
  • if there is no seed and private key is specified then generate address value and public key

  • if there is no seed and public key is specified then generate address value

  • if there is no seed and value is specified with any key then validate them and return address object

  • if there is no seed and no any key but value is specified validation or generation is not performed, address object would be returned with the same value and chain_id

Parameters
  • value – address string value in base58

  • private_key – private key string value in base58

  • public_key – private key string value in base58

  • seed – seed

  • chain_id – chain id value

  • nonce – nonce

  • version – address version

  • online – if True send requests else return request params dict

Param

client_request_params:

Returns

AcrylAddress or AsyncAcrylAddress object with different attributes

Return type

AcrylAddress or AcrylAsyncAddress

generate_from_private_key(private_key, chain_id, version)[source]

Generate address from private key (address value, public key)

Parameters
  • private_key

  • chain_id

Returns

data for address object creation

Return type

dict

generate_from_public_key(public_key, chain_id, version)[source]

Generate address from public key (address value only)

Parameters
  • public_key – public key in base58

  • chain_id – chain id

Returns

data for address object creation

Return type

dict

classmethod generate_from_seed(seed, chain_id, nonce, version)[source]

Generate address from seed (address value, private and public keys)

Returns

data for address object creation

Return type

dict

classmethod generate_private_key(seed, nonce=0)[source]

Generate private key from seed

Parameters
  • seed – seed value

  • nonce – nonce value

Returns

static generate_seed(language=None, strength=None)[source]

Generate seed

Returns

seed string

Return type

str

validate_address(value, private_key=None, public_key=None, chain_id='A', version=None)[source]

Validate address. If address data is valid returns it else raises error

Parameters
  • value – address value

  • chain_id – Acryl chain id

  • private_key – address private key

  • public_key – address public key

  • version – address version

Returns

data for address object creation

Return type

dict

Raises

ValueError

pyacryl2.utils.async_address

Acryl address with async methods

class pyacryl2.utils.async_address.AcrylAsyncAddress(*args, **kwargs)[source]

Bases: pyacryl2.utils.address.BaseAcrylAddress

Acryl address with async client. Object methods will return coroutines, so you should run them in event loop

asset_sponsorship(asset_id, min_sponsored_asset_fee, transaction_fee=100000000, timestamp=0)[source]

Sponsor asset

Parameters
  • asset_id

  • min_sponsored_asset_fee

  • transaction_fee

  • timestamp

Returns

burn_asset(asset_id, quantity, transaction_fee=100000, timestamp=0)[source]

Burn asset

Parameters
  • asset_id – asset id

  • quantity – asset quantity

  • transaction_fee

  • timestamp – transaction timestamp

Returns

create_alias(alias, transaction_fee=100000, timestamp=0)[source]

Create alias for address

Parameters
  • alias – alias (min 4, max 30 chars)

  • transaction_fee

  • timestamp

Returns

data_transaction(data, version=1, timestamp=0)[source]

Create data transaction

Parameters
  • data (list) – data for data transaction (list of dicts with keys type, key, value) Suitable python types for transaction data types: - boolean - bool - binary - bytes (converts them to base64 string) - integer - int - string - str

  • version (int) – data transaction version

  • timestamp (int) – transaction timestamp

Returns

client request result

Return type

AcrylAsyncClientResponse or dict

async from_alias(alias)[source]

Set address value from alias

Parameters

alias – alias of address

Returns

address object with address value

async get_address_data()[source]

Get address data from blockchain

Returns

data in dict

Return type

dict

async get_address_info()[source]

Collect address info (balances, assets, data)

Returns

address info dict

Return type

dict

async get_aliases(flat=True)[source]

Get address aliases

Parameters

flat – get only alias names without chain ids

Returns

list of dicts with prefix, chain ids and alias names or only alias names

Return type

list

async get_assets()[source]

Get address assets

Returns

asset balances in dict

Return type

dict

async get_balance()[source]

Get address balance

Returns

balance value

Return type

int

async get_confirmed_balance(confirmations)[source]

Get address balance

Returns

balance value

Return type

int

async get_effective_balance()[source]

Get address effective balance

Returns

balance value

Return type

int

issue_asset(name, description, quantity, decimals, reissuable, transaction_fee=100000000, version=1, timestamp=0)[source]

Issue asset in acryl blockchain

Parameters
  • name – asset name (min 4, max 16 chars)

  • description – asset description

  • quantity – asset quantity

  • decimals – asset decimals

  • reissuable – is asset reissuable

  • transaction_fee – asset issue transaction fee

  • version – transaction version

  • timestamp – transaction timestamp

Returns

issue_smart_asset(name, description, quantity, decimals, reissuable, script, transaction_fee=100000000, timestamp=0)[source]

Issue smart asset in acryl blockchain (asset with script)

Parameters
  • name – asset name (min 4, max 16 chars)

  • description – asset description

  • quantity – asset quantity

  • decimals – asset decimals

  • reissuable – is asset reissuable

  • transaction_fee – asset issue transaction fee

  • timestamp – transaction timestamp

Returns

lease_acryl(recipient, amount, transaction_fee=100000, timestamp=0)[source]

Lease acryl to address

Parameters
  • recipient

  • amount

  • transaction_fee

  • timestamp

Returns

lease_cancel(transaction_id, transaction_fee=100000, timestamp=0)[source]

Cancel acryl lease

Parameters
  • transaction_id

  • transaction_fee

  • timestamp

Returns

mass_transfer_acryl(transfer_data, attachment=None, timestamp=None)[source]

Mass transfer acryl

Parameters
  • transfer_data – list of dicts with recipient and amount i.e. [{ ‘recipient’: ‘3N1xca2DY8AEwqRDAJpzUgY99eq8J9h4rB3’, ‘amount’: 1000 }]

  • attachment – transaction attachment

  • transaction_fee – mass transfer transaction fee

  • timestamp – transaction timestamp

Returns

Return type

AcrylAsyncClientResponse or dict

mass_transfer_assets(transfer_data, asset_id=None, attachment=None, version=1, timestamp=None)[source]

Mass transfer acryl

Parameters
  • transfer_data – list of dicts with recipient and amount i.e. [{ ‘recipient’: ‘3N1xca2DY8AEwqRDAJpzUgY99eq8J9h4rB3’, ‘amount’: 1000 }]

  • attachment – transaction attachment

  • asset_id – ID of transferring asset

  • timestamp – transaction timestamp

Returns

reissue_asset(asset_id, quantity, reissuable, transaction_fee=100000000, timestamp=0)[source]

Reissue asset in acryl blockchain

Parameters
  • asset_id – asset id

  • quantity – asset quantity

  • transaction_fee

  • timestamp – transaction timestamp

Returns

set_asset_script(script, asset_id, transaction_fee=100000000, timestamp=None, version=1)[source]

Set script for asset

Parameters
  • script

  • asset_id

  • transaction_fee

  • timestamp

  • version

Returns

set_script(script, transaction_fee=1000000, timestamp=None, version=1)[source]

Set script for account

Parameters
  • script

  • transaction_fee

  • timestamp

  • version

Returns

transfer_acryl(recipient, amount, attachment=None, transaction_fee=100000, timestamp=0)[source]

Send acryl to address

Parameters
  • recipient (str or AcrylAddress or AcrylAsyncAddress) – recipient address in base58

  • amount (int) – amount of acryl

  • attachment (str) – attachment string

  • transaction_fee (int) – fee for transfer transaction

  • timestamp (int) – timestamp of transaction

Returns

transfer result

Return type

AcrylAsyncClientResponse or dict

transfer_asset(recipient, asset_id, fee_asset_id, amount, attachment=None, transaction_fee=100000, timestamp=0)[source]

Send asset to address. If asset_id or fee_asset_id is None then acryl will be used

Parameters
  • recipient (str or AcrylAddress or AcrylAsyncAddress) – recipient address in base58

  • asset_id (str or None) – asset id

  • fee_asset_id (str or None) – fee asset id

  • amount (int) – amount of acryl

  • attachment (str) – attachment string

  • transaction_fee (int) – fee for transfer transaction

  • timestamp (int) – timestamp of transaction

Returns

transfer result

Return type

AcrylAsyncClientResponse or dict

async validate()[source]

Validate address

Returns

validation result

Return type

bool

pyacryl2.utils.crypto

Cryptographic functions

pyacryl2.utils.crypto.sign_with_private_key(private_key, data)[source]

Sign data with private key

Parameters
  • private_key (str) – private key value in base58

  • data (bytes) – data to sign

Returns

signed data

Return type

bytes

pyacryl2.utils.crypto.verify_signature(public_key, signature, data)[source]

Verify data signature

Parameters
  • public_key (bytes) – public key value

  • signature – signature value

  • data – signed data

Returns

valid or not

Return type

bool