From dd0b83734d8ae51dca5627241daf6eddf8d2dcd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20K=C3=A4chele?= Date: Sat, 10 Feb 2024 11:21:21 +0100 Subject: [PATCH] Add message struct definitions All message structs required to run the exchange --- lib/rex/server.rb | 1 + lib/rex/server/messages.rb | 73 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 lib/rex/server/messages.rb diff --git a/lib/rex/server.rb b/lib/rex/server.rb index 9568a26..4b14eeb 100644 --- a/lib/rex/server.rb +++ b/lib/rex/server.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require_relative "server/messages" require_relative "server/message_broker" module Rex module Server diff --git a/lib/rex/server/messages.rb b/lib/rex/server/messages.rb new file mode 100644 index 0000000..f904833 --- /dev/null +++ b/lib/rex/server/messages.rb @@ -0,0 +1,73 @@ +module Rex + module Server + module Messages + AuthenticateRequest = Struct.new(:user_id) + + FetchTradesRequest = Struct.new(:user_id) + FetchOrdersRequest = Struct.new(:user_id) + CreateOrderRequest = Struct.new(:user_id, :side, :price, :quantity) + CancelOrderRequest = Struct.new(:user_id, :order_id) + FetchOrderBookRequest = Struct.new(:user_id) + + OrderBookUpdateEvent = Struct.new( + :side, + :price, + :quantity + ) + + OrderBookFetchEvent = Struct.new( + :user_id, + :side, + :price, + :quantity + ) + + OrderCancelledEvent = Struct.new( + :id, + :user_id, + :side, + :remaining_quantity, + :price + ) + + OrderFetchEvent = Struct.new( + :id, + :user_id, + :side, + :quantity, + :remaining_quantity, + :price + ) + + OrderCreatedEvent = Struct.new( + :id, + :user_id, + :side, + :quantity, + :remaining_quantity, + :price + ) + + OrderFillEvent = Struct.new( + :id, + :user_id, + :price, + :side, + :remaining_quantity + ) + + TradeEvent = Struct.new( + :id, + :price, + :quantity + ) + + TradeFetchEvent = Struct.new( + :id, + :user_id, + :price, + :quantity + ) + end + end +end