digraph { convert_transfer [ label="CIC-ETH API:\nconvert_transfer"; shape="ellipse"; ]; callback [ label="callback"; shape="ellipse"; style="dashed"; ]; convert_approve_zero [ label="eth.token.approve (zero)"; shape="ellipse"; ]; convert_approve_amount [ label="eth.token.approve (amount)"; shape="ellipse"; ]; cache_approve_zero [ label="eth.token.otx_cache_approve"; shape="ellipse"; ]; cache_approve_amount [ label="eth.token.otx_cache_approve"; shape="ellipse"; ]; queue_approve_zero [ label="queue.tx.create"; shape="ellipse"; ]; queue_approve_amount [ label="queue.tx.create"; shape="ellipse"; ]; convert_transfer -> "eth.token.resolve_tokens_by_symbol" -> "eth.bancor.convert_with_default_reserve"; "eth.bancor.convert_with_default_reserve" -> convert_approve_zero -> cache_approve_zero; convert_approve_zero -> queue_approve_zero; "eth.bancor.convert_with_default_reserve" -> convert_approve_amount -> cache_approve_amount; convert_approve_amount -> queue_approve_amount; "eth.bancor.convert_with_default_reserve" -> "eth.bancor.otx_cache_convert"; "eth.bancor.convert_with_default_reserve" -> "queue.tx.create"; "eth.bancor.convert_with_default_reserve" -> "eth.tx.check_gas"; "eth.bancor.convert_with_default_reserve" -> "eth.bancor.save_convert_recipient"; "eth.tx.check_gas" -> "eth.tx.refill_gas" [ style="dashed" ]; "eth.tx.check_gas" -> callback [ style="dashed" ]; "eth.tx.refill_gas" -> callback [ style="dashed" ]; }