From e130d4df092fdaf72396368d98afc2f7bc0e7c21 Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Tue, 4 Jun 2024 08:53:18 +0100 Subject: [PATCH] feat: added few checks for widgetOwner address and returned Referral method and made deprecated --- package.json | 2 +- src/services/Aggregator/index.ts | 4 ++-- src/services/ReferralSystem/index.ts | 27 +++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index c0fa509..0052474 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.21.2-rc2", + "version": "0.21.2-rc3", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/services/Aggregator/index.ts b/src/services/Aggregator/index.ts index 1177d7d..7d7c95a 100644 --- a/src/services/Aggregator/index.ts +++ b/src/services/Aggregator/index.ts @@ -16,7 +16,7 @@ import { import type networkCodes from '../../constants/networkCodes.js'; import toUpperCase from '../../utils/toUpperCase.js'; import httpToWS from '../../utils/httpToWS.js'; -import { ethers } from 'ethers'; +import { ZeroAddress, ethers, isAddress } from 'ethers'; import orderSchema from './schemas/orderSchema.js'; import { fetchWithValidation } from 'simple-typed-fetch'; import { pmmOrderSchema } from '../../Unit/Pmm/schemas/order'; @@ -219,7 +219,7 @@ class Aggregator { }, ...(partnerId !== undefined) && { 'X-Partner-Id': partnerId }, ...(source !== undefined) && { 'X-Source': source }, - ...(widgetOwner !== undefined) && { 'X-Widget-Owner': widgetOwner }, + ...(widgetOwner !== undefined && widgetOwner !== ZeroAddress && isAddress(widgetOwner)) && { 'X-Widget-Owner': widgetOwner }, ...this.basicAuthHeaders, }; diff --git a/src/services/ReferralSystem/index.ts b/src/services/ReferralSystem/index.ts index 8e2aae2..0128cee 100644 --- a/src/services/ReferralSystem/index.ts +++ b/src/services/ReferralSystem/index.ts @@ -1,3 +1,4 @@ +import { z } from 'zod'; import { fetchWithValidation } from 'simple-typed-fetch'; import { errorSchema, @@ -40,6 +41,14 @@ type SignatureType = { signature: string }; +type submitTransactionDataForWidgetPayload = { + partner_domain: string + sender_address: string + tx_hash: string + chain_id: number + signature: string +} + class ReferralSystem { private readonly apiUrl: string @@ -67,6 +76,7 @@ class ReferralSystem { this.getContractsAddresses = this.getContractsAddresses.bind(this); this.getClaimInfo = this.getClaimInfo.bind(this); this.getAggregatedHistory = this.getAggregatedHistory.bind(this); + this.submitTransactionDataForWidget = this.submitTransactionDataForWidget.bind(this); } getLink = (refererAddress: string) => @@ -292,6 +302,23 @@ class ReferralSystem { errorSchema ); }; + + /** + * @deprecated and should be removed in future versions + */ + submitTransactionDataForWidget = (payload: submitTransactionDataForWidgetPayload) => { + return fetchWithValidation( + `${this.apiUrl}/referer/widget/submit`, + z.unknown(), + { + headers: { + 'Content-type': 'application/json', + }, + method: 'POST', + body: JSON.stringify(payload) + } + ); + }; } export * as schemas from './schemas/index.js';