From 3f8ecc0cc81f6d3059c40f0ce6708cdd3944419b Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 17 Nov 2024 16:23:53 +0330 Subject: [PATCH 001/293] Added versioning and correct packaging --- pb/auth/v1/authorization.proto | 38 +++ pb/auth/v1/authorization_message.proto | 210 ++++++++++++++ pb/base/v1/base_message.proto | 15 + pb/wallet/v1/wallet.proto | 42 +++ pb/wallet/v1/wallet_message.proto | 379 +++++++++++++++++++++++++ 5 files changed, 684 insertions(+) create mode 100644 pb/auth/v1/authorization.proto create mode 100644 pb/auth/v1/authorization_message.proto create mode 100644 pb/base/v1/base_message.proto create mode 100644 pb/wallet/v1/wallet.proto create mode 100644 pb/wallet/v1/wallet_message.proto diff --git a/pb/auth/v1/authorization.proto b/pb/auth/v1/authorization.proto new file mode 100644 index 0000000..3179650 --- /dev/null +++ b/pb/auth/v1/authorization.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; + +package authorization; + +import "authorization_message.proto"; +import "base_message.proto"; + +service AuthorizationService { + rpc InternalAuthorizationDeleteCache(base.Empty) returns (base.StatusRes); + rpc InternalInitRoutes(InternalInitRoutesReq) returns (base.StatusRes) {} + rpc InternalGetUserIdentityBasic(GetUserReq) returns (UserIdentityBasic) {} + rpc InternalGetUserIAM(GetUserReq) returns (InternalIAM) {} + rpc CheckIAM(CheckIAMReq) returns (InternalIAM) {} + + rpc UserLoginSendOTP(UserSendOtpReq) returns (UserSendOtpRes) {} + rpc UserLoginWithOTP(UserLoginReq) returns (UserAccessTokenRes) {} + rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq) + returns (UserAccessTokenRes) {} + + rpc UserGetUserPermission(InternalIAM) returns (PermissionList) {} + + rpc UserGetIdentity(InternalIAM) returns (Identity) {} + rpc UserUpdateIdentity(UserUpdateIdentityReq) returns (base.StatusRes) {} + + rpc UserGetBankInfoList(ReqWithIAMAndParams) returns (BankInfoList) {} + rpc UserUpdateBankInfo(UserUpdateBankInfoReq) returns (base.StatusRes) {} + rpc UserRemoveBankInfo(IdReqWithIAM) returns (base.StatusRes) {} + + rpc GetUser(GetUserReq) returns (User) {} + + // Two Factor Authentication + // For now it's only SMS-OTP - later will be Email-OTP or other methods can be + // added For HMAC-OTP there won't be a need to call this api + rpc SendTFAReq(TFAReq) returns (base.StatusRes) {} + // For HMAC-OTP an initialization step must be added to exchange keys + rpc InitTFAReq(InternalIAM) returns (TFAExRes) {} + rpc CheckTFACode(CheckTFAReq) returns (base.StatusRes) {} +} diff --git a/pb/auth/v1/authorization_message.proto b/pb/auth/v1/authorization_message.proto new file mode 100644 index 0000000..415b2d6 --- /dev/null +++ b/pb/auth/v1/authorization_message.proto @@ -0,0 +1,210 @@ +syntax = "proto3"; + +package authorization; + +/* + Internal +*/ + +message InternalInitRoutesReq { + repeated InternalRoute routes = 1; +} +message InternalRoute { + string path = 1; + string method = 2; + string handler = 3; +} + +/* Role Permission */ +message Role { + int64 id = 1; + string title = 2; + string Key = 3; + string type = 4; +} +message Permission { + int64 id = 1; + string title = 2; + string key = 3; + string route = 4; + string method = 5; +} + +message PermissionList { + repeated Permission list = 1; +} + +/* + UserSendOtp +*/ + +message UserSendOtpReq { + string mobile = 1; +} +message UserSendOtpRes { + int64 expired_at = 1; +} + +/* + UserLogin +*/ + +message UserLoginReq { + string mobile = 1; + string otp_code = 2; +} +message UserRefreshTokenReq { + string refresh_token = 1; +} +message UserAccessTokenRes { + string access_token = 1; + int64 access_expired_at = 2; + string refresh_token = 3; +} + +/* + IAM +*/ + +message CheckIAMReq { + string access_token = 1; + string route = 2; + string method = 3; +} + +message InternalIAM { + User user = 1; + IdentityBasic identity = 2; + repeated Company company = 3; +} +message IdReqWithIAM { + int64 id = 1; + InternalIAM iam = 2; +} +message ReqWithIAMAndParams { + InternalIAM iam = 1; + optional bool accepted = 2; +} + +/* + User +*/ +message GetUserReq { + int64 user_id = 1; + string national_id = 2; +} + +message User { + int64 id = 1; + string national_id = 2; + string mobile = 3; + string email = 4; + repeated int64 roles = 5; +} + +message Company { + int64 id = 1; + string name = 2; + string name_fa = 3; + string location = 4; + bool can_provide_bnpl = 5; +} + +message Identity { + string national_id = 1; + string national_serial_id = 2; + string first_name = 3; + string first_name_en = 4; + string last_name = 5; + string last_name_en = 6; + string father_name = 7; + int64 birthdate = 8; + string birthdate_time = 9; + bool is_alive = 10; + int32 gender = 11; + string serial_number = 12; + string serial_type = 13; + string shenasname_number = 14; + string shenasname_seri = 15; + string shenasname_serial = 16; + int32 status = 17; + string updated_at = 18; + string created_at = 19; + string email = 20; + string mobile = 21; + optional Company company = 22; + optional string employee_info = 23; +} + +message IdentityBasic { + string first_name = 1; + string last_name = 2; +} + +message UserIdentityBasic { + int64 id = 1; + string national_id = 2; + string mobile = 3; + string first_name = 4; + string last_name = 5; +} + +message UserUpdateIdentityReq { + InternalIAM iam = 1; + string national_id = 2; + string birthdate = 3; + string email = 4; +} + +message UserUpdateBankInfoReq { + InternalIAM iam = 1; + string deposit_number = 2; + string iban_number = 3; + string card_number = 4; +} + +message BankInfoList { + repeated BankInfo list = 1; +} + +// Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential +enum BankInfoStatusEnum { + FAIL_VERIFY = 0; + VERIFIED = 1; + DOES_NOT_MATCH = 2; +} +message BankInfo { + int64 id = 1; + string deposit_number = 2; + string iban_number = 3; + string card_number = 4; + BankInfoStatusEnum status = 5; + string updated_at = 6; + string created_at = 7; +} + +/* Two Factor Authentication */ +message IdReqWithIAMAndTFA { + int64 id = 1; + InternalIAM iam = 2; + string tfa_code = 3; +} +message TFAReq { + InternalIAM iam = 1; + optional string mobile = 2; + optional string email = 3; + optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal +} + +// Two Factor Authentication Exchange Response +message TFAExRes { + InternalIAM iam = 1; + string secret = 2; + string qrcode_base64 = 3; +} +message CheckTFAReq { + InternalIAM iam = 1; + string code = 2; + optional string algorithm = 3; + optional string reason = 4; // Can be later used as a lookup +} diff --git a/pb/base/v1/base_message.proto b/pb/base/v1/base_message.proto new file mode 100644 index 0000000..0ac5832 --- /dev/null +++ b/pb/base/v1/base_message.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package base; + +message Empty {} + +message StatusRes { + bool success = 1; +} +message IdRes { + int64 id = 1; +} +message IdReq { + int64 id = 1; +} diff --git a/pb/wallet/v1/wallet.proto b/pb/wallet/v1/wallet.proto new file mode 100644 index 0000000..c7f0ac5 --- /dev/null +++ b/pb/wallet/v1/wallet.proto @@ -0,0 +1,42 @@ +syntax = "proto3"; + +package wallet; + +import "authorization_message.proto"; +import "base_message.proto"; +import "wallet_message.proto"; + +service WalletService { + rpc InternalWalletDeleteCache(base.Empty) returns (base.StatusRes); + rpc InternalCreateFederation(authorization.InternalIAM) returns (base.StatusRes); + + rpc AdminGetFederation(GetFederationReq) returns (Federation); + rpc UserGetFederation(authorization.InternalIAM) returns (Federation); + + rpc UserGetAssetList(base.Empty) returns (AssetList); + rpc AdminGetAssetList(base.Empty) returns (AssetList); + rpc GetAsset(GetAssetReq) returns (Asset); + + rpc UserInitWallet(UserInitWalletReq) returns (base.StatusRes); + rpc UserGetWalletList(authorization.InternalIAM) returns (WalletList); + rpc UserTransferAsset(UserTransferAssetReq) returns (UserTransferRes); + + rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); + + rpc SaleGetToken(SaleGetTokenReq) returns (SaleGetTokenRes); + rpc SaleConfirm(SaleConfirmReq) returns (SaleConfirmRes); + rpc AdminManualSaleDeposit(SaleManualReq) returns (base.StatusRes); + + // BNPL + rpc GetBNPLList(base.Empty) returns (BNPLList); + rpc GetBNPLInfo(base.IdReq) returns (BNPLInfo); + rpc GetUserBNPLInfo(GetUserBNPLInfoReq) returns (UserBNPLResp); + rpc SubmitBNPLForm(UserBNPLReq) returns (base.StatusRes); + rpc UpdateBNPL(UserBNPLReq) returns (base.StatusRes); + rpc CancleBNPL(authorization.IdReqWithIAM) returns (base.StatusRes); + + // Redeem Token + rpc CalculateRedeemToken(RedeemTokenReq) returns (CalculateRedeemTokenRes); + rpc RedeemToken(RedeemTokenReq) returns (base.StatusRes); + rpc RedeemTokenList(authorization.ReqWithIAMAndParams) returns (RedeemTokenResList); +} diff --git a/pb/wallet/v1/wallet_message.proto b/pb/wallet/v1/wallet_message.proto new file mode 100644 index 0000000..40a7738 --- /dev/null +++ b/pb/wallet/v1/wallet_message.proto @@ -0,0 +1,379 @@ +syntax = "proto3"; + +package wallet; + +import "authorization_message.proto"; +import "base_message.proto"; + +/* + INTERNAL DATA +*/ + +message InternalTransactionData { + int64 transaction_id = 1; +} + +/* + Federation +*/ + +message Federation { + int64 id = 1; + int64 user_id = 2; + string ed_public = 3; + string ed_public_hash = 4; + int32 status = 5; + string created_at = 6; + string system_wallet_address = 7; +} + +message GetFederationReq { + optional int64 federation_id = 1; + optional int64 user_id = 2; + optional string ed_public = 3; + optional string ed_public_hash = 4; +} + +/* + Asset +*/ + +message AssetList { + repeated Asset list = 1; +} + +message Asset { + int64 id = 1; + string name = 2; + string code = 3; + string issuer = 4; + int32 decimal = 5; + double limit_amount = 6; + string anchor = 7; + string image = 8; + string description = 9; + string url = 10; + int64 buy_unit_price = 11; + int64 sell_unit_price = 12; + double buy_min_amount = 13; + double buy_max_amount = 14; + double sell_min_amount = 15; + double sell_max_amount = 16; + double buy_fee_amount = 17; + int64 buy_fee_price = 18; + double sell_fee_amount = 19; + int64 sell_fee_price = 20; + double withdraw_min_amount = 21; + double withdraw_max_amount = 22; + bool is_active = 23; + bool can_buy = 24; + bool can_sell = 25; + bool can_deposit = 26; + bool can_withdraw = 27; + string updated_at = 28; + string created_at = 29; + repeated string images = 30; + int32 status = 31; + AssetMeta meta = 32; +} + +message GetAssetReq { + optional int64 id = 1; + optional string code = 3; +} + +message AssetMeta { + PropertyMeta property = 1; +} + +message PropertyMeta { + string description = 1; + string builder_description = 2; + string white_paper_url = 3; + string expert_report_url = 4; + string project_catalog_url = 5; + string ownership_document_url = 6; + double total_area_meters = 7; + int32 total_unit_count = 8; + string usage_type = 9; + string completion_date = 10; + string user_agreement_url = 11; +} + +/* + BNPL - not really but close name +*/ + +// enum BNPLPgState { +// +// } + +message GetUserBNPLInfoReq { + authorization.InternalIAM iam = 1; + base.IdReq id = 2; +} + +enum BNPLPaymentsStatus { + PENDING = 0; + PAYED = 1; + OVER_DUE = 2; + NOT_STARTED = 3; + NOT_YET_DUE = 4; + CANCLED = 5; +} +message BNPLPayments { + uint64 id = 1; + double amount = 2; + double amount_irr = 7; + bool is_paied = 3; + string due_date = 4; + string settlement_date = 5; + BNPLPaymentsStatus status = 6; +} + +message UserBNPLResp { + uint64 id = 1; + BNPLInfo bnpl = 2; + int32 current_step = 3; + optional float amount = 4; + optional PaymentPeriodInfo payment_period = 5; + optional bool accepted_terms = 6; + repeated BNPLPayments payments = 7; + optional string employee_id = 8; + optional authorization.Company company = 10; + authorization.InternalIAM iam = 11; + optional string updated_at = 12; + optional string created_at = 13; + Asset selected_asset = 14; +} + +message UserBNPLReq { + uint64 id = 1; + int64 bnpl_id = 2; + authorization.InternalIAM iam = 6; + optional string created_at = 3; + optional string employee_id = 4; + optional int64 company_id = 5; + optional float amount = 7; + optional PaymentPeriodInfo payment_period = 8; + optional bool has_agreed_contract = 9; + optional int32 current_step = 10; //Can be useful for admin to change the current step + optional int64 asset_id = 11; +} + +message PaymentPeriodInfo { + uint64 id = 1; + uint64 period = 2; + bool enabled = 3; +} +message BNPLInfo { + uint64 id = 1; + string description = 3; + repeated Asset supported_assets = 2; + optional bool enabled = 4; + float amount_start = 5; + float amount_end = 6; + float amount_steps = 7; + repeated PaymentPeriodInfo payment_period = 8; + repeated authorization.Company possible_companies = 11; + string updated_at = 12; + string created_at = 13; + string expires_at = 14; +} +message BNPLList { + repeated BNPLInfo list = 1; +} + +/* + Wallet +*/ + +message WalletList { + repeated Wallet list = 1; +} + +message Wallet { + int64 id = 1; + int64 user_id = 2; + int64 asset_id = 3; + Asset asset_info = 4; + int64 federation_id = 5; + Federation federation_info = 6; + double balance = 7; + string updated_at = 8; + string created_at = 9; + string wallet_code = 10; +} + +message UserInitWalletReq { + authorization.InternalIAM iam = 1; + int64 asset_id = 2; +} + +/* + Transaction +*/ + +message TransactionList { + repeated Transaction list = 1; + int64 total_count = 2; +} + +enum TransactionType { + Unknown = 0; + Buy = 1; + Sell = 2; + Transfer = 3; + Redeem = 4; +} +enum TransactionStatus { + Undetermined = 0; + Failed = -10; + Suspended = -9; + Created = -1; + Pending = 1; + Successful = 2; +} + +message Transaction { + int64 id = 1; + int64 asset_id = 2; + // Asset asset_info = 3; //Causing network overloading + optional int64 from_user_id = 4; + optional authorization.UserIdentityBasic from_user_info = 5; + optional int64 from_federation_id = 6; + optional Federation from_federation_info = 7; + optional int64 to_user_id = 8; + optional authorization.UserIdentityBasic to_user_info = 9; + optional int64 to_federation_id = 10; + optional Federation to_federation_info = 11; + double amount = 12; + TransactionStatus status = 13; + TransactionType type = 14; + string updated_at = 15; + string created_at = 16; + string tracking_code = 17; +} + +message UserGetTransactionListReq { + authorization.InternalIAM iam = 1; + optional int32 page_index = 2; + optional int32 page_size = 3; + optional int64 id = 4; + optional int64 asset_id = 5; + optional int64 from_user_id = 6; + optional int64 from_federation_id = 7; + optional int64 to_user_id = 8; + optional int64 to_federation_id = 9; + optional double amount_from = 10; + optional double amount_to = 11; + optional TransactionStatus status = 12; + optional TransactionType type = 13; + optional string tracking_code = 14; +} +/* + Buy +*/ + +message UserBuyAssetReq { + authorization.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; +} + +/* + Sell +*/ + +/* + Transfer +*/ + +message UserTransferAssetReq { + authorization.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; + string to_wallet_address = 4; + string to_wallet_memo = 5; +} + +message UserTransferRes { + int64 transaction_id = 1; + string tracking_code = 2; +} + +// represent the information regarding the sale of the token +message SaleGetTokenReq { + authorization.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; +} + +// represent the information regarding the ipg gateway +message SaleGetTokenRes { + string url = 1; + int64 unit_price = 2; + int64 total_price = 3; + double amount = 4; + string asset = 5; +} + +message SaleConfirmReq { + string RefId = 1; + string ResCode = 2; + string SaleOrderId = 3; + string SaleReferenceId = 4; + string CardHolderInfo = 5; + string CardHolderPan = 6; + string FinalAmount = 7; +} + +message SaleConfirmRes { + string receiptLink = 1; +} + +message SaleManualReq { + authorization.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; + string paid_at = 4; + string rrn = 5; + string national_id = 6; +} + +/* + Redeem Token +*/ +message RedeemTokenReq { + authorization.InternalIAM iam = 1; + int64 asset_id = 2; + uint64 bank_info_id = 3; + double amount = 4; + optional string tfa_code = 5; +} +message CalculateRedeemTokenRes { + Asset asset = 1; + double free_balance = 2; + double total_balance = 3; + double request_amount = 4; + double profit_capital = 5; + double user_capital = 6; + optional authorization.BankInfo bank_info = 7; +} +message RedeemTokenRes { + uint64 id = 1; + int64 user_id = 2; + Asset asset = 3; + double free_balance = 4; + double total_balance = 5; + double request_amount = 6; + string created_at = 7; + bool is_paied = 8; + // receipt.Receipt receipt = 8; + double calculated_profit = 9; + optional authorization.BankInfo bank_info = 10; + optional string receipt = 11; +} +message RedeemTokenResList { + repeated RedeemTokenRes list = 1; +} From 211d6251f470fbbaae0ced7e24ef1510a704e69b Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 17 Nov 2024 16:24:34 +0330 Subject: [PATCH 002/293] Removed old proto files --- authorization.proto | 38 ---- authorization_message.proto | 210 -------------------- base_message.proto | 15 -- buf.gen.yaml | 20 ++ buf.yaml | 15 +- wallet.proto | 42 ---- wallet_message.proto | 379 ------------------------------------ 7 files changed, 26 insertions(+), 693 deletions(-) delete mode 100644 authorization.proto delete mode 100644 authorization_message.proto delete mode 100644 base_message.proto create mode 100644 buf.gen.yaml delete mode 100644 wallet.proto delete mode 100644 wallet_message.proto diff --git a/authorization.proto b/authorization.proto deleted file mode 100644 index 3179650..0000000 --- a/authorization.proto +++ /dev/null @@ -1,38 +0,0 @@ -syntax = "proto3"; - -package authorization; - -import "authorization_message.proto"; -import "base_message.proto"; - -service AuthorizationService { - rpc InternalAuthorizationDeleteCache(base.Empty) returns (base.StatusRes); - rpc InternalInitRoutes(InternalInitRoutesReq) returns (base.StatusRes) {} - rpc InternalGetUserIdentityBasic(GetUserReq) returns (UserIdentityBasic) {} - rpc InternalGetUserIAM(GetUserReq) returns (InternalIAM) {} - rpc CheckIAM(CheckIAMReq) returns (InternalIAM) {} - - rpc UserLoginSendOTP(UserSendOtpReq) returns (UserSendOtpRes) {} - rpc UserLoginWithOTP(UserLoginReq) returns (UserAccessTokenRes) {} - rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq) - returns (UserAccessTokenRes) {} - - rpc UserGetUserPermission(InternalIAM) returns (PermissionList) {} - - rpc UserGetIdentity(InternalIAM) returns (Identity) {} - rpc UserUpdateIdentity(UserUpdateIdentityReq) returns (base.StatusRes) {} - - rpc UserGetBankInfoList(ReqWithIAMAndParams) returns (BankInfoList) {} - rpc UserUpdateBankInfo(UserUpdateBankInfoReq) returns (base.StatusRes) {} - rpc UserRemoveBankInfo(IdReqWithIAM) returns (base.StatusRes) {} - - rpc GetUser(GetUserReq) returns (User) {} - - // Two Factor Authentication - // For now it's only SMS-OTP - later will be Email-OTP or other methods can be - // added For HMAC-OTP there won't be a need to call this api - rpc SendTFAReq(TFAReq) returns (base.StatusRes) {} - // For HMAC-OTP an initialization step must be added to exchange keys - rpc InitTFAReq(InternalIAM) returns (TFAExRes) {} - rpc CheckTFACode(CheckTFAReq) returns (base.StatusRes) {} -} diff --git a/authorization_message.proto b/authorization_message.proto deleted file mode 100644 index 415b2d6..0000000 --- a/authorization_message.proto +++ /dev/null @@ -1,210 +0,0 @@ -syntax = "proto3"; - -package authorization; - -/* - Internal -*/ - -message InternalInitRoutesReq { - repeated InternalRoute routes = 1; -} -message InternalRoute { - string path = 1; - string method = 2; - string handler = 3; -} - -/* Role Permission */ -message Role { - int64 id = 1; - string title = 2; - string Key = 3; - string type = 4; -} -message Permission { - int64 id = 1; - string title = 2; - string key = 3; - string route = 4; - string method = 5; -} - -message PermissionList { - repeated Permission list = 1; -} - -/* - UserSendOtp -*/ - -message UserSendOtpReq { - string mobile = 1; -} -message UserSendOtpRes { - int64 expired_at = 1; -} - -/* - UserLogin -*/ - -message UserLoginReq { - string mobile = 1; - string otp_code = 2; -} -message UserRefreshTokenReq { - string refresh_token = 1; -} -message UserAccessTokenRes { - string access_token = 1; - int64 access_expired_at = 2; - string refresh_token = 3; -} - -/* - IAM -*/ - -message CheckIAMReq { - string access_token = 1; - string route = 2; - string method = 3; -} - -message InternalIAM { - User user = 1; - IdentityBasic identity = 2; - repeated Company company = 3; -} -message IdReqWithIAM { - int64 id = 1; - InternalIAM iam = 2; -} -message ReqWithIAMAndParams { - InternalIAM iam = 1; - optional bool accepted = 2; -} - -/* - User -*/ -message GetUserReq { - int64 user_id = 1; - string national_id = 2; -} - -message User { - int64 id = 1; - string national_id = 2; - string mobile = 3; - string email = 4; - repeated int64 roles = 5; -} - -message Company { - int64 id = 1; - string name = 2; - string name_fa = 3; - string location = 4; - bool can_provide_bnpl = 5; -} - -message Identity { - string national_id = 1; - string national_serial_id = 2; - string first_name = 3; - string first_name_en = 4; - string last_name = 5; - string last_name_en = 6; - string father_name = 7; - int64 birthdate = 8; - string birthdate_time = 9; - bool is_alive = 10; - int32 gender = 11; - string serial_number = 12; - string serial_type = 13; - string shenasname_number = 14; - string shenasname_seri = 15; - string shenasname_serial = 16; - int32 status = 17; - string updated_at = 18; - string created_at = 19; - string email = 20; - string mobile = 21; - optional Company company = 22; - optional string employee_info = 23; -} - -message IdentityBasic { - string first_name = 1; - string last_name = 2; -} - -message UserIdentityBasic { - int64 id = 1; - string national_id = 2; - string mobile = 3; - string first_name = 4; - string last_name = 5; -} - -message UserUpdateIdentityReq { - InternalIAM iam = 1; - string national_id = 2; - string birthdate = 3; - string email = 4; -} - -message UserUpdateBankInfoReq { - InternalIAM iam = 1; - string deposit_number = 2; - string iban_number = 3; - string card_number = 4; -} - -message BankInfoList { - repeated BankInfo list = 1; -} - -// Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential -enum BankInfoStatusEnum { - FAIL_VERIFY = 0; - VERIFIED = 1; - DOES_NOT_MATCH = 2; -} -message BankInfo { - int64 id = 1; - string deposit_number = 2; - string iban_number = 3; - string card_number = 4; - BankInfoStatusEnum status = 5; - string updated_at = 6; - string created_at = 7; -} - -/* Two Factor Authentication */ -message IdReqWithIAMAndTFA { - int64 id = 1; - InternalIAM iam = 2; - string tfa_code = 3; -} -message TFAReq { - InternalIAM iam = 1; - optional string mobile = 2; - optional string email = 3; - optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal -} - -// Two Factor Authentication Exchange Response -message TFAExRes { - InternalIAM iam = 1; - string secret = 2; - string qrcode_base64 = 3; -} -message CheckTFAReq { - InternalIAM iam = 1; - string code = 2; - optional string algorithm = 3; - optional string reason = 4; // Can be later used as a lookup -} diff --git a/base_message.proto b/base_message.proto deleted file mode 100644 index 0ac5832..0000000 --- a/base_message.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; - -package base; - -message Empty {} - -message StatusRes { - bool success = 1; -} -message IdRes { - int64 id = 1; -} -message IdReq { - int64 id = 1; -} diff --git a/buf.gen.yaml b/buf.gen.yaml new file mode 100644 index 0000000..2724212 --- /dev/null +++ b/buf.gen.yaml @@ -0,0 +1,20 @@ +version: v2 +clean: true +managed: + enabled: true +plugins: + - remote: buf.build/grpc/go + out: pb + opt: + - paths=source_relative + - require_unimplemented_servers=false + - remote: buf.build/protocolbuffers/go + out: pb + opt: + - paths=source_relative +inputs: + - directory: pb + + # - git_repo: https://git.kahrobatoken.com/Kahroba/proto + # branch: main + # depth: 1 diff --git a/buf.yaml b/buf.yaml index 2abbb7b..1bdebd2 100644 --- a/buf.yaml +++ b/buf.yaml @@ -1,12 +1,9 @@ ---- -version: v1 +version: v2 lint: use: - DEFAULT -# disallow_comment_ignores: false -# # The default behavior of this key has changed from v1 -# enum_zero_value_suffix: _UNSPECIFIED -# rpc_allow_same_request_response: true -# rpc_allow_google_protobuf_empty_requests: false -# rpc_allow_google_protobuf_empty_responses: false -# service_suffix: Service +breaking: + use: + - FILE +modules: + - path: pb diff --git a/wallet.proto b/wallet.proto deleted file mode 100644 index c7f0ac5..0000000 --- a/wallet.proto +++ /dev/null @@ -1,42 +0,0 @@ -syntax = "proto3"; - -package wallet; - -import "authorization_message.proto"; -import "base_message.proto"; -import "wallet_message.proto"; - -service WalletService { - rpc InternalWalletDeleteCache(base.Empty) returns (base.StatusRes); - rpc InternalCreateFederation(authorization.InternalIAM) returns (base.StatusRes); - - rpc AdminGetFederation(GetFederationReq) returns (Federation); - rpc UserGetFederation(authorization.InternalIAM) returns (Federation); - - rpc UserGetAssetList(base.Empty) returns (AssetList); - rpc AdminGetAssetList(base.Empty) returns (AssetList); - rpc GetAsset(GetAssetReq) returns (Asset); - - rpc UserInitWallet(UserInitWalletReq) returns (base.StatusRes); - rpc UserGetWalletList(authorization.InternalIAM) returns (WalletList); - rpc UserTransferAsset(UserTransferAssetReq) returns (UserTransferRes); - - rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); - - rpc SaleGetToken(SaleGetTokenReq) returns (SaleGetTokenRes); - rpc SaleConfirm(SaleConfirmReq) returns (SaleConfirmRes); - rpc AdminManualSaleDeposit(SaleManualReq) returns (base.StatusRes); - - // BNPL - rpc GetBNPLList(base.Empty) returns (BNPLList); - rpc GetBNPLInfo(base.IdReq) returns (BNPLInfo); - rpc GetUserBNPLInfo(GetUserBNPLInfoReq) returns (UserBNPLResp); - rpc SubmitBNPLForm(UserBNPLReq) returns (base.StatusRes); - rpc UpdateBNPL(UserBNPLReq) returns (base.StatusRes); - rpc CancleBNPL(authorization.IdReqWithIAM) returns (base.StatusRes); - - // Redeem Token - rpc CalculateRedeemToken(RedeemTokenReq) returns (CalculateRedeemTokenRes); - rpc RedeemToken(RedeemTokenReq) returns (base.StatusRes); - rpc RedeemTokenList(authorization.ReqWithIAMAndParams) returns (RedeemTokenResList); -} diff --git a/wallet_message.proto b/wallet_message.proto deleted file mode 100644 index 40a7738..0000000 --- a/wallet_message.proto +++ /dev/null @@ -1,379 +0,0 @@ -syntax = "proto3"; - -package wallet; - -import "authorization_message.proto"; -import "base_message.proto"; - -/* - INTERNAL DATA -*/ - -message InternalTransactionData { - int64 transaction_id = 1; -} - -/* - Federation -*/ - -message Federation { - int64 id = 1; - int64 user_id = 2; - string ed_public = 3; - string ed_public_hash = 4; - int32 status = 5; - string created_at = 6; - string system_wallet_address = 7; -} - -message GetFederationReq { - optional int64 federation_id = 1; - optional int64 user_id = 2; - optional string ed_public = 3; - optional string ed_public_hash = 4; -} - -/* - Asset -*/ - -message AssetList { - repeated Asset list = 1; -} - -message Asset { - int64 id = 1; - string name = 2; - string code = 3; - string issuer = 4; - int32 decimal = 5; - double limit_amount = 6; - string anchor = 7; - string image = 8; - string description = 9; - string url = 10; - int64 buy_unit_price = 11; - int64 sell_unit_price = 12; - double buy_min_amount = 13; - double buy_max_amount = 14; - double sell_min_amount = 15; - double sell_max_amount = 16; - double buy_fee_amount = 17; - int64 buy_fee_price = 18; - double sell_fee_amount = 19; - int64 sell_fee_price = 20; - double withdraw_min_amount = 21; - double withdraw_max_amount = 22; - bool is_active = 23; - bool can_buy = 24; - bool can_sell = 25; - bool can_deposit = 26; - bool can_withdraw = 27; - string updated_at = 28; - string created_at = 29; - repeated string images = 30; - int32 status = 31; - AssetMeta meta = 32; -} - -message GetAssetReq { - optional int64 id = 1; - optional string code = 3; -} - -message AssetMeta { - PropertyMeta property = 1; -} - -message PropertyMeta { - string description = 1; - string builder_description = 2; - string white_paper_url = 3; - string expert_report_url = 4; - string project_catalog_url = 5; - string ownership_document_url = 6; - double total_area_meters = 7; - int32 total_unit_count = 8; - string usage_type = 9; - string completion_date = 10; - string user_agreement_url = 11; -} - -/* - BNPL - not really but close name -*/ - -// enum BNPLPgState { -// -// } - -message GetUserBNPLInfoReq { - authorization.InternalIAM iam = 1; - base.IdReq id = 2; -} - -enum BNPLPaymentsStatus { - PENDING = 0; - PAYED = 1; - OVER_DUE = 2; - NOT_STARTED = 3; - NOT_YET_DUE = 4; - CANCLED = 5; -} -message BNPLPayments { - uint64 id = 1; - double amount = 2; - double amount_irr = 7; - bool is_paied = 3; - string due_date = 4; - string settlement_date = 5; - BNPLPaymentsStatus status = 6; -} - -message UserBNPLResp { - uint64 id = 1; - BNPLInfo bnpl = 2; - int32 current_step = 3; - optional float amount = 4; - optional PaymentPeriodInfo payment_period = 5; - optional bool accepted_terms = 6; - repeated BNPLPayments payments = 7; - optional string employee_id = 8; - optional authorization.Company company = 10; - authorization.InternalIAM iam = 11; - optional string updated_at = 12; - optional string created_at = 13; - Asset selected_asset = 14; -} - -message UserBNPLReq { - uint64 id = 1; - int64 bnpl_id = 2; - authorization.InternalIAM iam = 6; - optional string created_at = 3; - optional string employee_id = 4; - optional int64 company_id = 5; - optional float amount = 7; - optional PaymentPeriodInfo payment_period = 8; - optional bool has_agreed_contract = 9; - optional int32 current_step = 10; //Can be useful for admin to change the current step - optional int64 asset_id = 11; -} - -message PaymentPeriodInfo { - uint64 id = 1; - uint64 period = 2; - bool enabled = 3; -} -message BNPLInfo { - uint64 id = 1; - string description = 3; - repeated Asset supported_assets = 2; - optional bool enabled = 4; - float amount_start = 5; - float amount_end = 6; - float amount_steps = 7; - repeated PaymentPeriodInfo payment_period = 8; - repeated authorization.Company possible_companies = 11; - string updated_at = 12; - string created_at = 13; - string expires_at = 14; -} -message BNPLList { - repeated BNPLInfo list = 1; -} - -/* - Wallet -*/ - -message WalletList { - repeated Wallet list = 1; -} - -message Wallet { - int64 id = 1; - int64 user_id = 2; - int64 asset_id = 3; - Asset asset_info = 4; - int64 federation_id = 5; - Federation federation_info = 6; - double balance = 7; - string updated_at = 8; - string created_at = 9; - string wallet_code = 10; -} - -message UserInitWalletReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; -} - -/* - Transaction -*/ - -message TransactionList { - repeated Transaction list = 1; - int64 total_count = 2; -} - -enum TransactionType { - Unknown = 0; - Buy = 1; - Sell = 2; - Transfer = 3; - Redeem = 4; -} -enum TransactionStatus { - Undetermined = 0; - Failed = -10; - Suspended = -9; - Created = -1; - Pending = 1; - Successful = 2; -} - -message Transaction { - int64 id = 1; - int64 asset_id = 2; - // Asset asset_info = 3; //Causing network overloading - optional int64 from_user_id = 4; - optional authorization.UserIdentityBasic from_user_info = 5; - optional int64 from_federation_id = 6; - optional Federation from_federation_info = 7; - optional int64 to_user_id = 8; - optional authorization.UserIdentityBasic to_user_info = 9; - optional int64 to_federation_id = 10; - optional Federation to_federation_info = 11; - double amount = 12; - TransactionStatus status = 13; - TransactionType type = 14; - string updated_at = 15; - string created_at = 16; - string tracking_code = 17; -} - -message UserGetTransactionListReq { - authorization.InternalIAM iam = 1; - optional int32 page_index = 2; - optional int32 page_size = 3; - optional int64 id = 4; - optional int64 asset_id = 5; - optional int64 from_user_id = 6; - optional int64 from_federation_id = 7; - optional int64 to_user_id = 8; - optional int64 to_federation_id = 9; - optional double amount_from = 10; - optional double amount_to = 11; - optional TransactionStatus status = 12; - optional TransactionType type = 13; - optional string tracking_code = 14; -} -/* - Buy -*/ - -message UserBuyAssetReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; -} - -/* - Sell -*/ - -/* - Transfer -*/ - -message UserTransferAssetReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; - string to_wallet_address = 4; - string to_wallet_memo = 5; -} - -message UserTransferRes { - int64 transaction_id = 1; - string tracking_code = 2; -} - -// represent the information regarding the sale of the token -message SaleGetTokenReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; -} - -// represent the information regarding the ipg gateway -message SaleGetTokenRes { - string url = 1; - int64 unit_price = 2; - int64 total_price = 3; - double amount = 4; - string asset = 5; -} - -message SaleConfirmReq { - string RefId = 1; - string ResCode = 2; - string SaleOrderId = 3; - string SaleReferenceId = 4; - string CardHolderInfo = 5; - string CardHolderPan = 6; - string FinalAmount = 7; -} - -message SaleConfirmRes { - string receiptLink = 1; -} - -message SaleManualReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; - string paid_at = 4; - string rrn = 5; - string national_id = 6; -} - -/* - Redeem Token -*/ -message RedeemTokenReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - uint64 bank_info_id = 3; - double amount = 4; - optional string tfa_code = 5; -} -message CalculateRedeemTokenRes { - Asset asset = 1; - double free_balance = 2; - double total_balance = 3; - double request_amount = 4; - double profit_capital = 5; - double user_capital = 6; - optional authorization.BankInfo bank_info = 7; -} -message RedeemTokenRes { - uint64 id = 1; - int64 user_id = 2; - Asset asset = 3; - double free_balance = 4; - double total_balance = 5; - double request_amount = 6; - string created_at = 7; - bool is_paied = 8; - // receipt.Receipt receipt = 8; - double calculated_profit = 9; - optional authorization.BankInfo bank_info = 10; - optional string receipt = 11; -} -message RedeemTokenResList { - repeated RedeemTokenRes list = 1; -} From 50024737a4a35a56ed1572395969c85d4e1d14c6 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 11:16:19 +0330 Subject: [PATCH 003/293] v2: changed directory Signed-off-by: nfel --- .gitignore | 1 + auth/v1/msg.proto | 11 + .../base_message.proto => base/v1/msg.proto | 4 +- buf.gen.yaml | 32 +- buf.yaml | 10 +- pb/auth/v1/authorization.proto | 38 -- pb/auth/v1/authorization_message.proto | 210 ---------- pb/wallet/v1/wallet.proto | 42 -- pb/wallet/v1/wallet_message.proto | 379 ------------------ 9 files changed, 39 insertions(+), 688 deletions(-) create mode 100644 .gitignore create mode 100644 auth/v1/msg.proto rename pb/base/v1/base_message.proto => base/v1/msg.proto (74%) delete mode 100644 pb/auth/v1/authorization.proto delete mode 100644 pb/auth/v1/authorization_message.proto delete mode 100644 pb/wallet/v1/wallet.proto delete mode 100644 pb/wallet/v1/wallet_message.proto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto new file mode 100644 index 0000000..1a05e2e --- /dev/null +++ b/auth/v1/msg.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package auth.v1; +// option go_package="auth/v1"; + +import "base/v1/msg.proto"; + +message IdReq { + int64 id = 1; + base.v1.Empty empty=2; +} diff --git a/pb/base/v1/base_message.proto b/base/v1/msg.proto similarity index 74% rename from pb/base/v1/base_message.proto rename to base/v1/msg.proto index 0ac5832..150bd15 100644 --- a/pb/base/v1/base_message.proto +++ b/base/v1/msg.proto @@ -1,6 +1,8 @@ syntax = "proto3"; -package base; +package base.v1; + +// option go_package = "base/v1"; message Empty {} diff --git a/buf.gen.yaml b/buf.gen.yaml index 2724212..322b59e 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -1,20 +1,24 @@ +--- version: v2 clean: true managed: enabled: true + override: + - file_option: go_package_prefix + value: ${package_name} plugins: - - remote: buf.build/grpc/go - out: pb - opt: - - paths=source_relative - - require_unimplemented_servers=false - - remote: buf.build/protocolbuffers/go - out: pb - opt: - - paths=source_relative + # go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + # -remote buf.build/grpc/go + - local: protoc-gen-go-grpc + out: gen/go + opt: paths=source_relative + # go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + # -remote: buf.build/protocolbuffers/go:v1.31.0 + - local: protoc-gen-go + out: gen/go + opt: paths=source_relative inputs: - - directory: pb - - # - git_repo: https://git.kahrobatoken.com/Kahroba/proto - # branch: main - # depth: 1 + # - directory: ./ + - git_repo: ssh://git@5.34.204.11/Kahroba/proto + branch: v2 + diff --git a/buf.yaml b/buf.yaml index 1bdebd2..948e927 100644 --- a/buf.yaml +++ b/buf.yaml @@ -1,9 +1,11 @@ +--- version: v2 -lint: - use: - - DEFAULT breaking: use: - FILE + - PACKAGE +lint: + use: + - STANDARD modules: - - path: pb + - path: ./ diff --git a/pb/auth/v1/authorization.proto b/pb/auth/v1/authorization.proto deleted file mode 100644 index 3179650..0000000 --- a/pb/auth/v1/authorization.proto +++ /dev/null @@ -1,38 +0,0 @@ -syntax = "proto3"; - -package authorization; - -import "authorization_message.proto"; -import "base_message.proto"; - -service AuthorizationService { - rpc InternalAuthorizationDeleteCache(base.Empty) returns (base.StatusRes); - rpc InternalInitRoutes(InternalInitRoutesReq) returns (base.StatusRes) {} - rpc InternalGetUserIdentityBasic(GetUserReq) returns (UserIdentityBasic) {} - rpc InternalGetUserIAM(GetUserReq) returns (InternalIAM) {} - rpc CheckIAM(CheckIAMReq) returns (InternalIAM) {} - - rpc UserLoginSendOTP(UserSendOtpReq) returns (UserSendOtpRes) {} - rpc UserLoginWithOTP(UserLoginReq) returns (UserAccessTokenRes) {} - rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq) - returns (UserAccessTokenRes) {} - - rpc UserGetUserPermission(InternalIAM) returns (PermissionList) {} - - rpc UserGetIdentity(InternalIAM) returns (Identity) {} - rpc UserUpdateIdentity(UserUpdateIdentityReq) returns (base.StatusRes) {} - - rpc UserGetBankInfoList(ReqWithIAMAndParams) returns (BankInfoList) {} - rpc UserUpdateBankInfo(UserUpdateBankInfoReq) returns (base.StatusRes) {} - rpc UserRemoveBankInfo(IdReqWithIAM) returns (base.StatusRes) {} - - rpc GetUser(GetUserReq) returns (User) {} - - // Two Factor Authentication - // For now it's only SMS-OTP - later will be Email-OTP or other methods can be - // added For HMAC-OTP there won't be a need to call this api - rpc SendTFAReq(TFAReq) returns (base.StatusRes) {} - // For HMAC-OTP an initialization step must be added to exchange keys - rpc InitTFAReq(InternalIAM) returns (TFAExRes) {} - rpc CheckTFACode(CheckTFAReq) returns (base.StatusRes) {} -} diff --git a/pb/auth/v1/authorization_message.proto b/pb/auth/v1/authorization_message.proto deleted file mode 100644 index 415b2d6..0000000 --- a/pb/auth/v1/authorization_message.proto +++ /dev/null @@ -1,210 +0,0 @@ -syntax = "proto3"; - -package authorization; - -/* - Internal -*/ - -message InternalInitRoutesReq { - repeated InternalRoute routes = 1; -} -message InternalRoute { - string path = 1; - string method = 2; - string handler = 3; -} - -/* Role Permission */ -message Role { - int64 id = 1; - string title = 2; - string Key = 3; - string type = 4; -} -message Permission { - int64 id = 1; - string title = 2; - string key = 3; - string route = 4; - string method = 5; -} - -message PermissionList { - repeated Permission list = 1; -} - -/* - UserSendOtp -*/ - -message UserSendOtpReq { - string mobile = 1; -} -message UserSendOtpRes { - int64 expired_at = 1; -} - -/* - UserLogin -*/ - -message UserLoginReq { - string mobile = 1; - string otp_code = 2; -} -message UserRefreshTokenReq { - string refresh_token = 1; -} -message UserAccessTokenRes { - string access_token = 1; - int64 access_expired_at = 2; - string refresh_token = 3; -} - -/* - IAM -*/ - -message CheckIAMReq { - string access_token = 1; - string route = 2; - string method = 3; -} - -message InternalIAM { - User user = 1; - IdentityBasic identity = 2; - repeated Company company = 3; -} -message IdReqWithIAM { - int64 id = 1; - InternalIAM iam = 2; -} -message ReqWithIAMAndParams { - InternalIAM iam = 1; - optional bool accepted = 2; -} - -/* - User -*/ -message GetUserReq { - int64 user_id = 1; - string national_id = 2; -} - -message User { - int64 id = 1; - string national_id = 2; - string mobile = 3; - string email = 4; - repeated int64 roles = 5; -} - -message Company { - int64 id = 1; - string name = 2; - string name_fa = 3; - string location = 4; - bool can_provide_bnpl = 5; -} - -message Identity { - string national_id = 1; - string national_serial_id = 2; - string first_name = 3; - string first_name_en = 4; - string last_name = 5; - string last_name_en = 6; - string father_name = 7; - int64 birthdate = 8; - string birthdate_time = 9; - bool is_alive = 10; - int32 gender = 11; - string serial_number = 12; - string serial_type = 13; - string shenasname_number = 14; - string shenasname_seri = 15; - string shenasname_serial = 16; - int32 status = 17; - string updated_at = 18; - string created_at = 19; - string email = 20; - string mobile = 21; - optional Company company = 22; - optional string employee_info = 23; -} - -message IdentityBasic { - string first_name = 1; - string last_name = 2; -} - -message UserIdentityBasic { - int64 id = 1; - string national_id = 2; - string mobile = 3; - string first_name = 4; - string last_name = 5; -} - -message UserUpdateIdentityReq { - InternalIAM iam = 1; - string national_id = 2; - string birthdate = 3; - string email = 4; -} - -message UserUpdateBankInfoReq { - InternalIAM iam = 1; - string deposit_number = 2; - string iban_number = 3; - string card_number = 4; -} - -message BankInfoList { - repeated BankInfo list = 1; -} - -// Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential -enum BankInfoStatusEnum { - FAIL_VERIFY = 0; - VERIFIED = 1; - DOES_NOT_MATCH = 2; -} -message BankInfo { - int64 id = 1; - string deposit_number = 2; - string iban_number = 3; - string card_number = 4; - BankInfoStatusEnum status = 5; - string updated_at = 6; - string created_at = 7; -} - -/* Two Factor Authentication */ -message IdReqWithIAMAndTFA { - int64 id = 1; - InternalIAM iam = 2; - string tfa_code = 3; -} -message TFAReq { - InternalIAM iam = 1; - optional string mobile = 2; - optional string email = 3; - optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal -} - -// Two Factor Authentication Exchange Response -message TFAExRes { - InternalIAM iam = 1; - string secret = 2; - string qrcode_base64 = 3; -} -message CheckTFAReq { - InternalIAM iam = 1; - string code = 2; - optional string algorithm = 3; - optional string reason = 4; // Can be later used as a lookup -} diff --git a/pb/wallet/v1/wallet.proto b/pb/wallet/v1/wallet.proto deleted file mode 100644 index c7f0ac5..0000000 --- a/pb/wallet/v1/wallet.proto +++ /dev/null @@ -1,42 +0,0 @@ -syntax = "proto3"; - -package wallet; - -import "authorization_message.proto"; -import "base_message.proto"; -import "wallet_message.proto"; - -service WalletService { - rpc InternalWalletDeleteCache(base.Empty) returns (base.StatusRes); - rpc InternalCreateFederation(authorization.InternalIAM) returns (base.StatusRes); - - rpc AdminGetFederation(GetFederationReq) returns (Federation); - rpc UserGetFederation(authorization.InternalIAM) returns (Federation); - - rpc UserGetAssetList(base.Empty) returns (AssetList); - rpc AdminGetAssetList(base.Empty) returns (AssetList); - rpc GetAsset(GetAssetReq) returns (Asset); - - rpc UserInitWallet(UserInitWalletReq) returns (base.StatusRes); - rpc UserGetWalletList(authorization.InternalIAM) returns (WalletList); - rpc UserTransferAsset(UserTransferAssetReq) returns (UserTransferRes); - - rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); - - rpc SaleGetToken(SaleGetTokenReq) returns (SaleGetTokenRes); - rpc SaleConfirm(SaleConfirmReq) returns (SaleConfirmRes); - rpc AdminManualSaleDeposit(SaleManualReq) returns (base.StatusRes); - - // BNPL - rpc GetBNPLList(base.Empty) returns (BNPLList); - rpc GetBNPLInfo(base.IdReq) returns (BNPLInfo); - rpc GetUserBNPLInfo(GetUserBNPLInfoReq) returns (UserBNPLResp); - rpc SubmitBNPLForm(UserBNPLReq) returns (base.StatusRes); - rpc UpdateBNPL(UserBNPLReq) returns (base.StatusRes); - rpc CancleBNPL(authorization.IdReqWithIAM) returns (base.StatusRes); - - // Redeem Token - rpc CalculateRedeemToken(RedeemTokenReq) returns (CalculateRedeemTokenRes); - rpc RedeemToken(RedeemTokenReq) returns (base.StatusRes); - rpc RedeemTokenList(authorization.ReqWithIAMAndParams) returns (RedeemTokenResList); -} diff --git a/pb/wallet/v1/wallet_message.proto b/pb/wallet/v1/wallet_message.proto deleted file mode 100644 index 40a7738..0000000 --- a/pb/wallet/v1/wallet_message.proto +++ /dev/null @@ -1,379 +0,0 @@ -syntax = "proto3"; - -package wallet; - -import "authorization_message.proto"; -import "base_message.proto"; - -/* - INTERNAL DATA -*/ - -message InternalTransactionData { - int64 transaction_id = 1; -} - -/* - Federation -*/ - -message Federation { - int64 id = 1; - int64 user_id = 2; - string ed_public = 3; - string ed_public_hash = 4; - int32 status = 5; - string created_at = 6; - string system_wallet_address = 7; -} - -message GetFederationReq { - optional int64 federation_id = 1; - optional int64 user_id = 2; - optional string ed_public = 3; - optional string ed_public_hash = 4; -} - -/* - Asset -*/ - -message AssetList { - repeated Asset list = 1; -} - -message Asset { - int64 id = 1; - string name = 2; - string code = 3; - string issuer = 4; - int32 decimal = 5; - double limit_amount = 6; - string anchor = 7; - string image = 8; - string description = 9; - string url = 10; - int64 buy_unit_price = 11; - int64 sell_unit_price = 12; - double buy_min_amount = 13; - double buy_max_amount = 14; - double sell_min_amount = 15; - double sell_max_amount = 16; - double buy_fee_amount = 17; - int64 buy_fee_price = 18; - double sell_fee_amount = 19; - int64 sell_fee_price = 20; - double withdraw_min_amount = 21; - double withdraw_max_amount = 22; - bool is_active = 23; - bool can_buy = 24; - bool can_sell = 25; - bool can_deposit = 26; - bool can_withdraw = 27; - string updated_at = 28; - string created_at = 29; - repeated string images = 30; - int32 status = 31; - AssetMeta meta = 32; -} - -message GetAssetReq { - optional int64 id = 1; - optional string code = 3; -} - -message AssetMeta { - PropertyMeta property = 1; -} - -message PropertyMeta { - string description = 1; - string builder_description = 2; - string white_paper_url = 3; - string expert_report_url = 4; - string project_catalog_url = 5; - string ownership_document_url = 6; - double total_area_meters = 7; - int32 total_unit_count = 8; - string usage_type = 9; - string completion_date = 10; - string user_agreement_url = 11; -} - -/* - BNPL - not really but close name -*/ - -// enum BNPLPgState { -// -// } - -message GetUserBNPLInfoReq { - authorization.InternalIAM iam = 1; - base.IdReq id = 2; -} - -enum BNPLPaymentsStatus { - PENDING = 0; - PAYED = 1; - OVER_DUE = 2; - NOT_STARTED = 3; - NOT_YET_DUE = 4; - CANCLED = 5; -} -message BNPLPayments { - uint64 id = 1; - double amount = 2; - double amount_irr = 7; - bool is_paied = 3; - string due_date = 4; - string settlement_date = 5; - BNPLPaymentsStatus status = 6; -} - -message UserBNPLResp { - uint64 id = 1; - BNPLInfo bnpl = 2; - int32 current_step = 3; - optional float amount = 4; - optional PaymentPeriodInfo payment_period = 5; - optional bool accepted_terms = 6; - repeated BNPLPayments payments = 7; - optional string employee_id = 8; - optional authorization.Company company = 10; - authorization.InternalIAM iam = 11; - optional string updated_at = 12; - optional string created_at = 13; - Asset selected_asset = 14; -} - -message UserBNPLReq { - uint64 id = 1; - int64 bnpl_id = 2; - authorization.InternalIAM iam = 6; - optional string created_at = 3; - optional string employee_id = 4; - optional int64 company_id = 5; - optional float amount = 7; - optional PaymentPeriodInfo payment_period = 8; - optional bool has_agreed_contract = 9; - optional int32 current_step = 10; //Can be useful for admin to change the current step - optional int64 asset_id = 11; -} - -message PaymentPeriodInfo { - uint64 id = 1; - uint64 period = 2; - bool enabled = 3; -} -message BNPLInfo { - uint64 id = 1; - string description = 3; - repeated Asset supported_assets = 2; - optional bool enabled = 4; - float amount_start = 5; - float amount_end = 6; - float amount_steps = 7; - repeated PaymentPeriodInfo payment_period = 8; - repeated authorization.Company possible_companies = 11; - string updated_at = 12; - string created_at = 13; - string expires_at = 14; -} -message BNPLList { - repeated BNPLInfo list = 1; -} - -/* - Wallet -*/ - -message WalletList { - repeated Wallet list = 1; -} - -message Wallet { - int64 id = 1; - int64 user_id = 2; - int64 asset_id = 3; - Asset asset_info = 4; - int64 federation_id = 5; - Federation federation_info = 6; - double balance = 7; - string updated_at = 8; - string created_at = 9; - string wallet_code = 10; -} - -message UserInitWalletReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; -} - -/* - Transaction -*/ - -message TransactionList { - repeated Transaction list = 1; - int64 total_count = 2; -} - -enum TransactionType { - Unknown = 0; - Buy = 1; - Sell = 2; - Transfer = 3; - Redeem = 4; -} -enum TransactionStatus { - Undetermined = 0; - Failed = -10; - Suspended = -9; - Created = -1; - Pending = 1; - Successful = 2; -} - -message Transaction { - int64 id = 1; - int64 asset_id = 2; - // Asset asset_info = 3; //Causing network overloading - optional int64 from_user_id = 4; - optional authorization.UserIdentityBasic from_user_info = 5; - optional int64 from_federation_id = 6; - optional Federation from_federation_info = 7; - optional int64 to_user_id = 8; - optional authorization.UserIdentityBasic to_user_info = 9; - optional int64 to_federation_id = 10; - optional Federation to_federation_info = 11; - double amount = 12; - TransactionStatus status = 13; - TransactionType type = 14; - string updated_at = 15; - string created_at = 16; - string tracking_code = 17; -} - -message UserGetTransactionListReq { - authorization.InternalIAM iam = 1; - optional int32 page_index = 2; - optional int32 page_size = 3; - optional int64 id = 4; - optional int64 asset_id = 5; - optional int64 from_user_id = 6; - optional int64 from_federation_id = 7; - optional int64 to_user_id = 8; - optional int64 to_federation_id = 9; - optional double amount_from = 10; - optional double amount_to = 11; - optional TransactionStatus status = 12; - optional TransactionType type = 13; - optional string tracking_code = 14; -} -/* - Buy -*/ - -message UserBuyAssetReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; -} - -/* - Sell -*/ - -/* - Transfer -*/ - -message UserTransferAssetReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; - string to_wallet_address = 4; - string to_wallet_memo = 5; -} - -message UserTransferRes { - int64 transaction_id = 1; - string tracking_code = 2; -} - -// represent the information regarding the sale of the token -message SaleGetTokenReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; -} - -// represent the information regarding the ipg gateway -message SaleGetTokenRes { - string url = 1; - int64 unit_price = 2; - int64 total_price = 3; - double amount = 4; - string asset = 5; -} - -message SaleConfirmReq { - string RefId = 1; - string ResCode = 2; - string SaleOrderId = 3; - string SaleReferenceId = 4; - string CardHolderInfo = 5; - string CardHolderPan = 6; - string FinalAmount = 7; -} - -message SaleConfirmRes { - string receiptLink = 1; -} - -message SaleManualReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; - string paid_at = 4; - string rrn = 5; - string national_id = 6; -} - -/* - Redeem Token -*/ -message RedeemTokenReq { - authorization.InternalIAM iam = 1; - int64 asset_id = 2; - uint64 bank_info_id = 3; - double amount = 4; - optional string tfa_code = 5; -} -message CalculateRedeemTokenRes { - Asset asset = 1; - double free_balance = 2; - double total_balance = 3; - double request_amount = 4; - double profit_capital = 5; - double user_capital = 6; - optional authorization.BankInfo bank_info = 7; -} -message RedeemTokenRes { - uint64 id = 1; - int64 user_id = 2; - Asset asset = 3; - double free_balance = 4; - double total_balance = 5; - double request_amount = 6; - string created_at = 7; - bool is_paied = 8; - // receipt.Receipt receipt = 8; - double calculated_profit = 9; - optional authorization.BankInfo bank_info = 10; - optional string receipt = 11; -} -message RedeemTokenResList { - repeated RedeemTokenRes list = 1; -} From b7fe72b613a8b1626d7e5db8ce5b2de65dd6a2b8 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 12:15:04 +0330 Subject: [PATCH 004/293] v2: new version added for easier deployment and ci/cd Signed-off-by: nfel --- .gitignore | 2 + auth/v1/msg.proto | 209 ++++++++++++++++++++++- auth/v1/srv.proto | 38 +++++ base/v1/msg.proto | 2 - buf.gen.yaml | 45 +++-- buf.yaml | 5 +- template.buf.gen.yaml | 24 +++ wallet/v1/msg.proto | 379 ++++++++++++++++++++++++++++++++++++++++++ wallet/v1/srv.proto | 42 +++++ 9 files changed, 726 insertions(+), 20 deletions(-) create mode 100644 auth/v1/srv.proto create mode 100644 template.buf.gen.yaml create mode 100644 wallet/v1/msg.proto create mode 100644 wallet/v1/srv.proto diff --git a/.gitignore b/.gitignore index 485dee6..2b6839d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ .idea +gen/go +stub diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 1a05e2e..270e4d5 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -1,11 +1,210 @@ syntax = "proto3"; package auth.v1; -// option go_package="auth/v1"; -import "base/v1/msg.proto"; +/* + Internal +*/ -message IdReq { - int64 id = 1; - base.v1.Empty empty=2; +message InternalInitRoutesReq { + repeated InternalRoute routes = 1; +} +message InternalRoute { + string path = 1; + string method = 2; + string handler = 3; +} + +/* Role Permission */ +message Role { + int64 id = 1; + string title = 2; + string key = 3; + string type = 4; +} +message Permission { + int64 id = 1; + string title = 2; + string key = 3; + string route = 4; + string method = 5; +} + +message PermissionList { + repeated Permission list = 1; +} + +/* + UserSendOtp +*/ + +message UserSendOtpReq { + string mobile = 1; +} +message UserSendOtpRes { + int64 expired_at = 1; +} + +/* + UserLogin +*/ + +message UserLoginReq { + string mobile = 1; + string otp_code = 2; +} +message UserRefreshTokenReq { + string refresh_token = 1; +} +message UserAccessTokenRes { + string access_token = 1; + int64 access_expired_at = 2; + string refresh_token = 3; +} + +/* + IAM +*/ + +message CheckIAMReq { + string access_token = 1; + string route = 2; + string method = 3; +} + +message InternalIAM { + User user = 1; + IdentityBasic identity = 2; + repeated Company company = 3; +} +message IdReqWithIAM { + int64 id = 1; + InternalIAM iam = 2; +} +message ReqWithIAMAndParams { + InternalIAM iam = 1; + optional bool accepted = 2; +} + +/* + User +*/ +message GetUserReq { + int64 user_id = 1; + string national_id = 2; +} + +message User { + int64 id = 1; + string national_id = 2; + string mobile = 3; + string email = 4; + repeated int64 roles = 5; +} + +message Company { + int64 id = 1; + string name = 2; + string name_fa = 3; + string location = 4; + bool can_provide_bnpl = 5; +} + +message Identity { + string national_id = 1; + string national_serial_id = 2; + string first_name = 3; + string first_name_en = 4; + string last_name = 5; + string last_name_en = 6; + string father_name = 7; + int64 birthdate = 8; + string birthdate_time = 9; + bool is_alive = 10; + int32 gender = 11; + string serial_number = 12; + string serial_type = 13; + string shenasname_number = 14; + string shenasname_seri = 15; + string shenasname_serial = 16; + int32 status = 17; + string updated_at = 18; + string created_at = 19; + string email = 20; + string mobile = 21; + optional Company company = 22; + optional string employee_info = 23; +} + +message IdentityBasic { + string first_name = 1; + string last_name = 2; +} + +message UserIdentityBasic { + int64 id = 1; + string national_id = 2; + string mobile = 3; + string first_name = 4; + string last_name = 5; +} + +message UserUpdateIdentityReq { + InternalIAM iam = 1; + string national_id = 2; + string birthdate = 3; + string email = 4; +} + +message UserUpdateBankInfoReq { + InternalIAM iam = 1; + string deposit_number = 2; + string iban_number = 3; + string card_number = 4; +} + +message BankInfoList { + repeated BankInfo list = 1; +} + +// Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential +enum BankInfoStatusEnum { + FAIL_VERIFY = 0; + VERIFIED = 1; + DOES_NOT_MATCH = 2; +} +message BankInfo { + int64 id = 1; + string deposit_number = 2; + string iban_number = 3; + string card_number = 4; + BankInfoStatusEnum status = 5; + string updated_at = 6; + string created_at = 7; +} + +/* Two Factor Authentication */ +message IdReqWithIAMAndTFA { + int64 id = 1; + InternalIAM iam = 2; + string tfa_code = 3; +} +message TFAReq { + InternalIAM iam = 1; + optional string mobile = 2; + optional string email = 3; + optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal +} + +// Two Factor Authentication Exchange Response +message TFAExRes { + InternalIAM iam = 1; + string secret = 2; + string qrcode_base64 = 3; +} +message CheckTFAReq { + InternalIAM iam = 1; + string code = 2; + optional string algorithm = 3; + optional string reason = 4; // Can be later used as a lookup } diff --git a/auth/v1/srv.proto b/auth/v1/srv.proto new file mode 100644 index 0000000..71f11de --- /dev/null +++ b/auth/v1/srv.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; + +package auth.v1; + +import "auth/v1/msg.proto"; +import "base/v1/msg.proto"; + +service AuthorizationService { + rpc InternalAuthorizationDeleteCache(base.v1.Empty) returns (base.v1.StatusRes); + rpc InternalInitRoutes(InternalInitRoutesReq) returns (base.v1.StatusRes) {} + rpc InternalGetUserIdentityBasic(GetUserReq) returns (UserIdentityBasic) {} + rpc InternalGetUserIAM(GetUserReq) returns (InternalIAM) {} + rpc CheckIAM(CheckIAMReq) returns (InternalIAM) {} + + rpc UserLoginSendOTP(UserSendOtpReq) returns (UserSendOtpRes) {} + rpc UserLoginWithOTP(UserLoginReq) returns (UserAccessTokenRes) {} + rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq) + returns (UserAccessTokenRes) {} + + rpc UserGetUserPermission(InternalIAM) returns (PermissionList) {} + + rpc UserGetIdentity(InternalIAM) returns (Identity) {} + rpc UserUpdateIdentity(UserUpdateIdentityReq) returns (base.v1.StatusRes) {} + + rpc UserGetBankInfoList(ReqWithIAMAndParams) returns (BankInfoList) {} + rpc UserUpdateBankInfo(UserUpdateBankInfoReq) returns (base.v1.StatusRes) {} + rpc UserRemoveBankInfo(IdReqWithIAM) returns (base.v1.StatusRes) {} + + rpc GetUser(GetUserReq) returns (User) {} + + // Two Factor Authentication + // For now it's only SMS-OTP - later will be Email-OTP or other methods can be + // added For HMAC-OTP there won't be a need to call this api + rpc SendTFAReq(TFAReq) returns (base.v1.StatusRes) {} + // For HMAC-OTP an initialization step must be added to exchange keys + rpc InitTFAReq(InternalIAM) returns (TFAExRes) {} + rpc CheckTFACode(CheckTFAReq) returns (base.v1.StatusRes) {} +} diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 150bd15..9dc85cd 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -2,8 +2,6 @@ syntax = "proto3"; package base.v1; -// option go_package = "base/v1"; - message Empty {} message StatusRes { diff --git a/buf.gen.yaml b/buf.gen.yaml index 322b59e..5746cee 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -5,20 +5,41 @@ managed: enabled: true override: - file_option: go_package_prefix - value: ${package_name} + # FIXME: Change this to you're go.mod package name + value: github.com/nfel plugins: + # NOTE: golang + - remote: buf.build/grpc/go + # NOTE: grpc # go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - # -remote buf.build/grpc/go - - local: protoc-gen-go-grpc - out: gen/go - opt: paths=source_relative + # - local: protoc-gen-go-grpc + out: stub/go + # NOTE: PB files # go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - # -remote: buf.build/protocolbuffers/go:v1.31.0 - - local: protoc-gen-go - out: gen/go - opt: paths=source_relative + # - local: protoc-gen-go + - remote: buf.build/protocolbuffers/go:v1.30.0 + out: stub/go + # NOTE: doc + - local: protoc-gen-doc + opt: html,index.html,source_relative + out: stub/doc + # NOTE: Gateway + # - remote: buf.build/grpc-ecosystem/gateway:v2.16.2 + - local: protoc-gen-grpc-gateway + out: stub/go + # NOTE: SWAGGER json files + # - remote: buf.build/grpc-ecosystem/openapiv2:v2.16.2 + - local: protoc-gen-openapiv2 + opt: import_prefix=github.com/nfel + out: stub/go + # - local: protoc-gen-go-gin + # opt: + # # - plugin=handler + # # - plugin=service + # # - plugin=mix + # out: stub/go inputs: - # - directory: ./ - - git_repo: ssh://git@5.34.204.11/Kahroba/proto - branch: v2 + - directory: ./ + # - git_repo: ssh://git@5.34.204.11/Kahroba/proto + # branch: v2 diff --git a/buf.yaml b/buf.yaml index 948e927..5c77bb7 100644 --- a/buf.yaml +++ b/buf.yaml @@ -6,6 +6,9 @@ breaking: - PACKAGE lint: use: - - STANDARD + - BASIC + - PACKAGE_SAME_GO_PACKAGE + - PACKAGE_NO_IMPORT_CYCLE + - IMPORT_USED modules: - path: ./ diff --git a/template.buf.gen.yaml b/template.buf.gen.yaml new file mode 100644 index 0000000..ad3cf25 --- /dev/null +++ b/template.buf.gen.yaml @@ -0,0 +1,24 @@ +--- +version: v2 +clean: true +managed: + enabled: true + override: + - file_option: go_package_prefix + value: +plugins: + - remote: buf.build/grpc/go + out: stub/go + - remote: buf.build/protocolbuffers/go:v1.30.0 + out: stub/go + - local: protoc-gen-doc + opt: html,index.html,source_relative + out: stub/doc + - local: protoc-gen-grpc-gateway + out: stub/go + - local: protoc-gen-openapiv2 + out: stub/go +inputs: + - git_repo: ssh://git@5.34.204.11/Kahroba/proto + branch: v2 + diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto new file mode 100644 index 0000000..cbf60d3 --- /dev/null +++ b/wallet/v1/msg.proto @@ -0,0 +1,379 @@ +syntax = "proto3"; + +package wallet.v1; + +import "auth/v1/msg.proto"; +import "base/v1/msg.proto"; + +/* + INTERNAL DATA +*/ + +message InternalTransactionData { + int64 transaction_id = 1; +} + +/* + Federation +*/ + +message Federation { + int64 id = 1; + int64 user_id = 2; + string ed_public = 3; + string ed_public_hash = 4; + int32 status = 5; + string created_at = 6; + string system_wallet_address = 7; +} + +message GetFederationReq { + optional int64 federation_id = 1; + optional int64 user_id = 2; + optional string ed_public = 3; + optional string ed_public_hash = 4; +} + +/* + Asset +*/ + +message AssetList { + repeated Asset list = 1; +} + +message Asset { + int64 id = 1; + string name = 2; + string code = 3; + string issuer = 4; + int32 decimal = 5; + double limit_amount = 6; + string anchor = 7; + string image = 8; + string description = 9; + string url = 10; + int64 buy_unit_price = 11; + int64 sell_unit_price = 12; + double buy_min_amount = 13; + double buy_max_amount = 14; + double sell_min_amount = 15; + double sell_max_amount = 16; + double buy_fee_amount = 17; + int64 buy_fee_price = 18; + double sell_fee_amount = 19; + int64 sell_fee_price = 20; + double withdraw_min_amount = 21; + double withdraw_max_amount = 22; + bool is_active = 23; + bool can_buy = 24; + bool can_sell = 25; + bool can_deposit = 26; + bool can_withdraw = 27; + string updated_at = 28; + string created_at = 29; + repeated string images = 30; + int32 status = 31; + AssetMeta meta = 32; +} + +message GetAssetReq { + optional int64 id = 1; + optional string code = 3; +} + +message AssetMeta { + PropertyMeta property = 1; +} + +message PropertyMeta { + string description = 1; + string builder_description = 2; + string white_paper_url = 3; + string expert_report_url = 4; + string project_catalog_url = 5; + string ownership_document_url = 6; + double total_area_meters = 7; + int32 total_unit_count = 8; + string usage_type = 9; + string completion_date = 10; + string user_agreement_url = 11; +} + +/* + BNPL - not really but close name +*/ + +// enum BNPLPgState { +// +// } + +message GetUserBNPLInfoReq { + auth.v1.InternalIAM iam = 1; + base.v1.IdReq id = 2; +} + +enum BNPLPaymentsStatus { + PENDING_PAYMENT = 0; + PAYED = 1; + OVER_DUE = 2; + NOT_STARTED = 3; + NOT_YET_DUE = 4; + CANCELED = 5; +} +message BNPLPayments { + uint64 id = 1; + double amount = 2; + double amount_irr = 7; + bool is_paied = 3; + string due_date = 4; + string settlement_date = 5; + BNPLPaymentsStatus status = 6; +} + +message UserBNPLResp { + uint64 id = 1; + BNPLInfo bnpl = 2; + int32 current_step = 3; + optional float amount = 4; + optional PaymentPeriodInfo payment_period = 5; + optional bool accepted_terms = 6; + repeated BNPLPayments payments = 7; + optional string employee_id = 8; + optional auth.v1.Company company = 10; + auth.v1.InternalIAM iam = 11; + optional string updated_at = 12; + optional string created_at = 13; + Asset selected_asset = 14; +} + +message UserBNPLReq { + uint64 id = 1; + int64 bnpl_id = 2; + auth.v1.InternalIAM iam = 6; + optional string created_at = 3; + optional string employee_id = 4; + optional int64 company_id = 5; + optional float amount = 7; + optional PaymentPeriodInfo payment_period = 8; + optional bool has_agreed_contract = 9; + optional int32 current_step = 10; //Can be useful for admin to change the current step + optional int64 asset_id = 11; +} + +message PaymentPeriodInfo { + uint64 id = 1; + uint64 period = 2; + bool enabled = 3; +} +message BNPLInfo { + uint64 id = 1; + string description = 3; + repeated Asset supported_assets = 2; + optional bool enabled = 4; + float amount_start = 5; + float amount_end = 6; + float amount_steps = 7; + repeated PaymentPeriodInfo payment_period = 8; + repeated auth.v1.Company possible_companies = 11; + string updated_at = 12; + string created_at = 13; + string expires_at = 14; +} +message BNPLList { + repeated BNPLInfo list = 1; +} + +/* + Wallet +*/ + +message WalletList { + repeated Wallet list = 1; +} + +message Wallet { + int64 id = 1; + int64 user_id = 2; + int64 asset_id = 3; + Asset asset_info = 4; + int64 federation_id = 5; + Federation federation_info = 6; + double balance = 7; + string updated_at = 8; + string created_at = 9; + string wallet_code = 10; +} + +message UserInitWalletReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; +} + +/* + Transaction +*/ + +message TransactionList { + repeated Transaction list = 1; + int64 total_count = 2; +} + +enum TransactionType { + UNKNOWN = 0; + BUY = 1; + SELL = 2; + TRANSFER = 3; + REDEEM = 4; +} +enum TransactionStatus { + UNDETERMINED = 0; + FAILED = -10; + SUSPENDED = -9; + CREATED = -1; + PENDING_TRX = 1; + SUCCESSFUL = 2; +} + +message Transaction { + int64 id = 1; + int64 asset_id = 2; + // Asset asset_info = 3; //Causing network overloading + optional int64 from_user_id = 4; + optional auth.v1.UserIdentityBasic from_user_info = 5; + optional int64 from_federation_id = 6; + optional Federation from_federation_info = 7; + optional int64 to_user_id = 8; + optional auth.v1.UserIdentityBasic to_user_info = 9; + optional int64 to_federation_id = 10; + optional Federation to_federation_info = 11; + double amount = 12; + TransactionStatus status = 13; + TransactionType type = 14; + string updated_at = 15; + string created_at = 16; + string tracking_code = 17; +} + +message UserGetTransactionListReq { + auth.v1.InternalIAM iam = 1; + optional int32 page_index = 2; + optional int32 page_size = 3; + optional int64 id = 4; + optional int64 asset_id = 5; + optional int64 from_user_id = 6; + optional int64 from_federation_id = 7; + optional int64 to_user_id = 8; + optional int64 to_federation_id = 9; + optional double amount_from = 10; + optional double amount_to = 11; + optional TransactionStatus status = 12; + optional TransactionType type = 13; + optional string tracking_code = 14; +} +/* + Buy +*/ + +message UserBuyAssetReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; +} + +/* + Sell +*/ + +/* + Transfer +*/ + +message UserTransferAssetReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; + string to_wallet_address = 4; + string to_wallet_memo = 5; +} + +message UserTransferRes { + int64 transaction_id = 1; + string tracking_code = 2; +} + +// represent the information regarding the sale of the token +message SaleGetTokenReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; +} + +// represent the information regarding the ipg gateway +message SaleGetTokenRes { + string url = 1; + int64 unit_price = 2; + int64 total_price = 3; + double amount = 4; + string asset = 5; +} + +message SaleConfirmReq { + string ref_id = 1; + string res_code = 2; + string sale_order_id = 3; + string sale_reference_id = 4; + string card_holder_info = 5; + string card_holder_pan = 6; + string final_amount = 7; +} + +message SaleConfirmRes { + string receipt_link = 1; +} + +message SaleManualReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; + string paid_at = 4; + string rrn = 5; + string national_id = 6; +} + +/* + Redeem Token +*/ +message RedeemTokenReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + uint64 bank_info_id = 3; + double amount = 4; + optional string tfa_code = 5; +} +message CalculateRedeemTokenRes { + Asset asset = 1; + double free_balance = 2; + double total_balance = 3; + double request_amount = 4; + double profit_capital = 5; + double user_capital = 6; + optional auth.v1.BankInfo bank_info = 7; +} +message RedeemTokenRes { + uint64 id = 1; + int64 user_id = 2; + Asset asset = 3; + double free_balance = 4; + double total_balance = 5; + double request_amount = 6; + string created_at = 7; + bool is_paied = 8; + // receipt.Receipt receipt = 8; + double calculated_profit = 9; + optional auth.v1.BankInfo bank_info = 10; + optional string receipt = 11; +} +message RedeemTokenResList { + repeated RedeemTokenRes list = 1; +} diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto new file mode 100644 index 0000000..340d497 --- /dev/null +++ b/wallet/v1/srv.proto @@ -0,0 +1,42 @@ +syntax = "proto3"; + +package wallet.v1; + +import "auth/v1/msg.proto"; +import "base/v1/msg.proto"; +import "wallet/v1/msg.proto"; + +service WalletService { + rpc InternalWalletDeleteCache(base.v1.Empty) returns (base.v1.StatusRes); + rpc InternalCreateFederation(auth.v1.InternalIAM) returns (base.v1.StatusRes); + + rpc AdminGetFederation(GetFederationReq) returns (Federation); + rpc UserGetFederation(auth.v1.InternalIAM) returns (Federation); + + rpc UserGetAssetList(base.v1.Empty) returns (AssetList); + rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); + rpc GetAsset(GetAssetReq) returns (Asset); + + rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes); + rpc UserGetWalletList(auth.v1.InternalIAM) returns (WalletList); + rpc UserTransferAsset(UserTransferAssetReq) returns (UserTransferRes); + + rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); + + rpc SaleGetToken(SaleGetTokenReq) returns (SaleGetTokenRes); + rpc SaleConfirm(SaleConfirmReq) returns (SaleConfirmRes); + rpc AdminManualSaleDeposit(SaleManualReq) returns (base.v1.StatusRes); + + // BNPL + rpc GetBNPLList(base.v1.Empty) returns (BNPLList); + rpc GetBNPLInfo(base.v1.IdReq) returns (BNPLInfo); + rpc GetUserBNPLInfo(GetUserBNPLInfoReq) returns (UserBNPLResp); + rpc SubmitBNPLForm(UserBNPLReq) returns (base.v1.StatusRes); + rpc UpdateBNPL(UserBNPLReq) returns (base.v1.StatusRes); + rpc CancleBNPL(auth.v1.IdReqWithIAM) returns (base.v1.StatusRes); + + // Redeem Token + rpc CalculateRedeemToken(RedeemTokenReq) returns (CalculateRedeemTokenRes); + rpc RedeemToken(RedeemTokenReq) returns (base.v1.StatusRes); + rpc RedeemTokenList(auth.v1.ReqWithIAMAndParams) returns (RedeemTokenResList); +} From caa69574dd77d5c0d328a7cd8fde7a8375d39f84 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 14:22:46 +0330 Subject: [PATCH 005/293] v2: test ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 17 ++++++++++++++++ .gitignore | 1 + buf.gen.yaml | 38 ++++++++++++++++++++++-------------- 3 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 .gitea/workflows/buf-ci.yaml diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml new file mode 100644 index 0000000..3cd1672 --- /dev/null +++ b/.gitea/workflows/buf-ci.yaml @@ -0,0 +1,17 @@ +name: Buf CI +on: + push: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + delete: +permissions: + contents: read + pull-requests: write +jobs: + buf: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: bufbuild/buf-action@v1 + with: + input: buf generate diff --git a/.gitignore b/.gitignore index 2b6839d..38a0176 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea gen/go stub +node_modules diff --git a/buf.gen.yaml b/buf.gen.yaml index 5746cee..8f730c9 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -20,26 +20,34 @@ plugins: - remote: buf.build/protocolbuffers/go:v1.30.0 out: stub/go # NOTE: doc - - local: protoc-gen-doc - opt: html,index.html,source_relative - out: stub/doc - # NOTE: Gateway - # - remote: buf.build/grpc-ecosystem/gateway:v2.16.2 - - local: protoc-gen-grpc-gateway - out: stub/go - # NOTE: SWAGGER json files - # - remote: buf.build/grpc-ecosystem/openapiv2:v2.16.2 - - local: protoc-gen-openapiv2 - opt: import_prefix=github.com/nfel - out: stub/go + # - local: protoc-gen-doc + # opt: html,index.html,source_relative + # out: stub/doc + # # NOTE: Gateway + # # - remote: buf.build/grpc-ecosystem/gateway:v2.16.2 + # - local: protoc-gen-grpc-gateway + # out: stub/go + # # NOTE: SWAGGER json files + # # - remote: buf.build/grpc-ecosystem/openapiv2:v2.16.2 + # - local: protoc-gen-openapiv2 + # opt: import_prefix=github.com/nfel + # out: stub/go # - local: protoc-gen-go-gin # opt: # # - plugin=handler # # - plugin=service # # - plugin=mix # out: stub/go + # NOTE: Typescript + - remote: buf.build/bufbuild/es:v2.2.2 + # opt: import_prefix=github.com/nfel + out: stub/ts + + # - local: protobuf-ts + # # opt: import_prefix=github.com/nfel + # out: stub/ts inputs: - - directory: ./ - # - git_repo: ssh://git@5.34.204.11/Kahroba/proto - # branch: v2 + # - directory: ./ + - git_repo: ssh://git@5.34.204.11/Kahroba/proto + branch: v2 From e1776d0c308fad41cdcc434dc5b73dae3ada1dbe Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 14:26:58 +0330 Subject: [PATCH 006/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 3cd1672..0701e9e 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -11,7 +11,7 @@ jobs: buf: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - uses: bufbuild/buf-action@v1 with: - input: buf generate + setup_only: true + - run: buf build --error-format github-actions From 9cf66797da892587e858706d06c7ac7e9db6ebf4 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 14:46:22 +0330 Subject: [PATCH 007/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 0701e9e..47705bb 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -11,7 +11,15 @@ jobs: buf: runs-on: ubuntu-latest steps: + - name: Checkout Git + uses: actions/checkout@v4 + with: + token: ${{ secrets.PROD_REG_TOKEN }} + path: ./main + submodules: recursive - uses: bufbuild/buf-action@v1 with: + token: 3f12fe38656b6e6423daad49945922b292322862cac00f4a922f68ea44e44c00 setup_only: true + pr_comment: true - run: buf build --error-format github-actions From cc1e40921e942203b7f8563c03b5245085f5ccb5 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 14:48:02 +0330 Subject: [PATCH 008/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 47705bb..283c22e 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -17,9 +17,12 @@ jobs: token: ${{ secrets.PROD_REG_TOKEN }} path: ./main submodules: recursive - - uses: bufbuild/buf-action@v1 - with: - token: 3f12fe38656b6e6423daad49945922b292322862cac00f4a922f68ea44e44c00 - setup_only: true - pr_comment: true + # - uses: bufbuild/buf-action@v1 + # with: + # token: 3f12fe38656b6e6423daad49945922b292322862cac00f4a922f68ea44e44c00 + # setup_only: true + # pr_comment: true + - uses: bufbuild/buf-setup-action@v1.47.2 + # Ensure that `buf` is installed + - run: buf --version - run: buf build --error-format github-actions From 0b09b24301dbf4222cbf256e33db5a28e8a46c79 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 14:50:19 +0330 Subject: [PATCH 009/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 283c22e..310f550 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -25,4 +25,5 @@ jobs: - uses: bufbuild/buf-setup-action@v1.47.2 # Ensure that `buf` is installed - run: buf --version - - run: buf build --error-format github-actions + - run: buf generate + - run: ls -aRhl From 23d67dccfef008899e0ae0d67b8251c873647dae Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 14:51:22 +0330 Subject: [PATCH 010/293] v2: ci Signed-off-by: nfel --- buf.gen.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buf.gen.yaml b/buf.gen.yaml index 8f730c9..4c4fd37 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -47,7 +47,7 @@ plugins: # # opt: import_prefix=github.com/nfel # out: stub/ts inputs: - # - directory: ./ - - git_repo: ssh://git@5.34.204.11/Kahroba/proto - branch: v2 + - directory: ./main + # - git_repo: ssh://git@5.34.204.11/Kahroba/proto + # branch: v2 From e5499c7c0d514213aba8b88b533126f808165ba0 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 14:54:03 +0330 Subject: [PATCH 011/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 2 +- buf.gen.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 310f550..37f8932 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@v4 with: token: ${{ secrets.PROD_REG_TOKEN }} - path: ./main + path: ./ submodules: recursive # - uses: bufbuild/buf-action@v1 # with: diff --git a/buf.gen.yaml b/buf.gen.yaml index 4c4fd37..006c7d7 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -47,7 +47,7 @@ plugins: # # opt: import_prefix=github.com/nfel # out: stub/ts inputs: - - directory: ./main + - directory: ./ # - git_repo: ssh://git@5.34.204.11/Kahroba/proto # branch: v2 From 4e55bb2d27b45299cad92f1646bcb169b59dd3d9 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 15:01:41 +0330 Subject: [PATCH 012/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 37f8932..a0d8c81 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -23,6 +23,11 @@ jobs: # setup_only: true # pr_comment: true - uses: bufbuild/buf-setup-action@v1.47.2 + - uses: actions/setup-go@v5 + with: + go-version: '>=1.17.0' + - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest # Ensure that `buf` is installed - run: buf --version - run: buf generate From 49150af2fa52c1596c6e6c82ca8260d4bb6114ae Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 15:09:26 +0330 Subject: [PATCH 013/293] v2: ci Signed-off-by: nfel --- buf.gen.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/buf.gen.yaml b/buf.gen.yaml index 006c7d7..2b74305 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -9,15 +9,15 @@ managed: value: github.com/nfel plugins: # NOTE: golang - - remote: buf.build/grpc/go + # - remote: buf.build/grpc/go # NOTE: grpc # go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - # - local: protoc-gen-go-grpc + - local: protoc-gen-go-grpc out: stub/go # NOTE: PB files # go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - # - local: protoc-gen-go - - remote: buf.build/protocolbuffers/go:v1.30.0 + - local: protoc-gen-go + # - remote: buf.build/protocolbuffers/go:v1.30.0 out: stub/go # NOTE: doc # - local: protoc-gen-doc @@ -39,9 +39,9 @@ plugins: # # - plugin=mix # out: stub/go # NOTE: Typescript - - remote: buf.build/bufbuild/es:v2.2.2 - # opt: import_prefix=github.com/nfel - out: stub/ts + # - remote: buf.build/bufbuild/es:v2.2.2 + # # opt: import_prefix=github.com/nfel + # out: stub/ts # - local: protobuf-ts # # opt: import_prefix=github.com/nfel From c3eabd4d7664327de7c5a0ba306d002b18a07fb9 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Nov 2024 16:16:48 +0330 Subject: [PATCH 014/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 17 ++++++++--------- .gitignore | 1 + buf.gen.yaml | 3 +++ package.json | 7 +++++++ 4 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 package.json diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index a0d8c81..ab48d06 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -11,24 +11,23 @@ jobs: buf: runs-on: ubuntu-latest steps: - - name: Checkout Git - uses: actions/checkout@v4 - with: - token: ${{ secrets.PROD_REG_TOKEN }} - path: ./ - submodules: recursive # - uses: bufbuild/buf-action@v1 # with: # token: 3f12fe38656b6e6423daad49945922b292322862cac00f4a922f68ea44e44c00 # setup_only: true # pr_comment: true - - uses: bufbuild/buf-setup-action@v1.47.2 - uses: actions/setup-go@v5 with: - go-version: '>=1.17.0' + go-version: '>=1.18.0' + - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - # Ensure that `buf` is installed + - run: npm npm install @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version + - name: Checkout Git + uses: actions/checkout@v4 + with: + token: ${{ secrets.PROD_REG_TOKEN }} + path: ./ - run: buf generate - run: ls -aRhl diff --git a/.gitignore b/.gitignore index 38a0176..f18fa72 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ gen/go stub node_modules +yarn.lock diff --git a/buf.gen.yaml b/buf.gen.yaml index 2b74305..8462320 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -42,6 +42,9 @@ plugins: # - remote: buf.build/bufbuild/es:v2.2.2 # # opt: import_prefix=github.com/nfel # out: stub/ts + - local: protoc-gen-es + out: stub/ts + opt: target=ts # - local: protobuf-ts # # opt: import_prefix=github.com/nfel diff --git a/package.json b/package.json new file mode 100644 index 0000000..b9a3d98 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "devDependencies": { + "@bufbuild/buf": "^1.47.2", + "@bufbuild/protobuf": "^2.2.2", + "@bufbuild/protoc-gen-es": "^2.2.2" + } +} From bddc2d2bdde651f9a0569c868bafe427553c5ded Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 19 Nov 2024 09:49:21 +0330 Subject: [PATCH 015/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index ab48d06..1e2b449 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -22,7 +22,7 @@ jobs: - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm npm install @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf + - run: npm install @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - name: Checkout Git uses: actions/checkout@v4 From 23c65dcd0466cafff091bf7e3b45122ee539f555 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 19 Nov 2024 10:01:46 +0330 Subject: [PATCH 016/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 1e2b449..000b7d3 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -29,5 +29,5 @@ jobs: with: token: ${{ secrets.PROD_REG_TOKEN }} path: ./ - - run: buf generate + - run: npx buf generate - run: ls -aRhl From f22f9faf4ba01f588424b85007d4ce42a037d231 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 19 Nov 2024 10:12:39 +0330 Subject: [PATCH 017/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 000b7d3..fdd2c01 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -11,23 +11,15 @@ jobs: buf: runs-on: ubuntu-latest steps: - # - uses: bufbuild/buf-action@v1 - # with: - # token: 3f12fe38656b6e6423daad49945922b292322862cac00f4a922f68ea44e44c00 - # setup_only: true - # pr_comment: true - uses: actions/setup-go@v5 - with: - go-version: '>=1.18.0' - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - run: npm install @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - - name: Checkout Git - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: token: ${{ secrets.PROD_REG_TOKEN }} path: ./ - - run: npx buf generate - - run: ls -aRhl + - run: npx buf generate || cat -A /root/.npm/_logs/*.log + From c54adabf5e150c24d391661b1a65d96a9fe4096f Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 19 Nov 2024 10:14:39 +0330 Subject: [PATCH 018/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index fdd2c01..2cf9731 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -1,3 +1,4 @@ +--- name: Buf CI on: push: @@ -12,6 +13,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/setup-go@v5 + with: + go-version: '>=1.18.0' - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest @@ -21,5 +24,5 @@ jobs: with: token: ${{ secrets.PROD_REG_TOKEN }} path: ./ - - run: npx buf generate || cat -A /root/.npm/_logs/*.log - + - run: npx buf generate && cat -A /root/.npm/_logs/*.log + - run: cat -A /root/.npm/_logs/*.log From 4fa656c614d3a52e97e7e687d6782dd943d10d72 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 19 Nov 2024 10:25:43 +0330 Subject: [PATCH 019/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 2cf9731..6a62327 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -18,11 +18,11 @@ jobs: - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm install @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf + - run: npm install -g @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - uses: actions/checkout@v4 with: token: ${{ secrets.PROD_REG_TOKEN }} path: ./ - - run: npx buf generate && cat -A /root/.npm/_logs/*.log + - run: npx buf generate || cat -A /root/.npm/_logs/*.log - run: cat -A /root/.npm/_logs/*.log From 1c3dcd1cbe52764a214a7a6633554969842d696b Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 20 Nov 2024 16:40:12 +0330 Subject: [PATCH 020/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 55 +++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 6a62327..298f2e7 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -2,9 +2,8 @@ name: Buf CI on: push: - pull_request: - types: [opened, synchronize, reopened, labeled, unlabeled] - delete: + tags: + - v* permissions: contents: read pull-requests: write @@ -12,17 +11,39 @@ jobs: buf: runs-on: ubuntu-latest steps: - - uses: actions/setup-go@v5 - with: - go-version: '>=1.18.0' - - uses: bufbuild/buf-setup-action@v1.47.2 - - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm install -g @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - - run: buf --version - - uses: actions/checkout@v4 - with: - token: ${{ secrets.PROD_REG_TOKEN }} - path: ./ - - run: npx buf generate || cat -A /root/.npm/_logs/*.log - - run: cat -A /root/.npm/_logs/*.log + - run: | + echo ${{ gitea.action }} + echo ${{ gitea.event_name }} + echo ${{ gitea.ref }} + echo ${{ gitea.base_ref }} + echo ${{ gitea.ref_name }} + echo ${{ gitea.repository }} + echo ${{ gitea.server_url }} + echo ${{ gitea.token }} + echo ${{ gitea.api_url }} + echo ${{ gitea }} + echo ${{ gitea.repo }} + + # - uses: actions/setup-go@v5 + # with: + # go-version: '>=1.18.0' + # - uses: bufbuild/buf-setup-action@v1.47.2 + # - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + # - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + # - run: npm install --save-dev + # - run: buf --version + # - uses: actions/checkout@v4 + # with: + # token: ${{ secrets.PROD_REG_TOKEN }} + # path: ./ + # - run: npx buf generate + # - run: | + # mkdir .res + # for out in go ts docs; do + # tar czf .res/${out}.tar.gz ./stub/${out}/ . + # curl --user nfel:${{ secrets.PROD_REG_TOKEN }} \ + # --upload-file .res/${out}.tar.gz \ + # https://git.kahrobatoken.com/api/packages/kahroba/generic/proto/${{ gitea.event }}/${out}.tar.gz + # done + # + # From 04e0fcdc64d447792bf86f803b1f154961a30a64 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 20 Nov 2024 16:41:06 +0330 Subject: [PATCH 021/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 298f2e7..1c97a9b 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -2,8 +2,7 @@ name: Buf CI on: push: - tags: - - v* + permissions: contents: read pull-requests: write From bec347d87151d3439c6485e13a3cdf6174ea2695 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 20 Nov 2024 16:48:18 +0330 Subject: [PATCH 022/293] ci and README badge --- .gitea/workflows/buf-ci.yaml | 50 +++++++++++++++++------------------- .gitignore | 1 + README.md | 3 +++ 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 1c97a9b..a93da2a 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -18,31 +18,29 @@ jobs: echo ${{ gitea.ref_name }} echo ${{ gitea.repository }} echo ${{ gitea.server_url }} - echo ${{ gitea.token }} + echo echo ${{ gitea.api_url }} - echo ${{ gitea }} - echo ${{ gitea.repo }} - # - uses: actions/setup-go@v5 - # with: - # go-version: '>=1.18.0' - # - uses: bufbuild/buf-setup-action@v1.47.2 - # - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - # - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - # - run: npm install --save-dev - # - run: buf --version - # - uses: actions/checkout@v4 - # with: - # token: ${{ secrets.PROD_REG_TOKEN }} - # path: ./ - # - run: npx buf generate - # - run: | - # mkdir .res - # for out in go ts docs; do - # tar czf .res/${out}.tar.gz ./stub/${out}/ . - # curl --user nfel:${{ secrets.PROD_REG_TOKEN }} \ - # --upload-file .res/${out}.tar.gz \ - # https://git.kahrobatoken.com/api/packages/kahroba/generic/proto/${{ gitea.event }}/${out}.tar.gz - # done - # - # + - uses: actions/setup-go@v5 + with: + go-version: '>=1.18.0' + - uses: bufbuild/buf-setup-action@v1.47.2 + - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + - run: npm install --save-dev + - run: buf --version + - uses: actions/checkout@v4 + with: + token: ${{ gitea.token }} + path: ./ + - run: npx buf generate + - run: | + if [ -z ${{ gitea.ref }} ]; then + mkdir .res + for out in go ts docs; do + tar czf .res/${out}.tar.gz ./stub/${out}/ . + curl --user gitea:${{ gitea.token }} \ + --upload-file .res/${out}.tar.gz \ + ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref }}/${out}.tar.gz + done + fi diff --git a/.gitignore b/.gitignore index f18fa72..a74385c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ gen/go stub node_modules yarn.lock +package-lock.json diff --git a/README.md b/README.md index e69de29..fc7d41d 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,3 @@ +# Protobuf with fangs + +![Build Status](https://git.kahrobatoken.com/Kahroba/proto/actions/workflows/buf-ci.yaml/badge.svg?branch=v2) From 80ee3703f47f4466c5293045e39326fe2e1f1790 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 20 Nov 2024 16:52:36 +0330 Subject: [PATCH 023/293] test deploy --- .gitea/workflows/buf-ci.yaml | 50 +++++++++++++++--------------------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index a93da2a..006baeb 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -10,37 +10,27 @@ jobs: buf: runs-on: ubuntu-latest steps: - - run: | - echo ${{ gitea.action }} - echo ${{ gitea.event_name }} - echo ${{ gitea.ref }} - echo ${{ gitea.base_ref }} - echo ${{ gitea.ref_name }} - echo ${{ gitea.repository }} - echo ${{ gitea.server_url }} - echo - echo ${{ gitea.api_url }} - - uses: actions/setup-go@v5 with: go-version: '>=1.18.0' - uses: bufbuild/buf-setup-action@v1.47.2 - - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm install --save-dev - - run: buf --version - - uses: actions/checkout@v4 - with: - token: ${{ gitea.token }} - path: ./ - - run: npx buf generate - - run: | - if [ -z ${{ gitea.ref }} ]; then - mkdir .res - for out in go ts docs; do - tar czf .res/${out}.tar.gz ./stub/${out}/ . - curl --user gitea:${{ gitea.token }} \ - --upload-file .res/${out}.tar.gz \ - ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref }}/${out}.tar.gz - done - fi + - run: ls -aRhl + # - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + # - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + # - run: npm install --save-dev + # - run: buf --version + # - uses: actions/checkout@v4 + # with: + # token: ${{ gitea.token }} + # path: ./ + # - run: npx buf generate + # - run: | + # if [ -n ${{ gitea.ref_name }} ]; then + # mkdir .res + # for out in go ts docs; do + # tar czf .res/${out}.tar.gz ./stub/${out}/ . + # curl --user gitea:${{ gitea.token }} \ + # --upload-file .res/${out}.tar.gz \ + # ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz + # done + # fi From db0bda6baef88504fdb2f5cd19ed897099a320f9 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 20 Nov 2024 16:53:02 +0330 Subject: [PATCH 024/293] ci on tags --- .gitea/workflows/buf-ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 006baeb..2b2329f 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -2,6 +2,8 @@ name: Buf CI on: push: + tags: + - v* permissions: contents: read From 8338a661f750d439ee30facc0b81f20ce36bcc9a Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 20 Nov 2024 16:55:48 +0330 Subject: [PATCH 025/293] no pkg json --- .gitea/workflows/buf-ci.yaml | 39 ++++++++++++++++++------------------ package.json | 7 ------- 2 files changed, 19 insertions(+), 27 deletions(-) delete mode 100644 package.json diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 2b2329f..0094449 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -16,23 +16,22 @@ jobs: with: go-version: '>=1.18.0' - uses: bufbuild/buf-setup-action@v1.47.2 - - run: ls -aRhl - # - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - # - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - # - run: npm install --save-dev - # - run: buf --version - # - uses: actions/checkout@v4 - # with: - # token: ${{ gitea.token }} - # path: ./ - # - run: npx buf generate - # - run: | - # if [ -n ${{ gitea.ref_name }} ]; then - # mkdir .res - # for out in go ts docs; do - # tar czf .res/${out}.tar.gz ./stub/${out}/ . - # curl --user gitea:${{ gitea.token }} \ - # --upload-file .res/${out}.tar.gz \ - # ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz - # done - # fi + - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + - run: npm install --save-dev @bufbuild/protoc-gen-es + - run: buf --version + - uses: actions/checkout@v4 + with: + token: ${{ gitea.token }} + path: ./ + - run: npx buf generate + - run: | + if [ -n ${{ gitea.ref_name }} ]; then + mkdir .res + for out in go ts docs; do + tar czf .res/${out}.tar.gz ./stub/${out}/ . + curl --user gitea:${{ gitea.token }} \ + --upload-file .res/${out}.tar.gz \ + ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz + done + fi diff --git a/package.json b/package.json deleted file mode 100644 index b9a3d98..0000000 --- a/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "devDependencies": { - "@bufbuild/buf": "^1.47.2", - "@bufbuild/protobuf": "^2.2.2", - "@bufbuild/protoc-gen-es": "^2.2.2" - } -} From 5bcb6feeacc4416234368e7ec2a8777e5b2f3712 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 12:52:20 +0330 Subject: [PATCH 026/293] v2: ci pkg Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 2 +- buf.gen.yaml | 2 +- package.json | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 package.json diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 0094449..ea04612 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -18,7 +18,7 @@ jobs: - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm install --save-dev @bufbuild/protoc-gen-es + - run: npm install --save-dev @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - uses: actions/checkout@v4 with: diff --git a/buf.gen.yaml b/buf.gen.yaml index 8462320..fbd8b17 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -42,7 +42,7 @@ plugins: # - remote: buf.build/bufbuild/es:v2.2.2 # # opt: import_prefix=github.com/nfel # out: stub/ts - - local: protoc-gen-es + - local: node_modules/@bufbuild/protoc-gen-es/bin/protoc-gen-es out: stub/ts opt: target=ts diff --git a/package.json b/package.json new file mode 100644 index 0000000..b9a3d98 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "devDependencies": { + "@bufbuild/buf": "^1.47.2", + "@bufbuild/protobuf": "^2.2.2", + "@bufbuild/protoc-gen-es": "^2.2.2" + } +} From 9c92ab9d34d7e76be1a117ae91ffea5c829f6da3 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 12:55:34 +0330 Subject: [PATCH 027/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index ea04612..fb0cf7e 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -24,7 +24,8 @@ jobs: with: token: ${{ gitea.token }} path: ./ - - run: npx buf generate + - run: ls node_modules + - run: buf generate - run: | if [ -n ${{ gitea.ref_name }} ]; then mkdir .res From 2325afaaf09fc15d5dd6dab39785717042ddfaf3 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 12:59:33 +0330 Subject: [PATCH 028/293] ci --- .gitea/workflows/buf-ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index fb0cf7e..be60b6f 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -20,10 +20,12 @@ jobs: - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - run: npm install --save-dev @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version + - run: pwd - uses: actions/checkout@v4 with: token: ${{ gitea.token }} path: ./ + - run: pwd - run: ls node_modules - run: buf generate - run: | From d79187dfb44182b5cef1a805167ebbd661976e90 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 13:03:56 +0330 Subject: [PATCH 029/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index be60b6f..c673c75 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -18,15 +18,16 @@ jobs: - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm install --save-dev @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf + - run: npm init && npm install --save-dev @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - run: pwd + - run: ls -aRl ./ - uses: actions/checkout@v4 with: token: ${{ gitea.token }} path: ./ - run: pwd - - run: ls node_modules + - run: ls -aRl ./ - run: buf generate - run: | if [ -n ${{ gitea.ref_name }} ]; then From 86d857e242a7567ccac17ae0e859810daa608ccb Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 13:09:52 +0330 Subject: [PATCH 030/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index c673c75..2983387 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -18,16 +18,12 @@ jobs: - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm init && npm install --save-dev @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf + - run: npm init -y && npm install --save-dev @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - - run: pwd - - run: ls -aRl ./ - uses: actions/checkout@v4 with: token: ${{ gitea.token }} path: ./ - - run: pwd - - run: ls -aRl ./ - run: buf generate - run: | if [ -n ${{ gitea.ref_name }} ]; then From f2ba3c534075f098fd7c3b1c4cd276e8d9898ca7 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 13:14:56 +0330 Subject: [PATCH 031/293] v2: ci Signed-off-by: nfel --- buf.gen.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buf.gen.yaml b/buf.gen.yaml index fbd8b17..8462320 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -42,7 +42,7 @@ plugins: # - remote: buf.build/bufbuild/es:v2.2.2 # # opt: import_prefix=github.com/nfel # out: stub/ts - - local: node_modules/@bufbuild/protoc-gen-es/bin/protoc-gen-es + - local: protoc-gen-es out: stub/ts opt: target=ts From 3ebd28b9b812916b1d82e8d8a4a59a107073ebf1 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 13:16:52 +0330 Subject: [PATCH 032/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 2983387..5bb92f4 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -14,16 +14,17 @@ jobs: steps: - uses: actions/setup-go@v5 with: - go-version: '>=1.18.0' + go-version: '>=1.23.0' - uses: bufbuild/buf-setup-action@v1.47.2 - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm init -y && npm install --save-dev @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf + - run: npm init -y && npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - uses: actions/checkout@v4 with: token: ${{ gitea.token }} path: ./ + - run: ls -aRl ./ - run: buf generate - run: | if [ -n ${{ gitea.ref_name }} ]; then From a199324bcc2985b93dcce7d35eafa00414a005a9 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 13:24:38 +0330 Subject: [PATCH 033/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 5bb92f4..50b17bf 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -16,14 +16,14 @@ jobs: with: go-version: '>=1.23.0' - uses: bufbuild/buf-setup-action@v1.47.2 - - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm init -y && npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - - run: buf --version - uses: actions/checkout@v4 with: token: ${{ gitea.token }} path: ./ + - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest + - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + - run: npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf + - run: buf --version - run: ls -aRl ./ - run: buf generate - run: | From 8aa875b1d6ffe111ec58e802654b623121048a03 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 13:35:34 +0330 Subject: [PATCH 034/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 50b17bf..78dc617 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -22,10 +22,11 @@ jobs: path: ./ - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - - run: npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf + - run: npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - - run: ls -aRl ./ - - run: buf generate + - run: | + export PATH=$PATH:./node_modules/.bin + buf generate - run: | if [ -n ${{ gitea.ref_name }} ]; then mkdir .res From 13a75d52de5c5a475e5c2e9365f6b65603dd4219 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 13:46:10 +0330 Subject: [PATCH 035/293] v2: bad dot op in tar Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 3 ++- buf.gen.yaml | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 78dc617..6395a4d 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -22,6 +22,7 @@ jobs: path: ./ - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + - run: go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@latest - run: npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - run: | @@ -31,7 +32,7 @@ jobs: if [ -n ${{ gitea.ref_name }} ]; then mkdir .res for out in go ts docs; do - tar czf .res/${out}.tar.gz ./stub/${out}/ . + tar czf .res/${out}.tar.gz ./stub/${out}/ curl --user gitea:${{ gitea.token }} \ --upload-file .res/${out}.tar.gz \ ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz diff --git a/buf.gen.yaml b/buf.gen.yaml index 8462320..bea5cd2 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -20,9 +20,12 @@ plugins: # - remote: buf.build/protocolbuffers/go:v1.30.0 out: stub/go # NOTE: doc - # - local: protoc-gen-doc - # opt: html,index.html,source_relative - # out: stub/doc + - local: protoc-gen-doc + opt: html,index.html,source_relative + out: stub/doc/html + - local: protoc-gen-doc + opt: markdown,index.md,source_relative + out: stub/doc/md # # NOTE: Gateway # # - remote: buf.build/grpc-ecosystem/gateway:v2.16.2 # - local: protoc-gen-grpc-gateway From fcfe74d80b58b58c684cd00c7001883fec2fac7a Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 14:14:28 +0330 Subject: [PATCH 036/293] v2: ci --- .gitea/workflows/buf-ci.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 6395a4d..4e372ca 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -33,7 +33,9 @@ jobs: mkdir .res for out in go ts docs; do tar czf .res/${out}.tar.gz ./stub/${out}/ - curl --user gitea:${{ gitea.token }} \ + echo gitea:${{ gitea.token }} ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz + + curl --user ${{ gitea.actor }}:${{ gitea.token }} \ --upload-file .res/${out}.tar.gz \ ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz done From 3c7092fb9b7df1ebcaf64257d5abaa18098a541d Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 14:21:04 +0330 Subject: [PATCH 037/293] v2: ci --- .gitea/workflows/buf-ci.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 4e372ca..bce6b7d 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -31,12 +31,10 @@ jobs: - run: | if [ -n ${{ gitea.ref_name }} ]; then mkdir .res - for out in go ts docs; do + for out in go ts doc; do tar czf .res/${out}.tar.gz ./stub/${out}/ - echo gitea:${{ gitea.token }} ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz - curl --user ${{ gitea.actor }}:${{ gitea.token }} \ --upload-file .res/${out}.tar.gz \ - ${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz + ${{ gitea.api_url }}/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz done fi From 1b9e7a05d3693ff10f237de4fac23eca5a4a8165 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 14:28:59 +0330 Subject: [PATCH 038/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index bce6b7d..124500c 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -33,6 +33,8 @@ jobs: mkdir .res for out in go ts doc; do tar czf .res/${out}.tar.gz ./stub/${out}/ + echo ${{ gitea.api_url }}/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz + curl --user ${{ gitea.actor }}:${{ gitea.token }} \ --upload-file .res/${out}.tar.gz \ ${{ gitea.api_url }}/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz From 96a0171bfddec54365b202d3ef62f02d86c2dcbe Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 14:31:34 +0330 Subject: [PATCH 039/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 124500c..558280b 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -1,10 +1,8 @@ ---- name: Buf CI on: push: tags: - v* - permissions: contents: read pull-requests: write @@ -14,7 +12,7 @@ jobs: steps: - uses: actions/setup-go@v5 with: - go-version: '>=1.23.0' + go-version: ">=1.23.0" - uses: bufbuild/buf-setup-action@v1.47.2 - uses: actions/checkout@v4 with: @@ -23,20 +21,18 @@ jobs: - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - run: go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@latest - - run: npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf + - run: npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - - run: | - export PATH=$PATH:./node_modules/.bin - buf generate + - run: "export PATH=$PATH:./node_modules/.bin\nbuf generate \n" - run: | if [ -n ${{ gitea.ref_name }} ]; then mkdir .res for out in go ts doc; do tar czf .res/${out}.tar.gz ./stub/${out}/ - echo ${{ gitea.api_url }}/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz + echo ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz curl --user ${{ gitea.actor }}:${{ gitea.token }} \ --upload-file .res/${out}.tar.gz \ - ${{ gitea.api_url }}/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz + ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz done fi From 9f99f4203d37a63fb440f7066a853fbfe8252fad Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 14:41:22 +0330 Subject: [PATCH 040/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 558280b..c974cb5 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -28,10 +28,9 @@ jobs: if [ -n ${{ gitea.ref_name }} ]; then mkdir .res for out in go ts doc; do + echo releasing ${out} ... tar czf .res/${out}.tar.gz ./stub/${out}/ - echo ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz - - curl --user ${{ gitea.actor }}:${{ gitea.token }} \ + curl -Ss --user nfel:${{ secrets.PROD_REG_TOKEN }}\ --upload-file .res/${out}.tar.gz \ ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz done From 8d2bdaf35252d7ca35abdd6c709e3aa3165ef8d4 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 14:53:05 +0330 Subject: [PATCH 041/293] v2: ci Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index c974cb5..db8de27 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -3,9 +3,12 @@ on: push: tags: - v* + permissions: contents: read pull-requests: write + packages: write + jobs: buf: runs-on: ubuntu-latest @@ -30,8 +33,13 @@ jobs: for out in go ts doc; do echo releasing ${out} ... tar czf .res/${out}.tar.gz ./stub/${out}/ - curl -Ss --user nfel:${{ secrets.PROD_REG_TOKEN }}\ + curl -Ss --user ${{ gitea.actor}}:${{ gitea.token}}\ --upload-file .res/${out}.tar.gz \ ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz done + echo releasing proto ... + tar czf ./.res/src.tar.gz $(find -type f -name "*.proto") + curl -Ss --user ${{ gitea.actor}}:${{ gitea.token}}\ + --upload-file ./.res/src.tar.gz \ + ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/src.tar.gz fi From 01e0904fa60bb2fcefe30090cdd84d2bf9f22763 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 16:17:21 +0330 Subject: [PATCH 042/293] v2: ci updates Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 55 +++++++++++++++++++++++++++--------- alert/v1/msg.proto | 46 ++++++++++++++++++++++++++++++ alert/v1/srv.proto | 12 ++++++++ base/v1/msg.proto | 9 ++++++ 4 files changed, 109 insertions(+), 13 deletions(-) create mode 100644 alert/v1/msg.proto create mode 100644 alert/v1/srv.proto diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index db8de27..a9284cf 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -21,25 +21,54 @@ jobs: with: token: ${{ gitea.token }} path: ./ + + - name: install tea cli and init + run: | + mkdir tmp && cd tmp + wget https://dl.gitea.com/tea/main/tea-main-linux-amd64.xz + apt install xz-utils -y + xz -d tea-main-linux-amd64.xz + mv tea-main-linux-amd64 tea + export PATH=$PATH:$(pwd)/tea + cd .. + tea login \ + --name ${{ gitea.server_url }} \ + --token ${{ secrets.PROD_REG_TOKEN }} \ + --url ${{ gitea.server_url }} - run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest - run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - run: go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@latest - run: npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf - run: buf --version - run: "export PATH=$PATH:./node_modules/.bin\nbuf generate \n" - - run: | - if [ -n ${{ gitea.ref_name }} ]; then - mkdir .res + - name: tar files + run: | for out in go ts doc; do - echo releasing ${out} ... tar czf .res/${out}.tar.gz ./stub/${out}/ - curl -Ss --user ${{ gitea.actor}}:${{ gitea.token}}\ - --upload-file .res/${out}.tar.gz \ - ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz done - echo releasing proto ... - tar czf ./.res/src.tar.gz $(find -type f -name "*.proto") - curl -Ss --user ${{ gitea.actor}}:${{ gitea.token}}\ - --upload-file ./.res/src.tar.gz \ - ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/src.tar.gz - fi + tar czf ./.res/src.tar.gz $(find -type f -name "*.proto") + tea r c \ + --title "${{ gitea.ref_name }}" \ + --tag "${{ gitea.ref_name }}" \ + -a ./.res/src.tar.gz \ + -a ./.res/go.tar.gz \ + -a ./.res/doc.tar.gz \ + -a ./.res/ts.tar.gz \ + + # - run: | + # if [ -n ${{ gitea.ref_name }} ]; then + # mkdir .res + # for out in go ts doc; do + # echo releasing ${out} ... + # tar czf .res/${out}.tar.gz ./stub/${out}/ + # curl -Ss --user nfel:${{ secrets.PROD_REG_TOKEN }}\ + # --upload-file .res/${out}.tar.gz \ + # ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz + # done + # echo releasing proto ... + # tar czf ./.res/src.tar.gz $(find -type f -name "*.proto") + # curl -Ss --user nfel:${{ secrets.PROD_REG_TOKEN }}\ + # --upload-file ./.res/src.tar.gz \ + # ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/src.tar.gz + # fi + # - run: | diff --git a/alert/v1/msg.proto b/alert/v1/msg.proto new file mode 100644 index 0000000..1296d52 --- /dev/null +++ b/alert/v1/msg.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; + +package alert.v1; + +enum Importance { + LOW = 0; + MEDIUM = 1; + HIGH = 2; + CRITICAL = 3; +} + +enum LogSource { + UNKNOWN = 0; + USER = 1; + SYSTEM = 2; + WALLET = 3; +} + +message Meta { + uint32 created_at_ts = 1; + uint32 updated_at_ts = 2; + uint32 blamer_id = 3; // User ID of person who made the change +} + +message LogEvent { + optional uint64 id = 1; // Record Id of Log stored in db + string content = 2; + string effective_user = 3; + optional LogEvent prev_cause = 4; + optional LogSource source = 5; + Importance importance = 6; + Meta meta = 7; +} + +message LogEventList { + repeated LogEvent events = 1; +} +/* + Internal Msg +*/ +message SMS { + string recipient = 1; //recipient + string text = 2; + optional string sender = 3; + Meta meta = 4; +} diff --git a/alert/v1/srv.proto b/alert/v1/srv.proto new file mode 100644 index 0000000..0749057 --- /dev/null +++ b/alert/v1/srv.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package alert.v1; + +import "alert/v1/msg.proto"; +import "base/v1/msg.proto"; + +service AlertSrv { + rpc Log(LogEvent) returns (base.v1.StatusRes) {} + rpc LogHistory(base.v1.IdReq) returns(LogEventList) {} + rpc StatusChange(LogEvent) returns (base.v1.StatusRes) {} +} diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 9dc85cd..32a57cf 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -13,3 +13,12 @@ message IdRes { message IdReq { int64 id = 1; } +message Pagination{ + uint32 page = 1; // in query param it will be p + uint32 page_size = 2; // in query param it will be pz +} +message Filter { + string query = 1; // q + string sort = 2; // s + optional Pagination page = 3; +} From 6f3d8b9b42c9f4e6d7f5b83be06e13e08c500ca0 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 16:22:46 +0330 Subject: [PATCH 043/293] v2: ci updates Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index a9284cf..27dbf68 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -25,12 +25,13 @@ jobs: - name: install tea cli and init run: | mkdir tmp && cd tmp - wget https://dl.gitea.com/tea/main/tea-main-linux-amd64.xz + curl -SsOL https://dl.gitea.com/tea/main/tea-main-linux-amd64.xz apt install xz-utils -y xz -d tea-main-linux-amd64.xz - mv tea-main-linux-amd64 tea - export PATH=$PATH:$(pwd)/tea + ls -ahl + mv tea-main-linux-amd64 /usr/bin/tea cd .. + tea --version tea login \ --name ${{ gitea.server_url }} \ --token ${{ secrets.PROD_REG_TOKEN }} \ From cdd45c27071b0ff73a0cf728d3ea68eb207f9a05 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 16:24:03 +0330 Subject: [PATCH 044/293] v2: ci updates Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 27dbf68..123b7ab 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -30,6 +30,7 @@ jobs: xz -d tea-main-linux-amd64.xz ls -ahl mv tea-main-linux-amd64 /usr/bin/tea + chmod +x /usr/bin/tea cd .. tea --version tea login \ From c92810ad5b23cd5cc3b8f739937d3b1b4c6ed32e Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 23 Nov 2024 16:25:03 +0330 Subject: [PATCH 045/293] v2: ci updates Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 123b7ab..2055824 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -26,14 +26,14 @@ jobs: run: | mkdir tmp && cd tmp curl -SsOL https://dl.gitea.com/tea/main/tea-main-linux-amd64.xz - apt install xz-utils -y + apt install xz-utils -y >/dev/null xz -d tea-main-linux-amd64.xz - ls -ahl mv tea-main-linux-amd64 /usr/bin/tea chmod +x /usr/bin/tea cd .. + rm -rf tmp tea --version - tea login \ + tea login add \ --name ${{ gitea.server_url }} \ --token ${{ secrets.PROD_REG_TOKEN }} \ --url ${{ gitea.server_url }} From db54a552ac6e6e346cb75ec98168b405d258e8a0 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 11:31:33 +0330 Subject: [PATCH 046/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/test.yaml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .gitea/workflows/test.yaml diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml new file mode 100644 index 0000000..95761df --- /dev/null +++ b/.gitea/workflows/test.yaml @@ -0,0 +1,31 @@ +name: Buf CI +on: + push: + +permissions: + contents: write + pull-requests: write + packages: write + +jobs: + buf: + runs-on: ubuntu-latest + steps: + - run: | + echo "test" + echo ${{ gitea.server_url }} + echo ${{ gitea.token }} + echo ${{ secrets.PROD_REG_TOKEN }} + echo ${{ gitea.ref_name }} + echo ${{ gitea.action_ref }} + echo ${{ gitea.action_path }} + echo ${{ gitea.action_repository }} + echo ${{ gitea.base_ref }} + echo ${{ gitea.env }} + echo ${{ gitea.event }} + echo ${{ gitea.head_ref }} + echo ${{ gitea.job }} + echo ${{ gitea.run_attempt }} + echo ${{ gitea.triggering_actor }} + echo ${{ gitea.workflow_ref }} + echo ${{ gitea.workspace }} From c57abc00f64c1f5b385e2e47714d036c5d048f13 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 11:36:57 +0330 Subject: [PATCH 047/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/test.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 95761df..51da4eb 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -7,6 +7,8 @@ permissions: pull-requests: write packages: write +env: + REPO: ${{ gitea.action_repository }} jobs: buf: runs-on: ubuntu-latest @@ -19,7 +21,7 @@ jobs: echo ${{ gitea.ref_name }} echo ${{ gitea.action_ref }} echo ${{ gitea.action_path }} - echo ${{ gitea.action_repository }} + echo ${{ env.REPO }} echo ${{ gitea.base_ref }} echo ${{ gitea.env }} echo ${{ gitea.event }} From 22c5992046b49445ee62854fd4369e63c943ee44 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 11:38:00 +0330 Subject: [PATCH 048/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/buf-ci.yaml | 1 + .gitea/workflows/test.yaml | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/buf-ci.yaml b/.gitea/workflows/buf-ci.yaml index 2055824..4603cb4 100644 --- a/.gitea/workflows/buf-ci.yaml +++ b/.gitea/workflows/buf-ci.yaml @@ -45,6 +45,7 @@ jobs: - run: "export PATH=$PATH:./node_modules/.bin\nbuf generate \n" - name: tar files run: | + ls -l ./stub for out in go ts doc; do tar czf .res/${out}.tar.gz ./stub/${out}/ done diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 51da4eb..15d809d 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -7,11 +7,11 @@ permissions: pull-requests: write packages: write -env: - REPO: ${{ gitea.action_repository }} jobs: buf: runs-on: ubuntu-latest + env: + REPO: ${{ gitea.action_repository }} steps: - run: | echo "test" @@ -21,7 +21,7 @@ jobs: echo ${{ gitea.ref_name }} echo ${{ gitea.action_ref }} echo ${{ gitea.action_path }} - echo ${{ env.REPO }} + echo ${{ env.REPO }} $REPO echo ${{ gitea.base_ref }} echo ${{ gitea.env }} echo ${{ gitea.event }} From 7b2eef86579539c46405067bcce389d0f26dec9f Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 11:41:10 +0330 Subject: [PATCH 049/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/test.yaml | 22 ++++------------------ alert/v1/msg.proto | 12 +++++++++++- alert/v1/srv.proto | 6 +++--- buf.gen.yaml | 7 +++++-- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 15d809d..ff9d216 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -11,23 +11,9 @@ jobs: buf: runs-on: ubuntu-latest env: - REPO: ${{ gitea.action_repository }} + REPO: ${{ gitea.repository }} steps: - run: | - echo "test" - echo ${{ gitea.server_url }} - echo ${{ gitea.token }} - echo ${{ secrets.PROD_REG_TOKEN }} - echo ${{ gitea.ref_name }} - echo ${{ gitea.action_ref }} - echo ${{ gitea.action_path }} - echo ${{ env.REPO }} $REPO - echo ${{ gitea.base_ref }} - echo ${{ gitea.env }} - echo ${{ gitea.event }} - echo ${{ gitea.head_ref }} - echo ${{ gitea.job }} - echo ${{ gitea.run_attempt }} - echo ${{ gitea.triggering_actor }} - echo ${{ gitea.workflow_ref }} - echo ${{ gitea.workspace }} + echo ${{ env.REPO }} + echo $REPO + echo ${{ github.repository }} diff --git a/alert/v1/msg.proto b/alert/v1/msg.proto index 1296d52..7cf9d90 100644 --- a/alert/v1/msg.proto +++ b/alert/v1/msg.proto @@ -26,7 +26,6 @@ message LogEvent { optional uint64 id = 1; // Record Id of Log stored in db string content = 2; string effective_user = 3; - optional LogEvent prev_cause = 4; optional LogSource source = 5; Importance importance = 6; Meta meta = 7; @@ -38,9 +37,20 @@ message LogEventList { /* Internal Msg */ + +message SMSChangeLog { + uint32 when_ts = 1; + string what = 2; +} + message SMS { string recipient = 1; //recipient string text = 2; optional string sender = 3; Meta meta = 4; + repeated SMSChangeLog change_log = 5; +} + +message SMSList { + repeated SMS sms = 1; } diff --git a/alert/v1/srv.proto b/alert/v1/srv.proto index 0749057..30525f5 100644 --- a/alert/v1/srv.proto +++ b/alert/v1/srv.proto @@ -6,7 +6,7 @@ import "alert/v1/msg.proto"; import "base/v1/msg.proto"; service AlertSrv { - rpc Log(LogEvent) returns (base.v1.StatusRes) {} - rpc LogHistory(base.v1.IdReq) returns(LogEventList) {} - rpc StatusChange(LogEvent) returns (base.v1.StatusRes) {} + rpc Emit(LogEvent) returns (base.v1.StatusRes) {} + rpc Update(LogEvent) returns (base.v1.StatusRes) {} + rpc Get() returns (base.v1.StatusRes) {} } diff --git a/buf.gen.yaml b/buf.gen.yaml index bea5cd2..4bc8897 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -28,8 +28,11 @@ plugins: out: stub/doc/md # # NOTE: Gateway # # - remote: buf.build/grpc-ecosystem/gateway:v2.16.2 - # - local: protoc-gen-grpc-gateway - # out: stub/go + - local: protoc-gen-grpc-gateway + out: stub/go + opt: + - standalone=true + - generate_unbound_methods=true # # NOTE: SWAGGER json files # # - remote: buf.build/grpc-ecosystem/openapiv2:v2.16.2 # - local: protoc-gen-openapiv2 From 79d2cedc3e7b6933c55fa3b49fde54e0acf49b5d Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 11:42:02 +0330 Subject: [PATCH 050/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/test.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index ff9d216..2749d15 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -10,10 +10,11 @@ permissions: jobs: buf: runs-on: ubuntu-latest - env: - REPO: ${{ gitea.repository }} steps: - run: | echo ${{ env.REPO }} echo $REPO echo ${{ github.repository }} + echo ${{ gitea.repository }} + + From b6cd325104c002381d5b6918669cf21ed2e321bd Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 11:44:00 +0330 Subject: [PATCH 051/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/test.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 2749d15..495e30a 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -12,9 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - run: | - echo ${{ env.REPO }} - echo $REPO - echo ${{ github.repository }} echo ${{ gitea.repository }} + echo ${{ gitea.ref_name }} From d0354d77f184b2fe259951ab1dff5aaffca54919 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 11:56:49 +0330 Subject: [PATCH 052/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/test.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 495e30a..f9d3f45 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -10,9 +10,10 @@ permissions: jobs: buf: runs-on: ubuntu-latest + env: + DOCKER_IMG: ${{ gitea.server_url }}/${{ gitea.repository }}:${{ gitea.ref_name }} + COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services + COMPOSE_SERVICE_NAME: $${ ${{ gitea.repository }}##*/ } steps: - run: | - echo ${{ gitea.repository }} - echo ${{ gitea.ref_name }} - - + echo $DOCKER_IMG - $COMPOSE_PROJECT_NAME - $COMPOSE_SERVICE_NAME From 5affc6bb0409c7839553964030a0163a6f2ca3b2 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:05:32 +0330 Subject: [PATCH 053/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/test.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index f9d3f45..553e0e3 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -13,7 +13,12 @@ jobs: env: DOCKER_IMG: ${{ gitea.server_url }}/${{ gitea.repository }}:${{ gitea.ref_name }} COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services - COMPOSE_SERVICE_NAME: $${ ${{ gitea.repository }}##*/ } + COMPOSE_SERVICE_NAME: ${{ gitea.repository ##*/ }} steps: - run: | echo $DOCKER_IMG - $COMPOSE_PROJECT_NAME - $COMPOSE_SERVICE_NAME + + recover: + steps: + - name: The job has failed + if: ${{ failure() }} From 208bc84c744511b2b1958dc87c57878114ed6068 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:08:28 +0330 Subject: [PATCH 054/293] v2: test env Signed-off-by: nfel --- .gitea/workflows/test.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 553e0e3..86c1546 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -13,7 +13,7 @@ jobs: env: DOCKER_IMG: ${{ gitea.server_url }}/${{ gitea.repository }}:${{ gitea.ref_name }} COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services - COMPOSE_SERVICE_NAME: ${{ gitea.repository ##*/ }} + COMPOSE_SERVICE_NAME: ${{ github.event.repository.name }} steps: - run: | echo $DOCKER_IMG - $COMPOSE_PROJECT_NAME - $COMPOSE_SERVICE_NAME @@ -22,3 +22,5 @@ jobs: steps: - name: The job has failed if: ${{ failure() }} + run: echo recovering from failure + From 014cc162b2696d72f893a9159780df6a74216857 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:15:24 +0330 Subject: [PATCH 055/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 86c1546..c22c011 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -8,15 +8,29 @@ permissions: packages: write jobs: - buf: + main-act: runs-on: ubuntu-latest env: DOCKER_IMG: ${{ gitea.server_url }}/${{ gitea.repository }}:${{ gitea.ref_name }} COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services - COMPOSE_SERVICE_NAME: ${{ github.event.repository.name }} + COMPOSE_SERVICE_NAME: ${{ gitea.event.repository.name }} + CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} + S_URL: ${${{ gitea.server_url }}##*/} steps: - - run: | - echo $DOCKER_IMG - $COMPOSE_PROJECT_NAME - $COMPOSE_SERVICE_NAME + - name: Print + run: env | sort + + # - name: Checkout Git + # uses: actions/checkout@v4 + # with: + # token: CI_TOKEN + # submodules: recursive + # - name: Login to Docker Hub + # uses: docker/login-action@v3 + # with: + # registry: git.kahrobatoken.com + # username: ${{ secrets.PROD_REG_USER }} + # password: ${{ secrets.PROD_REG_TOKEN }} recover: steps: From 8660dea75bb60b7e2dcf44e56490b5b02a5f7b64 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:18:54 +0330 Subject: [PATCH 056/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index c22c011..39314b7 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -15,7 +15,7 @@ jobs: COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services COMPOSE_SERVICE_NAME: ${{ gitea.event.repository.name }} CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} - S_URL: ${${{ gitea.server_url }}##*/} + S_URL: $( echo ${{ gitea.server_url }} | sed "s.https://.." ) steps: - name: Print run: env | sort @@ -33,6 +33,7 @@ jobs: # password: ${{ secrets.PROD_REG_TOKEN }} recover: + runs-on: ubuntu-latest steps: - name: The job has failed if: ${{ failure() }} From eeeedde123d3d483000980fba0b0c3ca5164feee Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:19:30 +0330 Subject: [PATCH 057/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 39314b7..4d36ff6 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -15,7 +15,7 @@ jobs: COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services COMPOSE_SERVICE_NAME: ${{ gitea.event.repository.name }} CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} - S_URL: $( echo ${{ gitea.server_url }} | sed "s.https://.." ) + S_URL: $$( echo ${{ gitea.server_url }} | sed "s.https://.." ) steps: - name: Print run: env | sort From b71c028f885c57b942bc2b47fa3ac1ff227ab701 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:22:07 +0330 Subject: [PATCH 058/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 4d36ff6..36c7b88 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -15,8 +15,8 @@ jobs: COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services COMPOSE_SERVICE_NAME: ${{ gitea.event.repository.name }} CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} - S_URL: $$( echo ${{ gitea.server_url }} | sed "s.https://.." ) steps: + - run: export S_URL=$$( echo ${{ gitea.server_url }} | sed "s.https://.." ) - name: Print run: env | sort From 6396711ba7301583810ee5b7399bfae2b109a8f5 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:24:40 +0330 Subject: [PATCH 059/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 36c7b88..23f2980 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -15,8 +15,9 @@ jobs: COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services COMPOSE_SERVICE_NAME: ${{ gitea.event.repository.name }} CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} - steps: - - run: export S_URL=$$( echo ${{ gitea.server_url }} | sed "s.https://.." ) + S2_URL: echo ${{ gitea.server_url }} | sed "s.https://.." + steps: + - run: export S_URL=$( echo ${{ gitea.server_url }} | sed "s.https://.." ) - name: Print run: env | sort From 749a399197cd346cf5ed5dea375a16e953e0453f Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:37:42 +0330 Subject: [PATCH 060/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 23f2980..e5ba223 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -17,10 +17,9 @@ jobs: CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} S2_URL: echo ${{ gitea.server_url }} | sed "s.https://.." steps: - - run: export S_URL=$( echo ${{ gitea.server_url }} | sed "s.https://.." ) - - name: Print - run: env | sort - + - run: export DOCKER_IMG=$( echo ${{ env.DOCKER_IMG }} | sed "s.https://..") + - run: env | sort + - run: echo $DOCKER_IMG # - name: Checkout Git # uses: actions/checkout@v4 # with: @@ -32,6 +31,7 @@ jobs: # registry: git.kahrobatoken.com # username: ${{ secrets.PROD_REG_USER }} # password: ${{ secrets.PROD_REG_TOKEN }} + recover: runs-on: ubuntu-latest From 53b8db78ddf71e7c63108d958451fb77404be271 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:38:52 +0330 Subject: [PATCH 061/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index e5ba223..318797a 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -17,9 +17,12 @@ jobs: CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} S2_URL: echo ${{ gitea.server_url }} | sed "s.https://.." steps: - - run: export DOCKER_IMG=$( echo ${{ env.DOCKER_IMG }} | sed "s.https://..") + - run: export DOCKER2_IMG=$( echo ${{ env.DOCKER_IMG }} | sed "s.https://..") - run: env | sort - - run: echo $DOCKER_IMG + - run: | + echo $DOCKER_IMG + echo ${{ env.DOCKER_IMG }} | sed "s.https://.." + # - name: Checkout Git # uses: actions/checkout@v4 # with: From 2fdaac14c690298152dd6af865dbe226185b65de Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:39:54 +0330 Subject: [PATCH 062/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 318797a..f60dd4b 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -17,7 +17,7 @@ jobs: CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} S2_URL: echo ${{ gitea.server_url }} | sed "s.https://.." steps: - - run: export DOCKER2_IMG=$( echo ${{ env.DOCKER_IMG }} | sed "s.https://..") + - run: echo ${{ env.DOCKER_IMG }} | sed "s.https://.." >> $DOCKER_IMG - run: env | sort - run: | echo $DOCKER_IMG From 46ac6fcea5ad50eddcf7db1933cc8d5b11667afa Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 12:41:07 +0330 Subject: [PATCH 063/293] v2: Signed-off-by: nfel --- .gitea/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index f60dd4b..7fd6b00 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -17,7 +17,7 @@ jobs: CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} S2_URL: echo ${{ gitea.server_url }} | sed "s.https://.." steps: - - run: echo ${{ env.DOCKER_IMG }} | sed "s.https://.." >> $DOCKER_IMG + - run: echo "DOCKER_IMG=${{ env.DOCKER_IMG }}" | sed "s.https://.." >> $GITHUB_ENV - run: env | sort - run: | echo $DOCKER_IMG From b3ceb01bfb3f5728b466c60ae7fb445c9188f826 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 26 Nov 2024 14:15:10 +0330 Subject: [PATCH 064/293] v2: removed test ci + alert filter fixed Signed-off-by: nfel --- .gitea/workflows/test.yaml | 45 -------------------------------------- alert/v1/msg.proto | 9 ++++++++ alert/v1/srv.proto | 2 +- 3 files changed, 10 insertions(+), 46 deletions(-) delete mode 100644 .gitea/workflows/test.yaml diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml deleted file mode 100644 index 7fd6b00..0000000 --- a/.gitea/workflows/test.yaml +++ /dev/null @@ -1,45 +0,0 @@ -name: Buf CI -on: - push: - -permissions: - contents: write - pull-requests: write - packages: write - -jobs: - main-act: - runs-on: ubuntu-latest - env: - DOCKER_IMG: ${{ gitea.server_url }}/${{ gitea.repository }}:${{ gitea.ref_name }} - COMPOSE_PROJECT_NAME: ${{ gitea.ref_name }}-services - COMPOSE_SERVICE_NAME: ${{ gitea.event.repository.name }} - CI_TOKEN: ${{ secrets.PROD_REG_TOKEN }} - S2_URL: echo ${{ gitea.server_url }} | sed "s.https://.." - steps: - - run: echo "DOCKER_IMG=${{ env.DOCKER_IMG }}" | sed "s.https://.." >> $GITHUB_ENV - - run: env | sort - - run: | - echo $DOCKER_IMG - echo ${{ env.DOCKER_IMG }} | sed "s.https://.." - - # - name: Checkout Git - # uses: actions/checkout@v4 - # with: - # token: CI_TOKEN - # submodules: recursive - # - name: Login to Docker Hub - # uses: docker/login-action@v3 - # with: - # registry: git.kahrobatoken.com - # username: ${{ secrets.PROD_REG_USER }} - # password: ${{ secrets.PROD_REG_TOKEN }} - - - recover: - runs-on: ubuntu-latest - steps: - - name: The job has failed - if: ${{ failure() }} - run: echo recovering from failure - diff --git a/alert/v1/msg.proto b/alert/v1/msg.proto index 7cf9d90..6ec50ce 100644 --- a/alert/v1/msg.proto +++ b/alert/v1/msg.proto @@ -2,6 +2,15 @@ syntax = "proto3"; package alert.v1; +import "base/v1/msg.proto"; + + +message AlertFilter{ + base.v1.Filter base_filter = 1; + Importance importance = 2; + LogSource source = 3; +} + enum Importance { LOW = 0; MEDIUM = 1; diff --git a/alert/v1/srv.proto b/alert/v1/srv.proto index 30525f5..e0bfc74 100644 --- a/alert/v1/srv.proto +++ b/alert/v1/srv.proto @@ -8,5 +8,5 @@ import "base/v1/msg.proto"; service AlertSrv { rpc Emit(LogEvent) returns (base.v1.StatusRes) {} rpc Update(LogEvent) returns (base.v1.StatusRes) {} - rpc Get() returns (base.v1.StatusRes) {} + rpc Get(AlertFilter) returns (base.v1.StatusRes) {} } From 8b560247e43eac5cfd79ad5c8e126a32f92215e2 Mon Sep 17 00:00:00 2001 From: nfel Date: Fri, 29 Nov 2024 00:04:49 +0330 Subject: [PATCH 065/293] v2: buf format Signed-off-by: nfel --- alert/v1/msg.proto | 16 ++++++++-------- auth/v1/msg.proto | 2 +- auth/v1/srv.proto | 3 +-- base/v1/msg.proto | 6 +++--- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/alert/v1/msg.proto b/alert/v1/msg.proto index 6ec50ce..0ee7e9d 100644 --- a/alert/v1/msg.proto +++ b/alert/v1/msg.proto @@ -4,18 +4,18 @@ package alert.v1; import "base/v1/msg.proto"; - -message AlertFilter{ +message AlertFilter { base.v1.Filter base_filter = 1; - Importance importance = 2; - LogSource source = 3; + Importance importance = 2; + LogSource source = 3; } +//Importance of given event enum Importance { - LOW = 0; - MEDIUM = 1; - HIGH = 2; - CRITICAL = 3; + LOW = 0; // Low Severity ( unimportant and can be ignored ) + MEDIUM = 1; // MEDIUM Severity + HIGH = 2; // High Severity + CRITICAL = 3; // CRITICAL Severity ( can cause panics and data lost ) } enum LogSource { diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 270e4d5..cecaa7c 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -131,7 +131,7 @@ message Identity { string updated_at = 18; string created_at = 19; string email = 20; - string mobile = 21; + string mobile = 21; optional Company company = 22; optional string employee_info = 23; } diff --git a/auth/v1/srv.proto b/auth/v1/srv.proto index 71f11de..6c8d942 100644 --- a/auth/v1/srv.proto +++ b/auth/v1/srv.proto @@ -14,8 +14,7 @@ service AuthorizationService { rpc UserLoginSendOTP(UserSendOtpReq) returns (UserSendOtpRes) {} rpc UserLoginWithOTP(UserLoginReq) returns (UserAccessTokenRes) {} - rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq) - returns (UserAccessTokenRes) {} + rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq) returns (UserAccessTokenRes) {} rpc UserGetUserPermission(InternalIAM) returns (PermissionList) {} diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 32a57cf..10c429d 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -13,12 +13,12 @@ message IdRes { message IdReq { int64 id = 1; } -message Pagination{ - uint32 page = 1; // in query param it will be p +message Pagination { + uint32 page = 1; // in query param it will be p uint32 page_size = 2; // in query param it will be pz } message Filter { string query = 1; // q string sort = 2; // s - optional Pagination page = 3; + optional Pagination page = 3; } From 6a95269cefa04b96f6acb2abd03743980daf2ce6 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Sat, 7 Dec 2024 13:32:20 +0330 Subject: [PATCH 066/293] add CheckWalletKey rpc --- wallet/v1/msg.proto | 8 ++++++++ wallet/v1/srv.proto | 2 ++ 2 files changed, 10 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index cbf60d3..968c268 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -377,3 +377,11 @@ message RedeemTokenRes { message RedeemTokenResList { repeated RedeemTokenRes list = 1; } + +message CheckWalletKeyReq { + string national_id = 1; +} + +message CheckWalletKeyRes { + string pub_key = 1; +} \ No newline at end of file diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 340d497..95b7df9 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -39,4 +39,6 @@ service WalletService { rpc CalculateRedeemToken(RedeemTokenReq) returns (CalculateRedeemTokenRes); rpc RedeemToken(RedeemTokenReq) returns (base.v1.StatusRes); rpc RedeemTokenList(auth.v1.ReqWithIAMAndParams) returns (RedeemTokenResList); + + rpc CheckWalletKey(CheckWalletKeyReq) returns (CheckWalletKeyRes); } From f7729a595badda434cbd742c3fe094340a12600f Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Sat, 7 Dec 2024 14:14:32 +0330 Subject: [PATCH 067/293] change CheckWalletKey rpc name to GetPublicKeyByNationalID --- wallet/v1/msg.proto | 4 ++-- wallet/v1/srv.proto | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 968c268..17156a4 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -378,10 +378,10 @@ message RedeemTokenResList { repeated RedeemTokenRes list = 1; } -message CheckWalletKeyReq { +message GetPublicKeyByNationalIDReq { string national_id = 1; } -message CheckWalletKeyRes { +message GetPublicKeyByNationalIDRes { string pub_key = 1; } \ No newline at end of file diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 95b7df9..a352673 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -40,5 +40,5 @@ service WalletService { rpc RedeemToken(RedeemTokenReq) returns (base.v1.StatusRes); rpc RedeemTokenList(auth.v1.ReqWithIAMAndParams) returns (RedeemTokenResList); - rpc CheckWalletKey(CheckWalletKeyReq) returns (CheckWalletKeyRes); + rpc GetPublicKeyByNationalID(GetPublicKeyByNationalIDReq) returns (GetPublicKeyByNationalIDRes); } From 8e64e1ca1fe0474d535863492f865e09743164bb Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Mon, 9 Dec 2024 11:56:34 +0330 Subject: [PATCH 068/293] improve InternalTransferAsset rpc --- auth/v1/msg.proto | 6 ++++++ wallet/v1/msg.proto | 22 ++++++++++++++-------- wallet/v1/srv.proto | 4 +++- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index cecaa7c..98ab4bf 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -208,3 +208,9 @@ message CheckTFAReq { optional string algorithm = 3; optional string reason = 4; // Can be later used as a lookup } + +message Otp { + string status = 1; + int64 code = 2; + string transaction_id = 3; +} \ No newline at end of file diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 17156a4..56ea0dd 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -289,17 +289,23 @@ message UserBuyAssetReq { Transfer */ -message UserTransferAssetReq { +message InternalTransferAssetReq { auth.v1.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; - string to_wallet_address = 4; - string to_wallet_memo = 5; + string recipient = 2; + string amount = 3; + int64 network_id = 4; + int64 asset_id = 5; + bool approval = 6; + auth.v1.Otp otp = 7; } -message UserTransferRes { - int64 transaction_id = 1; - string tracking_code = 2; +message InternalTransferAssetRes { + string recipient = 1; + string recipient_first_name = 2; + string recipient_last_name = 3; + string amount = 4; + string transaction_id = 5; + string transaction_hash = 6; } // represent the information regarding the sale of the token diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index a352673..db06ba9 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -19,7 +19,6 @@ service WalletService { rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes); rpc UserGetWalletList(auth.v1.InternalIAM) returns (WalletList); - rpc UserTransferAsset(UserTransferAssetReq) returns (UserTransferRes); rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); @@ -41,4 +40,7 @@ service WalletService { rpc RedeemTokenList(auth.v1.ReqWithIAMAndParams) returns (RedeemTokenResList); rpc GetPublicKeyByNationalID(GetPublicKeyByNationalIDReq) returns (GetPublicKeyByNationalIDRes); + + // Assets routing + rpc InternalTransferAsset(InternalTransferAssetReq) returns (InternalTransferAssetRes); } From e21e98568b746e02cdf3a429d23656111f99a119 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Mon, 9 Dec 2024 12:00:13 +0330 Subject: [PATCH 069/293] change Otp name --- auth/v1/msg.proto | 2 +- wallet/v1/msg.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 98ab4bf..1787638 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -209,7 +209,7 @@ message CheckTFAReq { optional string reason = 4; // Can be later used as a lookup } -message Otp { +message TFA { string status = 1; int64 code = 2; string transaction_id = 3; diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 56ea0dd..6f6cdcb 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -296,7 +296,7 @@ message InternalTransferAssetReq { int64 network_id = 4; int64 asset_id = 5; bool approval = 6; - auth.v1.Otp otp = 7; + auth.v1.TFA tfa = 7; } message InternalTransferAssetRes { From 6ecb53aecd709d29744e713632397b9716d349e4 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Mon, 9 Dec 2024 12:05:30 +0330 Subject: [PATCH 070/293] add Recipient message --- wallet/v1/msg.proto | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 6f6cdcb..b24ff8c 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -289,23 +289,27 @@ message UserBuyAssetReq { Transfer */ +message Recipient { + string recipient = 1; + string recipient_first_name = 2; + string recipient_last_name = 3; +} + message InternalTransferAssetReq { auth.v1.InternalIAM iam = 1; - string recipient = 2; + Recipient recipient = 2; string amount = 3; - int64 network_id = 4; + optional int64 network_id = 4; int64 asset_id = 5; - bool approval = 6; + optional bool approval = 6; auth.v1.TFA tfa = 7; } message InternalTransferAssetRes { - string recipient = 1; - string recipient_first_name = 2; - string recipient_last_name = 3; - string amount = 4; - string transaction_id = 5; - string transaction_hash = 6; + Recipient recipient = 1; + string amount = 2; + string transaction_id = 3; + string transaction_hash = 4; } // represent the information regarding the sale of the token From 36af98b1866fb64cc1d33d1108f040a56bac6868 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Mon, 9 Dec 2024 12:13:55 +0330 Subject: [PATCH 071/293] add some optional feat & change key name in TFA --- auth/v1/msg.proto | 2 +- wallet/v1/msg.proto | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 1787638..d09aeac 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -210,7 +210,7 @@ message CheckTFAReq { } message TFA { - string status = 1; + string key = 1; int64 code = 2; string transaction_id = 3; } \ No newline at end of file diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index b24ff8c..99140f8 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -290,9 +290,9 @@ message UserBuyAssetReq { */ message Recipient { - string recipient = 1; - string recipient_first_name = 2; - string recipient_last_name = 3; + string id = 1; + optional string first_name = 2; + optional string last_name = 3; } message InternalTransferAssetReq { @@ -302,7 +302,7 @@ message InternalTransferAssetReq { optional int64 network_id = 4; int64 asset_id = 5; optional bool approval = 6; - auth.v1.TFA tfa = 7; + optional auth.v1.TFA tfa = 7; } message InternalTransferAssetRes { From 32d46850a5697a05cc22c53b171320f03c64cd89 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 9 Dec 2024 13:41:08 +0330 Subject: [PATCH 072/293] v2: str -> double Signed-off-by: nfel --- wallet/v1/msg.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 99140f8..7aa4412 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -298,7 +298,7 @@ message Recipient { message InternalTransferAssetReq { auth.v1.InternalIAM iam = 1; Recipient recipient = 2; - string amount = 3; + double amount = 3; optional int64 network_id = 4; int64 asset_id = 5; optional bool approval = 6; @@ -307,7 +307,7 @@ message InternalTransferAssetReq { message InternalTransferAssetRes { Recipient recipient = 1; - string amount = 2; + double amount = 2; string transaction_id = 3; string transaction_hash = 4; } @@ -394,4 +394,4 @@ message GetPublicKeyByNationalIDReq { message GetPublicKeyByNationalIDRes { string pub_key = 1; -} \ No newline at end of file +} From 434f74756f331349ec8206e794879a6afcd7c7f8 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Mon, 9 Dec 2024 14:25:50 +0330 Subject: [PATCH 073/293] add enum for TFA message --- auth/v1/msg.proto | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index d09aeac..15112bf 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -210,7 +210,13 @@ message CheckTFAReq { } message TFA { - string key = 1; + OtpStateEnum state = 1; int64 code = 2; string transaction_id = 3; +} + +enum OtpStateEnum { + OPT_STATE_ENUM_UNSPECIFIED = 0; + LOGIN = 1; + PAYMENT = 2; } \ No newline at end of file From 1b6a64aa4680012363c240af2910c60b427e3d53 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Mon, 9 Dec 2024 14:30:56 +0330 Subject: [PATCH 074/293] add some items to optState enum --- auth/v1/msg.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 15112bf..f2df253 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -218,5 +218,6 @@ message TFA { enum OtpStateEnum { OPT_STATE_ENUM_UNSPECIFIED = 0; LOGIN = 1; - PAYMENT = 2; + INTERNAL_TRANSFER = 2; + EXTERNAL_TRANSFER = 3; } \ No newline at end of file From 9d8a2d160a8cc88a78c6b648c19c06f37ef0ce2b Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Tue, 10 Dec 2024 10:34:16 +0330 Subject: [PATCH 075/293] add internal rpc file and LookUpName rpc --- auth/v1/internal_srv.proto | 9 +++++++++ auth/v1/msg.proto | 14 ++++++++++++++ wallet/v1/msg.proto | 10 ++-------- 3 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 auth/v1/internal_srv.proto diff --git a/auth/v1/internal_srv.proto b/auth/v1/internal_srv.proto new file mode 100644 index 0000000..b7d402c --- /dev/null +++ b/auth/v1/internal_srv.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + +package auth.v1; + +import "auth/v1/msg.proto"; + +service InternalAuthorizationService { + rpc LookUpName(LookUpNameReq) returns (LookUpNameRes) {} +} \ No newline at end of file diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index f2df253..805e6c1 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -220,4 +220,18 @@ enum OtpStateEnum { LOGIN = 1; INTERNAL_TRANSFER = 2; EXTERNAL_TRANSFER = 3; +} + +message Recipient { + string id = 1; + optional string first_name = 2; + optional string last_name = 3; +} + +message LookUpNameReq { + Recipient recipient = 1; +} + +message LookUpNameRes { + Recipient recipient = 1; } \ No newline at end of file diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 7aa4412..3d58a21 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -289,15 +289,9 @@ message UserBuyAssetReq { Transfer */ -message Recipient { - string id = 1; - optional string first_name = 2; - optional string last_name = 3; -} - message InternalTransferAssetReq { auth.v1.InternalIAM iam = 1; - Recipient recipient = 2; + auth.v1.Recipient recipient = 2; double amount = 3; optional int64 network_id = 4; int64 asset_id = 5; @@ -306,7 +300,7 @@ message InternalTransferAssetReq { } message InternalTransferAssetRes { - Recipient recipient = 1; + auth.v1.Recipient recipient = 1; double amount = 2; string transaction_id = 3; string transaction_hash = 4; From 8a0c7451fb45d2e0e97c30902a456a1fdcde3182 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Tue, 10 Dec 2024 10:50:40 +0330 Subject: [PATCH 076/293] edit state enum name --- auth/v1/msg.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 805e6c1..0348926 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -210,13 +210,13 @@ message CheckTFAReq { } message TFA { - OtpStateEnum state = 1; + TfaStateEnum state = 1; int64 code = 2; string transaction_id = 3; } -enum OtpStateEnum { - OPT_STATE_ENUM_UNSPECIFIED = 0; +enum TfaStateEnum { + TFA_STATE_ENUM_UNSPECIFIED = 0; LOGIN = 1; INTERNAL_TRANSFER = 2; EXTERNAL_TRANSFER = 3; From 3e699c2082fa33607ff2b59341fc5ba6fd4afda3 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Tue, 10 Dec 2024 11:48:22 +0330 Subject: [PATCH 077/293] improve recipient --- auth/v1/msg.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 0348926..5dcdb0d 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -223,9 +223,10 @@ enum TfaStateEnum { } message Recipient { - string id = 1; + string key = 1; optional string first_name = 2; optional string last_name = 3; + optional string public_key = 4; } message LookUpNameReq { From 4b1ff1c31df564aa157fbb4715f34dbec8ccd602 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 10 Dec 2024 15:09:54 +0330 Subject: [PATCH 078/293] v2: user_id added to recepient msg Signed-off-by: nfel --- auth/v1/msg.proto | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 5dcdb0d..34cf9aa 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -226,7 +226,9 @@ message Recipient { string key = 1; optional string first_name = 2; optional string last_name = 3; - optional string public_key = 4; + optional int64 user_id = 4; + optional string public_key = 5; + } message LookUpNameReq { @@ -235,4 +237,4 @@ message LookUpNameReq { message LookUpNameRes { Recipient recipient = 1; -} \ No newline at end of file +} From 0cd6107abe390650a2d7b11e3c8ea3ab3a809b55 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 14 Dec 2024 16:45:12 +0330 Subject: [PATCH 079/293] v2: changed TFAReq Msg to accept trx id and state Signed-off-by: nfel --- auth/v1/msg.proto | 2 ++ wallet/v1/msg.proto | 1 + 2 files changed, 3 insertions(+) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 34cf9aa..f8649b0 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -194,6 +194,8 @@ message TFAReq { optional string mobile = 2; optional string email = 3; optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal + optional string transaction_id = 5; + optional TfaStateEnum state = 6; } // Two Factor Authentication Exchange Response diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 3d58a21..f8f70c3 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -302,6 +302,7 @@ message InternalTransferAssetReq { message InternalTransferAssetRes { auth.v1.Recipient recipient = 1; double amount = 2; + // TODO: Change to Asset string transaction_id = 3; string transaction_hash = 4; } From 72cb1d81172017da015ad040941c18135e87a700 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 14 Dec 2024 16:55:50 +0330 Subject: [PATCH 080/293] v2: changed tfa check Signed-off-by: nfel --- auth/v1/msg.proto | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index f8649b0..392f103 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -205,10 +205,13 @@ message TFAExRes { string qrcode_base64 = 3; } message CheckTFAReq { - InternalIAM iam = 1; + // InternalIAM iam = 1; + TFAReq req = 1; string code = 2; - optional string algorithm = 3; - optional string reason = 4; // Can be later used as a lookup + // optional string algorithm = 3; + // optional string reason = 4; // Can be later used as a lookup + // optional string transaction_id = 5; + // optional TfaStateEnum state = 6; } message TFA { From 5eb260df3a5fb13521263ed396d467f2e060e748 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 14 Dec 2024 17:09:24 +0330 Subject: [PATCH 081/293] v2: changed tfa check Signed-off-by: nfel --- auth/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 392f103..601247c 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -205,9 +205,9 @@ message TFAExRes { string qrcode_base64 = 3; } message CheckTFAReq { - // InternalIAM iam = 1; - TFAReq req = 1; + InternalIAM iam = 1; string code = 2; + TFAReq req = 3; // optional string algorithm = 3; // optional string reason = 4; // Can be later used as a lookup // optional string transaction_id = 5; From f23d1251b5d601dfc2393ecb9fdd63e3dc414e5b Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 14 Dec 2024 17:35:52 +0330 Subject: [PATCH 082/293] v2: redeem added to tfa code state Signed-off-by: nfel --- auth/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 601247c..37bce62 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -225,6 +225,7 @@ enum TfaStateEnum { LOGIN = 1; INTERNAL_TRANSFER = 2; EXTERNAL_TRANSFER = 3; + REDEEM_TOKEN = 4; } message Recipient { From ff86d65eb3b0aa7d7b6b1acb404ca8315445192e Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 16 Dec 2024 15:29:25 +0330 Subject: [PATCH 083/293] wallet: /#14 removed multiple company from user + identity now is source of truth Signed-off-by: nfel --- auth/v1/msg.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 37bce62..8f1a330 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -75,8 +75,8 @@ message CheckIAMReq { message InternalIAM { User user = 1; IdentityBasic identity = 2; - repeated Company company = 3; } + message IdReqWithIAM { int64 id = 1; InternalIAM iam = 2; @@ -110,6 +110,7 @@ message Company { bool can_provide_bnpl = 5; } +// Identity is bound to current user's real identity message Identity { string national_id = 1; string national_serial_id = 2; @@ -139,6 +140,7 @@ message Identity { message IdentityBasic { string first_name = 1; string last_name = 2; + optional Company company = 3; } message UserIdentityBasic { @@ -234,7 +236,6 @@ message Recipient { optional string last_name = 3; optional int64 user_id = 4; optional string public_key = 5; - } message LookUpNameReq { From f496cb4d326fe1839ab78648215212eeaa25016e Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 16 Dec 2024 15:50:43 +0330 Subject: [PATCH 084/293] wallet: /#14 rejection reason for bnpl is optional Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index f8f70c3..465a9d2 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -179,6 +179,7 @@ message BNPLInfo { string updated_at = 12; string created_at = 13; string expires_at = 14; + optional string rejection_reason = 15; } message BNPLList { repeated BNPLInfo list = 1; From dd0c898404962821bd7140487bea3198257019aa Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 16 Dec 2024 15:53:09 +0330 Subject: [PATCH 085/293] wallet: /#14 :) Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 465a9d2..8c7752c 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -145,6 +145,7 @@ message UserBNPLResp { optional string updated_at = 12; optional string created_at = 13; Asset selected_asset = 14; + optional string rejection_reason = 15; } message UserBNPLReq { @@ -179,7 +180,6 @@ message BNPLInfo { string updated_at = 12; string created_at = 13; string expires_at = 14; - optional string rejection_reason = 15; } message BNPLList { repeated BNPLInfo list = 1; From 3d1e544c0036b6b0dfff6e550f7012d4a5941a6b Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Tue, 17 Dec 2024 12:07:21 +0330 Subject: [PATCH 086/293] improve Identity message --- auth/v1/msg.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 37bce62..0d5020b 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -134,6 +134,8 @@ message Identity { string mobile = 21; optional Company company = 22; optional string employee_info = 23; + string pub_key = 24; + optional float balance = 25; } message IdentityBasic { From ecb8eed62c6981fa879061940801cf7860331f29 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Sat, 21 Dec 2024 11:34:50 +0330 Subject: [PATCH 087/293] improve type and GetPublicKeyByNationalIDReq --- wallet/v1/msg.proto | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index f8f70c3..d8533c4 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -225,6 +225,8 @@ enum TransactionType { SELL = 2; TRANSFER = 3; REDEEM = 4; + TRUST_LINE = 5; + WAGE = 6; } enum TransactionStatus { UNDETERMINED = 0; @@ -384,7 +386,8 @@ message RedeemTokenResList { } message GetPublicKeyByNationalIDReq { - string national_id = 1; + auth.v1.InternalIAM iam = 1; + string national_id = 2; } message GetPublicKeyByNationalIDRes { From 552bd3c428c47bcc385131d27b0d610c16dd119e Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Sat, 21 Dec 2024 15:17:26 +0330 Subject: [PATCH 088/293] add type to Asset --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 312910c..36d1097 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -75,6 +75,7 @@ message Asset { repeated string images = 30; int32 status = 31; AssetMeta meta = 32; + string type = 33; } message GetAssetReq { From ce274776a69d679861982b9e9feb1f8577207a14 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Sat, 21 Dec 2024 16:46:42 +0330 Subject: [PATCH 089/293] improve TransferAsset messages & add ExternalTransferAsset rpc --- wallet/v1/msg.proto | 4 ++-- wallet/v1/srv.proto | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 36d1097..7fc4afc 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -293,7 +293,7 @@ message UserBuyAssetReq { Transfer */ -message InternalTransferAssetReq { +message TransferAssetReq { auth.v1.InternalIAM iam = 1; auth.v1.Recipient recipient = 2; double amount = 3; @@ -303,7 +303,7 @@ message InternalTransferAssetReq { optional auth.v1.TFA tfa = 7; } -message InternalTransferAssetRes { +message TransferAssetRes { auth.v1.Recipient recipient = 1; double amount = 2; // TODO: Change to Asset diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index db06ba9..acc11e1 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -42,5 +42,6 @@ service WalletService { rpc GetPublicKeyByNationalID(GetPublicKeyByNationalIDReq) returns (GetPublicKeyByNationalIDRes); // Assets routing - rpc InternalTransferAsset(InternalTransferAssetReq) returns (InternalTransferAssetRes); + rpc InternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); + rpc ExternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); } From 219a8e107d2205670af17e3328f67916baa72168 Mon Sep 17 00:00:00 2001 From: hossein_225 Date: Mon, 23 Dec 2024 11:25:57 +0330 Subject: [PATCH 090/293] improve TransactionType --- wallet/v1/msg.proto | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 7fc4afc..f800d8e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -225,10 +225,11 @@ enum TransactionType { UNKNOWN = 0; BUY = 1; SELL = 2; - TRANSFER = 3; - REDEEM = 4; - TRUST_LINE = 5; - WAGE = 6; + INTERNAL_TRANSFER = 3; + EXTERNAL_TRANSFER = 4; + REDEEM = 5; + TRUST_LINE = 6; + WAGE = 7; } enum TransactionStatus { UNDETERMINED = 0; From 0ab540e9c0facd42d1db17bfe6180678bd48856c Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 23 Dec 2024 17:41:45 +0330 Subject: [PATCH 091/293] issue: /#11 network list added Signed-off-by: nfel --- wallet/v1/msg.proto | 28 ++++++++++++++++++++++++++++ wallet/v1/srv.proto | 2 ++ 2 files changed, 30 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index f800d8e..5cef4f4 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -396,3 +396,31 @@ message GetPublicKeyByNationalIDReq { message GetPublicKeyByNationalIDRes { string pub_key = 1; } + +/* + Network Details +*/ +enum NetworkType { + UNKNOWN_NETWORK_TYPE = 0; + ETH = 1; + XLM = 2; + BTC = 3; +} + +message Network { + int64 id = 1; + string name = 2; + string code = 3; + string explorer = 4; + int64 gas_asset_id = 5; + string description = 6; + NetworkType type = 7; + bool is_active = 8; + + string updated_at = 9; + string created_at = 10; +} + +message NetworkList { + repeated Network list = 1; +} diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index acc11e1..4d36ee2 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -13,6 +13,8 @@ service WalletService { rpc AdminGetFederation(GetFederationReq) returns (Federation); rpc UserGetFederation(auth.v1.InternalIAM) returns (Federation); + rpc GetNetworkList(base.v1.Empty) returns (NetworkList); + rpc UserGetAssetList(base.v1.Empty) returns (AssetList); rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); rpc GetAsset(GetAssetReq) returns (Asset); From faf4ac44659666b4bdda47b16ef3553bd91519ec Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 23 Dec 2024 18:15:01 +0330 Subject: [PATCH 092/293] issue: /#11 image added Signed-off-by: nfel --- wallet/v1/msg.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 5cef4f4..1acde87 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -416,9 +416,9 @@ message Network { string description = 6; NetworkType type = 7; bool is_active = 8; - - string updated_at = 9; - string created_at = 10; + string image = 9; + string updated_at = 10; + string created_at = 11; } message NetworkList { From 320a0cd857b1c91bc5744f71dbe7c658b6aa7156 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 25 Dec 2024 12:35:33 +0330 Subject: [PATCH 093/293] v2: asset -> has agreed contract Signed-off-by: nfel --- wallet/v1/msg.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 1acde87..9226af6 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -76,6 +76,7 @@ message Asset { int32 status = 31; AssetMeta meta = 32; string type = 33; + bool has_agreed_contract = 34; } message GetAssetReq { @@ -121,6 +122,7 @@ enum BNPLPaymentsStatus { NOT_STARTED = 3; NOT_YET_DUE = 4; CANCELED = 5; + REJECTED = 6; } message BNPLPayments { uint64 id = 1; From 74d54cfc60dbf986bd2a17943270a59b5aeeff52 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 25 Dec 2024 13:28:45 +0330 Subject: [PATCH 094/293] v2: since asset is public end point, can not hold accepted temrs Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 9226af6..0741af4 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -76,7 +76,6 @@ message Asset { int32 status = 31; AssetMeta meta = 32; string type = 33; - bool has_agreed_contract = 34; } message GetAssetReq { @@ -207,6 +206,7 @@ message Wallet { string updated_at = 8; string created_at = 9; string wallet_code = 10; + bool accepted_terms = 11; } message UserInitWalletReq { From d6ed4393ab326417921ec2873a068cbc2378e0f7 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 31 Dec 2024 13:09:12 +0330 Subject: [PATCH 095/293] v2: fetch basic info about user's for deposit worker Signed-off-by: nfel --- auth/v1/internal_srv.proto | 7 +++++-- auth/v1/msg.proto | 11 +++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/auth/v1/internal_srv.proto b/auth/v1/internal_srv.proto index b7d402c..4d006f5 100644 --- a/auth/v1/internal_srv.proto +++ b/auth/v1/internal_srv.proto @@ -3,7 +3,10 @@ syntax = "proto3"; package auth.v1; import "auth/v1/msg.proto"; +import "base/v1/msg.proto"; service InternalAuthorizationService { - rpc LookUpName(LookUpNameReq) returns (LookUpNameRes) {} -} \ No newline at end of file + rpc LookUpName(LookUpNameReq) returns (LookUpNameRes) {} + // This meant to only be used in a worker process + rpc FetchBasicUserInfoList(base.v1.Empty) returns (BasicUserInfoList) {} +} diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 51db28b..b92f955 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -247,3 +247,14 @@ message LookUpNameReq { message LookUpNameRes { Recipient recipient = 1; } + +message BasicUserInfo { + string name = 1; + string national_id = 2; + string pub_key = 3; + int64 user_id = 4; +} + +message BasicUserInfoList { + repeated BasicUserInfo list = 1; +} From db69e4f2d3b0a98da149d96ae40a06e773e99b03 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 31 Dec 2024 13:09:23 +0330 Subject: [PATCH 096/293] v2: transaction schema changes Signed-off-by: nfel --- wallet/v1/msg.proto | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 0741af4..612929e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -274,10 +274,13 @@ message UserGetTransactionListReq { optional int64 to_federation_id = 9; optional double amount_from = 10; optional double amount_to = 11; - optional TransactionStatus status = 12; - optional TransactionType type = 13; - optional string tracking_code = 14; + optional string tracking_code = 12; + repeated TransactionType type = 13; + repeated TransactionStatus status = 14; + optional string from_date = 15; + optional string to_date = 16; } + /* Buy */ From bf5aeac558f9d698ea6c9a8f291b72eb9f1517fb Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 6 Jan 2025 00:55:40 +0330 Subject: [PATCH 097/293] v2: deposit added to tx type Signed-off-by: nfel --- wallet/v1/msg.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 612929e..eb6c055 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -232,7 +232,10 @@ enum TransactionType { REDEEM = 5; TRUST_LINE = 6; WAGE = 7; + EXTERNAL_DEPOSIT = 8; + INTERNAL_DEPOSIT = 9; } + enum TransactionStatus { UNDETERMINED = 0; FAILED = -10; From 0414a1c1b5ab818b35e246fad03f213abc23a4fb Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 7 Jan 2025 14:53:49 +0330 Subject: [PATCH 098/293] v2: some chain related data add trx list Signed-off-by: nfel --- wallet/v1/msg.proto | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index eb6c055..81ec246 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -253,6 +253,7 @@ message Transaction { optional auth.v1.UserIdentityBasic from_user_info = 5; optional int64 from_federation_id = 6; optional Federation from_federation_info = 7; + optional int64 to_user_id = 8; optional auth.v1.UserIdentityBasic to_user_info = 9; optional int64 to_federation_id = 10; @@ -263,6 +264,9 @@ message Transaction { string updated_at = 15; string created_at = 16; string tracking_code = 17; + optional string trx_hash = 18; + optional string from_public_key = 19; + optional string to_public_key = 20; } message UserGetTransactionListReq { From 9a563e799271816b46dc47f472f46261d99237bf Mon Sep 17 00:00:00 2001 From: mapoofano Date: Sun, 19 Jan 2025 15:43:10 +0330 Subject: [PATCH 099/293] chore: add token price in transaction message --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 81ec246..16b4d33 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -267,6 +267,7 @@ message Transaction { optional string trx_hash = 18; optional string from_public_key = 19; optional string to_public_key = 20; + float64 token_price = 21; } message UserGetTransactionListReq { From c33d166b9225fbe166271d34a7e8a85900548275 Mon Sep 17 00:00:00 2001 From: mapoofano Date: Sun, 19 Jan 2025 15:44:58 +0330 Subject: [PATCH 100/293] chore: convert token pirce type to double --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 16b4d33..130dff7 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -267,7 +267,7 @@ message Transaction { optional string trx_hash = 18; optional string from_public_key = 19; optional string to_public_key = 20; - float64 token_price = 21; + double token_price = 21; } message UserGetTransactionListReq { From 87198ce3f9b6e923d4788b7548de2159d81ead7f Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 20 Jan 2025 13:17:58 +0330 Subject: [PATCH 101/293] v2: wallet locked,available,total balance Signed-off-by: nfel --- base/v1/msg.proto | 1 + wallet/v1/msg.proto | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 10c429d..0215f45 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -16,6 +16,7 @@ message IdReq { message Pagination { uint32 page = 1; // in query param it will be p uint32 page_size = 2; // in query param it will be pz + optional uint32 total_count = 3; // reponse } message Filter { string query = 1; // q diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 130dff7..ab21c5b 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -193,6 +193,10 @@ message BNPLList { message WalletList { repeated Wallet list = 1; + // optional base.v1.Pagination pagination = 2; + double available_balance = 3; + double locked_balance = 4; + double total_balance = 5; } message Wallet { From 87ee5046383ce9da0d109c214f3247f9b904cc06 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 20 Jan 2025 14:02:33 +0330 Subject: [PATCH 102/293] v2: is_locked added to wallet Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index ab21c5b..7339ebd 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -211,6 +211,7 @@ message Wallet { string created_at = 9; string wallet_code = 10; bool accepted_terms = 11; + bool is_locked = 12; } message UserInitWalletReq { From cb9b5ac9f2b63d506ea341c28296ece2b8ae3d96 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 8 Feb 2025 18:10:47 +0330 Subject: [PATCH 103/293] MarketPlace: new srv market added Signed-off-by: nfel --- alert/v1/msg.proto | 2 +- auth/v1/msg.proto | 12 ++++++ base/v1/msg.proto | 6 +-- market/v1/msg.proto | 101 ++++++++++++++++++++++++++++++++++++++++++++ market/v1/srv.proto | 24 +++++++++++ 5 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 market/v1/msg.proto create mode 100644 market/v1/srv.proto diff --git a/alert/v1/msg.proto b/alert/v1/msg.proto index 0ee7e9d..bc3fa00 100644 --- a/alert/v1/msg.proto +++ b/alert/v1/msg.proto @@ -5,7 +5,7 @@ package alert.v1; import "base/v1/msg.proto"; message AlertFilter { - base.v1.Filter base_filter = 1; + base.v1.BaseQueryParam base_filter = 1; Importance importance = 2; LogSource source = 3; } diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index b92f955..7c9a1bf 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package auth.v1; +import "base/v1/msg.proto"; + /* Internal */ @@ -81,6 +83,13 @@ message IdReqWithIAM { int64 id = 1; InternalIAM iam = 2; } + +// Used for endpoints that need token and Query Param +message IAMWithQP { + InternalIAM iam = 1; + base.v1.BaseQueryParam qp = 2; +} + message ReqWithIAMAndParams { InternalIAM iam = 1; optional bool accepted = 2; @@ -230,6 +239,9 @@ enum TfaStateEnum { INTERNAL_TRANSFER = 2; EXTERNAL_TRANSFER = 3; REDEEM_TOKEN = 4; + MARKET_PALCE_PURCHASE = 5; + MARKET_PALCE_ORDER_CREATE = 6; + MARKET_PALCE_ORDER_CANCEL = 7; } message Recipient { diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 0215f45..918db7f 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -18,8 +18,8 @@ message Pagination { uint32 page_size = 2; // in query param it will be pz optional uint32 total_count = 3; // reponse } -message Filter { - string query = 1; // q - string sort = 2; // s + +message BaseQueryParam { + repeated string sort = 2; // sort by optional Pagination page = 3; } diff --git a/market/v1/msg.proto b/market/v1/msg.proto new file mode 100644 index 0000000..e413160 --- /dev/null +++ b/market/v1/msg.proto @@ -0,0 +1,101 @@ +syntax = "proto3"; + +package market.v1; + +import "auth/v1/msg.proto"; +import "base/v1/msg.proto"; +import "wallet/v1/msg.proto"; + +message MPHistoryFilter {} +message MPListFilter {} +message MarketOrder { + uint64 id = 1; + uint64 trx_id = 2; + wallet.v1.Asset asset = 3; + wallet.v1.Asset counter_asset = 4; + double amount = 5; + double unit_price = 6; + double total_price = 7; + MarketOrderType type = 8; + MarketOrderStatus status = 9; + string from = 10; + float commission = 11; + float completion_rate = 12; + string created_at = 13; + string updated_at = 14; + bool is_public = 15; + wallet.v1.TransactionList trx = 16; + repeated string tags = 17; + repeated string comment = 18; + // repeated string attachments = 14; // possible files included by seller/buyer +} + +message PurchaseReq { + uint64 order_id = 1; + double amount = 2; + bool accepted_contract = 3; + auth.v1.TFA tfa = 4; +} +message PurchaseRes { + uint64 order_id = 1; + uint64 trx_id = 2; + double calculated_amount = 3; + MarketOrderStatus status = 4; +} + +message MarketOrderList { + repeated MarketOrder list = 1; +} + +message Buyer {} +message Seller {} +message CancleOrderReq{ + uint64 order_id = 1; +} +message NewMarketRes{ + uint64 order_id = 1; + wallet.v1.Asset asset = 2; + double amount = 3; + double unit_price = 4; +} +message NewMarketReq{ + auth.v1.InternalIAM iam = 1; + wallet.v1.Asset asset = 2; + double amount = 3; + double unit_price = 4; + auth.v1.TFA tfa = 5; + bool accepted_contract = 6; +} + +enum MarketOrderType { + MO_UNKOWN = 0; + MO_BUY = 1; + MO_SELL = 2; +} +enum MarketOrderStatus { + MO_UNKOWN_MP_STATUS = 0; // Unknown + MO_OPEN = 1; // Order is open and waiting to be completed + MO_CANCEL = 2; // Cancelled by user + MO_COMPLETED = 3; // Order is completed + MO_FAILED = 4; // Order is failed - bad trx , etc. + MO_REFUNDED = 5; // Order is refunded by platform to user due to regulation + // MO_EXPIRED = 4; // Order is expired +} +message OrderListFilter { + base.v1.BaseQueryParam base = 2; + optional string search = 3; + repeated MarketOrderType type = 4; + repeated MarketOrderStatus status = 5; + repeated string from = 6; + repeated string to = 7; + optional double starting_price = 8; + optional double ending_price = 9; + repeated wallet.v1.Asset asset = 10; + uint64 order_id = 11; + uint64 trx_id = 12; +} + +message OrderListFilterWithIAM { + OrderListFilter filter = 1; + auth.v1.InternalIAM iam = 2; +} diff --git a/market/v1/srv.proto b/market/v1/srv.proto new file mode 100644 index 0000000..1f39741 --- /dev/null +++ b/market/v1/srv.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +package market.v1; + +import "base/v1/msg.proto"; +import "market/v1/msg.proto"; + +service MarketplaceSrv { + rpc GetSellerList(OrderListFilter) returns (MarketOrderList); + rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); + rpc GetAllOrderList(OrderListFilter) returns (MarketOrderList); + + rpc GetMarketHistory(OrderListFilter) returns (MarketOrderList); // This is for public market + + rpc Purchace(PurchaseReq) returns (PurchaseRes); + + rpc NewSellOrder(NewMarketReq) returns (NewMarketRes); + rpc NewBuyOrder(NewMarketReq) returns (NewMarketRes); + + rpc CancleOrder(CancleOrderReq) returns (base.v1.StatusRes); + + rpc GetBuyHistory(OrderListFilterWithIAM) returns (MarketOrderList); + rpc GetSellHistory(OrderListFilterWithIAM) returns (MarketOrderList); +} From a8e06d5058ccebf190ae6fdfbdcacf713abf4266 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 9 Feb 2025 11:39:44 +0330 Subject: [PATCH 104/293] MarketPlace: asset list Signed-off-by: nfel --- auth/v1/msg.proto | 4 ++++ market/v1/msg.proto | 8 ++++++++ market/v1/srv.proto | 1 + 3 files changed, 13 insertions(+) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 7c9a1bf..1cdb4e5 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -95,6 +95,10 @@ message ReqWithIAMAndParams { optional bool accepted = 2; } +message ReqWithOptioanlIAM { + optional InternalIAM iam = 1; +} + /* User */ diff --git a/market/v1/msg.proto b/market/v1/msg.proto index e413160..cde663d 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -30,6 +30,14 @@ message MarketOrder { // repeated string attachments = 14; // possible files included by seller/buyer } +message MarketAssetListReq{ + base.v1.BaseQueryParam base = 1; + optional auth.v1.InternalIAM iam = 2; +} +message MarketAssetList{ + repeated wallet.v1.Asset list = 1; +} + message PurchaseReq { uint64 order_id = 1; double amount = 2; diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 1f39741..98b4cbe 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -6,6 +6,7 @@ import "base/v1/msg.proto"; import "market/v1/msg.proto"; service MarketplaceSrv { + rpc GetAssetList(MarketAssetListReq) returns (MarketAssetList); rpc GetSellerList(OrderListFilter) returns (MarketOrderList); rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); rpc GetAllOrderList(OrderListFilter) returns (MarketOrderList); From d0c2cdef13212279c23fd51259b4723c5d97a829 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 12 Feb 2025 12:51:13 +0330 Subject: [PATCH 105/293] MarketPlace: spelling issue + oder detail by id Signed-off-by: nfel --- market/v1/msg.proto | 4 ++-- market/v1/srv.proto | 22 ++++++++++++---------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index cde663d..929d6c8 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -32,7 +32,7 @@ message MarketOrder { message MarketAssetListReq{ base.v1.BaseQueryParam base = 1; - optional auth.v1.InternalIAM iam = 2; + optional auth.v1.InternalIAM iam = 2; // If not set, will returns only public orders which are limited by a white list } message MarketAssetList{ repeated wallet.v1.Asset list = 1; @@ -57,7 +57,7 @@ message MarketOrderList { message Buyer {} message Seller {} -message CancleOrderReq{ +message CancelOrderReq{ uint64 order_id = 1; } message NewMarketRes{ diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 98b4cbe..f7e7e0f 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -2,24 +2,26 @@ syntax = "proto3"; package market.v1; +import "auth/v1/msg.proto"; import "base/v1/msg.proto"; import "market/v1/msg.proto"; service MarketplaceSrv { - rpc GetAssetList(MarketAssetListReq) returns (MarketAssetList); - rpc GetSellerList(OrderListFilter) returns (MarketOrderList); - rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); - rpc GetAllOrderList(OrderListFilter) returns (MarketOrderList); + rpc GetAssetList(MarketAssetListReq) returns (MarketAssetList); // assets that can be listed in marketplace + rpc GetSellerList(OrderListFilter) returns (MarketOrderList); // list of orders by sellers + rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); // list of orders by buyers + 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 GetMarketHistory(OrderListFilter) returns (MarketOrderList); // This is for public market - rpc Purchace(PurchaseReq) returns (PurchaseRes); + rpc Purchace(PurchaseReq) returns (PurchaseRes); // purchase from an order - rpc NewSellOrder(NewMarketReq) returns (NewMarketRes); - rpc NewBuyOrder(NewMarketReq) returns (NewMarketRes); + rpc NewSellOrder(NewMarketReq) returns (NewMarketRes); // insert new sell order to market + rpc NewBuyOrder(NewMarketReq) returns (NewMarketRes); // insert new buy order to market - rpc CancleOrder(CancleOrderReq) returns (base.v1.StatusRes); + rpc CancelOrder(CancelOrderReq) returns (base.v1.StatusRes); // cancel an order - rpc GetBuyHistory(OrderListFilterWithIAM) returns (MarketOrderList); - rpc GetSellHistory(OrderListFilterWithIAM) returns (MarketOrderList); + rpc GetBuyHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to buying an asset + rpc GetSellHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to selling an asset } From fd4c1da9a4765e585e7e7f1e84f0ad5da3e486d5 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 12 Feb 2025 13:30:04 +0330 Subject: [PATCH 106/293] MarketPlace: comments + pagination issue fixed Signed-off-by: nfel --- base/v1/msg.proto | 12 ++++++++++-- market/v1/srv.proto | 13 ++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 918db7f..5384341 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -13,7 +13,15 @@ message IdRes { message IdReq { int64 id = 1; } -message Pagination { + + +message PaginationReq { + uint32 page = 1; // in query param it will be p + uint32 page_size = 2; // in query param it will be pz +} + + +message PaginationResp { uint32 page = 1; // in query param it will be p uint32 page_size = 2; // in query param it will be pz optional uint32 total_count = 3; // reponse @@ -21,5 +29,5 @@ message Pagination { message BaseQueryParam { repeated string sort = 2; // sort by - optional Pagination page = 3; + optional PaginationReq page = 3; } diff --git a/market/v1/srv.proto b/market/v1/srv.proto index f7e7e0f..9357ddd 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -7,21 +7,24 @@ import "base/v1/msg.proto"; import "market/v1/msg.proto"; service MarketplaceSrv { - rpc GetAssetList(MarketAssetListReq) returns (MarketAssetList); // assets that can be listed in marketplace - rpc GetSellerList(OrderListFilter) returns (MarketOrderList); // list of orders by sellers - rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); // list of orders by buyers 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 GetMarketHistory(OrderListFilter) returns (MarketOrderList); // This is for public market + rpc GetAssetList(MarketAssetListReq) returns (MarketAssetList); // assets that can be listed in marketplace - rpc Purchace(PurchaseReq) returns (PurchaseRes); // purchase from an order + rpc GetSellerList(OrderListFilter) returns (MarketOrderList); // list of orders by sellers + rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); // list of orders by buyers rpc NewSellOrder(NewMarketReq) returns (NewMarketRes); // insert new sell order to market rpc NewBuyOrder(NewMarketReq) returns (NewMarketRes); // insert new buy order to market + + rpc Purchace(PurchaseReq) returns (PurchaseRes); // purchase from an order + rpc CancelOrder(CancelOrderReq) returns (base.v1.StatusRes); // cancel an order + rpc GetMarketHistory(OrderListFilter) returns (MarketOrderList); // This is for public market + rpc GetBuyHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to buying an asset rpc GetSellHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to selling an asset } From bb1ba83cf10f59a32853efdaca2d44604a80b9dc Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 12 Feb 2025 13:54:14 +0330 Subject: [PATCH 107/293] MarketPlace: pagination updates Signed-off-by: nfel --- base/v1/msg.proto | 6 +++--- market/v1/msg.proto | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 5384341..17651a1 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -22,9 +22,9 @@ message PaginationReq { message PaginationResp { - uint32 page = 1; // in query param it will be p - uint32 page_size = 2; // in query param it will be pz - optional uint32 total_count = 3; // reponse + uint32 no = 1; + uint32 size = 2; + optional uint32 count = 3; } message BaseQueryParam { diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 929d6c8..f5f4522 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -52,6 +52,7 @@ message PurchaseRes { } message MarketOrderList { + base.v1.PaginationResp page = 2; repeated MarketOrder list = 1; } From 20bc178ea43f7cd9c09dd7cf12f131acb27a417e Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 12 Feb 2025 14:28:54 +0330 Subject: [PATCH 108/293] MarketPlace: cancelReq arg changed Signed-off-by: nfel --- market/v1/msg.proto | 18 +++++++++--------- market/v1/srv.proto | 9 +++++---- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index f5f4522..3e32949 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -58,15 +58,15 @@ message MarketOrderList { message Buyer {} message Seller {} -message CancelOrderReq{ - uint64 order_id = 1; -} -message NewMarketRes{ - uint64 order_id = 1; - wallet.v1.Asset asset = 2; - double amount = 3; - double unit_price = 4; -} +// message CancelOrderReq{ +// uint64 order_id = 1; +// } +// message NewMarketRes{ +// uint64 order_id = 1; +// wallet.v1.Asset asset = 2; +// double amount = 3; +// double unit_price = 4; +// } message NewMarketReq{ auth.v1.InternalIAM iam = 1; wallet.v1.Asset asset = 2; diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 9357ddd..2f72e8c 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -15,16 +15,17 @@ service MarketplaceSrv { rpc GetSellerList(OrderListFilter) returns (MarketOrderList); // list of orders by sellers rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); // list of orders by buyers - rpc NewSellOrder(NewMarketReq) returns (NewMarketRes); // insert new sell order to market - rpc NewBuyOrder(NewMarketReq) returns (NewMarketRes); // insert new buy order to market + rpc NewSellOrder(NewMarketReq) returns (MarketOrder); // insert new sell order to market + rpc NewBuyOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market rpc Purchace(PurchaseReq) returns (PurchaseRes); // purchase from an order - rpc CancelOrder(CancelOrderReq) returns (base.v1.StatusRes); // cancel an order + rpc CancelOrder(auth.v1.IdReqWithIAM) returns (base.v1.StatusRes); // cancel an order - rpc GetMarketHistory(OrderListFilter) returns (MarketOrderList); // This is for public market + rpc GetMarketPubHistory(OrderListFilter) returns (MarketOrderList); // This is for public market + rpc GetMarketHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to buying an asset rpc GetBuyHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to buying an asset rpc GetSellHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to selling an asset } From d727e8cd594c08201f81243a2ccbd8b094001f08 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 15 Feb 2025 16:23:47 +0330 Subject: [PATCH 109/293] MarketPlace: parent order Signed-off-by: nfel --- market/v1/msg.proto | 4 +++- market/v1/srv.proto | 3 +-- wallet/v1/msg.proto | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 3e32949..5ba5249 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -18,7 +18,7 @@ message MarketOrder { double total_price = 7; MarketOrderType type = 8; MarketOrderStatus status = 9; - string from = 10; + int64 from = 10; float commission = 11; float completion_rate = 12; string created_at = 13; @@ -27,6 +27,7 @@ message MarketOrder { wallet.v1.TransactionList trx = 16; repeated string tags = 17; repeated string comment = 18; + optional MarketOrder parent = 19; // purchase is done via this field // repeated string attachments = 14; // possible files included by seller/buyer } @@ -34,6 +35,7 @@ message MarketAssetListReq{ base.v1.BaseQueryParam base = 1; optional auth.v1.InternalIAM iam = 2; // If not set, will returns only public orders which are limited by a white list } + message MarketAssetList{ repeated wallet.v1.Asset list = 1; } diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 2f72e8c..eb4c9ce 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -10,7 +10,7 @@ service MarketplaceSrv { 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 GetAssetList(MarketAssetListReq) returns (MarketAssetList); // assets that can be listed in marketplace + rpc GetMarketAssetList(MarketAssetListReq) returns (MarketAssetList); // assets that can be listed in marketplace rpc GetSellerList(OrderListFilter) returns (MarketOrderList); // list of orders by sellers rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); // list of orders by buyers @@ -18,7 +18,6 @@ service MarketplaceSrv { rpc NewSellOrder(NewMarketReq) returns (MarketOrder); // insert new sell order to market rpc NewBuyOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market - rpc Purchace(PurchaseReq) returns (PurchaseRes); // purchase from an order rpc CancelOrder(auth.v1.IdReqWithIAM) returns (base.v1.StatusRes); // cancel an order diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 7339ebd..b51a347 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -239,6 +239,9 @@ enum TransactionType { WAGE = 7; EXTERNAL_DEPOSIT = 8; INTERNAL_DEPOSIT = 9; + MARKETPLACE_BUY = 10; + MARKETPLACE_SELL = 11; + LOCK = 12; } enum TransactionStatus { From bfcf67c65d81300c699d2e233bfb7305b7eca001 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 15 Feb 2025 16:27:10 +0330 Subject: [PATCH 110/293] MarketPlace: source instead of parent Signed-off-by: nfel --- market/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 5ba5249..ca5d25d 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -27,7 +27,7 @@ message MarketOrder { wallet.v1.TransactionList trx = 16; repeated string tags = 17; repeated string comment = 18; - optional MarketOrder parent = 19; // purchase is done via this field + optional MarketOrder source = 19; // purchase is done via this field // repeated string attachments = 14; // possible files included by seller/buyer } From bf0978c722f589cc3d1304772f95875268f4161e Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 17 Feb 2025 11:47:54 +0330 Subject: [PATCH 111/293] MarketPlace: Changed type -> side , removed buyer/seller in favour of side param Signed-off-by: nfel --- market/v1/msg.proto | 27 +++++++-------------------- market/v1/srv.proto | 12 ++++-------- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index ca5d25d..a803b2f 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -16,7 +16,7 @@ message MarketOrder { double amount = 5; double unit_price = 6; double total_price = 7; - MarketOrderType type = 8; + MarketOrderSide side = 8; MarketOrderStatus status = 9; int64 from = 10; float commission = 11; @@ -58,27 +58,17 @@ message MarketOrderList { repeated MarketOrder list = 1; } -message Buyer {} -message Seller {} -// message CancelOrderReq{ -// uint64 order_id = 1; -// } -// message NewMarketRes{ -// uint64 order_id = 1; -// wallet.v1.Asset asset = 2; -// double amount = 3; -// double unit_price = 4; -// } message NewMarketReq{ auth.v1.InternalIAM iam = 1; wallet.v1.Asset asset = 2; double amount = 3; double unit_price = 4; - auth.v1.TFA tfa = 5; - bool accepted_contract = 6; + MarketOrderSide side = 5; + auth.v1.TFA tfa = 6; + bool accepted_contract = 7; } -enum MarketOrderType { +enum MarketOrderSide { MO_UNKOWN = 0; MO_BUY = 1; MO_SELL = 2; @@ -93,9 +83,10 @@ enum MarketOrderStatus { // MO_EXPIRED = 4; // Order is expired } message OrderListFilter { + optional auth.v1.InternalIAM iam = 1; base.v1.BaseQueryParam base = 2; optional string search = 3; - repeated MarketOrderType type = 4; + repeated MarketOrderSide side = 4; repeated MarketOrderStatus status = 5; repeated string from = 6; repeated string to = 7; @@ -106,7 +97,3 @@ message OrderListFilter { uint64 trx_id = 12; } -message OrderListFilterWithIAM { - OrderListFilter filter = 1; - auth.v1.InternalIAM iam = 2; -} diff --git a/market/v1/srv.proto b/market/v1/srv.proto index eb4c9ce..daa09bf 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -12,19 +12,15 @@ service MarketplaceSrv { rpc GetMarketAssetList(MarketAssetListReq) returns (MarketAssetList); // assets that can be listed in marketplace - rpc GetSellerList(OrderListFilter) returns (MarketOrderList); // list of orders by sellers - rpc GetBuyerList(OrderListFilter) returns (MarketOrderList); // list of orders by buyers - - rpc NewSellOrder(NewMarketReq) returns (MarketOrder); // insert new sell order to market - rpc NewBuyOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market + rpc NewMarketOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market rpc Purchace(PurchaseReq) returns (PurchaseRes); // purchase from an order rpc CancelOrder(auth.v1.IdReqWithIAM) 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 - rpc GetMarketHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to buying an asset - rpc GetBuyHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to buying an asset - rpc GetSellHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to selling an asset + // rpc GetBuyHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to buying an asset + // rpc GetSellHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to selling an asset } From b774a4602d1312893b3d537aa052fdc3fb945c8b Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 18 Feb 2025 13:07:50 +0330 Subject: [PATCH 112/293] MarketPlace: freezed balance added in wallet Signed-off-by: nfel --- market/v1/msg.proto | 5 +++-- market/v1/srv.proto | 3 --- wallet/v1/msg.proto | 37 +++++++++++++++++++++++++++++++------ 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index a803b2f..5c8ffa9 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -19,8 +19,8 @@ message MarketOrder { MarketOrderSide side = 8; MarketOrderStatus status = 9; int64 from = 10; - float commission = 11; - float completion_rate = 12; + wallet.v1.Commission commission = 11; + float completed_amount = 12; string created_at = 13; string updated_at = 14; bool is_public = 15; @@ -82,6 +82,7 @@ enum MarketOrderStatus { MO_REFUNDED = 5; // Order is refunded by platform to user due to regulation // MO_EXPIRED = 4; // Order is expired } + message OrderListFilter { optional auth.v1.InternalIAM iam = 1; base.v1.BaseQueryParam base = 2; diff --git a/market/v1/srv.proto b/market/v1/srv.proto index daa09bf..042b8ea 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -20,7 +20,4 @@ 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 - - // rpc GetBuyHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to buying an asset - // rpc GetSellHistory(OrderListFilterWithIAM) returns (MarketOrderList); // list of order + purchase related to selling an asset } diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index b51a347..3ee01ea 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -183,6 +183,7 @@ message BNPLInfo { string created_at = 13; string expires_at = 14; } + message BNPLList { repeated BNPLInfo list = 1; } @@ -193,7 +194,7 @@ message BNPLList { message WalletList { repeated Wallet list = 1; - // optional base.v1.Pagination pagination = 2; + // optional base.v1.Pagination pagination = 2; double available_balance = 3; double locked_balance = 4; double total_balance = 5; @@ -207,11 +208,23 @@ message Wallet { int64 federation_id = 5; Federation federation_info = 6; double balance = 7; - string updated_at = 8; - string created_at = 9; - string wallet_code = 10; - bool accepted_terms = 11; - bool is_locked = 12; + double frozen_balance = 8; + string updated_at = 9; + string created_at = 10; + string wallet_code = 11; + bool accepted_terms = 12; + bool is_locked = 13; +} + +// Frozen Asset is asset locked due to reservation +message FrozenAsset { + uint64 id = 1; + int64 asset_id = 2; + int64 wallet_id = 4; + double amount = 5; + string created_at = 6; + string updated_at = 7; + optional string expires_at = 8; } message UserInitWalletReq { @@ -445,3 +458,15 @@ message Network { message NetworkList { repeated Network list = 1; } + +message Commission { + uint64 id = 1; + string name = 2; + double service = 3; + double tax = 4; + double total = 5; + string collector = 6; + optional string description = 7; + string updated_at = 10; + string created_at = 11; +} From 37363534c6b6ebc60e2850d51cdb5b572d9accf9 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 23 Feb 2025 13:37:27 +0330 Subject: [PATCH 113/293] MarketPlace: lock and freeze asset added Signed-off-by: nfel --- wallet/v1/msg.proto | 7 +++++++ wallet/v1/srv.proto | 3 +++ 2 files changed, 10 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 3ee01ea..30c83f4 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -470,3 +470,10 @@ message Commission { string updated_at = 10; string created_at = 11; } + +message LockAssetReq{ + int64 asset_id = 1; + double amount = 2; + auth.v1.InternalIAM iam = 3; + optional auth.v1.TFA tfa = 4; // if request is not internal +} diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 4d36ee2..d5a6cfc 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -46,4 +46,7 @@ service WalletService { // Assets routing rpc InternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); rpc ExternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); + + rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); + rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); } From 4229ff62b4502038e8e51396e230a298100577a1 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 23 Feb 2025 14:00:02 +0330 Subject: [PATCH 114/293] v2: typo Signed-off-by: nfel --- market/v1/srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 042b8ea..8b3436f 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -14,7 +14,7 @@ service MarketplaceSrv { rpc NewMarketOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market - rpc Purchace(PurchaseReq) returns (PurchaseRes); // purchase from an order + rpc Purchase(PurchaseReq) returns (PurchaseRes); // purchase from an order rpc CancelOrder(auth.v1.IdReqWithIAM) returns (base.v1.StatusRes); // cancel an order From 191cae26fd08aaed757a687293312cc2a6e6d090 Mon Sep 17 00:00:00 2001 From: mapoofano Date: Tue, 25 Feb 2025 16:18:25 +0330 Subject: [PATCH 115/293] chore: add iam in access token response --- auth/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 1cdb4e5..4e7216f 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -62,6 +62,7 @@ message UserAccessTokenRes { string access_token = 1; int64 access_expired_at = 2; string refresh_token = 3; + InternalIAM iam = 4; } /* From a678ceabbff68ba9624e65252e35ea6ae3555e04 Mon Sep 17 00:00:00 2001 From: mapoofano Date: Wed, 26 Feb 2025 15:11:34 +0330 Subject: [PATCH 116/293] feat: add asset price message and add asset price for asset schema --- wallet/v1/msg.proto | 8 ++++++++ wallet/v1/srv.proto | 1 + 2 files changed, 9 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 30c83f4..7e8dc72 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -76,6 +76,14 @@ message Asset { int32 status = 31; AssetMeta meta = 32; string type = 33; + AssetPrice price = 34; +} + + +message AssetPrice { + string updated_at = 1; + double market_price = 2; + double admin_price = 3; } message GetAssetReq { diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index d5a6cfc..ef69b5f 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -18,6 +18,7 @@ service WalletService { rpc UserGetAssetList(base.v1.Empty) returns (AssetList); rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); rpc GetAsset(GetAssetReq) returns (Asset); + rpc GetAssetPrice(base.v1.IdReq) returns (AssetPrice); rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes); rpc UserGetWalletList(auth.v1.InternalIAM) returns (WalletList); From 2bb3431b14548eda6c8dac636e1da4d7861dc633 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 13:48:07 +0330 Subject: [PATCH 117/293] v2: asset id instead of asset obj Signed-off-by: nfel --- market/v1/msg.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 5c8ffa9..f65a669 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -60,7 +60,8 @@ message MarketOrderList { message NewMarketReq{ auth.v1.InternalIAM iam = 1; - wallet.v1.Asset asset = 2; + // wallet.v1.Asset asset = 2; + int64 asset_id = 2; double amount = 3; double unit_price = 4; MarketOrderSide side = 5; From 6c0cacbec6673490ccf73c43b221606b1d8f5f4f Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 14:31:02 +0330 Subject: [PATCH 118/293] v2: mo_created state for tfa confirmation Signed-off-by: nfel --- market/v1/msg.proto | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index f65a669..4807aee 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -76,12 +76,13 @@ enum MarketOrderSide { } enum MarketOrderStatus { MO_UNKOWN_MP_STATUS = 0; // Unknown - MO_OPEN = 1; // Order is open and waiting to be completed - MO_CANCEL = 2; // Cancelled by user - MO_COMPLETED = 3; // Order is completed - MO_FAILED = 4; // Order is failed - bad trx , etc. - MO_REFUNDED = 5; // Order is refunded by platform to user due to regulation - // MO_EXPIRED = 4; // Order is expired + 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 } message OrderListFilter { From 8e26824d2187ef8ce654425717753e01b689629a Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 14:36:39 +0330 Subject: [PATCH 119/293] v2: initialy there is not tfa Signed-off-by: nfel --- market/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 4807aee..1a07ce7 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -65,8 +65,8 @@ message NewMarketReq{ double amount = 3; double unit_price = 4; MarketOrderSide side = 5; - auth.v1.TFA tfa = 6; - bool accepted_contract = 7; + optional auth.v1.TFA tfa = 6; + optional bool accepted_contract = 7; } enum MarketOrderSide { From ea7987342033043caaa5f7cea9e7f9c4a656822c Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 14:41:37 +0330 Subject: [PATCH 120/293] v2: trx_id - str -> int Signed-off-by: nfel --- auth/v1/msg.proto | 4 ++-- wallet/v1/msg.proto | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 4e7216f..a481d74 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -212,7 +212,7 @@ message TFAReq { optional string mobile = 2; optional string email = 3; optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal - optional string transaction_id = 5; + optional int64 transaction_id = 5; optional TfaStateEnum state = 6; } @@ -235,7 +235,7 @@ message CheckTFAReq { message TFA { TfaStateEnum state = 1; int64 code = 2; - string transaction_id = 3; + int64 transaction_id = 3; } enum TfaStateEnum { diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 7e8dc72..d18e005 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -350,7 +350,7 @@ message TransferAssetRes { auth.v1.Recipient recipient = 1; double amount = 2; // TODO: Change to Asset - string transaction_id = 3; + int64 transaction_id = 3; string transaction_hash = 4; } From 8f51fe814d282161d5c5f8279268ea84d69ae091 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 14:53:07 +0330 Subject: [PATCH 121/293] v2: renamed transaction_id -> id Signed-off-by: nfel --- auth/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index a481d74..e77c2c0 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -235,7 +235,7 @@ message CheckTFAReq { message TFA { TfaStateEnum state = 1; int64 code = 2; - int64 transaction_id = 3; + uint64 id = 3; } enum TfaStateEnum { From 2cdf15a2a725dc0c50ba93fe4b4419cf707ae70d Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 15:13:25 +0330 Subject: [PATCH 122/293] v2: name changed Signed-off-by: nfel --- auth/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index e77c2c0..4de3dfc 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -212,7 +212,7 @@ message TFAReq { optional string mobile = 2; optional string email = 3; optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal - optional int64 transaction_id = 5; + optional int64 id = 5; optional TfaStateEnum state = 6; } @@ -228,7 +228,7 @@ message CheckTFAReq { TFAReq req = 3; // optional string algorithm = 3; // optional string reason = 4; // Can be later used as a lookup - // optional string transaction_id = 5; + // optional string id = 5; // optional TfaStateEnum state = 6; } From ffe8c384fccc3869bb8de7d04b99eeb4b7f833e3 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 15:16:40 +0330 Subject: [PATCH 123/293] v2: type changed Signed-off-by: nfel --- auth/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 4de3dfc..4f8bf29 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -235,7 +235,7 @@ message CheckTFAReq { message TFA { TfaStateEnum state = 1; int64 code = 2; - uint64 id = 3; + int64 id = 3; } enum TfaStateEnum { From a3b3c56872c38155031917aa638e72c06f1ae94e Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 15:25:28 +0330 Subject: [PATCH 124/293] v2: no tfa in cancle req Signed-off-by: nfel --- auth/v1/msg.proto | 16 +++++++++++----- market/v1/srv.proto | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 4f8bf29..5204442 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -85,6 +85,12 @@ message IdReqWithIAM { InternalIAM iam = 2; } +message IdReqWithIAMAndTFA { + int64 id = 1; + InternalIAM iam = 2; + TFA tfa = 6; +} + // Used for endpoints that need token and Query Param message IAMWithQP { InternalIAM iam = 1; @@ -202,11 +208,11 @@ message BankInfo { } /* Two Factor Authentication */ -message IdReqWithIAMAndTFA { - int64 id = 1; - InternalIAM iam = 2; - string tfa_code = 3; -} +// message IdReqWithIAMAndTFA { +// int64 id = 1; +// InternalIAM iam = 2; +// string tfa_code = 3; +// } message TFAReq { InternalIAM iam = 1; optional string mobile = 2; diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 8b3436f..31380c5 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -16,7 +16,7 @@ service MarketplaceSrv { rpc Purchase(PurchaseReq) returns (PurchaseRes); // purchase from an order - rpc CancelOrder(auth.v1.IdReqWithIAM) returns (base.v1.StatusRes); // cancel an order + 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 From 195a7d8027350d8976da7f1929995093de8f0605 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 4 Mar 2025 17:16:11 +0330 Subject: [PATCH 125/293] v2: double instead of float32 Signed-off-by: nfel --- market/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 1a07ce7..d2572ce 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -20,7 +20,7 @@ message MarketOrder { MarketOrderStatus status = 9; int64 from = 10; wallet.v1.Commission commission = 11; - float completed_amount = 12; + double completed_amount = 12; string created_at = 13; string updated_at = 14; bool is_public = 15; From df5ad208fae4fb2b0330e1870dcfd81f71095f2e Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 5 Mar 2025 16:40:30 +0330 Subject: [PATCH 126/293] v2: add walletAddr to basic info Signed-off-by: nfel --- auth/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 5204442..05d773e 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -171,6 +171,7 @@ message UserIdentityBasic { string mobile = 3; string first_name = 4; string last_name = 5; + string wallet_address = 6; } message UserUpdateIdentityReq { From 5323f734072185e6f64cb08fb17bda5bbba4fce1 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 5 Mar 2025 16:53:21 +0330 Subject: [PATCH 127/293] v2: iden in mo Signed-off-by: nfel --- market/v1/msg.proto | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index d2572ce..84402d9 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -19,24 +19,25 @@ message MarketOrder { MarketOrderSide side = 8; MarketOrderStatus status = 9; int64 from = 10; - wallet.v1.Commission commission = 11; - double completed_amount = 12; - string created_at = 13; - string updated_at = 14; - bool is_public = 15; - wallet.v1.TransactionList trx = 16; - repeated string tags = 17; - repeated string comment = 18; - optional MarketOrder source = 19; // purchase is done via this field + auth.v1.UserIdentityBasic from_identity = 11; + wallet.v1.Commission commission = 12; + double completed_amount = 13; + string created_at = 14; + string updated_at = 15; + bool is_public = 16; + wallet.v1.TransactionList trx = 17; + repeated string tags = 18; + repeated string comment = 19; + optional MarketOrder source = 20; // purchase is done via this field // repeated string attachments = 14; // possible files included by seller/buyer } -message MarketAssetListReq{ +message MarketAssetListReq { base.v1.BaseQueryParam base = 1; optional auth.v1.InternalIAM iam = 2; // If not set, will returns only public orders which are limited by a white list } -message MarketAssetList{ +message MarketAssetList { repeated wallet.v1.Asset list = 1; } @@ -58,7 +59,7 @@ message MarketOrderList { repeated MarketOrder list = 1; } -message NewMarketReq{ +message NewMarketReq { auth.v1.InternalIAM iam = 1; // wallet.v1.Asset asset = 2; int64 asset_id = 2; @@ -99,4 +100,3 @@ message OrderListFilter { uint64 order_id = 11; uint64 trx_id = 12; } - From f965d1b13c5352494c34ffc9ae36cd0fb37fef11 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 9 Mar 2025 14:57:58 +0330 Subject: [PATCH 128/293] v2: auth added to purchase order Signed-off-by: nfel --- market/v1/msg.proto | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 84402d9..eda0fbd 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -42,10 +42,12 @@ message MarketAssetList { } message PurchaseReq { - uint64 order_id = 1; - double amount = 2; - bool accepted_contract = 3; - auth.v1.TFA tfa = 4; + auth.v1.InternalIAM iam = 1; + uint64 order_id = 2; + double amount = 3; + optional bool accepted_contract = 4; + optional auth.v1.TFA tfa = 5; + } message PurchaseRes { uint64 order_id = 1; From 6a9f4bb9bdee3a46ffc89bdd731c6c547da28cda Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 9 Mar 2025 16:14:09 +0330 Subject: [PATCH 129/293] v2: added 'has_source' to market filter Signed-off-by: nfel --- market/v1/msg.proto | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index eda0fbd..6938f2e 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -99,6 +99,8 @@ message OrderListFilter { optional double starting_price = 8; optional double ending_price = 9; repeated wallet.v1.Asset asset = 10; - uint64 order_id = 11; - uint64 trx_id = 12; + optional uint64 order_id = 11; + optional uint64 trx_id = 12; + optional bool is_public = 13; + optional bool has_source = 14; } From f436aa7bb45c643da9cf1ef70a02c797ddd48aaf Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 9 Mar 2025 16:32:38 +0330 Subject: [PATCH 130/293] v2: source id instead of just a boolean field Signed-off-by: nfel --- market/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 6938f2e..06d50dc 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -102,5 +102,5 @@ message OrderListFilter { optional uint64 order_id = 11; optional uint64 trx_id = 12; optional bool is_public = 13; - optional bool has_source = 14; + optional uint64 source_order_id = 14; } From 066110edaaa4e31aeba3ecd8931ffca5a7078c03 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 9 Mar 2025 16:34:02 +0330 Subject: [PATCH 131/293] v2: both source and source_order_id can be a valid filter Signed-off-by: nfel --- market/v1/msg.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 06d50dc..e5fb01f 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -102,5 +102,6 @@ message OrderListFilter { optional uint64 order_id = 11; optional uint64 trx_id = 12; optional bool is_public = 13; - optional uint64 source_order_id = 14; + optional bool has_source = 14; + optional uint64 source_order_id = 15; } From 1bca5f3c0c5e26d56d16bb3c423693a9f79a21b2 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 11 Mar 2025 14:54:39 +0330 Subject: [PATCH 132/293] v2: transaction + counter asset Signed-off-by: nfel --- market/v1/msg.proto | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index e5fb01f..57aeba6 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -51,9 +51,11 @@ message PurchaseReq { } message PurchaseRes { uint64 order_id = 1; - uint64 trx_id = 2; - double calculated_amount = 3; - MarketOrderStatus status = 4; + optional uint64 trx_id = 2; + double req_amount = 3; + double commission_amount = 4; + double calculated_amount = 5; + MarketOrderStatus status = 6; } message MarketOrderList { @@ -65,11 +67,12 @@ message NewMarketReq { auth.v1.InternalIAM iam = 1; // wallet.v1.Asset asset = 2; int64 asset_id = 2; - double amount = 3; - double unit_price = 4; - MarketOrderSide side = 5; - optional auth.v1.TFA tfa = 6; - optional bool accepted_contract = 7; + int64 counter_asset_id = 3; + double amount = 4; + double unit_price = 5; + MarketOrderSide side = 6; + optional auth.v1.TFA tfa = 7; + optional bool accepted_contract = 8; } enum MarketOrderSide { From f523644804df81f218ba4ed84c0a11ad902c989e Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 17 Mar 2025 14:59:40 +0330 Subject: [PATCH 133/293] v2: discount Signed-off-by: nfel --- wallet/v1/msg.proto | 15 +++++++++++++-- wallet/v1/srv.proto | 2 ++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d18e005..a66985a 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -79,7 +79,6 @@ message Asset { AssetPrice price = 34; } - message AssetPrice { string updated_at = 1; double market_price = 2; @@ -479,9 +478,21 @@ message Commission { string created_at = 11; } -message LockAssetReq{ +message LockAssetReq { int64 asset_id = 1; double amount = 2; auth.v1.InternalIAM iam = 3; optional auth.v1.TFA tfa = 4; // if request is not internal } + +message AssetDiscountReq { + string code = 1; + string asset_id = 2; +} + +message AssetDiscountRes { + string code = 1; + string expires_at = 2; + double static_amount = 3; + double percentage = 4; +} diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index ef69b5f..f17fff9 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -50,4 +50,6 @@ service WalletService { rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); + + rpc AssetDiscount(AssetDiscountReq) returns (AssetDiscountRes); } From fd124222f4eb31203a2fdcdeb869a0b21abd9c82 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 17 Mar 2025 15:03:14 +0330 Subject: [PATCH 134/293] v2: discount code in sale req Signed-off-by: nfel --- wallet/v1/msg.proto | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index a66985a..510fe69 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -367,6 +367,7 @@ message SaleGetTokenRes { int64 total_price = 3; double amount = 4; string asset = 5; + optional string discount_code = 6; } message SaleConfirmReq { @@ -377,6 +378,7 @@ message SaleConfirmReq { string card_holder_info = 5; string card_holder_pan = 6; string final_amount = 7; + optional string discount_code = 8; } message SaleConfirmRes { @@ -390,6 +392,8 @@ message SaleManualReq { string paid_at = 4; string rrn = 5; string national_id = 6; + optional string discount_code = 7; + } /* From 2715b6788f497aa916978280514674d094f2661e Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 5 Apr 2025 13:55:04 +0330 Subject: [PATCH 135/293] v2: added amount to discount Signed-off-by: nfel --- wallet/v1/msg.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 510fe69..221b3ec 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -492,6 +492,7 @@ message LockAssetReq { message AssetDiscountReq { string code = 1; string asset_id = 2; + optional double amount = 3; // calculate discount amount } message AssetDiscountRes { @@ -499,4 +500,5 @@ message AssetDiscountRes { string expires_at = 2; double static_amount = 3; double percentage = 4; + optional double discount_amount = 5; // based of asset price and discount amount in req } From f588ab9e89f4d5887e06a98d98b26fffecdd2a0c Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 5 Apr 2025 14:06:05 +0330 Subject: [PATCH 136/293] v2: discount in sale get token Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 221b3ec..445526e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -358,6 +358,7 @@ message SaleGetTokenReq { auth.v1.InternalIAM iam = 1; int64 asset_id = 2; double amount = 3; + optional string discount_code = 4; } // represent the information regarding the ipg gateway From 478f063c448e68ac59b3bda3fb9ea014f715b43e Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 5 Apr 2025 14:31:17 +0330 Subject: [PATCH 137/293] v2: asset id type ( str -> int ) Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 445526e..7bcf100 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -492,7 +492,7 @@ message LockAssetReq { message AssetDiscountReq { string code = 1; - string asset_id = 2; + int64 asset_id = 2; optional double amount = 3; // calculate discount amount } From b60db4b969474e243191187aad2bc6abd7bdbac8 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 6 Apr 2025 15:31:00 +0330 Subject: [PATCH 138/293] v2: discount code type ( str -> int ) Signed-off-by: nfel --- wallet/v1/msg.proto | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 7bcf100..d63124e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -358,7 +358,7 @@ message SaleGetTokenReq { auth.v1.InternalIAM iam = 1; int64 asset_id = 2; double amount = 3; - optional string discount_code = 4; + optional uint64 discount_code = 4; } // represent the information regarding the ipg gateway @@ -368,7 +368,7 @@ message SaleGetTokenRes { int64 total_price = 3; double amount = 4; string asset = 5; - optional string discount_code = 6; + optional uint64 discount_code = 4; } message SaleConfirmReq { @@ -379,7 +379,7 @@ message SaleConfirmReq { string card_holder_info = 5; string card_holder_pan = 6; string final_amount = 7; - optional string discount_code = 8; + optional uint64 discount_code = 4; } message SaleConfirmRes { @@ -393,7 +393,7 @@ message SaleManualReq { string paid_at = 4; string rrn = 5; string national_id = 6; - optional string discount_code = 7; + optional uint64 discount_code = 4; } @@ -491,15 +491,17 @@ message LockAssetReq { } message AssetDiscountReq { - string code = 1; - int64 asset_id = 2; - optional double amount = 3; // calculate discount amount + auth.v1.InternalIAM iam = 1; + string code = 2; + int64 asset_id = 3; + optional double amount = 4; // calculate discount amount } message AssetDiscountRes { - string code = 1; - string expires_at = 2; - double static_amount = 3; - double percentage = 4; - optional double discount_amount = 5; // based of asset price and discount amount in req + uint64 id = 1; + string code = 2; + string expires_at = 3; + double static_amount = 4; + double percentage = 5; + optional double discount_amount = 6; // based of asset price and discount amount in req } From f1350ead711b23100b8135e585c6d435ecea6ba9 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 7 Apr 2025 10:18:37 +0330 Subject: [PATCH 139/293] v2: bad idx for Signed-off-by: nfel --- wallet/v1/msg.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d63124e..578c994 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -368,7 +368,7 @@ message SaleGetTokenRes { int64 total_price = 3; double amount = 4; string asset = 5; - optional uint64 discount_code = 4; + optional uint64 discount_code = 6; } message SaleConfirmReq { @@ -379,7 +379,7 @@ message SaleConfirmReq { string card_holder_info = 5; string card_holder_pan = 6; string final_amount = 7; - optional uint64 discount_code = 4; + optional uint64 discount_code = 8; } message SaleConfirmRes { @@ -393,7 +393,7 @@ message SaleManualReq { string paid_at = 4; string rrn = 5; string national_id = 6; - optional uint64 discount_code = 4; + optional uint64 discount_code = 7; } From 26f5aeecc3b39245d6bf48d87ab937bc37f80304 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 8 Apr 2025 11:57:59 +0330 Subject: [PATCH 140/293] v2: formate + discount now has supported assets Signed-off-by: nfel --- wallet/v1/msg.proto | 40 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 578c994..75303b2 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -9,9 +9,7 @@ import "base/v1/msg.proto"; INTERNAL DATA */ -message InternalTransactionData { - int64 transaction_id = 1; -} +message InternalTransactionData { int64 transaction_id = 1; } /* Federation @@ -38,9 +36,7 @@ message GetFederationReq { Asset */ -message AssetList { - repeated Asset list = 1; -} +message AssetList { repeated Asset list = 1; } message Asset { int64 id = 1; @@ -90,9 +86,7 @@ message GetAssetReq { optional string code = 3; } -message AssetMeta { - PropertyMeta property = 1; -} +message AssetMeta { PropertyMeta property = 1; } message PropertyMeta { string description = 1; @@ -167,7 +161,8 @@ message UserBNPLReq { optional float amount = 7; optional PaymentPeriodInfo payment_period = 8; optional bool has_agreed_contract = 9; - optional int32 current_step = 10; //Can be useful for admin to change the current step + optional int32 current_step = + 10; // Can be useful for admin to change the current step optional int64 asset_id = 11; } @@ -191,9 +186,7 @@ message BNPLInfo { string expires_at = 14; } -message BNPLList { - repeated BNPLInfo list = 1; -} +message BNPLList { repeated BNPLInfo list = 1; } /* Wallet @@ -382,9 +375,7 @@ message SaleConfirmReq { optional uint64 discount_code = 8; } -message SaleConfirmRes { - string receipt_link = 1; -} +message SaleConfirmRes { string receipt_link = 1; } message SaleManualReq { auth.v1.InternalIAM iam = 1; @@ -394,7 +385,6 @@ message SaleManualReq { string rrn = 5; string national_id = 6; optional uint64 discount_code = 7; - } /* @@ -430,18 +420,14 @@ message RedeemTokenRes { optional auth.v1.BankInfo bank_info = 10; optional string receipt = 11; } -message RedeemTokenResList { - repeated RedeemTokenRes list = 1; -} +message RedeemTokenResList { repeated RedeemTokenRes list = 1; } message GetPublicKeyByNationalIDReq { auth.v1.InternalIAM iam = 1; string national_id = 2; } -message GetPublicKeyByNationalIDRes { - string pub_key = 1; -} +message GetPublicKeyByNationalIDRes { string pub_key = 1; } /* Network Details @@ -467,9 +453,7 @@ message Network { string created_at = 11; } -message NetworkList { - repeated Network list = 1; -} +message NetworkList { repeated Network list = 1; } message Commission { uint64 id = 1; @@ -503,5 +487,7 @@ message AssetDiscountRes { string expires_at = 3; double static_amount = 4; double percentage = 5; - optional double discount_amount = 6; // based of asset price and discount amount in req + double supported_assets = 6; + optional double discount_amount = + 7; // based of asset price and discount amount in req } From 3f6f06414d3f6c35c55e805ee5d723452dd0f5be Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 8 Apr 2025 11:58:19 +0330 Subject: [PATCH 141/293] v2: discount - only one supported asset Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 75303b2..9f6cf30 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -487,7 +487,7 @@ message AssetDiscountRes { string expires_at = 3; double static_amount = 4; double percentage = 5; - double supported_assets = 6; + double supported_asset = 6; optional double discount_amount = 7; // based of asset price and discount amount in req } From 180b98a28251c5f4280e23e6f32aec8c569610dd Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 8 Apr 2025 12:09:25 +0330 Subject: [PATCH 142/293] v2: assetid ( double -> int) Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 9f6cf30..d0bc2c9 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -487,7 +487,7 @@ message AssetDiscountRes { string expires_at = 3; double static_amount = 4; double percentage = 5; - double supported_asset = 6; + int64 supported_asset = 6; optional double discount_amount = 7; // based of asset price and discount amount in req } From 56296a2de5bb1444a95e623783b57f108b7357ea Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 8 Apr 2025 12:11:05 +0330 Subject: [PATCH 143/293] v2: optional ( nil means supported for all types of coin ) Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d0bc2c9..711f97b 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -487,7 +487,7 @@ message AssetDiscountRes { string expires_at = 3; double static_amount = 4; double percentage = 5; - int64 supported_asset = 6; + optional int64 supported_asset = 6; optional double discount_amount = 7; // based of asset price and discount amount in req } From 48d9276e5f272d1e5460f3261d5af99f39f318bc Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 9 Apr 2025 15:34:12 +0330 Subject: [PATCH 144/293] v2: max amount Signed-off-by: nfel --- wallet/v1/msg.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 711f97b..ad75751 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -487,7 +487,8 @@ message AssetDiscountRes { string expires_at = 3; double static_amount = 4; double percentage = 5; - optional int64 supported_asset = 6; + double max_amount = 6; + optional int64 supported_asset = 7; optional double discount_amount = - 7; // based of asset price and discount amount in req + 8; // based of asset price and discount amount in req } From d16247cc2b80da2348c62a7b71e57c0def1864de Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Apr 2025 13:09:17 +0330 Subject: [PATCH 145/293] v2: withdraw receipt - ( code ) Signed-off-by: nfel --- wallet/v1/msg.proto | 3 +++ wallet/v1/srv.proto | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index ad75751..01a9377 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -346,6 +346,9 @@ message TransferAssetRes { string transaction_hash = 4; } +// represent the information regarding the withdraw in bank +message WithdrawReceipt { string code = 1; } + // represent the information regarding the sale of the token message SaleGetTokenReq { auth.v1.InternalIAM iam = 1; diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index f17fff9..ec30ec7 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -52,4 +52,8 @@ service WalletService { rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); rpc AssetDiscount(AssetDiscountReq) returns (AssetDiscountRes); + + // --- IRT --- + // rpc WithdrawIRT(WithdrawIRTReq) returns (base.v1.StatusRes); + // rpc DepositIRT(DepositIRTReq) returns (base.v1.StatusRes); } From 516a97f906bb8bc62e202a2f9caee04a7ba9eee5 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Apr 2025 16:04:45 +0330 Subject: [PATCH 146/293] v2: is locked and is base asset added + balance rqe for user managed irt wallet Signed-off-by: nfel --- wallet/v1/msg.proto | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 01a9377..2ee955a 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -73,6 +73,8 @@ message Asset { AssetMeta meta = 32; string type = 33; AssetPrice price = 34; + bool is_base_asset = 35; + bool is_locked = 36; } message AssetPrice { @@ -347,8 +349,17 @@ message TransferAssetRes { } // represent the information regarding the withdraw in bank +message BalanceReq { + auth.v1.InternalIAM iam = 1; + auth.v1.BankInfo bank_info = 2; //BankInfo +} message WithdrawReceipt { string code = 1; } +message DepositReq{ + auth.v1.BankInfo bank_info = 1; //BankInfo + double amount = 2; +} + // represent the information regarding the sale of the token message SaleGetTokenReq { auth.v1.InternalIAM iam = 1; @@ -400,6 +411,7 @@ message RedeemTokenReq { double amount = 4; optional string tfa_code = 5; } + message CalculateRedeemTokenRes { Asset asset = 1; double free_balance = 2; @@ -409,6 +421,7 @@ message CalculateRedeemTokenRes { double user_capital = 6; optional auth.v1.BankInfo bank_info = 7; } + message RedeemTokenRes { uint64 id = 1; int64 user_id = 2; From e4c3fc5879a93888e48fcc93104563027fb0596a Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Apr 2025 16:04:53 +0330 Subject: [PATCH 147/293] v2: tfa for irt Signed-off-by: nfel --- auth/v1/msg.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 05d773e..d5839e1 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -198,6 +198,7 @@ enum BankInfoStatusEnum { VERIFIED = 1; DOES_NOT_MATCH = 2; } + message BankInfo { int64 id = 1; string deposit_number = 2; @@ -254,6 +255,8 @@ enum TfaStateEnum { MARKET_PALCE_PURCHASE = 5; MARKET_PALCE_ORDER_CREATE = 6; MARKET_PALCE_ORDER_CANCEL = 7; + IRT_WITHDRAWAL = 8; + IRT_DEPOSIT = 9; } message Recipient { From 1c1110b3a938fdd9a4bb6fc4efbaec4543538974 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Apr 2025 16:49:11 +0330 Subject: [PATCH 148/293] v2: irt trx type Signed-off-by: nfel --- wallet/v1/msg.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 2ee955a..93df615 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -257,6 +257,8 @@ enum TransactionType { MARKETPLACE_BUY = 10; MARKETPLACE_SELL = 11; LOCK = 12; + IRT_DEPOSIT = 13; + IRT_WITHDRAWAL = 14; } enum TransactionStatus { From a5370200b56b233642c9a9cd59dc49c184b0647d Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 13 Apr 2025 11:28:28 +0330 Subject: [PATCH 149/293] v2: simplifying irt flow Signed-off-by: nfel --- wallet/v1/msg.proto | 5 +++++ wallet/v1/srv.proto | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 93df615..7a8e751 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -510,3 +510,8 @@ message AssetDiscountRes { optional double discount_amount = 8; // based of asset price and discount amount in req } + +message IRTReq { + auth.v1.InternalIAM iam = 1; + double amount = 3; +} diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index ec30ec7..3765a1d 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -54,6 +54,6 @@ service WalletService { rpc AssetDiscount(AssetDiscountReq) returns (AssetDiscountRes); // --- IRT --- - // rpc WithdrawIRT(WithdrawIRTReq) returns (base.v1.StatusRes); - // rpc DepositIRT(DepositIRTReq) returns (base.v1.StatusRes); + rpc WithdrawIRT(IRTReq) returns (base.v1.StatusRes); + rpc DepositIRT(IRTReq) returns (base.v1.StatusRes); } From c8f69b931028c3c3133c1a566ec400d435f4d1e8 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 29 Apr 2025 12:52:24 +0330 Subject: [PATCH 150/293] v2: refactored proto - Sale -> IPG - Withdraw/Deposit IRT - Buy Asset Added - Removed redundant messages - Cleanup docs Signed-off-by: nfel --- wallet/v1/msg.proto | 309 ++++++++++++++++++++++++-------------------- wallet/v1/srv.proto | 20 ++- 2 files changed, 181 insertions(+), 148 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 7a8e751..77a0ca7 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -9,7 +9,9 @@ import "base/v1/msg.proto"; INTERNAL DATA */ -message InternalTransactionData { int64 transaction_id = 1; } +message InternalTransactionData { + int64 transaction_id = 1; +} /* Federation @@ -32,11 +34,46 @@ message GetFederationReq { optional string ed_public_hash = 4; } +/* + Wallet +*/ + +message UserInitWalletReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; +} + +message WalletList { + repeated Wallet list = 1; + // optional base.v1.Pagination pagination = 2; + double available_balance = 3; + double locked_balance = 4; + double total_balance = 5; +} + +message Wallet { + int64 id = 1; + int64 user_id = 2; + int64 asset_id = 3; + Asset asset_info = 4; + int64 federation_id = 5; + Federation federation_info = 6; + double balance = 7; + double frozen_balance = 8; + string updated_at = 9; + string created_at = 10; + string wallet_code = 11; + bool accepted_terms = 12; + bool is_locked = 13; +} + /* Asset */ -message AssetList { repeated Asset list = 1; } +message AssetList { + repeated Asset list = 1; +} message Asset { int64 id = 1; @@ -77,6 +114,24 @@ message Asset { bool is_locked = 36; } +message AssetDiscountReq { + auth.v1.InternalIAM iam = 1; + string code = 2; + int64 asset_id = 3; + optional double amount = 4; // calculate discount amount +} + +message AssetDiscountRes { + uint64 id = 1; + string code = 2; + string expires_at = 3; + double static_amount = 4; + double percentage = 5; + double max_amount = 6; + optional int64 supported_asset = 7; + optional double discount_amount = 8; // based of asset price and discount amount in req +} + message AssetPrice { string updated_at = 1; double market_price = 2; @@ -88,7 +143,9 @@ message GetAssetReq { optional string code = 3; } -message AssetMeta { PropertyMeta property = 1; } +message AssetMeta { + PropertyMeta property = 1; +} message PropertyMeta { string description = 1; @@ -104,6 +161,14 @@ message PropertyMeta { string user_agreement_url = 11; } +// Used for both locking and releasing asset :) +message LockAssetReq { + int64 asset_id = 1; + double amount = 2; + auth.v1.InternalIAM iam = 3; + optional auth.v1.TFA tfa = 4; // if request is not internal +} + /* BNPL - not really but close name */ @@ -163,8 +228,7 @@ message UserBNPLReq { optional float amount = 7; optional PaymentPeriodInfo payment_period = 8; optional bool has_agreed_contract = 9; - optional int32 current_step = - 10; // Can be useful for admin to change the current step + optional int32 current_step = 10; // Can be useful for admin to change the current step optional int64 asset_id = 11; } @@ -188,50 +252,8 @@ message BNPLInfo { string expires_at = 14; } -message BNPLList { repeated BNPLInfo list = 1; } - -/* - Wallet -*/ - -message WalletList { - repeated Wallet list = 1; - // optional base.v1.Pagination pagination = 2; - double available_balance = 3; - double locked_balance = 4; - double total_balance = 5; -} - -message Wallet { - int64 id = 1; - int64 user_id = 2; - int64 asset_id = 3; - Asset asset_info = 4; - int64 federation_id = 5; - Federation federation_info = 6; - double balance = 7; - double frozen_balance = 8; - string updated_at = 9; - string created_at = 10; - string wallet_code = 11; - bool accepted_terms = 12; - bool is_locked = 13; -} - -// Frozen Asset is asset locked due to reservation -message FrozenAsset { - uint64 id = 1; - int64 asset_id = 2; - int64 wallet_id = 4; - double amount = 5; - string created_at = 6; - string updated_at = 7; - optional string expires_at = 8; -} - -message UserInitWalletReq { - auth.v1.InternalIAM iam = 1; - int64 asset_id = 2; +message BNPLList { + repeated BNPLInfo list = 1; } /* @@ -314,20 +336,6 @@ message UserGetTransactionListReq { optional string to_date = 16; } -/* - Buy -*/ - -message UserBuyAssetReq { - auth.v1.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; -} - -/* - Sell -*/ - /* Transfer */ @@ -348,59 +356,7 @@ message TransferAssetRes { // TODO: Change to Asset int64 transaction_id = 3; string transaction_hash = 4; -} - -// represent the information regarding the withdraw in bank -message BalanceReq { - auth.v1.InternalIAM iam = 1; - auth.v1.BankInfo bank_info = 2; //BankInfo -} -message WithdrawReceipt { string code = 1; } - -message DepositReq{ - auth.v1.BankInfo bank_info = 1; //BankInfo - double amount = 2; -} - -// represent the information regarding the sale of the token -message SaleGetTokenReq { - auth.v1.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; - optional uint64 discount_code = 4; -} - -// represent the information regarding the ipg gateway -message SaleGetTokenRes { - string url = 1; - int64 unit_price = 2; - int64 total_price = 3; - double amount = 4; - string asset = 5; - optional uint64 discount_code = 6; -} - -message SaleConfirmReq { - string ref_id = 1; - string res_code = 2; - string sale_order_id = 3; - string sale_reference_id = 4; - string card_holder_info = 5; - string card_holder_pan = 6; - string final_amount = 7; - optional uint64 discount_code = 8; -} - -message SaleConfirmRes { string receipt_link = 1; } - -message SaleManualReq { - auth.v1.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; - string paid_at = 4; - string rrn = 5; - string national_id = 6; - optional uint64 discount_code = 7; + Asset asset = 5; } /* @@ -438,14 +394,22 @@ message RedeemTokenRes { optional auth.v1.BankInfo bank_info = 10; optional string receipt = 11; } -message RedeemTokenResList { repeated RedeemTokenRes list = 1; } +message RedeemTokenResList { + repeated RedeemTokenRes list = 1; +} -message GetPublicKeyByNationalIDReq { +/* + Utility: Get Public Key from national id +*/ + +message NationalIDReq { auth.v1.InternalIAM iam = 1; string national_id = 2; } -message GetPublicKeyByNationalIDRes { string pub_key = 1; } +message PubKeyRes { + string pub_key = 1; +} /* Network Details @@ -471,8 +435,13 @@ message Network { string created_at = 11; } -message NetworkList { repeated Network list = 1; } +message NetworkList { + repeated Network list = 1; +} +/* + * Commission + * */ message Commission { uint64 id = 1; string name = 2; @@ -485,33 +454,91 @@ message Commission { string created_at = 11; } -message LockAssetReq { - int64 asset_id = 1; - double amount = 2; - auth.v1.InternalIAM iam = 3; - optional auth.v1.TFA tfa = 4; // if request is not internal -} +/* + * IPG - Internet Payment Gateway + * 1. Get Token + * 2. Confirm + * 3. Cancel + * 4. [optional] check balance + * */ -message AssetDiscountReq { +// represent the information regarding the withdraw in bank +// message BalanceReq { +// auth.v1.InternalIAM iam = 1; +// auth.v1.BankInfo bank_info = 2; // BankInfo +// } + +// represent the information regarding the sale of the token +message IPGGetTokenReq { auth.v1.InternalIAM iam = 1; - string code = 2; - int64 asset_id = 3; - optional double amount = 4; // calculate discount amount + int64 asset_id = 2; + double amount = 3; + optional uint64 discount_code = 4; } -message AssetDiscountRes { - uint64 id = 1; - string code = 2; - string expires_at = 3; - double static_amount = 4; - double percentage = 5; - double max_amount = 6; - optional int64 supported_asset = 7; - optional double discount_amount = - 8; // based of asset price and discount amount in req +// represent the information regarding the ipg gateway +message IPGGetTokenRes { + string url = 1; + int64 unit_price = 2; + int64 total_price = 3; + double amount = 4; + string asset = 5; + optional uint64 discount_code = 6; } -message IRTReq { +message IPGConfirmReq { + string ref_id = 1; + string res_code = 2; + string sale_order_id = 3; + string sale_reference_id = 4; + string card_holder_info = 5; + string card_holder_pan = 6; + string final_amount = 7; +} + +message IPGConfirmRes { + string receipt_link = 1; +} + +message SaleManualReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; + string paid_at = 4; + string rrn = 5; + string national_id = 6; + optional uint64 discount_code = 7; +} + +/* IRT + * + * */ + +message DepositIRTReq { auth.v1.InternalIAM iam = 1; double amount = 3; } + +message WithdrawIRTReq { + auth.v1.InternalIAM iam = 1; + double amount = 2; + int64 bank_info_id = 3; +} + +message WithdrawIRTRes { + int64 transaction_id = 1; + int64 amount = 2; + string transaction_hash = 3; +} + +message BuyAssetReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + double amount = 3; + optional uint64 discount_code = 4; + optional auth.v1.TFA tfa = 5; // This might be used in the future +} + +message BuyAssetRes { + int64 id = 1; +} diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 3765a1d..301760d 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -15,7 +15,8 @@ service WalletService { rpc GetNetworkList(base.v1.Empty) returns (NetworkList); - rpc UserGetAssetList(base.v1.Empty) returns (AssetList); + rpc GetAssetList(base.v1.Empty) returns (AssetList); + rpc UserGetAssetList(auth.v1.InternalIAM) returns (AssetList); rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); rpc GetAsset(GetAssetReq) returns (Asset); rpc GetAssetPrice(base.v1.IdReq) returns (AssetPrice); @@ -25,8 +26,11 @@ service WalletService { rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); - rpc SaleGetToken(SaleGetTokenReq) returns (SaleGetTokenRes); - rpc SaleConfirm(SaleConfirmReq) returns (SaleConfirmRes); + // Get Token from IPG is and internal api + rpc IPGGetToken(IPGGetTokenReq) returns (IPGGetTokenRes); + // IPG Confirm is a public api + rpc IPGConfirm(IPGConfirmReq) returns (IPGConfirmRes); + // Admin can increase user's balance as wish rpc AdminManualSaleDeposit(SaleManualReq) returns (base.v1.StatusRes); // BNPL @@ -42,7 +46,7 @@ service WalletService { rpc RedeemToken(RedeemTokenReq) returns (base.v1.StatusRes); rpc RedeemTokenList(auth.v1.ReqWithIAMAndParams) returns (RedeemTokenResList); - rpc GetPublicKeyByNationalID(GetPublicKeyByNationalIDReq) returns (GetPublicKeyByNationalIDRes); + rpc GetPublicKeyByNationalID(NationalIDReq) returns (PubKeyRes); // Assets routing rpc InternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); @@ -53,7 +57,9 @@ service WalletService { rpc AssetDiscount(AssetDiscountReq) returns (AssetDiscountRes); - // --- IRT --- - rpc WithdrawIRT(IRTReq) returns (base.v1.StatusRes); - rpc DepositIRT(IRTReq) returns (base.v1.StatusRes); + // --- IRT --- + rpc WithdrawIRT(WithdrawIRTReq) returns (WithdrawIRTRes); + rpc DepositIRT(DepositIRTReq) returns (IPGGetTokenRes); + + rpc BuyAsset(BuyAssetReq) returns (BuyAssetRes); } From af46f5392ee4023385d6b5a04e2bf75d948de8ca Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 29 Apr 2025 14:52:57 +0330 Subject: [PATCH 151/293] v2: ipg status enum Signed-off-by: nfel --- wallet/v1/msg.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 77a0ca7..3a91c23 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -468,6 +468,11 @@ message Commission { // auth.v1.BankInfo bank_info = 2; // BankInfo // } +enum IPGStatus { + IPG_SUCCESS = 0; + IPG_FAILED = -1; + IPG_PENDING = 1; +} // represent the information regarding the sale of the token message IPGGetTokenReq { auth.v1.InternalIAM iam = 1; From 0a1697f5d1d3e76004608a949afd50b97d49e3fb Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 30 Apr 2025 13:49:55 +0330 Subject: [PATCH 152/293] v2: commision added to asset Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 3a91c23..caa0c25 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -112,6 +112,7 @@ message Asset { AssetPrice price = 34; bool is_base_asset = 35; bool is_locked = 36; + Commission commission = 37; } message AssetDiscountReq { From 9ee1728baa9dcb85fe608f41cc036056955c9149 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 30 Apr 2025 15:44:33 +0330 Subject: [PATCH 153/293] v2: calc buy asset added Signed-off-by: nfel --- wallet/v1/msg.proto | 7 +++++++ wallet/v1/srv.proto | 1 + 2 files changed, 8 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index caa0c25..00088b0 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -547,4 +547,11 @@ message BuyAssetReq { message BuyAssetRes { int64 id = 1; + Asset asset = 2; + double amount = 3; + double calculated_amount = 4; + double fee_amount = 5; + double discount_amount = 6; + double buy_min_amount = 7; + } diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 301760d..291b007 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -61,5 +61,6 @@ service WalletService { rpc WithdrawIRT(WithdrawIRTReq) returns (WithdrawIRTRes); rpc DepositIRT(DepositIRTReq) returns (IPGGetTokenRes); + rpc CalcBuyAsset(BuyAssetReq) returns (BuyAssetRes); rpc BuyAsset(BuyAssetReq) returns (BuyAssetRes); } From 60b7f90a71fda55ff28e838cdee87673c0179aec Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 30 Apr 2025 16:37:41 +0330 Subject: [PATCH 154/293] v2: :0 Signed-off-by: nfel --- wallet/v1/msg.proto | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 00088b0..d083539 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -474,6 +474,7 @@ enum IPGStatus { IPG_FAILED = -1; IPG_PENDING = 1; } + // represent the information regarding the sale of the token message IPGGetTokenReq { auth.v1.InternalIAM iam = 1; @@ -549,9 +550,9 @@ message BuyAssetRes { int64 id = 1; Asset asset = 2; double amount = 3; - double calculated_amount = 4; - double fee_amount = 5; - double discount_amount = 6; - double buy_min_amount = 7; - + double calculated_irt_amount = 4; + double calculated_asset_amount = 5; + double fee_amount = 6; + double discount_amount = 7; + double buy_min_amount = 8; } From fd3ce685bb535a1fda6e0fcb1e000ee52b7c5246 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 30 Apr 2025 16:38:58 +0330 Subject: [PATCH 155/293] v2: irt is int :) Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d083539..c313add 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -550,7 +550,7 @@ message BuyAssetRes { int64 id = 1; Asset asset = 2; double amount = 3; - double calculated_irt_amount = 4; + int64 calculated_irt_amount = 4; double calculated_asset_amount = 5; double fee_amount = 6; double discount_amount = 7; From dbe1c8c29386d23caca8feced8b7feb05c4fedc9 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 30 Apr 2025 16:40:18 +0330 Subject: [PATCH 156/293] v2: discount is in irt Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index c313add..84e7fb4 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -553,6 +553,6 @@ message BuyAssetRes { int64 calculated_irt_amount = 4; double calculated_asset_amount = 5; double fee_amount = 6; - double discount_amount = 7; + int64 discount_amount = 7; double buy_min_amount = 8; } From aab97d43ca765f9bdff0134f2834d39b99ca9e4d Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 30 Apr 2025 16:42:17 +0330 Subject: [PATCH 157/293] v2: wallet added to buy result Signed-off-by: nfel --- wallet/v1/msg.proto | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 84e7fb4..14d0cd0 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -548,11 +548,12 @@ message BuyAssetReq { message BuyAssetRes { int64 id = 1; - Asset asset = 2; - double amount = 3; - int64 calculated_irt_amount = 4; - double calculated_asset_amount = 5; - double fee_amount = 6; - int64 discount_amount = 7; - double buy_min_amount = 8; + Wallet wallet = 2; + Asset asset = 3; + double amount = 4; + int64 calculated_irt_amount = 5; + double calculated_asset_amount = 6; + double fee_amount = 7; + int64 discount_amount = 8; + double buy_min_amount = 9; } From 6411b174f3cc94a4c97d898368d24de102107adc Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 30 Apr 2025 16:52:47 +0330 Subject: [PATCH 158/293] v2: tx added to buy res Signed-off-by: nfel --- wallet/v1/msg.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 14d0cd0..10b76fb 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -556,4 +556,7 @@ message BuyAssetRes { double fee_amount = 7; int64 discount_amount = 8; double buy_min_amount = 9; + int64 irt_tx = 10; + int64 asset_tx = 11; + optional uint64 discount_id = 12; } From 25dcb7dd51548e5a6f443c6bdcff949a1a3d9b32 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 4 May 2025 11:12:37 +0330 Subject: [PATCH 159/293] v2: send -> process ( tfa req ) Signed-off-by: nfel --- auth/v1/srv.proto | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/auth/v1/srv.proto b/auth/v1/srv.proto index 6c8d942..ad5c47f 100644 --- a/auth/v1/srv.proto +++ b/auth/v1/srv.proto @@ -30,8 +30,10 @@ service AuthorizationService { // Two Factor Authentication // For now it's only SMS-OTP - later will be Email-OTP or other methods can be // added For HMAC-OTP there won't be a need to call this api - rpc SendTFAReq(TFAReq) returns (base.v1.StatusRes) {} + rpc ProcessTFAReq(TFAReq) returns (base.v1.StatusRes) {} + // For HMAC-OTP an initialization step must be added to exchange keys rpc InitTFAReq(InternalIAM) returns (TFAExRes) {} + rpc CheckTFACode(CheckTFAReq) returns (base.v1.StatusRes) {} } From bf43fe357a7be957e24f9f3caa1829e0230c0a66 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 4 May 2025 13:32:44 +0330 Subject: [PATCH 160/293] v2: updates on proto Signed-off-by: nfel --- auth/v1/internal_srv.proto | 5 +++++ auth/v1/srv.proto | 22 +++++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/auth/v1/internal_srv.proto b/auth/v1/internal_srv.proto index 4d006f5..d5bfae1 100644 --- a/auth/v1/internal_srv.proto +++ b/auth/v1/internal_srv.proto @@ -9,4 +9,9 @@ service InternalAuthorizationService { rpc LookUpName(LookUpNameReq) returns (LookUpNameRes) {} // This meant to only be used in a worker process rpc FetchBasicUserInfoList(base.v1.Empty) returns (BasicUserInfoList) {} + + // rpc AuthorizationDeleteCache(base.v1.Empty) returns (base.v1.StatusRes); + rpc InitPermissionsForRoutes(InternalInitRoutesReq) returns (base.v1.StatusRes) {} + rpc GetUserIdentityBasic(GetUserReq) returns (UserIdentityBasic) {} + rpc GetUserIAM(GetUserReq) returns (InternalIAM) {} } diff --git a/auth/v1/srv.proto b/auth/v1/srv.proto index ad5c47f..f9fa7c3 100644 --- a/auth/v1/srv.proto +++ b/auth/v1/srv.proto @@ -6,24 +6,20 @@ import "auth/v1/msg.proto"; import "base/v1/msg.proto"; service AuthorizationService { - rpc InternalAuthorizationDeleteCache(base.v1.Empty) returns (base.v1.StatusRes); - rpc InternalInitRoutes(InternalInitRoutesReq) returns (base.v1.StatusRes) {} - rpc InternalGetUserIdentityBasic(GetUserReq) returns (UserIdentityBasic) {} - rpc InternalGetUserIAM(GetUserReq) returns (InternalIAM) {} rpc CheckIAM(CheckIAMReq) returns (InternalIAM) {} - rpc UserLoginSendOTP(UserSendOtpReq) returns (UserSendOtpRes) {} - rpc UserLoginWithOTP(UserLoginReq) returns (UserAccessTokenRes) {} - rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq) returns (UserAccessTokenRes) {} + rpc SendLoginOTP(UserSendOtpReq) returns (UserSendOtpRes) {} + rpc LoginWithOTP(UserLoginReq) returns (UserAccessTokenRes) {} + rpc GetAccessTokenByRefreshToken(UserRefreshTokenReq) returns (UserAccessTokenRes) {} - rpc UserGetUserPermission(InternalIAM) returns (PermissionList) {} + rpc GetUserPermission(InternalIAM) returns (PermissionList) {} - rpc UserGetIdentity(InternalIAM) returns (Identity) {} - rpc UserUpdateIdentity(UserUpdateIdentityReq) returns (base.v1.StatusRes) {} + rpc GetIdentity(InternalIAM) returns (Identity) {} + rpc UpdateIdentity(UserUpdateIdentityReq) returns (base.v1.StatusRes) {} - rpc UserGetBankInfoList(ReqWithIAMAndParams) returns (BankInfoList) {} - rpc UserUpdateBankInfo(UserUpdateBankInfoReq) returns (base.v1.StatusRes) {} - rpc UserRemoveBankInfo(IdReqWithIAM) returns (base.v1.StatusRes) {} + rpc GetBankInfoList(ReqWithIAMAndParams) returns (BankInfoList) {} + rpc UpdateBankInfo(UserUpdateBankInfoReq) returns (base.v1.StatusRes) {} + rpc RemoveBankInfo(IdReqWithIAM) returns (base.v1.StatusRes) {} rpc GetUser(GetUserReq) returns (User) {} From 80b81727a2c61cf27ea13eb8385c5c3700ddc351 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 5 May 2025 15:12:20 +0330 Subject: [PATCH 161/293] v2: calc buy asset Signed-off-by: nfel --- wallet/v1/msg.proto | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 10b76fb..1cca60e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -449,7 +449,7 @@ message Commission { double service = 3; double tax = 4; double total = 5; - string collector = 6; + optional string collector = 6; optional string description = 7; string updated_at = 10; string created_at = 11; @@ -541,22 +541,32 @@ message WithdrawIRTRes { message BuyAssetReq { auth.v1.InternalIAM iam = 1; int64 asset_id = 2; - double amount = 3; - optional uint64 discount_code = 4; - optional auth.v1.TFA tfa = 5; // This might be used in the future + double amount_irt = 3; + double amount_asset = 4; + optional uint64 discount_id = 5; + optional auth.v1.TFA tfa = 6; // This might be used in the future +} + +enum BuyAssetSide { + BUY_ASSET_FROM_BASE = 0; + BUY_ASSET_TO_BASE = 1; +} + +message CalcBuyAssetRes { + // int64 id = 1; + // Wallet wallet = 1; + // Asset asset = 2; + // double amount = 4; + BuyAssetSide side = 1; + int64 calculated_irt_amount = 2; + double calculated_asset_amount = 3; + int64 discount_amount =4; + Commission commission = 5; + // double buy_min_amount = 7; } message BuyAssetRes { - int64 id = 1; - Wallet wallet = 2; - Asset asset = 3; - double amount = 4; - int64 calculated_irt_amount = 5; - double calculated_asset_amount = 6; - double fee_amount = 7; - int64 discount_amount = 8; - double buy_min_amount = 9; - int64 irt_tx = 10; - int64 asset_tx = 11; - optional uint64 discount_id = 12; + bool success = 1; + string irt_hash = 2; + string asset_hash = 3; } From 9cc9808a961ac5e26e1faf20e7951e5ecd6fd563 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 5 May 2025 15:15:01 +0330 Subject: [PATCH 162/293] v2: side in request Signed-off-by: nfel --- wallet/v1/msg.proto | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 1cca60e..fab4a99 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -543,8 +543,9 @@ message BuyAssetReq { int64 asset_id = 2; double amount_irt = 3; double amount_asset = 4; - optional uint64 discount_id = 5; - optional auth.v1.TFA tfa = 6; // This might be used in the future + BuyAssetSide side = 5; + optional uint64 discount_id = 6; + optional auth.v1.TFA tfa = 7; // This might be used in the future } enum BuyAssetSide { @@ -554,13 +555,13 @@ enum BuyAssetSide { message CalcBuyAssetRes { // int64 id = 1; - // Wallet wallet = 1; + // Wallet wallet = 1; // Asset asset = 2; // double amount = 4; BuyAssetSide side = 1; int64 calculated_irt_amount = 2; double calculated_asset_amount = 3; - int64 discount_amount =4; + int64 discount_amount = 4; Commission commission = 5; // double buy_min_amount = 7; } From f9d13bafae7dbb4354ad2456388b5a29bb920361 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 5 May 2025 15:27:35 +0330 Subject: [PATCH 163/293] v2: calc Signed-off-by: nfel --- wallet/v1/srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 291b007..21705ec 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -61,6 +61,6 @@ service WalletService { rpc WithdrawIRT(WithdrawIRTReq) returns (WithdrawIRTRes); rpc DepositIRT(DepositIRTReq) returns (IPGGetTokenRes); - rpc CalcBuyAsset(BuyAssetReq) returns (BuyAssetRes); + rpc CalcBuyAsset(BuyAssetReq) returns (CalcBuyAssetRes); rpc BuyAsset(BuyAssetReq) returns (BuyAssetRes); } From e6e507d5523d61b143b3751f16ea185a9ab3828e Mon Sep 17 00:00:00 2001 From: mapoofano Date: Mon, 5 May 2025 15:34:23 +0330 Subject: [PATCH 164/293] chore: update discount type for get calculation for buy assets --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index fab4a99..411df23 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -561,7 +561,7 @@ message CalcBuyAssetRes { BuyAssetSide side = 1; int64 calculated_irt_amount = 2; double calculated_asset_amount = 3; - int64 discount_amount = 4; + AssetDiscountRes discount_amount = 4; Commission commission = 5; // double buy_min_amount = 7; } From b862b8b9f9e2780bac93d5f3485cda8f51c75f6a Mon Sep 17 00:00:00 2001 From: mapoofano Date: Mon, 5 May 2025 15:48:10 +0330 Subject: [PATCH 165/293] chore: change to discount_id to discount_code for buy asset req --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 411df23..7e32ef3 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -544,7 +544,7 @@ message BuyAssetReq { double amount_irt = 3; double amount_asset = 4; BuyAssetSide side = 5; - optional uint64 discount_id = 6; + optional string discount_code = 6; optional auth.v1.TFA tfa = 7; // This might be used in the future } From ad16ac391b8f30882b456e8b528729fdd58c3084 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 5 May 2025 15:55:59 +0330 Subject: [PATCH 166/293] v2: effective commission added Signed-off-by: nfel --- wallet/v1/msg.proto | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 7e32ef3..57e902d 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -446,13 +446,20 @@ message NetworkList { message Commission { uint64 id = 1; string name = 2; - double service = 3; - double tax = 4; - double total = 5; - optional string collector = 6; - optional string description = 7; - string updated_at = 10; - string created_at = 11; + double service_static = 3; + double service_percentage = 4; + double tax_static = 5; + double tax_percentage = 6; + optional string collector = 7; + optional string description = 8; + string updated_at = 9; + string created_at = 10; +} + +message EffectiveCommission { + double service = 1; + double tax = 2; + double total = 3; } /* @@ -562,7 +569,7 @@ message CalcBuyAssetRes { int64 calculated_irt_amount = 2; double calculated_asset_amount = 3; AssetDiscountRes discount_amount = 4; - Commission commission = 5; + EffectiveCommission commission = 5; // double buy_min_amount = 7; } From 71720f9ef7af9cf0cd99f67021ad79c91083fa0b Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 5 May 2025 18:49:15 +0330 Subject: [PATCH 167/293] v2: irt type changed Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 57e902d..28c9ba4 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -566,7 +566,7 @@ message CalcBuyAssetRes { // Asset asset = 2; // double amount = 4; BuyAssetSide side = 1; - int64 calculated_irt_amount = 2; + double calculated_irt_amount = 2; double calculated_asset_amount = 3; AssetDiscountRes discount_amount = 4; EffectiveCommission commission = 5; From d9186eb3a934da713287cbd8c78e66c739bc0b3c Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 6 May 2025 12:01:19 +0330 Subject: [PATCH 168/293] v2: name changes on discount + now it's an optional type in calcRes Signed-off-by: nfel --- wallet/v1/msg.proto | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 28c9ba4..79ca3f1 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -129,8 +129,8 @@ message AssetDiscountRes { double static_amount = 4; double percentage = 5; double max_amount = 6; - optional int64 supported_asset = 7; - optional double discount_amount = 8; // based of asset price and discount amount in req + double discount_amount = 7; // based of asset price and discount amount in req + optional int64 supported_asset = 8; } message AssetPrice { @@ -568,8 +568,8 @@ message CalcBuyAssetRes { BuyAssetSide side = 1; double calculated_irt_amount = 2; double calculated_asset_amount = 3; - AssetDiscountRes discount_amount = 4; - EffectiveCommission commission = 5; + EffectiveCommission commission = 4; + optional AssetDiscountRes discount_detail = 5; // double buy_min_amount = 7; } From ff0cfdacaaf176ff7dd0d428c68f0d4e2aa8bd84 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 11 May 2025 13:48:01 +0330 Subject: [PATCH 169/293] v2: gen contract + healthcheck rpc added Signed-off-by: nfel --- alert/v1/srv.proto | 1 + auth/v1/internal_srv.proto | 1 + auth/v1/srv.proto | 2 ++ market/v1/srv.proto | 2 ++ wallet/v1/msg.proto | 29 +++++++++++++++++++++++++++-- wallet/v1/srv.proto | 10 ++++++++-- 6 files changed, 41 insertions(+), 4 deletions(-) diff --git a/alert/v1/srv.proto b/alert/v1/srv.proto index e0bfc74..e2b5b06 100644 --- a/alert/v1/srv.proto +++ b/alert/v1/srv.proto @@ -6,6 +6,7 @@ import "alert/v1/msg.proto"; import "base/v1/msg.proto"; service AlertSrv { + rpc NotificationSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); rpc Emit(LogEvent) returns (base.v1.StatusRes) {} rpc Update(LogEvent) returns (base.v1.StatusRes) {} rpc Get(AlertFilter) returns (base.v1.StatusRes) {} diff --git a/auth/v1/internal_srv.proto b/auth/v1/internal_srv.proto index d5bfae1..a06d2e5 100644 --- a/auth/v1/internal_srv.proto +++ b/auth/v1/internal_srv.proto @@ -6,6 +6,7 @@ import "auth/v1/msg.proto"; import "base/v1/msg.proto"; service InternalAuthorizationService { + rpc InternalAuthorizationSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); rpc LookUpName(LookUpNameReq) returns (LookUpNameRes) {} // This meant to only be used in a worker process rpc FetchBasicUserInfoList(base.v1.Empty) returns (BasicUserInfoList) {} diff --git a/auth/v1/srv.proto b/auth/v1/srv.proto index f9fa7c3..d90c2ea 100644 --- a/auth/v1/srv.proto +++ b/auth/v1/srv.proto @@ -6,6 +6,8 @@ import "auth/v1/msg.proto"; import "base/v1/msg.proto"; service AuthorizationService { + rpc AuthorizationSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); + rpc CheckIAM(CheckIAMReq) returns (InternalIAM) {} rpc SendLoginOTP(UserSendOtpReq) returns (UserSendOtpRes) {} diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 31380c5..f94fda8 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -7,6 +7,8 @@ import "base/v1/msg.proto"; import "market/v1/msg.proto"; service MarketplaceSrv { + rpc MarketplaceSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); + 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) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 79ca3f1..bd4b387 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -551,8 +551,9 @@ message BuyAssetReq { double amount_irt = 3; double amount_asset = 4; BuyAssetSide side = 5; - optional string discount_code = 6; - optional auth.v1.TFA tfa = 7; // This might be used in the future + optional uint64 contract_id = 6; // Only in asset that require agreement contract + optional string discount_code = 7; + optional auth.v1.TFA tfa = 8; // This might be used in the future } enum BuyAssetSide { @@ -578,3 +579,27 @@ message BuyAssetRes { string irt_hash = 2; string asset_hash = 3; } + +/* Contract */ + +enum ContractType { + CONTRACT_TYPE_ICO = 0; + CONTRACT_TYPE_MARKET = 1; + CONTRACT_TYPE_BNPL = 2; + CONTRACT_TYPE_REDEEM = 3; +} + +message GenerateContractReq { + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + int64 amount = 3; + ContractType contract_type = 4; + map metadata = 5; +} + +message ContractRes { + string link = 1; + uint64 contract_id = 2; + string contract_hash = 3; + string contract_content = 4; +} diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 21705ec..0c2e227 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -7,6 +7,8 @@ import "base/v1/msg.proto"; import "wallet/v1/msg.proto"; service WalletService { + rpc WalletSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); + rpc InternalWalletDeleteCache(base.v1.Empty) returns (base.v1.StatusRes); rpc InternalCreateFederation(auth.v1.InternalIAM) returns (base.v1.StatusRes); @@ -26,11 +28,11 @@ service WalletService { rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); - // Get Token from IPG is and internal api + // Get Token from IPG is and internal api rpc IPGGetToken(IPGGetTokenReq) returns (IPGGetTokenRes); // IPG Confirm is a public api rpc IPGConfirm(IPGConfirmReq) returns (IPGConfirmRes); - // Admin can increase user's balance as wish + // Admin can increase user's balance as wish rpc AdminManualSaleDeposit(SaleManualReq) returns (base.v1.StatusRes); // BNPL @@ -61,6 +63,10 @@ service WalletService { rpc WithdrawIRT(WithdrawIRTReq) returns (WithdrawIRTRes); rpc DepositIRT(DepositIRTReq) returns (IPGGetTokenRes); + // --- Buy Asset --- rpc CalcBuyAsset(BuyAssetReq) returns (CalcBuyAssetRes); rpc BuyAsset(BuyAssetReq) returns (BuyAssetRes); + + // -- Contract -- + rpc GenerateContract(GenerateContractReq) returns (ContractRes); } From b917ccdaa836c801aed664eb1c372af808ab231f Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 11 May 2025 16:21:28 +0330 Subject: [PATCH 170/293] v2: aggreement_id added Signed-off-by: nfel --- wallet/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index bd4b387..66a9a1a 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -551,7 +551,7 @@ message BuyAssetReq { double amount_irt = 3; double amount_asset = 4; BuyAssetSide side = 5; - optional uint64 contract_id = 6; // Only in asset that require agreement contract + optional uint64 aggreement_id = 6; // Only in asset that require agreement contract optional string discount_code = 7; optional auth.v1.TFA tfa = 8; // This might be used in the future } @@ -599,7 +599,7 @@ message GenerateContractReq { message ContractRes { string link = 1; - uint64 contract_id = 2; + uint64 aggreement_id = 2; string contract_hash = 3; string contract_content = 4; } From 90638e13549dc1705a56296b05be7c88d5c99a15 Mon Sep 17 00:00:00 2001 From: mapoofano Date: Wed, 14 May 2025 15:50:08 +0330 Subject: [PATCH 171/293] chore: add new status and type and network token type --- wallet/v1/msg.proto | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 66a9a1a..476d992 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -106,13 +106,38 @@ message Asset { string updated_at = 28; string created_at = 29; repeated string images = 30; - int32 status = 31; + AssetStatus status = 31; AssetMeta meta = 32; - string type = 33; + AssetTokenType token_type = 33; AssetPrice price = 34; bool is_base_asset = 35; bool is_locked = 36; Commission commission = 37; + AssetType type = 38; +} + +enum AssetTokenType { + ASSET_NETWORK_TYPE_UNKNOWN = 0; + ASSET_NETWORK_TYPE_STELLAR_NATIVE = 1; + ASSET_NETWORK_TYPE_STELLAR_ALPHANUMERIC4 = 2; + ASSET_NETWORK_TYPE_STELLAR_ALPHANUMERIC12 = 3; +} + +enum AssetStatus { + ASSET_STATUS_UNKNOWN = 0; + ASSET_STATUS_ACTIVE = 1; + ASSET_STATUS_INACTIVE = 2; + ASSET_STATUS_SOON = 3; + ASSET_STATUS_FINISHED = 4; + ASSET_STATUS_EVALUATION = 5; + ASSET_STATUS_SUSPENDED = 6; +} + +enum AssetType { + ASSET_TYPE_UNKNOWN = 0; + ASSET_TYPE_PROJECT = 1; + ASSET_TYPE_CURRENCY = 2; + ASSET_TYPE_NETWORK_GAS = 3; } message AssetDiscountReq { From e8ae988700297ae321f10baeecb4fe222f15d8be Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 17 May 2025 12:13:56 +0330 Subject: [PATCH 172/293] v2: added filter to get asset list Signed-off-by: nfel --- wallet/v1/msg.proto | 20 ++++++++++++++++---- wallet/v1/srv.proto | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 476d992..8e97f91 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -71,10 +71,6 @@ message Wallet { Asset */ -message AssetList { - repeated Asset list = 1; -} - message Asset { int64 id = 1; string name = 2; @@ -140,6 +136,22 @@ enum AssetType { ASSET_TYPE_NETWORK_GAS = 3; } +message AssetList { + repeated Asset list = 1; +} + +message AssetFilter { + repeated int64 ids = 1; + repeated AssetType types = 2; // AssetType + repeated AssetType token_types = 3; // AssetType + repeated AssetStatus statuses = 4; + optional bool can_buy = 5; + optional bool can_sell = 6; + optional bool can_deposit = 7; + optional bool can_withdraw = 8; + +} + message AssetDiscountReq { auth.v1.InternalIAM iam = 1; string code = 2; diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 0c2e227..75a61ed 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -17,7 +17,7 @@ service WalletService { rpc GetNetworkList(base.v1.Empty) returns (NetworkList); - rpc GetAssetList(base.v1.Empty) returns (AssetList); + rpc GetAssetList(AssetFilter) returns (AssetList); rpc UserGetAssetList(auth.v1.InternalIAM) returns (AssetList); rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); rpc GetAsset(GetAssetReq) returns (Asset); From 51b60ed9873d1eaef69c1e393413345adff2b2e8 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 17 May 2025 12:18:26 +0330 Subject: [PATCH 173/293] v2: name added as filter Signed-off-by: nfel --- wallet/v1/msg.proto | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 8e97f91..aec5d61 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -142,13 +142,14 @@ message AssetList { message AssetFilter { repeated int64 ids = 1; - repeated AssetType types = 2; // AssetType - repeated AssetType token_types = 3; // AssetType - repeated AssetStatus statuses = 4; - optional bool can_buy = 5; - optional bool can_sell = 6; - optional bool can_deposit = 7; - optional bool can_withdraw = 8; + repeated AssetType asset_type = 2; // AssetType + repeated AssetType token_type = 3; // AssetType + repeated AssetStatus status = 4; + repeated string name = 5; + optional bool can_buy = 6; + optional bool can_sell = 7; + optional bool can_deposit = 8; + optional bool can_withdraw = 9; } From aab8f9ecadf789bfc7eaab5da1b4b848b5a6834f Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 17 May 2025 12:25:38 +0330 Subject: [PATCH 174/293] v2: erc20 asset type added Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index aec5d61..3d30814 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -117,6 +117,7 @@ enum AssetTokenType { ASSET_NETWORK_TYPE_STELLAR_NATIVE = 1; ASSET_NETWORK_TYPE_STELLAR_ALPHANUMERIC4 = 2; ASSET_NETWORK_TYPE_STELLAR_ALPHANUMERIC12 = 3; + ASSET_NETWORK_TYPE_ERC20 = 4; } enum AssetStatus { From 4498becd69eb3f8cba3ae2be5a56db186c795ff7 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 17 May 2025 13:24:00 +0330 Subject: [PATCH 175/293] v2: removed rpc Signed-off-by: nfel --- wallet/v1/srv.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 75a61ed..64d35a6 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -18,8 +18,8 @@ service WalletService { rpc GetNetworkList(base.v1.Empty) returns (NetworkList); rpc GetAssetList(AssetFilter) returns (AssetList); - rpc UserGetAssetList(auth.v1.InternalIAM) returns (AssetList); - rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); + // rpc UserGetAssetList(auth.v1.InternalIAM) returns (AssetList); + // rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); rpc GetAsset(GetAssetReq) returns (Asset); rpc GetAssetPrice(base.v1.IdReq) returns (AssetPrice); From bc654ce714eb477e78cac850a5735f5e391742c0 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 17 May 2025 13:26:29 +0330 Subject: [PATCH 176/293] v2: redundant rpc Signed-off-by: nfel --- wallet/v1/srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 64d35a6..c7096f3 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -12,7 +12,7 @@ service WalletService { rpc InternalWalletDeleteCache(base.v1.Empty) returns (base.v1.StatusRes); rpc InternalCreateFederation(auth.v1.InternalIAM) returns (base.v1.StatusRes); - rpc AdminGetFederation(GetFederationReq) returns (Federation); + // rpc AdminGetFederation(GetFederationReq) returns (Federation); rpc UserGetFederation(auth.v1.InternalIAM) returns (Federation); rpc GetNetworkList(base.v1.Empty) returns (NetworkList); From 61c58d029714d6968f0da14bdf07c6ef7228552f Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 17 May 2025 13:28:02 +0330 Subject: [PATCH 177/293] v2: is active in asset filter Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 3d30814..8787680 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -151,6 +151,7 @@ message AssetFilter { optional bool can_sell = 7; optional bool can_deposit = 8; optional bool can_withdraw = 9; + optional bool is_active = 10; } From 5cfa35d464557387d71d21d2f69bcc7944959b7c Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 17 May 2025 13:30:16 +0330 Subject: [PATCH 178/293] v2: add search term in asset filter Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 8787680..9227050 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -152,6 +152,7 @@ message AssetFilter { optional bool can_deposit = 8; optional bool can_withdraw = 9; optional bool is_active = 10; + optional string search = 11; // Not yet implemented ! } From 46224b9740de96a7039c5b862120f03b70dea7b5 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 17 May 2025 14:28:59 +0330 Subject: [PATCH 179/293] v2: videos added to asset response Signed-off-by: nfel --- wallet/v1/msg.proto | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 9227050..35eda5a 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -102,14 +102,15 @@ message Asset { string updated_at = 28; string created_at = 29; repeated string images = 30; - AssetStatus status = 31; - AssetMeta meta = 32; - AssetTokenType token_type = 33; - AssetPrice price = 34; - bool is_base_asset = 35; - bool is_locked = 36; - Commission commission = 37; - AssetType type = 38; + repeated string videos = 31; + AssetStatus status = 32; + AssetMeta meta = 33; + AssetTokenType token_type = 34; + AssetPrice price = 35; + bool is_base_asset = 36; + bool is_locked = 37; + Commission commission = 38; + AssetType type = 39; } enum AssetTokenType { @@ -153,7 +154,6 @@ message AssetFilter { optional bool can_withdraw = 9; optional bool is_active = 10; optional string search = 11; // Not yet implemented ! - } message AssetDiscountReq { From 12feb970ce5e4c1df20928faff5453aab4b123cb Mon Sep 17 00:00:00 2001 From: mapoofano Date: Sat, 17 May 2025 16:15:50 +0330 Subject: [PATCH 180/293] chore: add project location image into meta property --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 476d992..83b3133 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -185,6 +185,7 @@ message PropertyMeta { string usage_type = 9; string completion_date = 10; string user_agreement_url = 11; + string location_image = 12; } // Used for both locking and releasing asset :) From b796181b0a079744a9a10570775b405e2e03f90a Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 18 May 2025 10:47:26 +0330 Subject: [PATCH 181/293] v2: transaction id added to contract gen res Signed-off-by: nfel --- wallet/v1/msg.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 3c7c5aa..44cacc8 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -642,6 +642,7 @@ message GenerateContractReq { message ContractRes { string link = 1; uint64 aggreement_id = 2; - string contract_hash = 3; - string contract_content = 4; + uint64 transaction_id = 3; + string contract_hash = 4; + string contract_content = 5; } From d9c2be765799f65172fcbdb7b6fbace5e8314618 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 18 May 2025 11:06:28 +0330 Subject: [PATCH 182/293] v2: changed gen contract flow Signed-off-by: nfel --- wallet/v1/msg.proto | 64 ++++++++++++++++----------------------------- wallet/v1/srv.proto | 6 +++-- 2 files changed, 27 insertions(+), 43 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 44cacc8..f5aa814 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -9,9 +9,7 @@ import "base/v1/msg.proto"; INTERNAL DATA */ -message InternalTransactionData { - int64 transaction_id = 1; -} +message InternalTransactionData { int64 transaction_id = 1; } /* Federation @@ -138,9 +136,7 @@ enum AssetType { ASSET_TYPE_NETWORK_GAS = 3; } -message AssetList { - repeated Asset list = 1; -} +message AssetList { repeated Asset list = 1; } message AssetFilter { repeated int64 ids = 1; @@ -153,7 +149,7 @@ message AssetFilter { optional bool can_deposit = 8; optional bool can_withdraw = 9; optional bool is_active = 10; - optional string search = 11; // Not yet implemented ! + optional string search = 11; // Not yet implemented ! } message AssetDiscountReq { @@ -185,9 +181,7 @@ message GetAssetReq { optional string code = 3; } -message AssetMeta { - PropertyMeta property = 1; -} +message AssetMeta { PropertyMeta property = 1; } message PropertyMeta { string description = 1; @@ -271,7 +265,8 @@ message UserBNPLReq { optional float amount = 7; optional PaymentPeriodInfo payment_period = 8; optional bool has_agreed_contract = 9; - optional int32 current_step = 10; // Can be useful for admin to change the current step + optional int32 current_step = + 10; // Can be useful for admin to change the current step optional int64 asset_id = 11; } @@ -295,9 +290,7 @@ message BNPLInfo { string expires_at = 14; } -message BNPLList { - repeated BNPLInfo list = 1; -} +message BNPLList { repeated BNPLInfo list = 1; } /* Transaction @@ -437,9 +430,7 @@ message RedeemTokenRes { optional auth.v1.BankInfo bank_info = 10; optional string receipt = 11; } -message RedeemTokenResList { - repeated RedeemTokenRes list = 1; -} +message RedeemTokenResList { repeated RedeemTokenRes list = 1; } /* Utility: Get Public Key from national id @@ -450,9 +441,7 @@ message NationalIDReq { string national_id = 2; } -message PubKeyRes { - string pub_key = 1; -} +message PubKeyRes { string pub_key = 1; } /* Network Details @@ -478,9 +467,7 @@ message Network { string created_at = 11; } -message NetworkList { - repeated Network list = 1; -} +message NetworkList { repeated Network list = 1; } /* * Commission @@ -552,9 +539,7 @@ message IPGConfirmReq { string final_amount = 7; } -message IPGConfirmRes { - string receipt_link = 1; -} +message IPGConfirmRes { string receipt_link = 1; } message SaleManualReq { auth.v1.InternalIAM iam = 1; @@ -593,9 +578,18 @@ message BuyAssetReq { double amount_irt = 3; double amount_asset = 4; BuyAssetSide side = 5; - optional uint64 aggreement_id = 6; // Only in asset that require agreement contract - optional string discount_code = 7; - optional auth.v1.TFA tfa = 8; // This might be used in the future + optional string discount_code = 6; +} + +message DeclineBuyContractReq{ + auth.v1.InternalIAM iam = 1; + uint64 aggreement_id = 2; +} + +message ConfirmBuyAssetReq { + auth.v1.InternalIAM iam = 1; + uint64 aggreement_id = 2; // Only in asset that require agreement contract + optional auth.v1.TFA tfa = 3; // This might be used in the future } enum BuyAssetSide { @@ -604,16 +598,11 @@ enum BuyAssetSide { } message CalcBuyAssetRes { - // int64 id = 1; - // Wallet wallet = 1; - // Asset asset = 2; - // double amount = 4; BuyAssetSide side = 1; double calculated_irt_amount = 2; double calculated_asset_amount = 3; EffectiveCommission commission = 4; optional AssetDiscountRes discount_detail = 5; - // double buy_min_amount = 7; } message BuyAssetRes { @@ -631,13 +620,6 @@ enum ContractType { CONTRACT_TYPE_REDEEM = 3; } -message GenerateContractReq { - auth.v1.InternalIAM iam = 1; - int64 asset_id = 2; - int64 amount = 3; - ContractType contract_type = 4; - map metadata = 5; -} message ContractRes { string link = 1; diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index c7096f3..54b19e9 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -65,8 +65,10 @@ service WalletService { // --- Buy Asset --- rpc CalcBuyAsset(BuyAssetReq) returns (CalcBuyAssetRes); - rpc BuyAsset(BuyAssetReq) returns (BuyAssetRes); + rpc BuyAsset(ConfirmBuyAssetReq) returns (BuyAssetRes); // -- Contract -- - rpc GenerateContract(GenerateContractReq) returns (ContractRes); + rpc GenerateBuyContract(BuyAssetReq) returns (ContractRes); + rpc DeclineBuyContract(DeclineBuyContractReq) returns (base.v1.StatusRes); + // rpc GenerateMarketContract(MarketContractReq) returns (ContractRes); } From a5b3805b2b50d52dc51d896b9ab9c1f98ac8201d Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 18 May 2025 11:41:46 +0330 Subject: [PATCH 183/293] v2: changed effective amount Signed-off-by: nfel --- wallet/v1/msg.proto | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index f5aa814..7ad9f97 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -166,7 +166,7 @@ message AssetDiscountRes { double static_amount = 4; double percentage = 5; double max_amount = 6; - double discount_amount = 7; // based of asset price and discount amount in req + double effective_amount = 7; // based of asset price and discount amount in req optional int64 supported_asset = 8; } @@ -581,9 +581,9 @@ message BuyAssetReq { optional string discount_code = 6; } -message DeclineBuyContractReq{ +message DeclineBuyContractReq { auth.v1.InternalIAM iam = 1; - uint64 aggreement_id = 2; + uint64 aggreement_id = 2; } message ConfirmBuyAssetReq { @@ -620,7 +620,6 @@ enum ContractType { CONTRACT_TYPE_REDEEM = 3; } - message ContractRes { string link = 1; uint64 aggreement_id = 2; From e2b3b41fbbdc7bf4a0fe05a861ff897033d85ee7 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 18 May 2025 11:43:37 +0330 Subject: [PATCH 184/293] v2: typo Signed-off-by: nfel --- wallet/v1/msg.proto | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 7ad9f97..6ca4450 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -583,12 +583,12 @@ message BuyAssetReq { message DeclineBuyContractReq { auth.v1.InternalIAM iam = 1; - uint64 aggreement_id = 2; + uint64 agreement_id = 2; } message ConfirmBuyAssetReq { auth.v1.InternalIAM iam = 1; - uint64 aggreement_id = 2; // Only in asset that require agreement contract + uint64 agreement_id = 2; // Only in asset that require agreement contract optional auth.v1.TFA tfa = 3; // This might be used in the future } @@ -620,9 +620,10 @@ enum ContractType { CONTRACT_TYPE_REDEEM = 3; } +//agreement_id message ContractRes { string link = 1; - uint64 aggreement_id = 2; + uint64 agreement_id = 2; uint64 transaction_id = 3; string contract_hash = 4; string contract_content = 5; From bba9c90c6e27e1cc159f57a7b1c126bb5fcd23fe Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 18 May 2025 14:47:22 +0330 Subject: [PATCH 185/293] v2: change name from asset_type to type Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 6ca4450..8d56bdc 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -140,7 +140,7 @@ message AssetList { repeated Asset list = 1; } message AssetFilter { repeated int64 ids = 1; - repeated AssetType asset_type = 2; // AssetType + repeated AssetType type = 2; // AssetType repeated AssetType token_type = 3; // AssetType repeated AssetStatus status = 4; repeated string name = 5; From 206836156aa53d42ead7202a25cb415a531d95c3 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 20 May 2025 16:12:58 +0330 Subject: [PATCH 186/293] v2: asset meta changes Signed-off-by: nfel --- wallet/v1/msg.proto | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 8d56bdc..e370097 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -140,7 +140,7 @@ message AssetList { repeated Asset list = 1; } message AssetFilter { repeated int64 ids = 1; - repeated AssetType type = 2; // AssetType + repeated AssetType type = 2; // AssetType repeated AssetType token_type = 3; // AssetType repeated AssetStatus status = 4; repeated string name = 5; @@ -166,7 +166,8 @@ message AssetDiscountRes { double static_amount = 4; double percentage = 5; double max_amount = 6; - double effective_amount = 7; // based of asset price and discount amount in req + double effective_amount = + 7; // based of asset price and discount amount in req optional int64 supported_asset = 8; } @@ -196,6 +197,18 @@ message PropertyMeta { string completion_date = 10; string user_agreement_url = 11; string location_image = 12; + PropertyDetail detail = 13; +} + +message PropertyDetail { + repeated Content badge = 1; // 2> + repeated Content content = 2; // 4> +} + +message Content { + string label = 1; + string value = 2; + string value_type = 3; } // Used for both locking and releasing asset :) @@ -588,7 +601,7 @@ message DeclineBuyContractReq { message ConfirmBuyAssetReq { auth.v1.InternalIAM iam = 1; - uint64 agreement_id = 2; // Only in asset that require agreement contract + uint64 agreement_id = 2; // Only in asset that require agreement contract optional auth.v1.TFA tfa = 3; // This might be used in the future } @@ -620,7 +633,7 @@ enum ContractType { CONTRACT_TYPE_REDEEM = 3; } -//agreement_id +// agreement_id message ContractRes { string link = 1; uint64 agreement_id = 2; From fa793e03b26f702435f2f8645cc30ba37f0fdb58 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 24 May 2025 16:05:45 +0330 Subject: [PATCH 187/293] v2: asset code Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index e370097..0690512 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -344,7 +344,7 @@ enum TransactionStatus { message Transaction { int64 id = 1; int64 asset_id = 2; - // Asset asset_info = 3; //Causing network overloading + string asset_code = 3; optional int64 from_user_id = 4; optional auth.v1.UserIdentityBasic from_user_info = 5; optional int64 from_federation_id = 6; From ba16a1a3755063589f0e151a487ee45e626387d9 Mon Sep 17 00:00:00 2001 From: mapoofano Date: Tue, 27 May 2025 13:25:54 +0330 Subject: [PATCH 188/293] chore: add lan and lng map position and map link --- wallet/v1/msg.proto | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 0690512..486412f 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -197,7 +197,10 @@ message PropertyMeta { string completion_date = 10; string user_agreement_url = 11; string location_image = 12; - PropertyDetail detail = 13; + float lat = 13; + float lng = 14; + string map_link= 15; + PropertyDetail detail = 16; } message PropertyDetail { From dd9aa23faf5de918487bb564bd846d61bb85d178 Mon Sep 17 00:00:00 2001 From: mapoofano Date: Tue, 27 May 2025 15:40:55 +0330 Subject: [PATCH 189/293] chore: convert side array to single value --- market/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 57aeba6..1ff51b8 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -95,7 +95,7 @@ message OrderListFilter { optional auth.v1.InternalIAM iam = 1; base.v1.BaseQueryParam base = 2; optional string search = 3; - repeated MarketOrderSide side = 4; + optional MarketOrderSide side = 4; repeated MarketOrderStatus status = 5; repeated string from = 6; repeated string to = 7; From c90a1a068e90070f1c7dfa8ac9749704886f8005 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 27 May 2025 16:10:42 +0330 Subject: [PATCH 190/293] v2: closed state for BankInfoStatusE Signed-off-by: nfel --- auth/v1/msg.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index d5839e1..6d062ed 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -192,11 +192,12 @@ message BankInfoList { repeated BankInfo list = 1; } -// Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential +// Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential , 3: Closed for potential fraud enum BankInfoStatusEnum { FAIL_VERIFY = 0; VERIFIED = 1; DOES_NOT_MATCH = 2; + CLOSED = 3; } message BankInfo { From edca039924889f52f31c3cbd66d38b05351ef214 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 28 May 2025 16:21:02 +0330 Subject: [PATCH 191/293] v2: error enum added Signed-off-by: nfel --- errors/v1/msg.proto | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 errors/v1/msg.proto diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto new file mode 100644 index 0000000..a3e030d --- /dev/null +++ b/errors/v1/msg.proto @@ -0,0 +1,62 @@ +syntax = "proto3"; + +package errors.v1; + +enum ErrCode { + OK = 0; + FAILED = 1; + INVALID_ARGUMENT = 2; + UNAUTHENTICATED = 3; + PERMISSION_DENIED = 4; + NOT_FOUND = 5; + ALREADY_EXISTS = 6; + UNIMPLEMENTED = 7; + INTERNAL = 8; + UNAVAILABLE = 9; + DATA_LOSS = 10; + INVALID_ARGUMENT_EMPTY_VALUE = 11; + INVALID_ARGUMENT_INVALID_VALUE = 12; + INVALID_ARGUMENT_INVALID_FORMAT = 13; + ACCESS_DENIED = 14; + PENDING_OTP_ALREADY_EXISTS = 15; + INVALID_OTP = 16; + SESSION_EXPIRED = 17; + BAD_AUTH = 18; + FORBIDDEN = 19; + SHAHKAR_FAILED = 20; + SHAHKAR_SYSTEM_ERROR = 21; + IBAN_MISS_MATCH = 22; + GET_PERSON_FAILED = 23; + INVALID_IBAN_NUMBER = 24; + INVALID_ARGUMENT_MISSING_RECIPIENT = 25; + INVALID_MOBILE_NUMBER= 26; + INVALID_STATUS = 27; + INVALID_ARGUMENT_EMPTY_ID = 28; + INVALID_ARGUMENT_COMPANY_REQUIRED = 29; + CAN_NOT_BUY = 30; + IS_NOT_ACTIVE = 31; + ALREADY_USED = 32; + NATIONAL_ID_IS_EMPTY = 33; + NOT_ENOUGH_BALANCE = 34; + WALLET_IS_NOT_ACTIVE = 35; + TOO_MUCH_BALANCE = 36; + WALLET_IS_NOT_IN_WHITE_LIST = 37; + ASSET_NOT_FOUND = 38; + INVALID_CODE = 40; + BANK_INFO_NOT_FOUND = 41; + BAD_BANK_INFO = 42; + NOT_ACCEPT_LEGAL = 43; + NEED_TRUST_LINE = 44; + SERVER_ERROR = 45; + EXPIRED = 46; + INVALID_DISCOUNT_CODE = 47; + INVALID_ASSET = 48; + LOW_REQUEST_AMOUNT = 49; + AGREEMENT_ALREADY_ACCEPTED = 50; + CONTRACT_ALREADY_GENERATED = 51; +} + +message ErrorMsg { + ErrCode code = 1; + map details = 2; +} From d3cd5e4bad6f5f63e2b2d010d21d9eb6a03cc9f2 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 28 May 2025 16:57:57 +0330 Subject: [PATCH 192/293] v2: some more err Signed-off-by: nfel --- errors/v1/msg.proto | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index a3e030d..4fb9590 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -39,9 +39,10 @@ enum ErrCode { NATIONAL_ID_IS_EMPTY = 33; NOT_ENOUGH_BALANCE = 34; WALLET_IS_NOT_ACTIVE = 35; - TOO_MUCH_BALANCE = 36; + MAX_ASSET_BALANCE_REACHED = 36; WALLET_IS_NOT_IN_WHITE_LIST = 37; ASSET_NOT_FOUND = 38; + INVALID_RRN = 39; INVALID_CODE = 40; BANK_INFO_NOT_FOUND = 41; BAD_BANK_INFO = 42; @@ -54,6 +55,11 @@ enum ErrCode { LOW_REQUEST_AMOUNT = 49; AGREEMENT_ALREADY_ACCEPTED = 50; CONTRACT_ALREADY_GENERATED = 51; + NIL_AUTH=52; + CAN_NOT_BUY_AND_DEPOSIT = 53; + BUY_PRICE_IS_ZERO = 54; + AGREEMENT_NOT_FOUND = 55; + DISCOUNT_NOT_FOUND = 56; } message ErrorMsg { From 1438c8d79269416bb9c8a0c94263bab381a448dd Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 31 May 2025 12:44:24 +0330 Subject: [PATCH 193/293] v2: many errs added Signed-off-by: nfel --- errors/v1/msg.proto | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 4fb9590..9b2df3c 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -28,14 +28,14 @@ enum ErrCode { IBAN_MISS_MATCH = 22; GET_PERSON_FAILED = 23; INVALID_IBAN_NUMBER = 24; - INVALID_ARGUMENT_MISSING_RECIPIENT = 25; - INVALID_MOBILE_NUMBER= 26; + INVALID_ARGUMENT_MISSING_RECIPIENT = 25; + INVALID_MOBILE_NUMBER = 26; INVALID_STATUS = 27; INVALID_ARGUMENT_EMPTY_ID = 28; INVALID_ARGUMENT_COMPANY_REQUIRED = 29; CAN_NOT_BUY = 30; - IS_NOT_ACTIVE = 31; - ALREADY_USED = 32; + ASSET_IS_DEACTIVE = 31; + WHITELIST_ALREADY_USED = 32; NATIONAL_ID_IS_EMPTY = 33; NOT_ENOUGH_BALANCE = 34; WALLET_IS_NOT_ACTIVE = 35; @@ -55,11 +55,39 @@ enum ErrCode { LOW_REQUEST_AMOUNT = 49; AGREEMENT_ALREADY_ACCEPTED = 50; CONTRACT_ALREADY_GENERATED = 51; - NIL_AUTH=52; + NIL_AUTH = 52; CAN_NOT_BUY_AND_DEPOSIT = 53; BUY_PRICE_IS_ZERO = 54; AGREEMENT_NOT_FOUND = 55; DISCOUNT_NOT_FOUND = 56; + MARKET_ORDER_NOT_FOUND = 57; + WALLET_NOT_FOUND = 58; + MARKET_ORDER_ALREADY_CREATED = 59; + MARKET_ORDER_ALREADY_OPENED = 60; + MARKET_ORDER_COMPLETED = 61; + MARKET_ORDER_CANCELED = 62; + MARKET_ORDER_FAILED = 63; + MARKET_ORDER_UNKOWN = 64; + TRX_STATUS_UNKONW = 65; + TRX_STATUS_PENDING = 66; + TRX_STATUS_FAILED = 67; + TRX_STATUS_SUCCESS = 68; + TRX_STATUS_CANCELED = 69; + TRX_STATUS_EXPIRED = 70; + TRX_STATUS_CREATED = 71; + TRX_STATUS_SUSPENDED = 72; + INVALID_ARGUMENT_UNKOWN_TRX_TYPE = 73; + SERVER_ERROR_FREEZED_BALANCE_NEGETIVE = 74; + SERVER_ERROR_NIL_DB_TX = 75; + RECIPIENT_NOT_FOUND = 76; + RECIPIENT_NOT_ACTIVE = 77; + RECIPIENT_IS_NOT_IN_WHITE_LIST = 78; + STELLAR_ERR_ESTABLISH_TRUSTLINE = 79; + STELLAR_ERR_CREATE_ACCOUNT = 80; + STELLAR_ERR_TRANSFER = 81; + STELLAR_ERR_GET_ACCOUNT = 82; + WALLET_IS_DEACTIVE = 83; + DISCOUNT_IS_DEACTIVE = 84; } message ErrorMsg { From e151f2316be6dc4961e2679eb0456b4f36c9f2e8 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 31 May 2025 16:31:44 +0330 Subject: [PATCH 194/293] v2: refactor errors Signed-off-by: nfel --- errors/v1/msg.proto | 185 ++++++++++++++++++++++++-------------------- 1 file changed, 102 insertions(+), 83 deletions(-) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 9b2df3c..ea279f4 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -3,91 +3,110 @@ syntax = "proto3"; package errors.v1; enum ErrCode { + // General errors OK = 0; FAILED = 1; - INVALID_ARGUMENT = 2; - UNAUTHENTICATED = 3; - PERMISSION_DENIED = 4; - NOT_FOUND = 5; - ALREADY_EXISTS = 6; - UNIMPLEMENTED = 7; - INTERNAL = 8; - UNAVAILABLE = 9; - DATA_LOSS = 10; - INVALID_ARGUMENT_EMPTY_VALUE = 11; - INVALID_ARGUMENT_INVALID_VALUE = 12; - INVALID_ARGUMENT_INVALID_FORMAT = 13; - ACCESS_DENIED = 14; - PENDING_OTP_ALREADY_EXISTS = 15; - INVALID_OTP = 16; - SESSION_EXPIRED = 17; - BAD_AUTH = 18; - FORBIDDEN = 19; - SHAHKAR_FAILED = 20; - SHAHKAR_SYSTEM_ERROR = 21; - IBAN_MISS_MATCH = 22; - GET_PERSON_FAILED = 23; - INVALID_IBAN_NUMBER = 24; - INVALID_ARGUMENT_MISSING_RECIPIENT = 25; - INVALID_MOBILE_NUMBER = 26; - INVALID_STATUS = 27; - INVALID_ARGUMENT_EMPTY_ID = 28; - INVALID_ARGUMENT_COMPANY_REQUIRED = 29; - CAN_NOT_BUY = 30; - ASSET_IS_DEACTIVE = 31; - WHITELIST_ALREADY_USED = 32; - NATIONAL_ID_IS_EMPTY = 33; - NOT_ENOUGH_BALANCE = 34; - WALLET_IS_NOT_ACTIVE = 35; - MAX_ASSET_BALANCE_REACHED = 36; - WALLET_IS_NOT_IN_WHITE_LIST = 37; - ASSET_NOT_FOUND = 38; - INVALID_RRN = 39; - INVALID_CODE = 40; - BANK_INFO_NOT_FOUND = 41; - BAD_BANK_INFO = 42; - NOT_ACCEPT_LEGAL = 43; - NEED_TRUST_LINE = 44; - SERVER_ERROR = 45; - EXPIRED = 46; - INVALID_DISCOUNT_CODE = 47; - INVALID_ASSET = 48; - LOW_REQUEST_AMOUNT = 49; - AGREEMENT_ALREADY_ACCEPTED = 50; - CONTRACT_ALREADY_GENERATED = 51; - NIL_AUTH = 52; - CAN_NOT_BUY_AND_DEPOSIT = 53; - BUY_PRICE_IS_ZERO = 54; - AGREEMENT_NOT_FOUND = 55; - DISCOUNT_NOT_FOUND = 56; - MARKET_ORDER_NOT_FOUND = 57; - WALLET_NOT_FOUND = 58; - MARKET_ORDER_ALREADY_CREATED = 59; - MARKET_ORDER_ALREADY_OPENED = 60; - MARKET_ORDER_COMPLETED = 61; - MARKET_ORDER_CANCELED = 62; - MARKET_ORDER_FAILED = 63; - MARKET_ORDER_UNKOWN = 64; - TRX_STATUS_UNKONW = 65; - TRX_STATUS_PENDING = 66; - TRX_STATUS_FAILED = 67; - TRX_STATUS_SUCCESS = 68; - TRX_STATUS_CANCELED = 69; - TRX_STATUS_EXPIRED = 70; - TRX_STATUS_CREATED = 71; - TRX_STATUS_SUSPENDED = 72; - INVALID_ARGUMENT_UNKOWN_TRX_TYPE = 73; - SERVER_ERROR_FREEZED_BALANCE_NEGETIVE = 74; - SERVER_ERROR_NIL_DB_TX = 75; - RECIPIENT_NOT_FOUND = 76; - RECIPIENT_NOT_ACTIVE = 77; - RECIPIENT_IS_NOT_IN_WHITE_LIST = 78; - STELLAR_ERR_ESTABLISH_TRUSTLINE = 79; - STELLAR_ERR_CREATE_ACCOUNT = 80; - STELLAR_ERR_TRANSFER = 81; - STELLAR_ERR_GET_ACCOUNT = 82; - WALLET_IS_DEACTIVE = 83; - DISCOUNT_IS_DEACTIVE = 84; + SERVER_ERROR = 2; + INTERNAL = 3; + UNAVAILABLE = 4; + + // Authentication and authorization errors + UNAUTHENTICATED = 1000; + PERMISSION_DENIED = 1001; + ACCESS_DENIED = 1002; + FORBIDDEN = 1003; + BAD_AUTH = 1004; + SESSION_EXPIRED = 1005; + + // Argument validation errors + INVALID_ARGUMENT = 2000; + INVALID_ARGUMENT_EMPTY_VALUE = 2001; + INVALID_ARGUMENT_INVALID_VALUE = 2002; + INVALID_ARGUMENT_INVALID_FORMAT = 2003; + INVALID_ARGUMENT_MISSING_RECIPIENT = 2004; + INVALID_ARGUMENT_EMPTY_ID = 2005; + INVALID_ARGUMENT_COMPANY_REQUIRED = 2006; + INVALID_ARGUMENT_UNKNOWN_TRX_TYPE = 2007; + INVALID_ARGUMENT_INVALID_CODE = 2008; + INVALID_ARGUMENT_RRN = 2009; + INVALID_ARGUMENT_MOBILE_NUMBER = 2010; + INVALID_ARGUMENT_IBAN_NUMBER = 2011; + + // Resource errors + NOT_FOUND = 3000; + ALREADY_EXISTS = 3001; + ASSET_NOT_FOUND = 3002; + WALLET_NOT_FOUND = 3003; + AGREEMENT_NOT_FOUND = 3004; + DISCOUNT_NOT_FOUND = 3005; + BANK_INFO_NOT_FOUND = 3007; + RECIPIENT_NOT_FOUND = 3008; + + // Resource state errors + ASSET_NOT_ACTIVE = 4000; + WALLET_NOT_ACTIVE = 4001; + DISCOUNT_NOT_ACTIVE = 4002; + RECIPIENT_NOT_ACTIVE = 4003; + + // Transaction errors + TRX_STATUS_UNKNOWN = 5000; + TRX_STATUS_PENDING = 5001; + TRX_STATUS_FAILED = 5002; + TRX_STATUS_SUCCESS = 5003; + TRX_STATUS_CANCELED = 5004; + TRX_STATUS_EXPIRED = 5005; + TRX_STATUS_CREATED = 5006; + TRX_STATUS_SUSPENDED = 5007; + + // Stellar errors + STELLAR_ERR_ESTABLISH_TRUST_LINE = 6000; + STELLAR_ERR_CREATE_ACCOUNT = 6001; + STELLAR_ERR_TRANSFER = 6002; + STELLAR_ERR_GET_ACCOUNT = 6003; + STELLAR_ERR_LOW_FEE = 6004; + STELLAR_ERR_LOW_RESERVE = 6005; + + // Market-related errors + MARKET_ORDER_NOT_FOUND = 3006; + MARKET_ORDER_ALREADY_CREATED = 7020; + MARKET_ORDER_ALREADY_OPENED = 7021; + MARKET_ORDER_COMPLETED = 7022; + MARKET_ORDER_CANCELED = 7023; + MARKET_ORDER_FAILED = 7024; + MARKET_ORDER_UNKNOWN = 7025; + ASSET_CAN_NOT_BUY = 7026; + ASSET_BUY_PRICE_IS_ZERO = 7019; + + // Specific errors + IBAN_MISS_MATCH = 7003; + SHAHKAR_FAILED = 7004; + SHAHKAR_SYSTEM_ERROR = 7005; + PENDING_OTP_ALREADY_EXISTS = 7006; + INVALID_OTP = 7007; + BAD_BANK_INFO = 7008; + NOT_ACCEPT_LEGAL = 7009; + NEED_TRUST_LINE = 7010; + EXPIRED = 7011; + INVALID_DISCOUNT_CODE = 7012; + ASSET_INVALID = 7013; + LOW_REQUEST_AMOUNT = 7014; + AGREEMENT_ALREADY_ACCEPTED = 7015; + CONTRACT_ALREADY_GENERATED = 7016; + NIL_AUTH = 7017; + CAN_NOT_BUY_AND_DEPOSIT = 7018; + WHITELIST_ALREADY_USED = 7027; + NATIONAL_ID_IS_EMPTY = 7028; + NOT_ENOUGH_BALANCE = 7029; + ASSET_MAX_BALANCE_REACHED = 7030; + WALLET_IS_NOT_IN_WHITE_LIST = 7031; + RECIPIENT_IS_NOT_IN_WHITE_LIST = 7032; + + // Server errors + SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; // + SERVER_ERROR_NIL_DB_TX = 8001; + + // Person-related errors + GET_PERSON_FAILED = 9000; } message ErrorMsg { From 930441f7ebe15e6dce7e0dabad5bbb9eeb31e84f Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 31 May 2025 17:36:05 +0330 Subject: [PATCH 195/293] v2: cleanup Signed-off-by: nfel --- errors/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index ea279f4..028ce65 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -102,7 +102,7 @@ enum ErrCode { RECIPIENT_IS_NOT_IN_WHITE_LIST = 7032; // Server errors - SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; // + SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; SERVER_ERROR_NIL_DB_TX = 8001; // Person-related errors From 132e5d787b33f8f09fe83bf8ea1b167d276af826 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 3 Jun 2025 13:48:45 +0330 Subject: [PATCH 196/293] v2: code formate + market support for calculation amount ( from taker/maker + seller/buyer ) Signed-off-by: nfel --- errors/v1/msg.proto | 1 + market/v1/msg.proto | 73 ++++++++++++++++++++++++++++++-------------- market/v1/srv.proto | 2 ++ wallet/v1/msg.proto | 74 +++++++++++++++++++++++++++++++-------------- wallet/v1/srv.proto | 1 + 5 files changed, 105 insertions(+), 46 deletions(-) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 028ce65..0e9cdc9 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -31,6 +31,7 @@ enum ErrCode { INVALID_ARGUMENT_RRN = 2009; INVALID_ARGUMENT_MOBILE_NUMBER = 2010; INVALID_ARGUMENT_IBAN_NUMBER = 2011; + INVALID_ARGUMENT_UNKNOWN_TYPE = 2012; // Resource errors NOT_FOUND = 3000; diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 1ff51b8..a0719f1 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -6,6 +6,47 @@ import "auth/v1/msg.proto"; import "base/v1/msg.proto"; import "wallet/v1/msg.proto"; +enum MarketParticipantType { + MO_PT_UNKOWN = 0; + MO_PT_MAKER = 1; + MO_PT_TAKER = 2; +} + +enum MarketOrderSide { + MO_UNKOWN = 0; + MO_BUY = 1; + MO_SELL = 2; +} + +enum MarketOrderStatus { + MO_UNKOWN_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_REFUNDED = 6; // Order is refunded by platform to user due to regulation + // MO_EXPIRED = 7; // Order is expired +} + +message CalcMarketReq { + optional auth.v1.InternalIAM iam = 1; // For whitelist :') + int64 asset_id = 2; + int64 counter_asset_id = 3; + double amount = 4; + double unit_price = 5; + MarketParticipantType type = 6; + wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt +} + +message CalcMarketRes { + double calculated_irt_amount = 1; + 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 +} + message MPHistoryFilter {} message MPListFilter {} message MarketOrder { @@ -29,12 +70,14 @@ message MarketOrder { repeated string tags = 18; repeated string comment = 19; optional MarketOrder source = 20; // purchase is done via this field - // repeated string attachments = 14; // possible files included by seller/buyer + // repeated string attachments = 14; // possible files included by + // seller/buyer } message MarketAssetListReq { base.v1.BaseQueryParam base = 1; - optional auth.v1.InternalIAM iam = 2; // If not set, will returns only public orders which are limited by a white list + optional auth.v1.InternalIAM iam = 2; // If not set, will returns only public orders which are limited by a + // white list } message MarketAssetList { @@ -47,7 +90,6 @@ message PurchaseReq { double amount = 3; optional bool accepted_contract = 4; optional auth.v1.TFA tfa = 5; - } message PurchaseRes { uint64 order_id = 1; @@ -65,30 +107,15 @@ message MarketOrderList { message NewMarketReq { auth.v1.InternalIAM iam = 1; - // wallet.v1.Asset asset = 2; int64 asset_id = 2; int64 counter_asset_id = 3; double amount = 4; double unit_price = 5; - MarketOrderSide side = 6; - optional auth.v1.TFA tfa = 7; - optional bool accepted_contract = 8; -} - -enum MarketOrderSide { - MO_UNKOWN = 0; - MO_BUY = 1; - MO_SELL = 2; -} -enum MarketOrderStatus { - MO_UNKOWN_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_REFUNDED = 6; // Order is refunded by platform to user due to regulation - // MO_EXPIRED = 7; // Order is expired + MarketParticipantType type = 6; + 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; } message OrderListFilter { diff --git a/market/v1/srv.proto b/market/v1/srv.proto index f94fda8..3440df6 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -7,6 +7,8 @@ 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 GetMarketOrderDet(auth.v1.IdReqWithIAM) returns (MarketOrder); // details of an order by id diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 486412f..43a7423 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -9,7 +9,9 @@ import "base/v1/msg.proto"; INTERNAL DATA */ -message InternalTransactionData { int64 transaction_id = 1; } +message InternalTransactionData { + int64 transaction_id = 1; +} /* Federation @@ -107,8 +109,8 @@ message Asset { AssetPrice price = 35; bool is_base_asset = 36; bool is_locked = 37; - Commission commission = 38; - AssetType type = 39; + // Commission commission = 38; + AssetType type = 38; } enum AssetTokenType { @@ -136,11 +138,13 @@ enum AssetType { ASSET_TYPE_NETWORK_GAS = 3; } -message AssetList { repeated Asset list = 1; } +message AssetList { + repeated Asset list = 1; +} message AssetFilter { repeated int64 ids = 1; - repeated AssetType type = 2; // AssetType + repeated AssetType type = 2; // AssetType repeated AssetType token_type = 3; // AssetType repeated AssetStatus status = 4; repeated string name = 5; @@ -166,8 +170,7 @@ message AssetDiscountRes { double static_amount = 4; double percentage = 5; double max_amount = 6; - double effective_amount = - 7; // based of asset price and discount amount in req + double effective_amount = 7; // based of asset price and discount amount in req optional int64 supported_asset = 8; } @@ -182,7 +185,9 @@ message GetAssetReq { optional string code = 3; } -message AssetMeta { PropertyMeta property = 1; } +message AssetMeta { + PropertyMeta property = 1; +} message PropertyMeta { string description = 1; @@ -199,12 +204,12 @@ message PropertyMeta { string location_image = 12; float lat = 13; float lng = 14; - string map_link= 15; + string map_link = 15; PropertyDetail detail = 16; } message PropertyDetail { - repeated Content badge = 1; // 2> + repeated Content badge = 1; // 2> repeated Content content = 2; // 4> } @@ -281,8 +286,7 @@ message UserBNPLReq { optional float amount = 7; optional PaymentPeriodInfo payment_period = 8; optional bool has_agreed_contract = 9; - optional int32 current_step = - 10; // Can be useful for admin to change the current step + optional int32 current_step = 10; // Can be useful for admin to change the current step optional int64 asset_id = 11; } @@ -306,7 +310,9 @@ message BNPLInfo { string expires_at = 14; } -message BNPLList { repeated BNPLInfo list = 1; } +message BNPLList { + repeated BNPLInfo list = 1; +} /* Transaction @@ -446,7 +452,9 @@ message RedeemTokenRes { optional auth.v1.BankInfo bank_info = 10; optional string receipt = 11; } -message RedeemTokenResList { repeated RedeemTokenRes list = 1; } +message RedeemTokenResList { + repeated RedeemTokenRes list = 1; +} /* Utility: Get Public Key from national id @@ -457,7 +465,9 @@ message NationalIDReq { string national_id = 2; } -message PubKeyRes { string pub_key = 1; } +message PubKeyRes { + string pub_key = 1; +} /* Network Details @@ -483,11 +493,22 @@ message Network { string created_at = 11; } -message NetworkList { repeated Network list = 1; } +message NetworkList { + repeated Network list = 1; +} /* * Commission * */ + +enum CommissionType { + COMMISSION_TYPE_ICO = 0; + COMMISSION_TYPE_MARKET_MAKER = 1; + COMMISSION_TYPE_MARKET_TAKER = 2; + COMMISSION_TYPE_BNPL = 3; + COMMISSION_TYPE_REDEEM = 4; +} + message Commission { uint64 id = 1; string name = 2; @@ -495,10 +516,16 @@ message Commission { double service_percentage = 4; double tax_static = 5; double tax_percentage = 6; - optional string collector = 7; - optional string description = 8; - string updated_at = 9; - string created_at = 10; + Asset asset = 7; + CommissionType type = 8; + optional string collector = 9; + optional string description = 10; + string updated_at = 11; + string created_at = 12; +} + +message CommissionList { + repeated Commission list = 1; } message EffectiveCommission { @@ -555,7 +582,9 @@ message IPGConfirmReq { string final_amount = 7; } -message IPGConfirmRes { string receipt_link = 1; } +message IPGConfirmRes { + string receipt_link = 1; +} message SaleManualReq { auth.v1.InternalIAM iam = 1; @@ -604,7 +633,7 @@ message DeclineBuyContractReq { message ConfirmBuyAssetReq { auth.v1.InternalIAM iam = 1; - uint64 agreement_id = 2; // Only in asset that require agreement contract + uint64 agreement_id = 2; // Only in asset that require agreement contract optional auth.v1.TFA tfa = 3; // This might be used in the future } @@ -628,7 +657,6 @@ message BuyAssetRes { } /* Contract */ - enum ContractType { CONTRACT_TYPE_ICO = 0; CONTRACT_TYPE_MARKET = 1; diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 54b19e9..11463db 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -21,6 +21,7 @@ service WalletService { // rpc UserGetAssetList(auth.v1.InternalIAM) returns (AssetList); // rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); rpc GetAsset(GetAssetReq) returns (Asset); + rpc GetAssetCommissions(base.v1.IdReq) returns (CommissionList); rpc GetAssetPrice(base.v1.IdReq) returns (AssetPrice); rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes); From ef2747a0213c6b99463c987f9790130fdb56bf61 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 3 Jun 2025 14:33:44 +0330 Subject: [PATCH 197/293] v2: purchase reponse changed to reflect post commission calculations Signed-off-by: nfel --- market/v1/msg.proto | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index a0719f1..41b9510 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -88,16 +88,17 @@ 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 optional bool accepted_contract = 4; optional auth.v1.TFA tfa = 5; } + message PurchaseRes { uint64 order_id = 1; - optional uint64 trx_id = 2; - double req_amount = 3; - double commission_amount = 4; - double calculated_amount = 5; - MarketOrderStatus status = 6; + double calculated_irt_amount = 2; + double calculated_asset_amount = 3; + wallet.v1.EffectiveCommission commission = 4; + MarketOrderStatus status = 5; } message MarketOrderList { From 873350345cca575758242ac61e26319e3c4ad53b Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 3 Jun 2025 14:58:48 +0330 Subject: [PATCH 198/293] v2: commission add to trx type Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 43a7423..4531364 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -339,6 +339,7 @@ enum TransactionType { LOCK = 12; IRT_DEPOSIT = 13; IRT_WITHDRAWAL = 14; + COMMISSION = 15; } enum TransactionStatus { From b27e1c234e9c5e65de40ad98becf3b1b46ec44e6 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 3 Jun 2025 15:12:21 +0330 Subject: [PATCH 199/293] v2: bad stellar add Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 0e9cdc9..4112209 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -32,6 +32,7 @@ enum ErrCode { INVALID_ARGUMENT_MOBILE_NUMBER = 2010; INVALID_ARGUMENT_IBAN_NUMBER = 2011; INVALID_ARGUMENT_UNKNOWN_TYPE = 2012; + INVALID_ARGUMENT_BAD_STELLAR_ADDRESS = 2013; // Resource errors NOT_FOUND = 3000; From 41d9a6fa101dd7239d6b852d9df77055d3fa446f Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 3 Jun 2025 15:35:48 +0330 Subject: [PATCH 200/293] v2: user not found Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 4112209..b3ca78f 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -43,6 +43,7 @@ enum ErrCode { DISCOUNT_NOT_FOUND = 3005; BANK_INFO_NOT_FOUND = 3007; RECIPIENT_NOT_FOUND = 3008; + USER_NOT_FOUND = 3009; // Resource state errors ASSET_NOT_ACTIVE = 4000; From b66cdb7ab2f8c613d4cdaf4223112e33a7f381e2 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 7 Jun 2025 14:43:03 +0330 Subject: [PATCH 201/293] v2: refund err added Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index b3ca78f..4b0e938 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -79,6 +79,7 @@ enum ErrCode { MARKET_ORDER_UNKNOWN = 7025; ASSET_CAN_NOT_BUY = 7026; ASSET_BUY_PRICE_IS_ZERO = 7019; + MARKET_ORDER_MATCHING_ERR_REFUND= 7128; // Specific errors IBAN_MISS_MATCH = 7003; From 8662183528d5369311aefad962025bb0df638ed2 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 7 Jun 2025 15:36:33 +0330 Subject: [PATCH 202/293] v2: refund err Signed-off-by: nfel --- errors/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 4b0e938..ccad6ba 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -79,7 +79,7 @@ enum ErrCode { MARKET_ORDER_UNKNOWN = 7025; ASSET_CAN_NOT_BUY = 7026; ASSET_BUY_PRICE_IS_ZERO = 7019; - MARKET_ORDER_MATCHING_ERR_REFUND= 7128; + MARKET_ORDER_MATCHING_ERR_REFUND = 7128; // Specific errors IBAN_MISS_MATCH = 7003; @@ -106,7 +106,7 @@ enum ErrCode { RECIPIENT_IS_NOT_IN_WHITE_LIST = 7032; // Server errors - SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; + SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; SERVER_ERROR_NIL_DB_TX = 8001; // Person-related errors From 4973dbc9015d2bad83790bb1dcf6fad8b9192b88 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 8 Jun 2025 12:47:00 +0330 Subject: [PATCH 203/293] v2: format + orderlist filter ( from,to date + min avaiable amount ) Signed-off-by: nfel --- market/v1/msg.proto | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 41b9510..9dd42cb 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -20,11 +20,11 @@ enum MarketOrderSide { enum MarketOrderStatus { MO_UNKOWN_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 } @@ -36,7 +36,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 { @@ -44,7 +45,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,19 +78,19 @@ message MarketOrder { message MarketAssetListReq { base.v1.BaseQueryParam base = 1; - optional auth.v1.InternalIAM iam = 2; // If not set, will returns only public orders which are limited by a + optional auth.v1.InternalIAM iam = + 2; // If not set, will returns only public orders which are limited by a // white list } -message MarketAssetList { - repeated wallet.v1.Asset list = 1; -} +message MarketAssetList { repeated wallet.v1.Asset list = 1; } 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; } @@ -113,7 +115,8 @@ 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; @@ -135,4 +138,7 @@ message OrderListFilter { optional bool is_public = 13; optional bool has_source = 14; optional uint64 source_order_id = 15; + optional string from_date = 16; + optional string to_date = 17; + optional string min_available_amount = 18; } From ea32c4623eb9835212c64d6aacd24aed471f5b73 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 8 Jun 2025 14:07:24 +0330 Subject: [PATCH 204/293] v2: sortby in market order Signed-off-by: nfel --- market/v1/msg.proto | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 9dd42cb..cced1d1 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -122,6 +122,18 @@ message NewMarketReq { optional bool accepted_contract = 10; } +enum MarketOrdersSortBy { + MO_UNKONWN = 0; + MO_CREATED_AT_ASC = 1; + MO_CREATED_AT_DESC = 2; + MO_UNIT_PRICE_ASC = 3; + MO_UNIT_PRICE_DESC = 4; + MO_TOTAL_PRICE_ASC = 5; + MO_TOTAL_PRICE_DESC = 6; + MO_AVAILABLE_AMOUNT_ASC = 7; + MO_AVAILABLE_AMOUNT_DESC = 8; +} + message OrderListFilter { optional auth.v1.InternalIAM iam = 1; base.v1.BaseQueryParam base = 2; @@ -140,5 +152,5 @@ message OrderListFilter { optional uint64 source_order_id = 15; optional string from_date = 16; optional string to_date = 17; - optional string min_available_amount = 18; + optional MarketOrdersSortBy sort_by = 18; } From 58d6369e6f6798fd394d6df3a8121320d9f2487a Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 10 Jun 2025 17:06:41 +0330 Subject: [PATCH 205/293] v2: zero amount Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index ccad6ba..6c915d4 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -33,6 +33,7 @@ enum ErrCode { INVALID_ARGUMENT_IBAN_NUMBER = 2011; INVALID_ARGUMENT_UNKNOWN_TYPE = 2012; INVALID_ARGUMENT_BAD_STELLAR_ADDRESS = 2013; + INVALID_ARGUMENT_ZERO_AMOUNT = 2014; // Resource errors NOT_FOUND = 3000; From 2de255428dccc0b7cb1e1ed2468d0e864bdf1b4e Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 11 Jun 2025 12:37:54 +0330 Subject: [PATCH 206/293] v2: available_amount added in market order list Signed-off-by: nfel --- market/v1/msg.proto | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index cced1d1..10dd9c2 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -65,13 +65,14 @@ message MarketOrder { auth.v1.UserIdentityBasic from_identity = 11; wallet.v1.Commission commission = 12; double completed_amount = 13; - string created_at = 14; - string updated_at = 15; - bool is_public = 16; - wallet.v1.TransactionList trx = 17; - repeated string tags = 18; - repeated string comment = 19; - optional MarketOrder source = 20; // purchase is done via this field + double available_amount = 14; + string created_at = 15; + string updated_at = 16; + bool is_public = 17; + wallet.v1.TransactionList trx = 18; + repeated string tags = 19; + repeated string comment = 20; + optional MarketOrder source = 21; // purchase is done via this field // repeated string attachments = 14; // possible files included by // seller/buyer } From 162f60e90d4ade738ae48fce76a30e2ae0db20f2 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 11 Jun 2025 12:44:35 +0330 Subject: [PATCH 207/293] v2: can trade added Signed-off-by: nfel --- wallet/v1/msg.proto | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 4531364..512c6b8 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -99,18 +99,19 @@ message Asset { bool can_sell = 25; bool can_deposit = 26; bool can_withdraw = 27; - string updated_at = 28; - string created_at = 29; - repeated string images = 30; - repeated string videos = 31; - AssetStatus status = 32; - AssetMeta meta = 33; - AssetTokenType token_type = 34; - AssetPrice price = 35; - bool is_base_asset = 36; - bool is_locked = 37; + bool can_trade = 28; + string updated_at = 29; + string created_at = 30; + repeated string images = 31; + repeated string videos = 32; + AssetStatus status = 33; + AssetMeta meta = 34; + AssetTokenType token_type = 35; + AssetPrice price = 36; + bool is_base_asset = 37; + bool is_locked = 38; // Commission commission = 38; - AssetType type = 38; + AssetType type = 39; } enum AssetTokenType { From fda4ef6a4b7f5699bbb250a7c169c1ec4f9b1b4d Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 17 Jun 2025 12:44:27 +0330 Subject: [PATCH 208/293] Breaking changes: Typo fixes :) --- auth/v1/msg.proto | 8 ++++---- market/v1/msg.proto | 8 ++++---- wallet/v1/msg.proto | 9 +++------ wallet/v1/srv.proto | 2 +- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 6d062ed..984a976 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -102,7 +102,7 @@ message ReqWithIAMAndParams { optional bool accepted = 2; } -message ReqWithOptioanlIAM { +message ReqWithOptionalIAM { optional InternalIAM iam = 1; } @@ -253,9 +253,9 @@ enum TfaStateEnum { INTERNAL_TRANSFER = 2; EXTERNAL_TRANSFER = 3; REDEEM_TOKEN = 4; - MARKET_PALCE_PURCHASE = 5; - MARKET_PALCE_ORDER_CREATE = 6; - MARKET_PALCE_ORDER_CANCEL = 7; + MARKET_PLACE_PURCHASE = 5; + MARKET_PLACE_ORDER_CREATE = 6; + MARKET_PLACE_ORDER_CANCEL = 7; IRT_WITHDRAWAL = 8; IRT_DEPOSIT = 9; } diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 10dd9c2..3fb0451 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -7,19 +7,19 @@ import "base/v1/msg.proto"; import "wallet/v1/msg.proto"; enum MarketParticipantType { - MO_PT_UNKOWN = 0; + MO_PT_UNKNOWN = 0; MO_PT_MAKER = 1; MO_PT_TAKER = 2; } enum MarketOrderSide { - MO_UNKOWN = 0; + MO_UNKNOWN = 0; MO_BUY = 1; MO_SELL = 2; } enum MarketOrderStatus { - MO_UNKOWN_MP_STATUS = 0; // Unknown + 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 @@ -124,7 +124,7 @@ message NewMarketReq { } enum MarketOrdersSortBy { - MO_UNKONWN = 0; + MO_SORT_UNKNOWN = 0; MO_CREATED_AT_ASC = 1; MO_CREATED_AT_DESC = 2; MO_UNIT_PRICE_ASC = 3; diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 512c6b8..5fd0ec7 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -232,9 +232,6 @@ message LockAssetReq { BNPL - not really but close name */ -// enum BNPLPgState { -// -// } message GetUserBNPLInfoReq { auth.v1.InternalIAM iam = 1; @@ -243,7 +240,7 @@ message GetUserBNPLInfoReq { enum BNPLPaymentsStatus { PENDING_PAYMENT = 0; - PAYED = 1; + PAID = 1; OVER_DUE = 2; NOT_STARTED = 3; NOT_YET_DUE = 4; @@ -254,7 +251,7 @@ message BNPLPayments { uint64 id = 1; double amount = 2; double amount_irr = 7; - bool is_paied = 3; + bool is_paid = 3; string due_date = 4; string settlement_date = 5; BNPLPaymentsStatus status = 6; @@ -448,7 +445,7 @@ message RedeemTokenRes { double total_balance = 5; double request_amount = 6; string created_at = 7; - bool is_paied = 8; + bool is_paid = 8; // receipt.Receipt receipt = 8; double calculated_profit = 9; optional auth.v1.BankInfo bank_info = 10; diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 11463db..e3a244b 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -42,7 +42,7 @@ service WalletService { rpc GetUserBNPLInfo(GetUserBNPLInfoReq) returns (UserBNPLResp); rpc SubmitBNPLForm(UserBNPLReq) returns (base.v1.StatusRes); rpc UpdateBNPL(UserBNPLReq) returns (base.v1.StatusRes); - rpc CancleBNPL(auth.v1.IdReqWithIAM) returns (base.v1.StatusRes); + rpc CancelBNPL(auth.v1.IdReqWithIAM) returns (base.v1.StatusRes); // Redeem Token rpc CalculateRedeemToken(RedeemTokenReq) returns (CalculateRedeemTokenRes); From fa9d52886fef3e24b43f0e7b5791ae50c92f59b8 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 24 Jun 2025 11:18:18 +0330 Subject: [PATCH 209/293] v2: wallet get balance Signed-off-by: nfel --- wallet/v1/msg.proto | 11 +++++++++++ wallet/v1/srv.proto | 1 + 2 files changed, 12 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 5fd0ec7..523b34e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -67,6 +67,17 @@ message Wallet { bool is_locked = 13; } +message BalanceReq{ + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; +} + +message BalanceRes{ + double available_balance = 1; + double locked_balance = 2; + double total_balance = 3; +} + /* Asset */ diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index e3a244b..c464cc0 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -26,6 +26,7 @@ service WalletService { rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes); rpc UserGetWalletList(auth.v1.InternalIAM) returns (WalletList); +rpc GetBalance(BalanceReq) returns (BalanceRes); rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); From 15db1a0bfa359bfd24352260c80786d9b8f56f41 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 24 Jun 2025 11:21:57 +0330 Subject: [PATCH 210/293] v2: check balance added Signed-off-by: nfel --- base/v1/msg.proto | 3 +++ wallet/v1/msg.proto | 6 ++++++ wallet/v1/srv.proto | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 17651a1..1847a44 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -15,6 +15,9 @@ message IdReq { } +message YesNoRes{ + bool yes = 1; +} message PaginationReq { uint32 page = 1; // in query param it will be p uint32 page_size = 2; // in query param it will be pz diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 523b34e..6fffc36 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -71,6 +71,12 @@ message BalanceReq{ auth.v1.InternalIAM iam = 1; int64 asset_id = 2; } +message CheckBalanceReq{ + auth.v1.InternalIAM iam = 1; + int64 asset_id = 2; + optional double amount = 3; // Checks if user have enough balance +} + message BalanceRes{ double available_balance = 1; diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index c464cc0..681e634 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -26,7 +26,8 @@ service WalletService { rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes); rpc UserGetWalletList(auth.v1.InternalIAM) returns (WalletList); -rpc GetBalance(BalanceReq) returns (BalanceRes); + rpc GetBalance(BalanceReq) returns (BalanceRes); + rpc CheckBalance(CheckBalanceReq) returns (base.v1.YesNoRes); rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); From a2efb704b3fd43931d5d5c2458e6b4a59fdae085 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 24 Jun 2025 11:28:48 +0330 Subject: [PATCH 211/293] v2: check balance amount is not optional :) Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 6fffc36..323541a 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -74,7 +74,7 @@ message BalanceReq{ message CheckBalanceReq{ auth.v1.InternalIAM iam = 1; int64 asset_id = 2; - optional double amount = 3; // Checks if user have enough balance + double amount = 3; // Checks if user have enough balance } From eaa85dfc4b4412cc7258d0e5c27133a90260fe56 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 24 Jun 2025 11:43:56 +0330 Subject: [PATCH 212/293] v2: change checkBalance ( now responds with error ) Signed-off-by: nfel --- wallet/v1/srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 681e634..ca612db 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -27,7 +27,7 @@ service WalletService { rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes); rpc UserGetWalletList(auth.v1.InternalIAM) returns (WalletList); rpc GetBalance(BalanceReq) returns (BalanceRes); - rpc CheckBalance(CheckBalanceReq) returns (base.v1.YesNoRes); + rpc CheckBalance(CheckBalanceReq) returns (base.v1.Empty); // Throws an error if balance is not enough rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); From 8b5f3d397f244a5b9d5d09f66f6737864e50ca94 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 25 Jun 2025 10:56:22 +0330 Subject: [PATCH 213/293] v2: internal wallet srv added Signed-off-by: nfel --- wallet/v1/internal_srv.proto | 13 +++++++++++++ wallet/v1/msg.proto | 11 ++++++----- wallet/v1/srv.proto | 10 ++-------- 3 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 wallet/v1/internal_srv.proto diff --git a/wallet/v1/internal_srv.proto b/wallet/v1/internal_srv.proto new file mode 100644 index 0000000..dd91ae5 --- /dev/null +++ b/wallet/v1/internal_srv.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package wallet.v1; + +import "base/v1/msg.proto"; +import "wallet/v1/msg.proto"; + +service PrivWalletSrv { + // Lock And Release Assets + rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); + rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); + rpc CollectCommission(CollectCommissionReq) returns (CollectCommissionRes); +} diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 323541a..8c9c189 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -67,18 +67,17 @@ message Wallet { bool is_locked = 13; } -message BalanceReq{ +message BalanceReq { auth.v1.InternalIAM iam = 1; int64 asset_id = 2; } -message CheckBalanceReq{ +message CheckBalanceReq { auth.v1.InternalIAM iam = 1; int64 asset_id = 2; double amount = 3; // Checks if user have enough balance } - -message BalanceRes{ +message BalanceRes { double available_balance = 1; double locked_balance = 2; double total_balance = 3; @@ -249,7 +248,6 @@ message LockAssetReq { BNPL - not really but close name */ - message GetUserBNPLInfoReq { auth.v1.InternalIAM iam = 1; base.v1.IdReq id = 2; @@ -550,6 +548,9 @@ message EffectiveCommission { double total = 3; } +message CollectCommissionReq {} +message CollectCommissionRes {} + /* * IPG - Internet Payment Gateway * 1. Get Token diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index ca612db..6cbbb61 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -9,17 +9,16 @@ import "wallet/v1/msg.proto"; service WalletService { rpc WalletSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); + // Internal rpc rpc InternalWalletDeleteCache(base.v1.Empty) returns (base.v1.StatusRes); rpc InternalCreateFederation(auth.v1.InternalIAM) returns (base.v1.StatusRes); + rpc GetPublicKeyByNationalID(NationalIDReq) returns (PubKeyRes); - // rpc AdminGetFederation(GetFederationReq) returns (Federation); rpc UserGetFederation(auth.v1.InternalIAM) returns (Federation); rpc GetNetworkList(base.v1.Empty) returns (NetworkList); rpc GetAssetList(AssetFilter) returns (AssetList); - // rpc UserGetAssetList(auth.v1.InternalIAM) returns (AssetList); - // rpc AdminGetAssetList(base.v1.Empty) returns (AssetList); rpc GetAsset(GetAssetReq) returns (Asset); rpc GetAssetCommissions(base.v1.IdReq) returns (CommissionList); rpc GetAssetPrice(base.v1.IdReq) returns (AssetPrice); @@ -51,15 +50,10 @@ service WalletService { rpc RedeemToken(RedeemTokenReq) returns (base.v1.StatusRes); rpc RedeemTokenList(auth.v1.ReqWithIAMAndParams) returns (RedeemTokenResList); - rpc GetPublicKeyByNationalID(NationalIDReq) returns (PubKeyRes); - // Assets routing rpc InternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); rpc ExternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); - rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); - rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); - rpc AssetDiscount(AssetDiscountReq) returns (AssetDiscountRes); // --- IRT --- From 0ec7d72bdacfe07384c773665d1c02c37ae9af98 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 30 Jun 2025 12:02:08 +0330 Subject: [PATCH 214/293] v2: commission renamed Signed-off-by: nfel --- wallet/v1/internal_srv.proto | 4 +++- wallet/v1/msg.proto | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/wallet/v1/internal_srv.proto b/wallet/v1/internal_srv.proto index dd91ae5..e4b9431 100644 --- a/wallet/v1/internal_srv.proto +++ b/wallet/v1/internal_srv.proto @@ -9,5 +9,7 @@ service PrivWalletSrv { // Lock And Release Assets rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); - rpc CollectCommission(CollectCommissionReq) returns (CollectCommissionRes); + + rpc CollectCommission(CommissionReq) returns (CommissionRes); + rpc RefundCommission(CommissionReq) returns (CommissionRes); } diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 8c9c189..e63a3de 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -548,8 +548,12 @@ message EffectiveCommission { double total = 3; } -message CollectCommissionReq {} -message CollectCommissionRes {} +message CommissionReq { + uint64 commission_id = 1; + double amount = 2; + auth.v1.UserIdentityBasic user = 3; +} +message CommissionRes {} /* * IPG - Internet Payment Gateway From c0c9a4bef5780c4277a0d283c29bd161572c4a7c Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 7 Jul 2025 14:12:49 +0330 Subject: [PATCH 215/293] added postal code to auth/identity --- auth/v1/msg.proto | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 984a976..da146b2 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -157,6 +157,8 @@ message Identity { optional string employee_info = 23; string pub_key = 24; optional float balance = 25; + string postal_code = 26; + string user_address = 27; } message IdentityBasic { @@ -179,6 +181,8 @@ message UserUpdateIdentityReq { string national_id = 2; string birthdate = 3; string email = 4; + string postal_code = 5; + string user_address = 6; } message UserUpdateBankInfoReq { From 2618601e70e4812326eeb18995958debc560b116 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 7 Jul 2025 14:26:54 +0330 Subject: [PATCH 216/293] v2: these fields can be optional Signed-off-by: nfel --- auth/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index da146b2..4957773 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -157,8 +157,8 @@ message Identity { optional string employee_info = 23; string pub_key = 24; optional float balance = 25; - string postal_code = 26; - string user_address = 27; + optional string postal_code = 26; + optional string user_address = 27; } message IdentityBasic { From 9a321f6613de7f74c93d2d46d1406cbbe5534a2d Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 7 Jul 2025 14:52:20 +0330 Subject: [PATCH 217/293] v2: postal in indetity req is optional as well Signed-off-by: nfel --- auth/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 4957773..2e1adff 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -181,8 +181,8 @@ message UserUpdateIdentityReq { string national_id = 2; string birthdate = 3; string email = 4; - string postal_code = 5; - string user_address = 6; + optional string postal_code = 5; + optional string user_address = 6; } message UserUpdateBankInfoReq { From e0c66e2868e384b9aa5572812cb1f8f0685158ec Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 7 Jul 2025 15:30:53 +0330 Subject: [PATCH 218/293] v2: user adress message Signed-off-by: nfel --- auth/v1/msg.proto | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 2e1adff..a95b29b 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -122,6 +122,11 @@ message User { repeated int64 roles = 5; } +message UserAddress{ + string postal_code = 2; + string user_address = 3; +} + message Company { int64 id = 1; string name = 2; @@ -157,8 +162,7 @@ message Identity { optional string employee_info = 23; string pub_key = 24; optional float balance = 25; - optional string postal_code = 26; - optional string user_address = 27; + optional UserAddress user_address = 26; } message IdentityBasic { @@ -181,8 +185,7 @@ message UserUpdateIdentityReq { string national_id = 2; string birthdate = 3; string email = 4; - optional string postal_code = 5; - optional string user_address = 6; + optional UserAddress user_address = 5; } message UserUpdateBankInfoReq { From de57dfda195147d007d017b753d3c0565b6ffe19 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 9 Jul 2025 11:47:45 +0330 Subject: [PATCH 219/293] v2: national_id miss match ( instead of shahkar failed err ) Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 6c915d4..b32397a 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -105,6 +105,7 @@ enum ErrCode { ASSET_MAX_BALANCE_REACHED = 7030; WALLET_IS_NOT_IN_WHITE_LIST = 7031; RECIPIENT_IS_NOT_IN_WHITE_LIST = 7032; + MOBILE_NATIONAL_ID_MISS_MATCH = 7033; // Server errors SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; From 65a9344a7ccc543fde485efb7c5d67f7ecbb7592 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 9 Jul 2025 12:34:03 +0330 Subject: [PATCH 220/293] v2: added user status Signed-off-by: nfel --- auth/v1/msg.proto | 65 +++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 36 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index a95b29b..610ad6d 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -8,9 +8,7 @@ import "base/v1/msg.proto"; Internal */ -message InternalInitRoutesReq { - repeated InternalRoute routes = 1; -} +message InternalInitRoutesReq { repeated InternalRoute routes = 1; } message InternalRoute { string path = 1; string method = 2; @@ -32,20 +30,14 @@ message Permission { string method = 5; } -message PermissionList { - repeated Permission list = 1; -} +message PermissionList { repeated Permission list = 1; } /* UserSendOtp */ -message UserSendOtpReq { - string mobile = 1; -} -message UserSendOtpRes { - int64 expired_at = 1; -} +message UserSendOtpReq { string mobile = 1; } +message UserSendOtpRes { int64 expired_at = 1; } /* UserLogin @@ -55,9 +47,7 @@ message UserLoginReq { string mobile = 1; string otp_code = 2; } -message UserRefreshTokenReq { - string refresh_token = 1; -} +message UserRefreshTokenReq { string refresh_token = 1; } message UserAccessTokenRes { string access_token = 1; int64 access_expired_at = 2; @@ -102,9 +92,7 @@ message ReqWithIAMAndParams { optional bool accepted = 2; } -message ReqWithOptionalIAM { - optional InternalIAM iam = 1; -} +message ReqWithOptionalIAM { optional InternalIAM iam = 1; } /* User @@ -114,15 +102,26 @@ message GetUserReq { string national_id = 2; } +enum UserStatus { + USER_STATUS_UNKNOWN = 0; + USER_STATUS_CREATED = 1; + USER_STATUS_VALID_LV1 = 2; + USER_STATUS_VALID_LV2 = 3; + USER_STATUS_VALID_LV3 = 4; + USER_STATUS_BANNED = 5; + USER_STATUS_DELETED = 6; +} + message User { int64 id = 1; string national_id = 2; string mobile = 3; string email = 4; - repeated int64 roles = 5; + UserStatus status = 5; + repeated int64 roles = 6; } -message UserAddress{ +message UserAddress { string postal_code = 2; string user_address = 3; } @@ -162,7 +161,7 @@ message Identity { optional string employee_info = 23; string pub_key = 24; optional float balance = 25; - optional UserAddress user_address = 26; + optional UserAddress user_address = 26; } message IdentityBasic { @@ -185,7 +184,7 @@ message UserUpdateIdentityReq { string national_id = 2; string birthdate = 3; string email = 4; - optional UserAddress user_address = 5; + optional UserAddress user_address = 5; } message UserUpdateBankInfoReq { @@ -195,11 +194,10 @@ message UserUpdateBankInfoReq { string card_number = 4; } -message BankInfoList { - repeated BankInfo list = 1; -} +message BankInfoList { repeated BankInfo list = 1; } -// Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential , 3: Closed for potential fraud +// Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential , 3: +// Closed for potential fraud enum BankInfoStatusEnum { FAIL_VERIFY = 0; VERIFIED = 1; @@ -227,7 +225,8 @@ message TFAReq { InternalIAM iam = 1; optional string mobile = 2; optional string email = 3; - optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal + optional string reason = + 4; // issued jwt reason -> can be login, redeem, withdrawal optional int64 id = 5; optional TfaStateEnum state = 6; } @@ -275,13 +274,9 @@ message Recipient { optional string public_key = 5; } -message LookUpNameReq { - Recipient recipient = 1; -} +message LookUpNameReq { Recipient recipient = 1; } -message LookUpNameRes { - Recipient recipient = 1; -} +message LookUpNameRes { Recipient recipient = 1; } message BasicUserInfo { string name = 1; @@ -290,6 +285,4 @@ message BasicUserInfo { int64 user_id = 4; } -message BasicUserInfoList { - repeated BasicUserInfo list = 1; -} +message BasicUserInfoList { repeated BasicUserInfo list = 1; } From 5e1602e412edebd8dec529860258face30ec1ea3 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 9 Jul 2025 12:39:42 +0330 Subject: [PATCH 221/293] v2: user status errors Signed-off-by: nfel --- errors/v1/msg.proto | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index b32397a..98bbf62 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -113,6 +113,10 @@ enum ErrCode { // Person-related errors GET_PERSON_FAILED = 9000; + USER_NOT_VERIFIED = 9001; + USER_BANNED = 9002; + USER_DELETED = 9003; + USER_DISABLED = 9004; } message ErrorMsg { From 1c190cf30ad371bbe6a906806b51be575d7146fc Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 9 Jul 2025 12:41:21 +0330 Subject: [PATCH 222/293] v2: disabled status added Signed-off-by: nfel --- auth/v1/msg.proto | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 610ad6d..e5e124b 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -104,12 +104,13 @@ message GetUserReq { enum UserStatus { USER_STATUS_UNKNOWN = 0; - USER_STATUS_CREATED = 1; - USER_STATUS_VALID_LV1 = 2; - USER_STATUS_VALID_LV2 = 3; - USER_STATUS_VALID_LV3 = 4; - USER_STATUS_BANNED = 5; - USER_STATUS_DELETED = 6; + USER_STATUS_BANNED = 1; + USER_STATUS_DISABLED = 2; + USER_STATUS_DELETED = 3; + USER_STATUS_CREATED = 5; + USER_STATUS_VALID_LV1 = 6; + USER_STATUS_VALID_LV2 = 7; + USER_STATUS_VALID_LV3 = 8; } message User { From cb446e0c39d321dec519e1538ff5fba357caebd7 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 9 Jul 2025 12:44:05 +0330 Subject: [PATCH 223/293] v2: changed status to match prev data Signed-off-by: nfel --- auth/v1/msg.proto | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index e5e124b..4d28c87 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -103,14 +103,15 @@ message GetUserReq { } enum UserStatus { - USER_STATUS_UNKNOWN = 0; - USER_STATUS_BANNED = 1; - USER_STATUS_DISABLED = 2; - USER_STATUS_DELETED = 3; - USER_STATUS_CREATED = 5; - USER_STATUS_VALID_LV1 = 6; - USER_STATUS_VALID_LV2 = 7; - USER_STATUS_VALID_LV3 = 8; + USER_STATUS_CREATED = 0; + + USER_STATUS_VALID_LV1 = 1; + USER_STATUS_VALID_LV2 = 2; + USER_STATUS_VALID_LV3 = 3; + + USER_STATUS_DISABLED = -1; + USER_STATUS_BANNED = -2; + USER_STATUS_DELETED = -3; } message User { From 69e5b366f9dbf4e81ca98e491b8220d70c923dcd Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Jul 2025 10:27:19 +0330 Subject: [PATCH 224/293] v2: max supply added to token Signed-off-by: nfel --- wallet/v1/msg.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index e63a3de..eb44ce0 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -93,7 +93,7 @@ message Asset { string code = 3; string issuer = 4; int32 decimal = 5; - double limit_amount = 6; + double limit_amount = 6; // FIXME: This Should be renamed to max supply string anchor = 7; string image = 8; string description = 9; @@ -128,6 +128,7 @@ message Asset { bool is_locked = 38; // Commission commission = 38; AssetType type = 39; + double max_supply = 40; } enum AssetTokenType { From e28f5391f5090138f7563cc6f2fc0521e1fad976 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Jul 2025 10:52:50 +0330 Subject: [PATCH 225/293] v2: redundant field removed from assets Signed-off-by: nfel --- wallet/v1/msg.proto | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index eb44ce0..9c114d9 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -93,29 +93,22 @@ message Asset { string code = 3; string issuer = 4; int32 decimal = 5; - double limit_amount = 6; // FIXME: This Should be renamed to max supply + double max_supply = 6; // FIXME: This Should be renamed to max supply string anchor = 7; string image = 8; string description = 9; string url = 10; int64 buy_unit_price = 11; - int64 sell_unit_price = 12; - double buy_min_amount = 13; - double buy_max_amount = 14; - double sell_min_amount = 15; - double sell_max_amount = 16; - double buy_fee_amount = 17; - int64 buy_fee_price = 18; - double sell_fee_amount = 19; - int64 sell_fee_price = 20; - double withdraw_min_amount = 21; - double withdraw_max_amount = 22; - bool is_active = 23; - bool can_buy = 24; - bool can_sell = 25; - bool can_deposit = 26; - bool can_withdraw = 27; - bool can_trade = 28; + double buy_min_amount = 12; + double buy_max_amount = 13; + double buy_fee_amount = 14; + int64 buy_fee_price = 15; + bool is_active = 20; + bool can_buy = 21; + bool can_sell = 22; + bool can_deposit = 23; + bool can_withdraw = 24; + bool can_trade = 25; string updated_at = 29; string created_at = 30; repeated string images = 31; @@ -126,9 +119,7 @@ message Asset { AssetPrice price = 36; bool is_base_asset = 37; bool is_locked = 38; - // Commission commission = 38; AssetType type = 39; - double max_supply = 40; } enum AssetTokenType { From c24c5ed00cfe54164bc3e620054b4f0ceb966449 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Jul 2025 11:07:36 +0330 Subject: [PATCH 226/293] v2: missing asset network code Signed-off-by: nfel --- wallet/v1/msg.proto | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 9c114d9..d228cb8 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -92,17 +92,18 @@ message Asset { string name = 2; string code = 3; string issuer = 4; - int32 decimal = 5; - double max_supply = 6; // FIXME: This Should be renamed to max supply - string anchor = 7; - string image = 8; - string description = 9; - string url = 10; - int64 buy_unit_price = 11; - double buy_min_amount = 12; - double buy_max_amount = 13; - double buy_fee_amount = 14; - int64 buy_fee_price = 15; + string network_code = 5; + int32 decimal = 6; + double max_supply = 7; + string anchor = 8; + string image = 9; + string description = 10; + string url = 11; + int64 buy_unit_price = 12; + double buy_min_amount = 13; + double buy_max_amount = 14; + double buy_fee_amount = 15; + int64 buy_fee_price = 16; bool is_active = 20; bool can_buy = 21; bool can_sell = 22; From 222d8828ee45bf805955787382f2b3911726cf27 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Jul 2025 11:36:34 +0330 Subject: [PATCH 227/293] v2: removed two more fields Signed-off-by: nfel --- wallet/v1/msg.proto | 2 -- 1 file changed, 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d228cb8..dc55f15 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -102,8 +102,6 @@ message Asset { int64 buy_unit_price = 12; double buy_min_amount = 13; double buy_max_amount = 14; - double buy_fee_amount = 15; - int64 buy_fee_price = 16; bool is_active = 20; bool can_buy = 21; bool can_sell = 22; From 8891d871a97a0a8c206fa01b95b5c1596606878e Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Jul 2025 12:39:14 +0330 Subject: [PATCH 228/293] v2: invalid buy amount Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 98bbf62..2f69a24 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -34,6 +34,7 @@ enum ErrCode { INVALID_ARGUMENT_UNKNOWN_TYPE = 2012; INVALID_ARGUMENT_BAD_STELLAR_ADDRESS = 2013; INVALID_ARGUMENT_ZERO_AMOUNT = 2014; + INVALID_BUY_AMOUNT = 2015; // Resource errors NOT_FOUND = 3000; From c314884162f23f18a6f29b0f5cf410d01170a2d7 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Jul 2025 12:39:55 +0330 Subject: [PATCH 229/293] v2: added min and max Signed-off-by: nfel --- errors/v1/msg.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 2f69a24..bb1f533 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -35,6 +35,8 @@ enum ErrCode { INVALID_ARGUMENT_BAD_STELLAR_ADDRESS = 2013; INVALID_ARGUMENT_ZERO_AMOUNT = 2014; INVALID_BUY_AMOUNT = 2015; + INVALID_BUY_AMOUNT_MAX = 2016; + INVALID_BUY_AMOUNT_MIN = 2017; // Resource errors NOT_FOUND = 3000; From cc5dcc09dffa6cd340f6eed821756aa7f6ebc89e Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 12 Jul 2025 12:48:35 +0330 Subject: [PATCH 230/293] v2: removed anchor from assets Signed-off-by: nfel --- wallet/v1/msg.proto | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index dc55f15..bcd027a 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -95,13 +95,12 @@ message Asset { string network_code = 5; int32 decimal = 6; double max_supply = 7; - string anchor = 8; - string image = 9; - string description = 10; - string url = 11; - int64 buy_unit_price = 12; - double buy_min_amount = 13; - double buy_max_amount = 14; + string image = 8; + string description = 9; + string url = 10; + int64 buy_unit_price = 11; + double buy_min_amount = 12; + double buy_max_amount = 13; bool is_active = 20; bool can_buy = 21; bool can_sell = 22; From f969f845c5d05c6341edc41735979f946a48aec9 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 14 Jul 2025 11:52:51 +0330 Subject: [PATCH 231/293] v2: removed balance from identity , kyc err added Signed-off-by: nfel --- auth/v1/msg.proto | 3 +-- errors/v1/msg.proto | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 4d28c87..10eb9cd 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -162,8 +162,7 @@ message Identity { optional Company company = 22; optional string employee_info = 23; string pub_key = 24; - optional float balance = 25; - optional UserAddress user_address = 26; + optional UserAddress user_address = 25; } message IdentityBasic { diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index bb1f533..529f30f 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -17,6 +17,8 @@ enum ErrCode { FORBIDDEN = 1003; BAD_AUTH = 1004; SESSION_EXPIRED = 1005; + USER_KYC_LV1_NOT_FOUND = 1006; + USER_KYC_LV2_NOT_FOUND = 1007; // Argument validation errors INVALID_ARGUMENT = 2000; @@ -113,6 +115,7 @@ enum ErrCode { // Server errors SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; SERVER_ERROR_NIL_DB_TX = 8001; + SERVER_ERROR_TFA_TEMPLATE_NOT_FOUND = 8002; // Person-related errors GET_PERSON_FAILED = 9000; From 6375702e2a22eadbe7f040e71c1eb1994a62f23a Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 14 Jul 2025 12:05:19 +0330 Subject: [PATCH 232/293] v2: admin -> platform ( price ) Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index bcd027a..5749003 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -184,7 +184,7 @@ message AssetDiscountRes { message AssetPrice { string updated_at = 1; double market_price = 2; - double admin_price = 3; + double platform_price = 3; } message GetAssetReq { From 6ae0050be8b2fd5e1c5b93ed21830a7cdd18265a Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 14 Jul 2025 12:26:16 +0330 Subject: [PATCH 233/293] v2: some code clean up Signed-off-by: nfel --- alert/v1/msg.proto | 31 ++++++++++++++----------------- alert/v1/srv.proto | 4 ++-- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/alert/v1/msg.proto b/alert/v1/msg.proto index bc3fa00..85ce167 100644 --- a/alert/v1/msg.proto +++ b/alert/v1/msg.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package alert.v1; import "base/v1/msg.proto"; +import "auth/v1/msg.proto"; message AlertFilter { base.v1.BaseQueryParam base_filter = 1; @@ -10,11 +11,11 @@ message AlertFilter { LogSource source = 3; } -//Importance of given event +// Importance of given event enum Importance { - LOW = 0; // Low Severity ( unimportant and can be ignored ) - MEDIUM = 1; // MEDIUM Severity - HIGH = 2; // High Severity + LOW = 0; // Low Severity ( unimportant and can be ignored ) + MEDIUM = 1; // MEDIUM Severity + HIGH = 2; // High Severity CRITICAL = 3; // CRITICAL Severity ( can cause panics and data lost ) } @@ -32,17 +33,15 @@ message Meta { } message LogEvent { - optional uint64 id = 1; // Record Id of Log stored in db - string content = 2; - string effective_user = 3; - optional LogSource source = 5; - Importance importance = 6; - Meta meta = 7; + auth.v1.InternalIAM iam = 1; + optional uint64 id = 2; // Record Id of Log stored in db + string content = 3; + optional LogSource source = 4; + Importance importance = 5; + Meta meta = 6; } -message LogEventList { - repeated LogEvent events = 1; -} +message LogEventList { repeated LogEvent events = 1; } /* Internal Msg */ @@ -53,13 +52,11 @@ message SMSChangeLog { } message SMS { - string recipient = 1; //recipient + string recipient = 1; // recipient string text = 2; optional string sender = 3; Meta meta = 4; repeated SMSChangeLog change_log = 5; } -message SMSList { - repeated SMS sms = 1; -} +message SMSList { repeated SMS sms = 1; } diff --git a/alert/v1/srv.proto b/alert/v1/srv.proto index e2b5b06..a2d3112 100644 --- a/alert/v1/srv.proto +++ b/alert/v1/srv.proto @@ -8,6 +8,6 @@ import "base/v1/msg.proto"; service AlertSrv { rpc NotificationSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); rpc Emit(LogEvent) returns (base.v1.StatusRes) {} - rpc Update(LogEvent) returns (base.v1.StatusRes) {} - rpc Get(AlertFilter) returns (base.v1.StatusRes) {} + // rpc Update(LogEvent) returns (base.v1.StatusRes) {} + // rpc Get(AlertFilter) returns (base.v1.StatusRes) {} } From 15ba0b6212ccf5e83103e59e83777748a10a6cd7 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 14 Jul 2025 12:26:33 +0330 Subject: [PATCH 234/293] v2: priv wallet health check Signed-off-by: nfel --- wallet/v1/internal_srv.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/internal_srv.proto b/wallet/v1/internal_srv.proto index e4b9431..eaa148d 100644 --- a/wallet/v1/internal_srv.proto +++ b/wallet/v1/internal_srv.proto @@ -6,6 +6,7 @@ import "base/v1/msg.proto"; import "wallet/v1/msg.proto"; service PrivWalletSrv { + rpc PrivWalletSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); // Lock And Release Assets rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); From 4135400cf140324f8860346f316e59ff64e8d526 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 14 Jul 2025 13:04:19 +0330 Subject: [PATCH 235/293] v2: priv -> internal ( wallet srv ) Signed-off-by: nfel --- wallet/v1/internal_srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/internal_srv.proto b/wallet/v1/internal_srv.proto index eaa148d..e019626 100644 --- a/wallet/v1/internal_srv.proto +++ b/wallet/v1/internal_srv.proto @@ -5,7 +5,7 @@ package wallet.v1; import "base/v1/msg.proto"; import "wallet/v1/msg.proto"; -service PrivWalletSrv { +service InternalWalletSrv { rpc PrivWalletSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); // Lock And Release Assets rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); From 7f8b4a2c5fb2e2a8ec6fa001d1b851d00ad97f2e Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 14 Jul 2025 15:20:51 +0330 Subject: [PATCH 236/293] v2: priv -> internal healthcheck Signed-off-by: nfel --- wallet/v1/internal_srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/internal_srv.proto b/wallet/v1/internal_srv.proto index e019626..402ba89 100644 --- a/wallet/v1/internal_srv.proto +++ b/wallet/v1/internal_srv.proto @@ -6,7 +6,7 @@ import "base/v1/msg.proto"; import "wallet/v1/msg.proto"; service InternalWalletSrv { - rpc PrivWalletSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); + rpc InternalWalletSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); // Lock And Release Assets rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); From 3eac30a1e3c7c7ad280f73849836f4b03b4db8b9 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 14 Jul 2025 15:21:03 +0330 Subject: [PATCH 237/293] v2: events (WIP) Signed-off-by: nfel --- alert/v1/msg.proto | 53 ++++++++++++++++++++++++++++++++-------------- alert/v1/srv.proto | 1 + 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/alert/v1/msg.proto b/alert/v1/msg.proto index 85ce167..0799a14 100644 --- a/alert/v1/msg.proto +++ b/alert/v1/msg.proto @@ -2,8 +2,8 @@ syntax = "proto3"; package alert.v1; -import "base/v1/msg.proto"; import "auth/v1/msg.proto"; +import "base/v1/msg.proto"; message AlertFilter { base.v1.BaseQueryParam base_filter = 1; @@ -13,19 +13,35 @@ message AlertFilter { // Importance of given event enum Importance { - LOW = 0; // Low Severity ( unimportant and can be ignored ) - MEDIUM = 1; // MEDIUM Severity - HIGH = 2; // High Severity + LOW = 0; // Low Severity ( unimportant and can be ignored ) + MEDIUM = 1; // MEDIUM Severity + HIGH = 2; // High Severity CRITICAL = 3; // CRITICAL Severity ( can cause panics and data lost ) } -enum LogSource { - UNKNOWN = 0; - USER = 1; - SYSTEM = 2; - WALLET = 3; +enum LogType { + TYPE_UNKNOWN = 0; + TYPE_SMS = 1; + TYPE_EMAIL = 2; + TYPE_PUSH = 3; } +enum LogLevel { + LVL_UNKNOWN = 0; + LVL_INFO = 1; + LVL_SUCCESS = 2; + LVL_WARN = 3; + LVL_ERROR = 4; +} + +enum LogSource { + SRC_UNKNOWN = 0; + SRC_USER = 1; + SRC_SYSTEM = 2; + SRC_WALLET = 3; +} + + message Meta { uint32 created_at_ts = 1; uint32 updated_at_ts = 2; @@ -34,14 +50,17 @@ message Meta { message LogEvent { auth.v1.InternalIAM iam = 1; - optional uint64 id = 2; // Record Id of Log stored in db - string content = 3; - optional LogSource source = 4; - Importance importance = 5; - Meta meta = 6; + optional uint64 id = 2; // Record Id of Log stored in db + LogSource source = 3; + Importance importance = 4; + LogLevel level = 5; + string content = 6; + Meta meta = 7; } -message LogEventList { repeated LogEvent events = 1; } +message LogEventList { + repeated LogEvent events = 1; +} /* Internal Msg */ @@ -59,4 +78,6 @@ message SMS { repeated SMSChangeLog change_log = 5; } -message SMSList { repeated SMS sms = 1; } +message SMSList { + repeated SMS sms = 1; +} diff --git a/alert/v1/srv.proto b/alert/v1/srv.proto index a2d3112..0de2f2e 100644 --- a/alert/v1/srv.proto +++ b/alert/v1/srv.proto @@ -11,3 +11,4 @@ service AlertSrv { // rpc Update(LogEvent) returns (base.v1.StatusRes) {} // rpc Get(AlertFilter) returns (base.v1.StatusRes) {} } + From c5baf25a24ab8118d3fe2e6518cea4b4674dce20 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 16 Jul 2025 15:53:24 +0330 Subject: [PATCH 238/293] Requests with list as their response now accept page_no, page_size Responses with list now have page_no, page_size, optional total_count --- alert/v1/msg.proto | 7 ----- auth/v1/msg.proto | 65 ++++++++++++++++++++++++++++----------------- base/v1/msg.proto | 20 ++++---------- market/v1/msg.proto | 44 +++++++++++++++--------------- wallet/v1/msg.proto | 30 +++++++++++++++++---- 5 files changed, 93 insertions(+), 73 deletions(-) diff --git a/alert/v1/msg.proto b/alert/v1/msg.proto index 0799a14..34a856c 100644 --- a/alert/v1/msg.proto +++ b/alert/v1/msg.proto @@ -3,13 +3,6 @@ syntax = "proto3"; package alert.v1; import "auth/v1/msg.proto"; -import "base/v1/msg.proto"; - -message AlertFilter { - base.v1.BaseQueryParam base_filter = 1; - Importance importance = 2; - LogSource source = 3; -} // Importance of given event enum Importance { diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 10eb9cd..ab6a014 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -2,13 +2,13 @@ syntax = "proto3"; package auth.v1; -import "base/v1/msg.proto"; - /* Internal */ -message InternalInitRoutesReq { repeated InternalRoute routes = 1; } +message InternalInitRoutesReq { + repeated InternalRoute routes = 1; +} message InternalRoute { string path = 1; string method = 2; @@ -30,14 +30,23 @@ message Permission { string method = 5; } -message PermissionList { repeated Permission list = 1; } +message PermissionList { + repeated Permission list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; +} /* UserSendOtp */ -message UserSendOtpReq { string mobile = 1; } -message UserSendOtpRes { int64 expired_at = 1; } +message UserSendOtpReq { + string mobile = 1; +} +message UserSendOtpRes { + int64 expired_at = 1; +} /* UserLogin @@ -47,7 +56,9 @@ message UserLoginReq { string mobile = 1; string otp_code = 2; } -message UserRefreshTokenReq { string refresh_token = 1; } +message UserRefreshTokenReq { + string refresh_token = 1; +} message UserAccessTokenRes { string access_token = 1; int64 access_expired_at = 2; @@ -81,18 +92,14 @@ message IdReqWithIAMAndTFA { TFA tfa = 6; } -// Used for endpoints that need token and Query Param -message IAMWithQP { - InternalIAM iam = 1; - base.v1.BaseQueryParam qp = 2; -} - message ReqWithIAMAndParams { InternalIAM iam = 1; optional bool accepted = 2; } -message ReqWithOptionalIAM { optional InternalIAM iam = 1; } +message ReqWithOptionalIAM { + optional InternalIAM iam = 1; +} /* User @@ -195,7 +202,12 @@ message UserUpdateBankInfoReq { string card_number = 4; } -message BankInfoList { repeated BankInfo list = 1; } +message BankInfoList { + repeated BankInfo list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; +} // Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential , 3: // Closed for potential fraud @@ -217,17 +229,11 @@ message BankInfo { } /* Two Factor Authentication */ -// message IdReqWithIAMAndTFA { -// int64 id = 1; -// InternalIAM iam = 2; -// string tfa_code = 3; -// } message TFAReq { InternalIAM iam = 1; optional string mobile = 2; optional string email = 3; - optional string reason = - 4; // issued jwt reason -> can be login, redeem, withdrawal + optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal optional int64 id = 5; optional TfaStateEnum state = 6; } @@ -275,9 +281,13 @@ message Recipient { optional string public_key = 5; } -message LookUpNameReq { Recipient recipient = 1; } +message LookUpNameReq { + Recipient recipient = 1; +} -message LookUpNameRes { Recipient recipient = 1; } +message LookUpNameRes { + Recipient recipient = 1; +} message BasicUserInfo { string name = 1; @@ -286,4 +296,9 @@ message BasicUserInfo { int64 user_id = 4; } -message BasicUserInfoList { repeated BasicUserInfo list = 1; } +message BasicUserInfoList { + repeated BasicUserInfo list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; +} diff --git a/base/v1/msg.proto b/base/v1/msg.proto index 1847a44..e297047 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -14,23 +14,13 @@ message IdReq { int64 id = 1; } - -message YesNoRes{ +message YesNoRes { bool yes = 1; } -message PaginationReq { - uint32 page = 1; // in query param it will be p - uint32 page_size = 2; // in query param it will be pz -} +message PaginationRespSample { -message PaginationResp { - uint32 no = 1; - uint32 size = 2; - optional uint32 count = 3; -} - -message BaseQueryParam { - repeated string sort = 2; // sort by - optional PaginationReq page = 3; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; } diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 3fb0451..9e23d77 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -3,7 +3,6 @@ syntax = "proto3"; package market.v1; import "auth/v1/msg.proto"; -import "base/v1/msg.proto"; import "wallet/v1/msg.proto"; enum MarketParticipantType { @@ -20,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 } @@ -36,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 { @@ -45,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 {} @@ -78,20 +75,23 @@ message MarketOrder { } message MarketAssetListReq { - base.v1.BaseQueryParam base = 1; - optional auth.v1.InternalIAM iam = - 2; // If not set, will returns only public orders which are limited by a - // white list + 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; } -message MarketAssetList { repeated wallet.v1.Asset list = 1; } +message MarketAssetList { + repeated wallet.v1.Asset list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; +} 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; } @@ -105,8 +105,10 @@ message PurchaseRes { } message MarketOrderList { - base.v1.PaginationResp page = 2; repeated MarketOrder list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; } message NewMarketReq { @@ -116,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; @@ -137,7 +138,6 @@ enum MarketOrdersSortBy { message OrderListFilter { optional auth.v1.InternalIAM iam = 1; - base.v1.BaseQueryParam base = 2; optional string search = 3; optional MarketOrderSide side = 4; repeated MarketOrderStatus status = 5; @@ -154,4 +154,6 @@ message OrderListFilter { optional string from_date = 16; optional string to_date = 17; optional MarketOrdersSortBy sort_by = 18; + optional uint32 page_no = 19; + optional uint32 page_size = 20; } diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 5749003..3d77151 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -45,10 +45,13 @@ message UserInitWalletReq { message WalletList { repeated Wallet list = 1; - // optional base.v1.Pagination pagination = 2; double available_balance = 3; double locked_balance = 4; double total_balance = 5; + + uint32 page_no = 6; + uint32 page_size = 7; + optional uint32 total_count = 8; } message Wallet { @@ -94,7 +97,7 @@ message Asset { string issuer = 4; string network_code = 5; int32 decimal = 6; - double max_supply = 7; + double max_supply = 7; string image = 8; string description = 9; string url = 10; @@ -147,6 +150,9 @@ enum AssetType { message AssetList { repeated Asset list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; } message AssetFilter { @@ -282,10 +288,10 @@ message UserBNPLResp { message UserBNPLReq { uint64 id = 1; int64 bnpl_id = 2; - auth.v1.InternalIAM iam = 6; optional string created_at = 3; optional string employee_id = 4; optional int64 company_id = 5; + auth.v1.InternalIAM iam = 6; optional float amount = 7; optional PaymentPeriodInfo payment_period = 8; optional bool has_agreed_contract = 9; @@ -315,6 +321,9 @@ message BNPLInfo { message BNPLList { repeated BNPLInfo list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; } /* @@ -323,7 +332,9 @@ message BNPLList { message TransactionList { repeated Transaction list = 1; - int64 total_count = 2; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; } enum TransactionType { @@ -381,7 +392,7 @@ message Transaction { message UserGetTransactionListReq { auth.v1.InternalIAM iam = 1; - optional int32 page_index = 2; + optional int32 page_no = 2; optional int32 page_size = 3; optional int64 id = 4; optional int64 asset_id = 5; @@ -458,6 +469,9 @@ message RedeemTokenRes { } message RedeemTokenResList { repeated RedeemTokenRes list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; } /* @@ -499,6 +513,9 @@ message Network { message NetworkList { repeated Network list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; } /* @@ -530,6 +547,9 @@ message Commission { message CommissionList { repeated Commission list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + optional uint32 total_count = 4; } message EffectiveCommission { From 5d163cac54e1d60ca29925d2b2410502483514c1 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 16 Jul 2025 16:39:12 +0330 Subject: [PATCH 239/293] v2: renamed usergettrxlist -> trxlistfilter Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- wallet/v1/srv.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 3d77151..0970d59 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -390,7 +390,7 @@ message Transaction { double token_price = 21; } -message UserGetTransactionListReq { +message TransactionListFilter { auth.v1.InternalIAM iam = 1; optional int32 page_no = 2; optional int32 page_size = 3; diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 6cbbb61..937158c 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -28,7 +28,7 @@ service WalletService { rpc GetBalance(BalanceReq) returns (BalanceRes); rpc CheckBalance(CheckBalanceReq) returns (base.v1.Empty); // Throws an error if balance is not enough - rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList); + rpc UserGetTransactionList(TransactionListFilter) returns (TransactionList); // Get Token from IPG is and internal api rpc IPGGetToken(IPGGetTokenReq) returns (IPGGetTokenRes); From b6fe01f00b1d6eb9578141721b35462037336f7a Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 16 Jul 2025 16:52:58 +0330 Subject: [PATCH 240/293] v2: pagination total_count (removed optional) Signed-off-by: nfel --- auth/v1/msg.proto | 6 +++--- base/v1/msg.proto | 2 +- market/v1/msg.proto | 29 +++++++++++++++++------------ wallet/v1/msg.proto | 14 +++++++------- 4 files changed, 28 insertions(+), 23 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index ab6a014..ce340e0 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -34,7 +34,7 @@ message PermissionList { repeated Permission list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } /* @@ -206,7 +206,7 @@ message BankInfoList { repeated BankInfo list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } // Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential , 3: @@ -300,5 +300,5 @@ message BasicUserInfoList { repeated BasicUserInfo list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } diff --git a/base/v1/msg.proto b/base/v1/msg.proto index e297047..4f85910 100644 --- a/base/v1/msg.proto +++ b/base/v1/msg.proto @@ -22,5 +22,5 @@ message PaginationRespSample { uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 9e23d77..b2ff560 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 {} @@ -75,7 +77,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; } @@ -84,14 +87,15 @@ message MarketAssetList { repeated wallet.v1.Asset list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } 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; } @@ -108,7 +112,7 @@ message MarketOrderList { repeated MarketOrder list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } message NewMarketReq { @@ -118,7 +122,8 @@ 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; diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 0970d59..50c3dc5 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -51,7 +51,7 @@ message WalletList { uint32 page_no = 6; uint32 page_size = 7; - optional uint32 total_count = 8; + uint32 total_count = 8; } message Wallet { @@ -152,7 +152,7 @@ message AssetList { repeated Asset list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } message AssetFilter { @@ -323,7 +323,7 @@ message BNPLList { repeated BNPLInfo list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } /* @@ -334,7 +334,7 @@ message TransactionList { repeated Transaction list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } enum TransactionType { @@ -471,7 +471,7 @@ message RedeemTokenResList { repeated RedeemTokenRes list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } /* @@ -515,7 +515,7 @@ message NetworkList { repeated Network list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } /* @@ -549,7 +549,7 @@ message CommissionList { repeated Commission list = 1; uint32 page_no = 2; uint32 page_size = 3; - optional uint32 total_count = 4; + uint32 total_count = 4; } message EffectiveCommission { From 4ebfed6bec3fa8c06b3040d04896b612bc3ceb3d Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 16 Jul 2025 17:06:48 +0330 Subject: [PATCH 241/293] v2: fixed bad type of int32 for page Signed-off-by: nfel --- wallet/v1/msg.proto | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 50c3dc5..5b6f55f 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -9,9 +9,7 @@ import "base/v1/msg.proto"; INTERNAL DATA */ -message InternalTransactionData { - int64 transaction_id = 1; -} +message InternalTransactionData { int64 transaction_id = 1; } /* Federation @@ -157,7 +155,7 @@ message AssetList { message AssetFilter { repeated int64 ids = 1; - repeated AssetType type = 2; // AssetType + repeated AssetType type = 2; // AssetType repeated AssetType token_type = 3; // AssetType repeated AssetStatus status = 4; repeated string name = 5; @@ -183,7 +181,8 @@ message AssetDiscountRes { double static_amount = 4; double percentage = 5; double max_amount = 6; - double effective_amount = 7; // based of asset price and discount amount in req + double effective_amount = + 7; // based of asset price and discount amount in req optional int64 supported_asset = 8; } @@ -198,9 +197,7 @@ message GetAssetReq { optional string code = 3; } -message AssetMeta { - PropertyMeta property = 1; -} +message AssetMeta { PropertyMeta property = 1; } message PropertyMeta { string description = 1; @@ -222,7 +219,7 @@ message PropertyMeta { } message PropertyDetail { - repeated Content badge = 1; // 2> + repeated Content badge = 1; // 2> repeated Content content = 2; // 4> } @@ -295,7 +292,8 @@ message UserBNPLReq { optional float amount = 7; optional PaymentPeriodInfo payment_period = 8; optional bool has_agreed_contract = 9; - optional int32 current_step = 10; // Can be useful for admin to change the current step + optional int32 current_step = + 10; // Can be useful for admin to change the current step optional int64 asset_id = 11; } @@ -392,8 +390,8 @@ message Transaction { message TransactionListFilter { auth.v1.InternalIAM iam = 1; - optional int32 page_no = 2; - optional int32 page_size = 3; + optional uint32 page_no = 2; + optional uint32 page_size = 3; optional int64 id = 4; optional int64 asset_id = 5; optional int64 from_user_id = 6; @@ -471,7 +469,7 @@ message RedeemTokenResList { repeated RedeemTokenRes list = 1; uint32 page_no = 2; uint32 page_size = 3; - uint32 total_count = 4; + uint32 total_count = 4; } /* @@ -483,9 +481,7 @@ message NationalIDReq { string national_id = 2; } -message PubKeyRes { - string pub_key = 1; -} +message PubKeyRes { string pub_key = 1; } /* Network Details @@ -515,7 +511,7 @@ message NetworkList { repeated Network list = 1; uint32 page_no = 2; uint32 page_size = 3; - uint32 total_count = 4; + uint32 total_count = 4; } /* @@ -549,7 +545,7 @@ message CommissionList { repeated Commission list = 1; uint32 page_no = 2; uint32 page_size = 3; - uint32 total_count = 4; + uint32 total_count = 4; } message EffectiveCommission { @@ -613,9 +609,7 @@ message IPGConfirmReq { string final_amount = 7; } -message IPGConfirmRes { - string receipt_link = 1; -} +message IPGConfirmRes { string receipt_link = 1; } message SaleManualReq { auth.v1.InternalIAM iam = 1; @@ -664,7 +658,7 @@ message DeclineBuyContractReq { message ConfirmBuyAssetReq { auth.v1.InternalIAM iam = 1; - uint64 agreement_id = 2; // Only in asset that require agreement contract + uint64 agreement_id = 2; // Only in asset that require agreement contract optional auth.v1.TFA tfa = 3; // This might be used in the future } From ebb745f1777e5785af663de18e5019962b52b054 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 23 Jul 2025 13:38:14 +0330 Subject: [PATCH 242/293] v2: new err Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 529f30f..00e9626 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -111,6 +111,7 @@ enum ErrCode { WALLET_IS_NOT_IN_WHITE_LIST = 7031; RECIPIENT_IS_NOT_IN_WHITE_LIST = 7032; MOBILE_NATIONAL_ID_MISS_MATCH = 7033; + NOT_ENOUGH_LOCKED_BALANCE = 7034; // Server errors SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; From 81674264308764d691ef20e2841cbd9e5febda3c Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 23 Jul 2025 13:40:30 +0330 Subject: [PATCH 243/293] v2: new err Signed-off-by: nfel --- errors/v1/msg.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 00e9626..775497b 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -112,6 +112,8 @@ enum ErrCode { RECIPIENT_IS_NOT_IN_WHITE_LIST = 7032; MOBILE_NATIONAL_ID_MISS_MATCH = 7033; NOT_ENOUGH_LOCKED_BALANCE = 7034; + NOT_ENOUGH_BALANCE_TO_LOCK = 7035; + // Server errors SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; From 61fe3a6f5d5f8816b6c427bcc780bcb574b8c3ac Mon Sep 17 00:00:00 2001 From: mapoofano Date: Sat, 26 Jul 2025 15:17:37 +0330 Subject: [PATCH 244/293] chore: change asset meta location image to lat/lng location --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 5b6f55f..4ae8adb 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -211,7 +211,7 @@ message PropertyMeta { string usage_type = 9; string completion_date = 10; string user_agreement_url = 11; - string location_image = 12; + string location = 12; float lat = 13; float lng = 14; string map_link = 15; From 8ab8d8d0f9902d03cd1ab5018ddd56cd9e645978 Mon Sep 17 00:00:00 2001 From: mapoofano Date: Sat, 26 Jul 2025 15:21:56 +0330 Subject: [PATCH 245/293] chore: remove location from asset property --- wallet/v1/msg.proto | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 4ae8adb..77fabe5 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -211,11 +211,10 @@ message PropertyMeta { string usage_type = 9; string completion_date = 10; string user_agreement_url = 11; - string location = 12; - float lat = 13; - float lng = 14; - string map_link = 15; - PropertyDetail detail = 16; + float lat = 12; + float lng = 13; + string map_link = 14; + PropertyDetail detail = 15; } message PropertyDetail { From f5a99c7adf08dfbd8c65bf52e6b6216b318c6efc Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Tue, 29 Jul 2025 11:56:51 +0330 Subject: [PATCH 246/293] 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); } From cbc7524120ddb6da825c73faf995908cd3f529df Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Tue, 29 Jul 2025 11:56:51 +0330 Subject: [PATCH 247/293] feat: add market contract rpc --- wallet/v1/msg.proto | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 77fabe5..ae04827 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -9,7 +9,9 @@ import "base/v1/msg.proto"; INTERNAL DATA */ -message InternalTransactionData { int64 transaction_id = 1; } +message InternalTransactionData { + int64 transaction_id = 1; +} /* Federation @@ -155,7 +157,7 @@ message AssetList { message AssetFilter { repeated int64 ids = 1; - repeated AssetType type = 2; // AssetType + repeated AssetType type = 2; // AssetType repeated AssetType token_type = 3; // AssetType repeated AssetStatus status = 4; repeated string name = 5; @@ -181,8 +183,7 @@ message AssetDiscountRes { double static_amount = 4; double percentage = 5; double max_amount = 6; - double effective_amount = - 7; // based of asset price and discount amount in req + double effective_amount = 7; // based of asset price and discount amount in req optional int64 supported_asset = 8; } @@ -197,7 +198,9 @@ message GetAssetReq { optional string code = 3; } -message AssetMeta { PropertyMeta property = 1; } +message AssetMeta { + PropertyMeta property = 1; +} message PropertyMeta { string description = 1; @@ -218,7 +221,7 @@ message PropertyMeta { } message PropertyDetail { - repeated Content badge = 1; // 2> + repeated Content badge = 1; // 2> repeated Content content = 2; // 4> } @@ -291,8 +294,7 @@ message UserBNPLReq { optional float amount = 7; optional PaymentPeriodInfo payment_period = 8; optional bool has_agreed_contract = 9; - optional int32 current_step = - 10; // Can be useful for admin to change the current step + optional int32 current_step = 10; // Can be useful for admin to change the current step optional int64 asset_id = 11; } @@ -480,7 +482,9 @@ message NationalIDReq { string national_id = 2; } -message PubKeyRes { string pub_key = 1; } +message PubKeyRes { + string pub_key = 1; +} /* Network Details @@ -608,7 +612,9 @@ message IPGConfirmReq { string final_amount = 7; } -message IPGConfirmRes { string receipt_link = 1; } +message IPGConfirmRes { + string receipt_link = 1; +} message SaleManualReq { auth.v1.InternalIAM iam = 1; @@ -657,7 +663,7 @@ message DeclineBuyContractReq { message ConfirmBuyAssetReq { auth.v1.InternalIAM iam = 1; - uint64 agreement_id = 2; // Only in asset that require agreement contract + uint64 agreement_id = 2; // Only in asset that require agreement contract optional auth.v1.TFA tfa = 3; // This might be used in the future } @@ -686,6 +692,8 @@ enum ContractType { CONTRACT_TYPE_MARKET = 1; CONTRACT_TYPE_BNPL = 2; CONTRACT_TYPE_REDEEM = 3; + CONTRACT_TYPE_MARKE_MAKER = 4; + CONTRACT_TYPE_MARKE_TAKER = 5; } // agreement_id From 219b3886481680f46802e1229c665f4cbfeb79d5 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Tue, 29 Jul 2025 14:58:27 +0330 Subject: [PATCH 248/293] ref: contract messages and rpc --- market/v1/msg.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 03285d5..3310cac 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -158,6 +158,7 @@ message OrderListFilter { optional uint32 page_size = 20; } +/* Contract */ message ContractMarketRes { string link = 1; uint64 agreement_id = 2; @@ -165,3 +166,8 @@ message ContractMarketRes { string contract_hash = 4; string contract_content = 5; } + +message DeclineMarketContractReq { + auth.v1.InternalIAM iam = 1; + uint64 agreement_id = 2; +} From a19bcd544c70fbb245479fc43f4696808b12823b Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Wed, 30 Jul 2025 13:53:12 +0330 Subject: [PATCH 249/293] feat: add market contract req message --- market/v1/msg.proto | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 3310cac..6765495 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -171,3 +171,10 @@ message DeclineMarketContractReq { auth.v1.InternalIAM iam = 1; uint64 agreement_id = 2; } + +message MarketContractReq { + auth.v1.InternalIAM iam = 1; + uint64 order_id = 2; // Maker OrderID + double amount = 3; + wallet.v1.BuyAssetSide req_side = 4; +} From 780638c2c69c02a00c9487ee70c42ae2b7d821d2 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Wed, 30 Jul 2025 13:53:12 +0330 Subject: [PATCH 250/293] feat: add market contract req message --- market/v1/srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/srv.proto b/market/v1/srv.proto index c732a17..b062304 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -26,5 +26,5 @@ service MarketplaceSrv { rpc GetUserMarketHistory(OrderListFilter) returns (MarketOrderList); // list of order + purchase related to buying an asset // Contract - rpc GenerateMarketContract(CalcMarketReq) returns (ContractMarketRes); + rpc GenerateMarketContract(MarketContractReq) returns (ContractMarketRes); } From 68ade9b3af05a4dc8d9865cd3c5900dbe268bfd7 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Fri, 1 Aug 2025 23:38:58 +0330 Subject: [PATCH 251/293] --wip-- [skip ci] --- market/v1/msg.proto | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 6765495..e5e07ed 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -161,10 +161,11 @@ message OrderListFilter { /* Contract */ message ContractMarketRes { string link = 1; - uint64 agreement_id = 2; - uint64 transaction_id = 3; - string contract_hash = 4; - string contract_content = 5; + uint64 asset_id = 2; + uint64 agreement_id = 3; + uint64 transaction_id = 4; + string contract_hash = 5; + string contract_content = 6; } message DeclineMarketContractReq { From 30bec96010ae45bb312ebb6c8e5dc8481ea66a1b Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Fri, 1 Aug 2025 23:50:05 +0330 Subject: [PATCH 252/293] --wip-- [skip ci] --- market/v1/msg.proto | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index e5e07ed..0b9ac17 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -175,7 +175,8 @@ message DeclineMarketContractReq { message MarketContractReq { auth.v1.InternalIAM iam = 1; - uint64 order_id = 2; // Maker OrderID - double amount = 3; - wallet.v1.BuyAssetSide req_side = 4; + uint64 asset_id = 2; + uint64 order_id = 3; // Maker OrderID + double amount = 4; + wallet.v1.BuyAssetSide req_side = 5; } From 1c6d3f3f0103e68f4dc06f4362f3af93e6884237 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sat, 2 Aug 2025 12:10:32 +0330 Subject: [PATCH 253/293] ref: change purchase to NewTakerOrder --- market/v1/srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/srv.proto b/market/v1/srv.proto index b062304..f79f321 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -18,7 +18,7 @@ service MarketplaceSrv { rpc NewMarketOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market - rpc Purchase(PurchaseReq) returns (PurchaseRes); // purchase from an order + rpc NewTakerOrder(PurchaseReq) returns (PurchaseRes); // purchase from an order rpc CancelOrder(auth.v1.IdReqWithIAMAndTFA) returns (base.v1.StatusRes); // cancel an order From 66931098a98861fe27921b5ea658df7038a96bd6 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 2 Aug 2025 12:13:10 +0330 Subject: [PATCH 254/293] Removed Asset.buy_unit_price Renamed AssetPrice.platform -> AssetPrice.ico_price --- wallet/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index ae04827..d14f01c 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -101,7 +101,7 @@ message Asset { string image = 8; string description = 9; string url = 10; - int64 buy_unit_price = 11; + // int64 buy_unit_price = 11; double buy_min_amount = 12; double buy_max_amount = 13; bool is_active = 20; @@ -190,7 +190,7 @@ message AssetDiscountRes { message AssetPrice { string updated_at = 1; double market_price = 2; - double platform_price = 3; + double ico_price = 3; } message GetAssetReq { From fa218436a67fb90d4e18145e33b9f9da911bfe7c Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sat, 2 Aug 2025 12:21:51 +0330 Subject: [PATCH 255/293] ref: add ParticipantType to market orderOut schema --- market/v1/msg.proto | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 0b9ac17..d1d8158 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -59,17 +59,18 @@ message MarketOrder { MarketOrderSide side = 8; MarketOrderStatus status = 9; int64 from = 10; - auth.v1.UserIdentityBasic from_identity = 11; - wallet.v1.Commission commission = 12; - double completed_amount = 13; - double available_amount = 14; - string created_at = 15; - string updated_at = 16; - bool is_public = 17; - wallet.v1.TransactionList trx = 18; - repeated string tags = 19; - repeated string comment = 20; - optional MarketOrder source = 21; // purchase is done via this field + MarketParticipantType participant_type = 11; + auth.v1.UserIdentityBasic from_identity = 12; + wallet.v1.Commission commission = 13; + double completed_amount = 14; + double available_amount = 15; + string created_at = 16; + string updated_at = 17; + bool is_public = 18; + wallet.v1.TransactionList trx = 19; + repeated string tags = 20; + repeated string comment = 21; + optional MarketOrder source = 22; // purchase is done via this field // repeated string attachments = 14; // possible files included by // seller/buyer } From d822e8bfa7fafd691dccb199e2d56e07989ba41d Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 2 Aug 2025 12:52:16 +0330 Subject: [PATCH 256/293] 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); } From 431c98d9cabd24fabf1415221357e45c953ddd6b Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sat, 2 Aug 2025 16:04:44 +0330 Subject: [PATCH 257/293] fix: change Type to ParticipantType --- market/v1/msg.proto | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 70f4ba6..60e75fb 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 } @@ -34,18 +34,16 @@ message CalcMarketReq { int64 counter_asset_id = 3; double amount = 4; double unit_price = 5; - MarketParticipantType type = 6; - wallet.v1.BuyAssetSide req_side = - 7; // For Calculation : can be from asset or irt + MarketParticipantType participant_type = 6; + wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt } message CalcMarketRes { double calculated_irt_amount = 1; 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 + MarketParticipantType participant_type = 4; + wallet.v1.BuyAssetSide req_side = 5; // For Calculation : can be from asset or irt } message MPHistoryFilter {} @@ -78,8 +76,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; } @@ -95,8 +92,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; } @@ -123,12 +119,11 @@ message NewMarketReq { double amount = 4; double unit_price = 5; // TODO: Change name - MarketParticipantType type = 6; + MarketParticipantType participant_type = 6; // For Calculation : can be from asset or irt wallet.v1.BuyAssetSide req_side = 7; MarketOrderSide side = 8; // TODO: maker market order as optional - } enum MarketOrdersSortBy { @@ -180,7 +175,7 @@ message DeclineMarketContractReq { uint64 agreement_id = 2; } -message ConfirmMarketContractReq{ +message ConfirmMarketContractReq { auth.v1.InternalIAM iam = 1; uint64 agreement_id = 2; optional auth.v1.TFA tfa = 3; From df1df24852f2564af0dfc9c0d93d57f9407a447e Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sat, 2 Aug 2025 16:04:44 +0330 Subject: [PATCH 258/293] ref: change Type to ParticipantType --- market/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 60e75fb..7349b1d 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -35,7 +35,7 @@ message CalcMarketReq { double amount = 4; double unit_price = 5; MarketParticipantType participant_type = 6; - wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt + optional wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt } message CalcMarketRes { From 922a00021466d8e586e5a919c4ee9fce292d5918 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 2 Aug 2025 17:28:05 +0330 Subject: [PATCH 259/293] Market Filter -> asset type changed --- market/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 7349b1d..c717b7b 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -147,7 +147,7 @@ message OrderListFilter { repeated string to = 7; optional double starting_price = 8; optional double ending_price = 9; - repeated wallet.v1.Asset asset = 10; + repeated uint64 asset = 10; optional uint64 order_id = 11; optional uint64 trx_id = 12; optional bool is_public = 13; From a3c15365f26bddb62104bb25a779c40778f36f6e Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 2 Aug 2025 17:34:38 +0330 Subject: [PATCH 260/293] Can Trade added to asset filter --- wallet/v1/msg.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d14f01c..d059d1e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -165,8 +165,9 @@ message AssetFilter { optional bool can_sell = 7; optional bool can_deposit = 8; optional bool can_withdraw = 9; - optional bool is_active = 10; - optional string search = 11; // Not yet implemented ! + optional bool can_trade = 10; + optional bool is_active = 11; + optional string search = 12; // Not yet implemented ! } message AssetDiscountReq { From a2adce36705c89476ce76a60abe61d9134b77f16 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 3 Aug 2025 13:36:38 +0330 Subject: [PATCH 261/293] market filter - source removed in favour of type and maker_order_id Signed-off-by: nfel --- market/v1/msg.proto | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index c717b7b..255b56e 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 participant_type = 6; - optional wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt + optional 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 participant_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; } @@ -151,8 +155,8 @@ message OrderListFilter { optional uint64 order_id = 11; optional uint64 trx_id = 12; optional bool is_public = 13; - optional bool has_source = 14; - optional uint64 source_order_id = 15; + optional MarketParticipantType participant_type = 14; + optional uint64 maker_order_id = 15; optional string from_date = 16; optional string to_date = 17; optional MarketOrdersSortBy sort_by = 18; From fe71cb20dd2fb1a5133a46d73027c65f92c6c0bf Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 3 Aug 2025 14:44:58 +0330 Subject: [PATCH 262/293] Revert "Can Trade added to asset filter" This reverts commit a3c15365f26bddb62104bb25a779c40778f36f6e. --- wallet/v1/msg.proto | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d059d1e..d14f01c 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -165,9 +165,8 @@ message AssetFilter { optional bool can_sell = 7; optional bool can_deposit = 8; optional bool can_withdraw = 9; - optional bool can_trade = 10; - optional bool is_active = 11; - optional string search = 12; // Not yet implemented ! + optional bool is_active = 10; + optional string search = 11; // Not yet implemented ! } message AssetDiscountReq { From 8c2305b8bd864dc904dd29833fa08436d5a2c69a Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 3 Aug 2025 14:48:44 +0330 Subject: [PATCH 263/293] Revert "market filter - source removed in favour of type and maker_order_id" This reverts commit a2adce36705c89476ce76a60abe61d9134b77f16. --- market/v1/msg.proto | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 255b56e..c717b7b 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 participant_type = 6; - optional wallet.v1.BuyAssetSide req_side = - 7; // For Calculation : can be from asset or irt + optional 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 participant_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 {} @@ -78,8 +76,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; } @@ -95,8 +92,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; } @@ -155,8 +151,8 @@ message OrderListFilter { optional uint64 order_id = 11; optional uint64 trx_id = 12; optional bool is_public = 13; - optional MarketParticipantType participant_type = 14; - optional uint64 maker_order_id = 15; + optional bool has_source = 14; + optional uint64 source_order_id = 15; optional string from_date = 16; optional string to_date = 17; optional MarketOrdersSortBy sort_by = 18; From 9e3c4b9ff017868216eda5e70f1fb743fa502b6e Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 3 Aug 2025 15:56:50 +0330 Subject: [PATCH 264/293] Reapply "Can Trade added to asset filter" This reverts commit fe71cb20dd2fb1a5133a46d73027c65f92c6c0bf. --- wallet/v1/msg.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d14f01c..d059d1e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -165,8 +165,9 @@ message AssetFilter { optional bool can_sell = 7; optional bool can_deposit = 8; optional bool can_withdraw = 9; - optional bool is_active = 10; - optional string search = 11; // Not yet implemented ! + optional bool can_trade = 10; + optional bool is_active = 11; + optional string search = 12; // Not yet implemented ! } message AssetDiscountReq { From 4a24fcb263fb3abd22a1114a017bcec830077b1d Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sun, 3 Aug 2025 16:13:14 +0330 Subject: [PATCH 265/293] fix: order confirmation req, res naming Please enter the commit message for your changes. Lines starting --- market/v1/msg.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index c717b7b..b18ebe3 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -88,7 +88,7 @@ message MarketAssetList { uint32 total_count = 4; } -message PurchaseReq { +message MatchOrderReq { auth.v1.InternalIAM iam = 1; uint64 order_id = 2; double amount = 3; @@ -97,7 +97,7 @@ message PurchaseReq { optional auth.v1.TFA tfa = 5; } -message PurchaseRes { +message MatchOrderRes { uint64 order_id = 1; double calculated_irt_amount = 2; double calculated_asset_amount = 3; From 4f25639e984a5ecf03ae9f2ae485c5e81fe5da46 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Tue, 5 Aug 2025 12:03:48 +0330 Subject: [PATCH 266/293] fix: market order req side type --- market/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index b18ebe3..437029f 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -35,7 +35,7 @@ message CalcMarketReq { double amount = 4; double unit_price = 5; MarketParticipantType participant_type = 6; - optional wallet.v1.BuyAssetSide req_side = 7; // For Calculation : can be from asset or irt + market.v1.MarketOrderSide req_side = 7; // For Calculation : can be from asset or irt } message CalcMarketRes { From 523093779a7f0cfe64818e03177aba5dde8eb338 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 5 Aug 2025 12:20:53 +0330 Subject: [PATCH 267/293] maker order id as optional in newmarketorder + typo Signed-off-by: nfel --- market/v1/msg.proto | 1 + wallet/v1/msg.proto | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 437029f..fcfa887 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -124,6 +124,7 @@ message NewMarketReq { wallet.v1.BuyAssetSide req_side = 7; MarketOrderSide side = 8; // TODO: maker market order as optional + optional uint64 maker_order_id = 9; } enum MarketOrdersSortBy { diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d059d1e..d667b1e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -690,11 +690,11 @@ message BuyAssetRes { /* Contract */ enum ContractType { CONTRACT_TYPE_ICO = 0; - CONTRACT_TYPE_MARKET = 1; + CONTRACT_TYPE_MARKET = 1; //FIXME: Please remove this :) CONTRACT_TYPE_BNPL = 2; CONTRACT_TYPE_REDEEM = 3; - CONTRACT_TYPE_MARKE_MAKER = 4; - CONTRACT_TYPE_MARKE_TAKER = 5; + CONTRACT_TYPE_MARKET_MAKER = 4; + CONTRACT_TYPE_MARKET_TAKER = 5; } // agreement_id From e5886d2e86d53f3a15d11b921c2e9d68e2642473 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 5 Aug 2025 12:46:46 +0330 Subject: [PATCH 268/293] v2: fix Signed-off-by: nfel --- market/v1/msg.proto | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index fcfa887..3018143 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -35,7 +35,7 @@ message CalcMarketReq { double amount = 4; double unit_price = 5; MarketParticipantType participant_type = 6; - market.v1.MarketOrderSide 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 { @@ -112,6 +112,11 @@ message MarketOrderList { uint32 total_count = 4; } +/* + * participant_type: IS Maker/Taker + * side: IS Buying/Selling + * req_side: IS input (amount) in irt/asset + * */ message NewMarketReq { auth.v1.InternalIAM iam = 1; int64 asset_id = 2; From dc7e4d244b9b083f909dd245ae0cb7751b097136 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 5 Aug 2025 14:29:32 +0330 Subject: [PATCH 269/293] v2: errors ( MARKET_ORDER_UNSUPPORTED_PARTICIPANT_TYPE ) Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 775497b..b073f94 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -83,6 +83,7 @@ enum ErrCode { MARKET_ORDER_CANCELED = 7023; MARKET_ORDER_FAILED = 7024; MARKET_ORDER_UNKNOWN = 7025; + MARKET_ORDER_UNSUPPORTED_PARTICIPANT_TYPE = 7045; ASSET_CAN_NOT_BUY = 7026; ASSET_BUY_PRICE_IS_ZERO = 7019; MARKET_ORDER_MATCHING_ERR_REFUND = 7128; From 488d624a528f15c7ac68845e06e8e92ac3001dd5 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 5 Aug 2025 15:17:02 +0330 Subject: [PATCH 270/293] v2: source removed in favour of maker_order Signed-off-by: nfel --- market/v1/msg.proto | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/market/v1/msg.proto b/market/v1/msg.proto index 3018143..9f21643 100644 --- a/market/v1/msg.proto +++ b/market/v1/msg.proto @@ -157,13 +157,13 @@ message OrderListFilter { optional uint64 order_id = 11; optional uint64 trx_id = 12; optional bool is_public = 13; - optional bool has_source = 14; - optional uint64 source_order_id = 15; + optional uint64 maker_order_id = 15; optional string from_date = 16; optional string to_date = 17; - optional MarketOrdersSortBy sort_by = 18; - optional uint32 page_no = 19; - optional uint32 page_size = 20; + optional MarketParticipantType participant_type = 18; + optional MarketOrdersSortBy sort_by = 19; + optional uint32 page_no = 21; + optional uint32 page_size = 22; } /* Contract */ From 7a886e094efb397265ffbb5e5c0c99c0f96c30f8 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Thu, 7 Aug 2025 19:01:29 +0330 Subject: [PATCH 271/293] change to [maker/taker] --- auth/v1/msg.proto | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index ce340e0..a24fb97 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -34,7 +34,7 @@ message PermissionList { repeated Permission list = 1; uint32 page_no = 2; uint32 page_size = 3; - uint32 total_count = 4; + uint32 total_count = 4; } /* @@ -206,7 +206,7 @@ message BankInfoList { repeated BankInfo list = 1; uint32 page_no = 2; uint32 page_size = 3; - uint32 total_count = 4; + uint32 total_count = 4; } // Status 0: Fail Verify, 1: Verified, 2: Does not Match user's credential , 3: @@ -266,11 +266,12 @@ enum TfaStateEnum { INTERNAL_TRANSFER = 2; EXTERNAL_TRANSFER = 3; REDEEM_TOKEN = 4; - MARKET_PLACE_PURCHASE = 5; - MARKET_PLACE_ORDER_CREATE = 6; - MARKET_PLACE_ORDER_CANCEL = 7; - IRT_WITHDRAWAL = 8; - IRT_DEPOSIT = 9; + MARKET_PLACE_MAKER = 5; + MARKET_PLACE_TAKER = 6; + MARKET_PLACE_ORDER_CREATE = 7; + MARKET_PLACE_ORDER_CANCEL = 8; + IRT_WITHDRAWAL = 9; + IRT_DEPOSIT = 10; } message Recipient { @@ -300,5 +301,5 @@ message BasicUserInfoList { repeated BasicUserInfo list = 1; uint32 page_no = 2; uint32 page_size = 3; - uint32 total_count = 4; + uint32 total_count = 4; } From f9ef69113a8ee64d760f0ed4d6ada7cc8873b782 Mon Sep 17 00:00:00 2001 From: nfel Date: Sat, 9 Aug 2025 11:32:01 +0330 Subject: [PATCH 272/293] Removed unnecessary enum --- auth/v1/msg.proto | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index a24fb97..43c5b27 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -268,10 +268,9 @@ enum TfaStateEnum { REDEEM_TOKEN = 4; MARKET_PLACE_MAKER = 5; MARKET_PLACE_TAKER = 6; - MARKET_PLACE_ORDER_CREATE = 7; - MARKET_PLACE_ORDER_CANCEL = 8; - IRT_WITHDRAWAL = 9; - IRT_DEPOSIT = 10; + MARKET_PLACE_ORDER_CANCEL = 7; + IRT_WITHDRAWAL = 8; + IRT_DEPOSIT = 9; } message Recipient { From 503bfec668fb39781c354add55c72ccf0d0f1779 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sat, 9 Aug 2025 15:35:12 +0330 Subject: [PATCH 273/293] feat: decline market contract rpc --- market/v1/srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 26f6b3b..2725a90 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -7,7 +7,6 @@ import "base/v1/msg.proto"; import "market/v1/msg.proto"; service MarketplaceSrv { - rpc MarketplaceSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); rpc GetMarketPubHistory(OrderListFilter) returns (MarketOrderList); // This is for public market @@ -23,4 +22,5 @@ service MarketplaceSrv { rpc NewMarketOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market rpc GenerateMarketContract(MarketContractReq) returns (ContractMarketRes); rpc ConfirmMarketContract(ConfirmMarketContractReq) returns (base.v1.StatusRes); + rpc DeclineMarketContract(DeclineMarketContractReq) returns (base.v1.StatusRes); } From a5d241569955ab98749ee78c0d76f6cc23561b74 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sun, 10 Aug 2025 11:54:27 +0330 Subject: [PATCH 274/293] feat: add contract not found error --- errors/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index b073f94..d8727b6 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -103,6 +103,7 @@ enum ErrCode { LOW_REQUEST_AMOUNT = 7014; AGREEMENT_ALREADY_ACCEPTED = 7015; CONTRACT_ALREADY_GENERATED = 7016; + CONTRACT_NOT_FOUND = 7080; NIL_AUTH = 7017; CAN_NOT_BUY_AND_DEPOSIT = 7018; WHITELIST_ALREADY_USED = 7027; @@ -115,7 +116,6 @@ enum ErrCode { NOT_ENOUGH_LOCKED_BALANCE = 7034; NOT_ENOUGH_BALANCE_TO_LOCK = 7035; - // Server errors SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; SERVER_ERROR_NIL_DB_TX = 8001; From 6b408c1fc7e9c23fbdaf814c1884f4acde1efbf1 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sun, 10 Aug 2025 12:44:45 +0330 Subject: [PATCH 275/293] ref: delete decline contract rpc --- market/v1/srv.proto | 1 - 1 file changed, 1 deletion(-) diff --git a/market/v1/srv.proto b/market/v1/srv.proto index 2725a90..5a1ef52 100644 --- a/market/v1/srv.proto +++ b/market/v1/srv.proto @@ -22,5 +22,4 @@ service MarketplaceSrv { rpc NewMarketOrder(NewMarketReq) returns (MarketOrder); // insert new buy order to market rpc GenerateMarketContract(MarketContractReq) returns (ContractMarketRes); rpc ConfirmMarketContract(ConfirmMarketContractReq) returns (base.v1.StatusRes); - rpc DeclineMarketContract(DeclineMarketContractReq) returns (base.v1.StatusRes); } From c9b7387a9e083e8e748dab8258666bcc0ebd65f5 Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 10 Aug 2025 13:19:18 +0330 Subject: [PATCH 276/293] IPG messages added --- errors/v1/msg.proto | 1 + wallet/v1/internal_srv.proto | 4 ++ wallet/v1/msg.proto | 124 ++++++++++++++++++++++++++++++----- wallet/v1/srv.proto | 14 ++-- 4 files changed, 117 insertions(+), 26 deletions(-) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index d8727b6..16cd37d 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -115,6 +115,7 @@ enum ErrCode { MOBILE_NATIONAL_ID_MISS_MATCH = 7033; NOT_ENOUGH_LOCKED_BALANCE = 7034; NOT_ENOUGH_BALANCE_TO_LOCK = 7035; + IPG_GEN_TOKEN_FAILED = 7036; // Server errors SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; diff --git a/wallet/v1/internal_srv.proto b/wallet/v1/internal_srv.proto index 402ba89..7869097 100644 --- a/wallet/v1/internal_srv.proto +++ b/wallet/v1/internal_srv.proto @@ -7,10 +7,14 @@ import "wallet/v1/msg.proto"; service InternalWalletSrv { rpc InternalWalletSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); + // Lock And Release Assets rpc LockAsset(LockAssetReq) returns (base.v1.StatusRes); rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); rpc CollectCommission(CommissionReq) returns (CommissionRes); rpc RefundCommission(CommissionReq) returns (CommissionRes); + + // Calculate stellar pub-priv key based on national id + rpc GetPublicKeyByNationalID(NationalIDReq) returns (PubKeyRes); } diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index d667b1e..68ad1f9 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -579,6 +579,33 @@ message CommissionRes {} // auth.v1.BankInfo bank_info = 2; // BankInfo // } +enum AccountingType { + ACCOUNTING_TYPE_WITHDRAW = 0; + + // Deposits + ACCOUNTING_TYPE_DEPOSIT_IPG = 10; + ACCOUNTING_TYPE_DEPOSIT_BANK_ACCOUNT = 11; + ACCOUNTING_TYPE_DEPOSIT_IBAN = 12; + ACCOUNTING_TYPE_DEPOSIT_CARD = 13; + ACCOUNTING_TYPE_DEPOSIT_DIRECT_DEBIT = 14; + + // Withdraw + ACCOUNTING_TYPE_WITHDRAW_IBAN = 20; // User request to receive irt via iban + ACCOUNTING_TYPE_WITHDRAW_CARD = 21; // User request to receive irt via card no + ACCOUNTING_TYPE_WITHDRAW_BANK_ACCOUNT = 22; // User request to receive irt via bank + ACCOUNTING_TYPE_WITHDRAW_IPG_REFUND = 23; + + // ??? +} +enum AccountingStatus { + ACCOUNTING_STATUS_UNKNOWN = 0; + ACCOUNTING_STATUS_PENDING = 1; + ACCOUNTING_STATUS_SUCCESS = 2; + ACCOUNTING_STATUS_FAILED = 3; + ACCOUNTING_STATUS_CANCELLED = 4; + ACCOUNTING_STATUS_REJECTED = 5; +} + enum IPGStatus { IPG_SUCCESS = 0; IPG_FAILED = -1; @@ -588,33 +615,98 @@ enum IPGStatus { // represent the information regarding the sale of the token message IPGGetTokenReq { auth.v1.InternalIAM iam = 1; - int64 asset_id = 2; - double amount = 3; - optional uint64 discount_code = 4; + double amount = 2; + repeated string allowed_card_numbers = 3; } // represent the information regarding the ipg gateway message IPGGetTokenRes { string url = 1; - int64 unit_price = 2; - int64 total_price = 3; - double amount = 4; - string asset = 5; - optional uint64 discount_code = 6; + int64 amount = 2; } message IPGConfirmReq { + string redirected_url = 1; // This field includes all of ipg's query params + // string ref_id = 1; + // string res_code = 2; + // string sale_order_id = 3; + // string sale_reference_id = 4; + // string card_holder_info = 5; + // string card_holder_pan = 6; + // string amount = 7; +} + +// type IPGLog struct { +// AccountingID uint +// Accounting Accounting +// RefID string `gorm:"primaryKey"` +// Amount int64 +// Status walletv1.AccountingStatus +// CreatedAt time.Time +// UpdatedAt time.Time +// Token string +// PSP PSP +// TransactionID *int64 +// Transaction *Transaction +// } +// + +// type PSP string +// +// const ( +// UNKNOWN_PSP = PSP("unknown") +// PSP_VANDAR_BP_MELLAT = PSP("vandar_bp_mellat") +// PSP_VANDAR_SEP = PSP("vandar_sep") +// PSP_VANDAR = PSP("vandar") +// PSP_BP_MELLAT = PSP("bp_mellat") +// ) + +enum PSP { + PSP_UNKNOWN = 0; + + PSP_VANDAR_BP_MELLAT = 10; + PSP_VANDAR_SEP = 11; + PSP_VANDAR = 12; + + PSP_BP_MELLAT = 20; +} + +message Accounting { + uint64 id = 1; + int64 user_id = 2; + int64 balance = 3; +} + +message IPGGenTokenPayload { + string ref_id = 1; + int64 amount = 2; + string payer_id = 3; + string mobile = 4; + string national_id = 5; + int64 order_id = 6; + string callback_url = 7; + repeated string bank_cards = 8; +} + +message IPGLog { + string ref_id = 1; + Accounting accounting = 2; + int64 amount = 4; + AccountingStatus status = 5; + string created_at = 6; + string updated_at = 7; + string token = 8; + PSP psp = 9; + optional int64 transaction_id = 10; + optional Transaction transaction = 11; +} + +message IPGLogReq { string ref_id = 1; - string res_code = 2; - string sale_order_id = 3; - string sale_reference_id = 4; - string card_holder_info = 5; - string card_holder_pan = 6; - string final_amount = 7; } message IPGConfirmRes { - string receipt_link = 1; + string ref_id = 1; } message SaleManualReq { @@ -690,7 +782,7 @@ message BuyAssetRes { /* Contract */ enum ContractType { CONTRACT_TYPE_ICO = 0; - CONTRACT_TYPE_MARKET = 1; //FIXME: Please remove this :) + CONTRACT_TYPE_MARKET = 1; // FIXME: Please remove this :) CONTRACT_TYPE_BNPL = 2; CONTRACT_TYPE_REDEEM = 3; CONTRACT_TYPE_MARKET_MAKER = 4; diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 937158c..81325a9 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -9,19 +9,13 @@ import "wallet/v1/msg.proto"; service WalletService { rpc WalletSrvHealth(base.v1.Empty) returns (base.v1.StatusRes); - // Internal rpc - rpc InternalWalletDeleteCache(base.v1.Empty) returns (base.v1.StatusRes); - rpc InternalCreateFederation(auth.v1.InternalIAM) returns (base.v1.StatusRes); - rpc GetPublicKeyByNationalID(NationalIDReq) returns (PubKeyRes); - - rpc UserGetFederation(auth.v1.InternalIAM) returns (Federation); - rpc GetNetworkList(base.v1.Empty) returns (NetworkList); rpc GetAssetList(AssetFilter) returns (AssetList); rpc GetAsset(GetAssetReq) returns (Asset); rpc GetAssetCommissions(base.v1.IdReq) returns (CommissionList); rpc GetAssetPrice(base.v1.IdReq) returns (AssetPrice); + rpc AssetDiscount(AssetDiscountReq) returns (AssetDiscountRes); rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes); rpc UserGetWalletList(auth.v1.InternalIAM) returns (WalletList); @@ -34,8 +28,10 @@ service WalletService { rpc IPGGetToken(IPGGetTokenReq) returns (IPGGetTokenRes); // IPG Confirm is a public api rpc IPGConfirm(IPGConfirmReq) returns (IPGConfirmRes); + rpc GetIPGLog(IPGLogReq) returns (IPGLog); + // Admin can increase user's balance as wish - rpc AdminManualSaleDeposit(SaleManualReq) returns (base.v1.StatusRes); + // rpc AdminManualSaleDeposit(SaleManualReq) returns (base.v1.StatusRes); // BNPL rpc GetBNPLList(base.v1.Empty) returns (BNPLList); @@ -54,8 +50,6 @@ service WalletService { rpc InternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); rpc ExternalTransferAsset(TransferAssetReq) returns (TransferAssetRes); - rpc AssetDiscount(AssetDiscountReq) returns (AssetDiscountRes); - // --- IRT --- rpc WithdrawIRT(WithdrawIRTReq) returns (WithdrawIRTRes); rpc DepositIRT(DepositIRTReq) returns (IPGGetTokenRes); From 7d979a53778cb2bcc5086bb525883b1dbf6b7ce6 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 11 Aug 2025 12:02:03 +0330 Subject: [PATCH 277/293] v2: err Signed-off-by: nfel --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index 16cd37d..f4e9895 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -39,6 +39,7 @@ enum ErrCode { INVALID_BUY_AMOUNT = 2015; INVALID_BUY_AMOUNT_MAX = 2016; INVALID_BUY_AMOUNT_MIN = 2017; + INVALID_ARGUMENT_TFA_REQUIRED = 2018; // Resource errors NOT_FOUND = 3000; From c72c1adfd4fbff00be3db52f77274207b36c9ef2 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 11 Aug 2025 16:03:09 +0330 Subject: [PATCH 278/293] v2: err added in ipg confirm Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 68ad1f9..8d61128 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -707,6 +707,7 @@ message IPGLogReq { message IPGConfirmRes { string ref_id = 1; + optional string error = 2; } message SaleManualReq { From ba1d5309849568e098caafb2f0ace206f045015c Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 12 Aug 2025 13:34:25 +0330 Subject: [PATCH 279/293] v2: removed ref_id from gen token payload + user added in accouting Signed-off-by: nfel --- wallet/v1/msg.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 8d61128..bb4a8c1 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -675,10 +675,10 @@ message Accounting { uint64 id = 1; int64 user_id = 2; int64 balance = 3; + auth.v1.User user = 4; } message IPGGenTokenPayload { - string ref_id = 1; int64 amount = 2; string payer_id = 3; string mobile = 4; @@ -702,7 +702,8 @@ message IPGLog { } message IPGLogReq { - string ref_id = 1; + auth.v1.InternalIAM iam = 1; + string ref_id = 2; } message IPGConfirmRes { From 83e2597e533ea778fda68015f4620c31c2bef551 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 12 Aug 2025 15:24:23 +0330 Subject: [PATCH 280/293] v2: tfa added to withdraw irt req Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index bb4a8c1..f88cc55 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -734,6 +734,7 @@ message WithdrawIRTReq { auth.v1.InternalIAM iam = 1; double amount = 2; int64 bank_info_id = 3; + auth.v1.TFA tfa = 4; } message WithdrawIRTRes { From af0cab1c84d5c27877ca5d929b5917290b79c820 Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 12 Aug 2025 15:26:28 +0330 Subject: [PATCH 281/293] v2: bank info added to withdraw resp Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index f88cc55..71d713a 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -741,6 +741,7 @@ message WithdrawIRTRes { int64 transaction_id = 1; int64 amount = 2; string transaction_hash = 3; + auth.v1.BankInfo bank_info = 4; } message BuyAssetReq { From 8d376933290554329e64b65fc9389b9e2a1d769f Mon Sep 17 00:00:00 2001 From: nfel Date: Tue, 12 Aug 2025 15:28:04 +0330 Subject: [PATCH 282/293] v2: added status for pending admin action Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 71d713a..a01a095 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -363,6 +363,7 @@ enum TransactionStatus { CREATED = -1; PENDING_TRX = 1; SUCCESSFUL = 2; + PENDING_ADMIN = 3; } message Transaction { From 3555d27c037623d502406347970d912b79172f82 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 13 Aug 2025 11:30:45 +0330 Subject: [PATCH 283/293] v2: refund commission msg Signed-off-by: nfel --- wallet/v1/msg.proto | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index a01a095..8dafd4d 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -559,12 +559,19 @@ message EffectiveCommission { double total = 3; } +message RefundCommissionReq { + auth.v1.UserIdentityBasic user = 3; + uint64 commission_log_id = 1; +} message CommissionReq { uint64 commission_id = 1; double amount = 2; auth.v1.UserIdentityBasic user = 3; } -message CommissionRes {} + +message CommissionRes { + uint64 commission_log_id = 1; +} /* * IPG - Internet Payment Gateway From b0a80e5dd3eef8665256d452cb671dd5f7707355 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 13 Aug 2025 12:29:16 +0330 Subject: [PATCH 284/293] v2: withdraw log msg + created status in accounting Signed-off-by: nfel --- wallet/v1/msg.proto | 46 ++++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 8dafd4d..049d7a0 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -607,11 +607,12 @@ enum AccountingType { } enum AccountingStatus { ACCOUNTING_STATUS_UNKNOWN = 0; - ACCOUNTING_STATUS_PENDING = 1; - ACCOUNTING_STATUS_SUCCESS = 2; - ACCOUNTING_STATUS_FAILED = 3; - ACCOUNTING_STATUS_CANCELLED = 4; - ACCOUNTING_STATUS_REJECTED = 5; + ACCOUNTING_STATUS_CREATED = 1; + ACCOUNTING_STATUS_PENDING = 2; + ACCOUNTING_STATUS_SUCCESS = 3; + ACCOUNTING_STATUS_FAILED = 4; + ACCOUNTING_STATUS_CANCELLED = 5; + ACCOUNTING_STATUS_REJECTED = 6; } enum IPGStatus { @@ -644,30 +645,19 @@ message IPGConfirmReq { // string amount = 7; } -// type IPGLog struct { -// AccountingID uint -// Accounting Accounting -// RefID string `gorm:"primaryKey"` -// Amount int64 -// Status walletv1.AccountingStatus -// CreatedAt time.Time -// UpdatedAt time.Time -// Token string -// PSP PSP -// TransactionID *int64 -// Transaction *Transaction -// } -// -// type PSP string -// -// const ( -// UNKNOWN_PSP = PSP("unknown") -// PSP_VANDAR_BP_MELLAT = PSP("vandar_bp_mellat") -// PSP_VANDAR_SEP = PSP("vandar_sep") -// PSP_VANDAR = PSP("vandar") -// PSP_BP_MELLAT = PSP("bp_mellat") -// ) +message WithdrawLog { + uint64 id = 1; + Accounting accounting = 2; + string rrn = 3; + int64 amount = 4; + AccountingStatus status = 5; + string created_at = 6; + string updated_at = 7; + optional Transaction transaction = 8; + optional auth.v1.BankInfo bankinfo_id = 10; + optional bool accepted_by_admin = 11; +} enum PSP { PSP_UNKNOWN = 0; From e3dc270fec3d9af828d7b58abaac20a752a919fc Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 13 Aug 2025 12:31:46 +0330 Subject: [PATCH 285/293] v2: withdraw id instead of trx id Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 049d7a0..cd19d93 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -736,7 +736,7 @@ message WithdrawIRTReq { } message WithdrawIRTRes { - int64 transaction_id = 1; + uint64 withdraw_id = 1; int64 amount = 2; string transaction_hash = 3; auth.v1.BankInfo bank_info = 4; From 39298001c9f13ab56f772e14801788ddad7fe67b Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 13 Aug 2025 12:35:39 +0330 Subject: [PATCH 286/293] v2: withdraw_id -> id Signed-off-by: nfel --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index cd19d93..3612d8c 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -736,7 +736,7 @@ message WithdrawIRTReq { } message WithdrawIRTRes { - uint64 withdraw_id = 1; + uint64 id = 1; int64 amount = 2; string transaction_hash = 3; auth.v1.BankInfo bank_info = 4; From 1d7e9444694d668d2335e7cceda7b795bcbaf5c5 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 13 Aug 2025 12:37:42 +0330 Subject: [PATCH 287/293] v2: change param type of refund commission Signed-off-by: nfel --- wallet/v1/internal_srv.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/internal_srv.proto b/wallet/v1/internal_srv.proto index 7869097..91c88ef 100644 --- a/wallet/v1/internal_srv.proto +++ b/wallet/v1/internal_srv.proto @@ -13,7 +13,7 @@ service InternalWalletSrv { rpc ReleaseAsset(LockAssetReq) returns (base.v1.StatusRes); rpc CollectCommission(CommissionReq) returns (CommissionRes); - rpc RefundCommission(CommissionReq) returns (CommissionRes); + rpc RefundCommission(RefundCommissionReq) returns (CommissionRes); // Calculate stellar pub-priv key based on national id rpc GetPublicKeyByNationalID(NationalIDReq) returns (PubKeyRes); From 33dd406f169910ffaa52c305720c9f70a64855b7 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 13 Aug 2025 14:37:28 +0330 Subject: [PATCH 288/293] v2: balance change added Signed-off-by: nfel --- wallet/v1/msg.proto | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 3612d8c..737cdbe 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -389,6 +389,13 @@ message Transaction { optional string from_public_key = 19; optional string to_public_key = 20; double token_price = 21; + BalanceChange balance_change = 22; +} + +enum BalanceChange{ + NO_CHANGE = 0; + INCREASE = 1; + DECREASE = 2; } message TransactionListFilter { From 9acad665be9d97ed52d5d136b0b717a91dbf04f4 Mon Sep 17 00:00:00 2001 From: AmirMahdi Qiasvand Date: Sun, 17 Aug 2025 14:20:04 +0330 Subject: [PATCH 289/293] feat: add taker agreement already accepted err --- errors/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index f4e9895..e4a889a 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -51,6 +51,7 @@ enum ErrCode { BANK_INFO_NOT_FOUND = 3007; RECIPIENT_NOT_FOUND = 3008; USER_NOT_FOUND = 3009; + MARKET_AGREEMENT_ALREADY_ACCEPTED = 3010; // Resource state errors ASSET_NOT_ACTIVE = 4000; From cf9408e76ea1845cb9e08c876dfc2c450ed2815a Mon Sep 17 00:00:00 2001 From: nfel Date: Sun, 17 Aug 2025 16:00:57 +0330 Subject: [PATCH 290/293] Change user type in accounting --- wallet/v1/msg.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index 737cdbe..bd10560 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -680,7 +680,7 @@ message Accounting { uint64 id = 1; int64 user_id = 2; int64 balance = 3; - auth.v1.User user = 4; + auth.v1.UserIdentityBasic user = 4; } message IPGGenTokenPayload { From cd4590689d35312c515b92f93f4dc3c0a34c9461 Mon Sep 17 00:00:00 2001 From: nfel Date: Mon, 18 Aug 2025 17:22:06 +0330 Subject: [PATCH 291/293] v2: current price is added to asset.price Signed-off-by: nfel --- wallet/v1/msg.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index bd10560..b63fb4e 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -192,6 +192,7 @@ message AssetPrice { string updated_at = 1; double market_price = 2; double ico_price = 3; + double current_price = 4; } message GetAssetReq { From a8d454bf884da01bb2f35082596cca25eac7c050 Mon Sep 17 00:00:00 2001 From: nfel Date: Wed, 20 Aug 2025 14:07:42 +0330 Subject: [PATCH 292/293] v2: brithdate missmatch added Signed-off-by: nfel --- errors/v1/msg.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index e4a889a..cb5fd8c 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -118,6 +118,8 @@ enum ErrCode { NOT_ENOUGH_LOCKED_BALANCE = 7034; NOT_ENOUGH_BALANCE_TO_LOCK = 7035; IPG_GEN_TOKEN_FAILED = 7036; + USER_INFO_NATIONAL_ID_BIRTHDATE_MISS_MATCH = 7037; + // Server errors SERVER_ERROR_FREEZED_BALANCE_NEGATIVE = 8000; From 0a08748fe97d6e060650ee5c5f6c79bfccb81233 Mon Sep 17 00:00:00 2001 From: Ata Safapour Date: Sat, 20 Dec 2025 17:36:07 +0330 Subject: [PATCH 293/293] feat: add referral code system --- auth/v1/msg.proto | 4 ++++ errors/v1/msg.proto | 1 + wallet/v1/internal_srv.proto | 3 +++ wallet/v1/msg.proto | 39 +++++++++++++++++++++++++++++++++--- wallet/v1/srv.proto | 5 +++++ 5 files changed, 49 insertions(+), 3 deletions(-) diff --git a/auth/v1/msg.proto b/auth/v1/msg.proto index 43c5b27..d7e4cf8 100644 --- a/auth/v1/msg.proto +++ b/auth/v1/msg.proto @@ -43,6 +43,7 @@ message PermissionList { message UserSendOtpReq { string mobile = 1; + string referral_code = 2; } message UserSendOtpRes { int64 expired_at = 1; @@ -55,6 +56,7 @@ message UserSendOtpRes { message UserLoginReq { string mobile = 1; string otp_code = 2; + string referral_code = 3; } message UserRefreshTokenReq { string refresh_token = 1; @@ -128,6 +130,7 @@ message User { string email = 4; UserStatus status = 5; repeated int64 roles = 6; + int64 referrer_user_id = 7; } message UserAddress { @@ -185,6 +188,7 @@ message UserIdentityBasic { string first_name = 4; string last_name = 5; string wallet_address = 6; + bool is_identity_verified = 7; } message UserUpdateIdentityReq { diff --git a/errors/v1/msg.proto b/errors/v1/msg.proto index cb5fd8c..bfa12f1 100644 --- a/errors/v1/msg.proto +++ b/errors/v1/msg.proto @@ -51,6 +51,7 @@ enum ErrCode { BANK_INFO_NOT_FOUND = 3007; RECIPIENT_NOT_FOUND = 3008; USER_NOT_FOUND = 3009; + INVALID_REFERRAL_CODE = 3011; MARKET_AGREEMENT_ALREADY_ACCEPTED = 3010; // Resource state errors diff --git a/wallet/v1/internal_srv.proto b/wallet/v1/internal_srv.proto index 91c88ef..d890e42 100644 --- a/wallet/v1/internal_srv.proto +++ b/wallet/v1/internal_srv.proto @@ -17,4 +17,7 @@ service InternalWalletSrv { // Calculate stellar pub-priv key based on national id rpc GetPublicKeyByNationalID(NationalIDReq) returns (PubKeyRes); + + // Commission Logs + rpc InitReferrerCommissionLog(InitReferrerCommissionLogIn) returns (base.v1.Empty); } diff --git a/wallet/v1/msg.proto b/wallet/v1/msg.proto index b63fb4e..013ed93 100644 --- a/wallet/v1/msg.proto +++ b/wallet/v1/msg.proto @@ -6,7 +6,7 @@ import "auth/v1/msg.proto"; import "base/v1/msg.proto"; /* - INTERNAL DATA + INTERNAL DATA; */ message InternalTransactionData { @@ -355,6 +355,7 @@ enum TransactionType { IRT_DEPOSIT = 13; IRT_WITHDRAWAL = 14; COMMISSION = 15; + REFERRAL_COMMISSION = 16; } enum TransactionStatus { @@ -442,7 +443,7 @@ message TransferAssetRes { } /* - Redeem Token + Redeem Token; */ message RedeemTokenReq { auth.v1.InternalIAM iam = 1; @@ -497,7 +498,7 @@ message PubKeyRes { } /* - Network Details + Network Details; */ enum NetworkType { UNKNOWN_NETWORK_TYPE = 0; @@ -581,6 +582,38 @@ message CommissionRes { uint64 commission_log_id = 1; } +message InitReferrerCommissionLogIn { + int64 referrer_id = 1; + int64 user_id = 2; + double amount = 3; +} + +message ReferrerCommissionLogOut { + double amount = 1; + string mobile = 2; + bool is_identity_verified = 3; + double commission_percentage = 4; +} +message ReferrerCommissionLogsList { + repeated ReferrerCommissionLogOut list = 1; + uint32 page_no = 2; + uint32 page_size = 3; + uint32 total_count = 4; +} + +message TotalReferralCommissionIn { + int64 referrer_id = 1; +} + +message TotalReferralCommissionOut { + double claimed = 1; + double unclaimed = 2; +} + +message ClaimReferralCommissionIn { + auth.v1.User user = 1; +} + /* * IPG - Internet Payment Gateway * 1. Get Token diff --git a/wallet/v1/srv.proto b/wallet/v1/srv.proto index 81325a9..00475cc 100644 --- a/wallet/v1/srv.proto +++ b/wallet/v1/srv.proto @@ -24,6 +24,11 @@ service WalletService { rpc UserGetTransactionList(TransactionListFilter) returns (TransactionList); + // Commission Logs + rpc GetReferrerCommissionLogsList(auth.v1.InternalIAM) returns (ReferrerCommissionLogsList); + rpc GetTotalReferralCommission(TotalReferralCommissionIn) returns (TotalReferralCommissionOut); + rpc ClaimReferralCommission(ClaimReferralCommissionIn) returns (base.v1.StatusRes); + // Get Token from IPG is and internal api rpc IPGGetToken(IPGGetTokenReq) returns (IPGGetTokenRes); // IPG Confirm is a public api