# Don't talk about this first # Merchant only cares about these (Infra contract) (Xfers Accept / Xfers Send) # User only cares about these (Product contract) (Topup / Withdrawal) DGWTopupContract <-- in dashboard DGWWithdrawalContractV2 (Legacy Handling contract) CorporateAccount -(request)-> DGW BusinessAccount Xfers Send (v4) DGW BusinessAccount -(request)-> Outgoing --> World 1 auditing system will only cares about Topup and Withdrawal And Business Account 1 auditing system will only cares about (Xfers Accept / Xfers Send) [reference link] [Product ] [Infra ] # Want to have short-term solution # In the future if we want to split TopupContract ---> Generate Xfers Accept into our new database TopupContract TopupContract TopupContract TopupContract TopupContract World Account -(settle<bank_row>)--> Incoming --(notify)--> CorporateAccount Xfers Accept + Recon contract World Account ---(settle)--- Incoming -(notif)-> DGW SettlementAccount -(settle)-> DGW Business Account (it's specially handled) Some Contract (DGWTopupContract) (source, destination) ------ DGW BusinessAccount -(notify)-> CorporateAccount