def synchronous_call(contract_address, contract_type, func, args=None): call_sig = signature(utils.eth_endpoint('call_contract_function'), kwargs={ 'contract_address': contract_address, 'abi_type': contract_type, 'function': func, 'args': args, }) return utils.execute_synchronous_celery(call_sig)
def await_task_success(task_uuid, timeout=None, poll_frequency=0.5): elapsed = 0 print(f'Awaiting success for task uuid: {task_uuid}') while timeout is None or elapsed <= timeout: sig = signature(utils.eth_endpoint('get_task'), kwargs={'task_uuid': task_uuid}) task = utils.execute_synchronous_celery(sig) if task and task['status'] == 'SUCCESS': return task else: sleep(poll_frequency) elapsed += poll_frequency raise TimeoutError