syntax = "proto3"; package contract; service Connect { rpc InitMoneyTransfer (InitMoneyTransferRequest) returns (Transfer) {} rpc ApproveTransfer (ApproveRequest) returns (Transfer) {} rpc RejectTransfer (RejectRequest) returns (Transfer) {} } service Game { rpc HandleApproved (Transfer) returns (Response) {} rpc HandleRejected (Transfer) returns (Response) {} rpc HandleExpired (Transfer) returns (Response) {} } service Wallet { rpc HandleTransfer(Transfer) returns (Response) {} rpc HandleExpired (Transfer) returns (Response) {} } enum TransferStatus { OPEN = 0; APPROVED = 1; REJECTED = 2; EXPIRED = 3; } message Transfer { int64 id = 1; string uuid = 2; float amount = 3; TransferStatus status = 4; string expires_at = 5; } message InitMoneyTransferRequest { float amount = 2; } message ApproveRequest { string uuid = 1; } message RejectRequest { string uuid = 1; } message Response {}