digraph G { initial[label="", shape="circle"]; suspended_wc[label="suspended(withdrawing-coins)", shape="box"]; pending_brr[label="pending(bank-register-reserve)"]; pending_bc[label="pending(bank-confirming)"]; pending_ewr[label="pending(exchange-wait-reserve)"]; pending_wc[label="pending(withdrawing-coins)"]; pending_kyc[label="pending(kyc)"]; pending_aml[label="pending(aml)"]; done[label="done", shape="box"]; suspended_aw[label="suspended(after-wired)", shape="box"]; suspended_aml[label="suspended(aml)", shape="box"]; suspended_kyc[label="suspended(kyc)", shape="box"]; aborting_w2b[label="aborting(wallet-to-bank)"]; deleted[label="deleted", shape="box"]; subgraph { rank = same; pending_brr; pending_bc; pending_ewr; pending_wc; done; } subgraph { rank = same; suspended_wc; suspended_aw; suspended_aml; suspended_kyc; } subgraph { rank = same; aborting_w2b; pending_aml; pending_kyc; } initial->pending_brr [color="blue", label="bank integrated withdraw"]; initial->pending_ewr [color="blue", xlabel="manual withdraw"]; pending_brr->pending_bc; pending_brr->aborting_w2b [color="blue", label="cancel"]; pending_brr->deleted [color="red", label="error"]; pending_bc->pending_ewr [label="bank-poll:\napproved"]; pending_bc->pending_wc [xlabel="exchange-poll:\nreserve ready",style="dotted"]; pending_bc->aborting_w2b [color="blue", label="cancel"]; pending_bc->deleted [label="bank-poll:\ndenied"]; pending_ewr->pending_wc [label="exchange-poll:\nreserve ready"]; pending_wc->pending_kyc; pending_wc->pending_aml; pending_kyc->pending_wc [color="purple",label="long-poll:kyc"]; pending_aml->pending_wc [color="purple",label="long-poll:approve"]; pending_kyc->suspended_kyc [color="blue", label="suspend"]; pending_aml->suspended_aml [color="blue", label="suspend"]; suspended_aml->pending_aml [color="blue", label="resume"]; suspended_kyc->pending_kyc [color="blue", label="resume"]; aborting_w2b->deleted; aborting_w2b->suspended_aw [color="red", label="error(already-confirmed)"]; aborting_w2b->deleted [color="red", label="error(unknown-transaction)"]; pending_ewr->suspended_aw [color="blue", label="suspend"]; suspended_aw->pending_ewr [color="blue", label="resume"]; suspended_aw->deleted [color="blue", label="delete"]; pending_wc->suspended_wc [color="blue", label="suspend"]; suspended_wc->pending_wc [color="blue", label="resume"]; done->deleted [color="blue", label="delete"]; suspended_aml->deleted [color="blue", label="delete"]; suspended_kyc->deleted [color="blue", label="delete"]; suspended_wc->deleted [color="blue", label="delete"]; pending_wc->done; }