From f5a99c7adf08dfbd8c65bf52e6b6216b318c6efc Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Tue, 29 Jul 2025 11:56:51 +0330 Subject: [PATCH] feat: add market contract rpc --- market/v1/msg.proto | 33 ++++++++++++++++++--------------- market/v1/srv.proto | 3 +++ 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index b2ff560..03285d5 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,8 +35,7 @@ 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 { @@ -44,8 +43,7 @@ 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 {} @@ -77,8 +75,7 @@ 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; } @@ -94,8 +91,7 @@ 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; } @@ -122,8 +118,7 @@ message NewMarketReq { 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 MarketOrderSide side = 8; optional auth.v1.TFA tfa = 9; optional bool accepted_contract = 10; @@ -162,3 +157,11 @@ message OrderListFilter { optional uint32 page_no = 19; optional uint32 page_size = 20; } + +message ContractMarketRes { + string link = 1; + uint64 agreement_id = 2; + uint64 transaction_id = 3; + string contract_hash = 4; + string contract_content = 5; +} diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 3440df6..c732a17 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -24,4 +24,7 @@ service MarketplaceSrv { 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 GenerateMarketContract(CalcMarketReq) returns (ContractMarketRes); }