diff --git a/src/bluefin_v2_client/client.py b/src/bluefin_v2_client/client.py index 6cfc090..d6da72e 100644 --- a/src/bluefin_v2_client/client.py +++ b/src/bluefin_v2_client/client.py @@ -918,6 +918,98 @@ async def get_contract_addresses(self): dict: all contract addresses for the all markets. """ return await self.apis.get(SERVICE_URLS["MARKET"]["CONTRACT_ADDRESSES"]) + + + + #open referral program + + async def get_open_referral_referee_details(self, params: CursorPaginationPayload): + """ + Get open referral referee details. + + Args: + params (CursorPaginationPayload): Parameters for pagination. + + Returns: + dict: Response containing referee details. + """ + url = SERVICE_URLS["GROWTH"]["OPEN_REFERRAL_REFEREE_DETAILS"] + response = self.apis.get(url, params, True) + return response # Returns a dictionary containing referee details. + + async def get_open_referral_details(self, campaignId): + """ + Get open referral details. + + Args: + campaignId: The campaign ID. + + Returns: + dict: Response containing open referral details. + """ + params = {"campaignId": campaignId} + url = SERVICE_URLS["GROWTH"]["OPEN_REFERRAL_REFEREES_COUNT"] + response = self.apis.get(url, params, True) + return response # Returns a dictionary containing open referral details. + + async def get_open_referral_payouts(self, params: CursorPaginationPayload): + """ + Get open referral payouts. + + Args: + params (CursorPaginationPayload): Parameters for pagination. + + Returns: + dict: Response containing open referral payouts. + """ + url = SERVICE_URLS["GROWTH"]["OPEN_REFERRAL_PAYOUTS"] + response = self.apis.get(url, params, True) + return response # Returns a dictionary containing open referral payouts. + + async def generate_open_referral_referral_code(self, campaignId): + """ + Generate open referral referral code. + + Args: + campaignId: The campaign ID. + + Returns: + dict: Response containing the generated referral code. + """ + data = {"campaignId": campaignId} + url = SERVICE_URLS["GROWTH"]["OPEN_REFERRAL_GENERATE_CODE"] + response = self.apis.post(url, data, True) + return response # Returns a dictionary containing the generated referral code. + + async def get_open_referral_overview(self): + """ + Get open referral overview. + + Returns: + dict: Response containing an overview of open referrals. + """ + url = SERVICE_URLS["GROWTH"]["OPEN_REFERRAL_OVERVIEW"] + response = self.apis.get(url, None, True) + return response # Returns a dictionary containing an overview of open referrals. + + async def open_referral_link_referred_user(self, referralCode): + """ + Link an open referral to a referred user. + + Args: + referralCode: The referral code. + + Returns: + bool: True if the linking was successful, False otherwise. + """ + data = {"referralCode": referralCode} + url = SERVICE_URLS["GROWTH"]["OPEN_REFERRAL_LINK_REFERRED_USER"] + response = self.apis.post(url, data, True) + return response # Returns a boolean indicating success or failure. + + + + #open referral program ## User endpoints diff --git a/src/bluefin_v2_client/constants.py b/src/bluefin_v2_client/constants.py index b4776b1..6999888 100644 --- a/src/bluefin_v2_client/constants.py +++ b/src/bluefin_v2_client/constants.py @@ -71,22 +71,29 @@ "USER_TRADES_HISTORY": "/userTradesHistory", }, "GROWTH": { - "REFERRER_INFO": "/growth/getReferrerInfo", - "CAMPAIGN_DETAILS": "/growth/campaignDetails", - "CAMPAIGN_REWARDS": "/growth/campaignRewards", - "AFFILIATE_PAYOUTS": "/growth/affiliate/payouts", - "AFFILIATE_REFEREE_DETAILS": "/growth/affiliate/refereeDetails", - "AFFILIATE_REFEREES_COUNT": "/growth/affiliate/refereesCount", - "USER_REWARDS_HISTORY": "/growth/userRewards/history", - "USER_REWARDS_SUMMARY": "/growth/userRewards/summary", - "REWARDS_OVERVIEW": "/growth/tradeAndEarn/rewardsOverview", - "REWARDS_DETAILS": "/growth/tradeAndEarn/rewardsDetail", - "TOTAL_HISTORICAL_TRADING_REWARDS": "/growth/tradeAndEarn/totalHistoricalTradingRewards", - "MAKER_REWARDS_SUMMARY": "/growth/marketMaker/maker-rewards-summary", - "MAKER_REWARDS_DETAILS": "/growth/marketMaker/maker-rewards-detail", - "MAKER_WHITELIST_STATUS": "/growth/marketMaker/whitelist-status", - "GENERATE_CODE": "/growth/generateCode", - "LINK_REFERRED_USER": "/growth/linkReferredUser" + "REFERRER_INFO": "/growth/getReferrerInfo", + "CAMPAIGN_DETAILS": "/growth/campaignDetails", + "CAMPAIGN_REWARDS": "/growth/campaignRewards", + "AFFILIATE_PAYOUTS": "/growth/affiliate/payouts", + "AFFILIATE_REFEREE_DETAILS": "/growth/affiliate/refereeDetails", + "AFFILIATE_REFEREES_COUNT": "/growth/refereesCount", + "USER_REWARDS_HISTORY": "/growth/userRewards/history", + "USER_REWARDS_SUMMARY": "/growth/userRewards/summary", + "REWARDS_OVERVIEW": "/growth/tradeAndEarn/rewardsOverview", + "REWARDS_DETAILS": "/growth/tradeAndEarn/rewardsDetail", + "TOTAL_HISTORICAL_TRADING_REWARDS": + "/growth/tradeAndEarn/totalHistoricalTradingRewards", + "MAKER_REWARDS_SUMMARY": "/growth/marketMaker/maker-rewards-summary", + "MAKER_REWARDS_DETAILS": "/growth/marketMaker/maker-rewards-detail", + "MAKER_WHITELIST_STATUS": "/growth/marketMaker/whitelist-status", + "GENERATE_CODE": "/growth/generateCode", + "LINK_REFERRED_USER": "/growth/linkReferredUser", + "OPEN_REFERRAL_REFEREE_DETAILS": "/growth/openReferral/refereeDetails", + "OPEN_REFERRAL_PAYOUTS": "/growth/openReferral/payoutsHistory", + "OPEN_REFERRAL_GENERATE_CODE": "/growth/generateAutoReferralCode", + "OPEN_REFERRAL_LINK_REFERRED_USER": "growth/openReferral/linkReferree", + "OPEN_REFERRAL_OVERVIEW": "/growth/openReferral/rewardsOverview", + "OPEN_REFERRAL_REFEREES_COUNT": "/growth/refereesCount", }, "ORDERS": { "ORDERS": "/orders", diff --git a/src/bluefin_v2_client/interfaces.py b/src/bluefin_v2_client/interfaces.py index 84d5e7f..1c0e2bf 100644 --- a/src/bluefin_v2_client/interfaces.py +++ b/src/bluefin_v2_client/interfaces.py @@ -459,4 +459,9 @@ class GetMakerRewardDetailsResponse(TypedDict): class GetUserWhiteListStatusForMarkeMakerResponse(TypedDict): - isWhitelist: bool + isWhitelist: bool + + +class CursorPaginationPayload(TypedDict): + pageSize: int # will get only provided number of orders must be <= 50 + cursor: int