digraph G { initial[label="", shape="circle", xlabel="peer-push-debit"]; pending_create[label="purse-create"]; pending_qr[label="ready"]; aborting_delete[label="delete-purse", style=dashed]; aborting_refresh[label="refresh", style=dashed]; done[label="done", shape="box"]; aborted[label="aborted", shape="box"]; subgraph { rank = same; done; aborted; } subgraph { rank=same; pending_qr;aborting_delete; aborting_refresh; } initial->pending_create; pending_create->pending_qr [color=green]; pending_qr->aborting_delete [color="blue", style=dashed]; pending_qr->aborting_refresh [xlabel="timeout"]; pending_qr->done [color=green]; aborting_delete->aborting_refresh; aborting_delete->done [color="red", label="already\nmerged"]; aborting_delete->aborting_refresh [color="red"]; aborting_refresh->aborted; }