digraph { transferauthorization [ label="CIC-ETH API:\ntransfer authorization"; shape="ellipse"; ]; callback [ label="callback"; shape="ellipse"; style="dashed"; ]; resolve_transferauthorization [ label="eth.token.resolve_tokens_by_symbol"; shape="ellipse"; ]; resolve_approve [ label="eth.token.resolve_tokens_by_symbol"; shape="ellipse"; ]; checkgas_transferauthorization [ label="eth.tx.check_gas"; shape="ellipse"; ]; checkgas_approve [ label="eth.tx.check_gas"; shape="ellipse"; ]; refill_transferauthorization [ label="eth.tx.refill_gas"; shape="ellipse"; ]; refill_approve [ label="eth.tx.refill_gas"; shape="ellipse"; ]; queue_create_transferauthorization [ label="queue.tx.create"; shape="ellipse"; ]; queue_create_approve [ label="queue.tx.create"; shape="ellipse"; ]; transferauthorization -> resolve_approve -> "eth.token.approve" -> "eth.token.otx_cache_approve"; "eth.token.approve" -> queue_create_approve; "eth.token.approve" -> checkgas_approve; checkgas_approve -> refill_approve [ style="dashed" ]; transferauthorization -> resolve_transferauthorization -> "eth.request.transfer_approve_request" -> "eth.token.otx_cache_transfer_approval_request"; "eth.request.transfer_approve_request" -> queue_create_transferauthorization; "eth.request.transfer_approve_request" -> checkgas_transferauthorization; checkgas_transferauthorization -> refill_transferauthorization [ style="dashed" ]; checkgas_approve -> callback [ style="dashed" ]; refill_approve -> callback [ style="dashed" ]; }