From d822e8bfa7fafd691dccb199e2d56e07989ba41d Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 2 Aug 2025 12:52:16 +0330 Subject: [PATCH] Added Market new flow --- market/v1/msg.proto | 44 ++++++++++++++++++++++++++++---------------- market/v1/srv.proto | 14 +++++--------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index d1d8158..70f4ba6 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -19,11 +19,11 @@ enum MarketOrderSide { enum MarketOrderStatus { MO_UNKNOWN_MP_STATUS = 0; // Unknown - MO_CREATED = 1; // Order is just created and awaits confirmation - MO_OPEN = 2; // Order is open and waiting to be completed - MO_CANCEL = 3; // Cancelled by user - MO_COMPLETED = 4; // Order is completed - MO_FAILED = 5; // Order is failed - bad trx , etc. + MO_CREATED = 1; // Order is just created and awaits confirmation + MO_OPEN = 2; // Order is open and waiting to be completed + MO_CANCEL = 3; // Cancelled by user + MO_COMPLETED = 4; // Order is completed + MO_FAILED = 5; // Order is failed - bad trx , etc. MO_REFUNDED = 6; // Order is refunded by platform to user due to regulation // MO_EXPIRED = 7; // Order is expired } @@ -35,7 +35,8 @@ message CalcMarketReq { double amount = 4; double unit_price = 5; MarketParticipantType type = 6; - wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt + wallet.v1.BuyAssetSide req_side = + 7; // For Calculation : can be from asset or irt } message CalcMarketRes { @@ -43,7 +44,8 @@ message CalcMarketRes { double calculated_asset_amount = 2; wallet.v1.EffectiveCommission commission = 3; MarketParticipantType type = 4; - wallet.v1.BuyAssetSide req_side = 5; // For Calculation : can be from asset or irt + wallet.v1.BuyAssetSide req_side = + 5; // For Calculation : can be from asset or irt } message MPHistoryFilter {} @@ -76,7 +78,8 @@ message MarketOrder { } message MarketAssetListReq { - optional auth.v1.InternalIAM iam = 1; // If not set, will returns only public orders which are limited by a + optional auth.v1.InternalIAM iam = + 1; // If not set, will returns only public orders which are limited by a optional uint32 page_no = 2; optional uint32 page_size = 3; } @@ -92,7 +95,8 @@ message PurchaseReq { auth.v1.InternalIAM iam = 1; uint64 order_id = 2; double amount = 3; - wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt + wallet.v1.BuyAssetSide req_side = + 7; // For Calculation : can be from asset or irt optional bool accepted_contract = 4; optional auth.v1.TFA tfa = 5; } @@ -118,11 +122,13 @@ message NewMarketReq { int64 counter_asset_id = 3; double amount = 4; double unit_price = 5; + // TODO: Change name MarketParticipantType type = 6; - wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt + // For Calculation : can be from asset or irt + wallet.v1.BuyAssetSide req_side = 7; MarketOrderSide side = 8; - optional auth.v1.TFA tfa = 9; - optional bool accepted_contract = 10; + // TODO: maker market order as optional + } enum MarketOrdersSortBy { @@ -174,10 +180,16 @@ message DeclineMarketContractReq { uint64 agreement_id = 2; } +message ConfirmMarketContractReq{ + auth.v1.InternalIAM iam = 1; + uint64 agreement_id = 2; + optional auth.v1.TFA tfa = 3; +} + message MarketContractReq { auth.v1.InternalIAM iam = 1; - uint64 asset_id = 2; - uint64 order_id = 3; // Maker OrderID - double amount = 4; - wallet.v1.BuyAssetSide req_side = 5; + // uint64 asset_id = 2; + uint64 order_id = 2; // Maker OrderID + // double amount = 4; + // wallet.v1.BuyAssetSide req_side = 5; } diff --git a/market/v1/srv.proto b/market/v1/srv.proto index f79f321..26f6b3b 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -7,24 +7,20 @@ import "base/v1/msg.proto"; import "market/v1/msg.proto"; service MarketplaceSrv { - rpc CalcMarketOrder(CalcMarketReq) returns (CalcMarketRes); rpc MarketplaceSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); + rpc GetMarketPubHistory(OrderListFilter) returns (MarketOrderList); // This is for public market + rpc GetUserMarketHistory(OrderListFilter) returns (MarketOrderList); // list of order + purchase related to buying an asset rpc GetMarketOrderDet(auth.v1.IdReqWithIAM) returns (MarketOrder); // details of an order by id rpc GetAllOrderList(OrderListFilter) returns (MarketOrderList); // list of all orders (seller and buyer combined) - rpc GetMarketAssetList(MarketAssetListReq) returns (MarketAssetList); // assets that can be listed in marketplace - rpc NewMarketOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market - - rpc NewTakerOrder(PurchaseReq) returns (PurchaseRes); // purchase from an order + rpc CalcMarketOrder(CalcMarketReq) returns (CalcMarketRes); rpc CancelOrder(auth.v1.IdReqWithIAMAndTFA) returns (base.v1.StatusRes); // cancel an order - rpc GetMarketPubHistory(OrderListFilter) returns (MarketOrderList); // This is for public market - rpc GetUserMarketHistory(OrderListFilter) returns (MarketOrderList); // list of order + purchase related to buying an asset - - // Contract + rpc NewMarketOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market rpc GenerateMarketContract(MarketContractReq) returns (ContractMarketRes); + rpc ConfirmMarketContract(ConfirmMarketContractReq) returns (base.v1.StatusRes); }