Defines central module to retrieve all account relevant data from external components.
This commit is contained in:
parent
0b4d8d5937
commit
4d812a74e6
50
apps/cic-ussd/cic_ussd/account/data.py
Normal file
50
apps/cic-ussd/cic_ussd/account/data.py
Normal file
@ -0,0 +1,50 @@
|
||||
"""This module defines functions required to query external components of the cic platform for data relevant to
|
||||
accounts on the cic-ussd component.
|
||||
"""
|
||||
|
||||
# external imports
|
||||
import celery
|
||||
from cic_eth.api import Api
|
||||
|
||||
# local imports
|
||||
from cic_ussd.chain import Chain
|
||||
|
||||
|
||||
def person_metadata(blockchain_address: str):
|
||||
"""This function asynchronously queries the metadata server for metadata associated with the person data type and
|
||||
a given blockchain address.
|
||||
:param blockchain_address: Ethereum address of account whose metadata is being queried.
|
||||
:type blockchain_address: str, 0x-hex
|
||||
"""
|
||||
s_query_person_metadata = celery.signature(
|
||||
'cic_ussd.tasks.metadata.query_person_metadata',
|
||||
[blockchain_address]
|
||||
)
|
||||
s_query_person_metadata.apply_async(queue='cic-ussd')
|
||||
|
||||
|
||||
def default_token_data() -> dict:
|
||||
"""This function queries for the default token's data from the cic_eth tasks exposed over its Api class.
|
||||
:return: A dict containing the default token address and it's corresponding symbol.
|
||||
:rtype: dict
|
||||
"""
|
||||
chain_str = Chain.spec.__str__()
|
||||
cic_eth_api = Api(chain_str=chain_str)
|
||||
default_token_request_task = cic_eth_api.default_token()
|
||||
return default_token_request_task.get()
|
||||
|
||||
|
||||
def transactions_statement(blockchain_address: str):
|
||||
"""This function asynchronously queries the cic-eth server to retrieve a chronologically reversed list of
|
||||
transactions for an account.
|
||||
:param blockchain_address: Ethereum address of account whose transactions is being queried.
|
||||
:type blockchain_address:
|
||||
"""
|
||||
chain_str = Chain.spec.__str__()
|
||||
cic_eth_api = Api(
|
||||
chain_str=chain_str,
|
||||
callback_queue='cic-ussd',
|
||||
callback_task='cic_ussd.tasks.callback_handler.process_statement_callback',
|
||||
callback_param=blockchain_address
|
||||
)
|
||||
cic_eth_api.list(address=blockchain_address, limit=9)
|
Loading…
Reference in New Issue
Block a user