From 3e1f549eb6185b5ca76177d97d886c69732acf40 Mon Sep 17 00:00:00 2001 From: Ali Ebrahimi <65724329+ae2079@users.noreply.github.com> Date: Mon, 8 Jul 2024 20:43:50 +0330 Subject: [PATCH] Merge pull request #4366 from Giveth/15-add-new-field-to-detect-using-donation-box Add useDonationBox and relevantDonationTxHash fields to donation attributes and send it to backend --- src/apollo/gql/gqlDonations.ts | 8 ++++++++ src/components/views/donate/DonateModal.tsx | 3 +++ src/components/views/donate/helpers.tsx | 2 ++ src/hooks/useCreateEvmDonation.tsx | 10 ++++++++++ src/hooks/useCreateSolanaDonation.tsx | 6 ++++++ src/services/donation.ts | 4 ++++ 6 files changed, 33 insertions(+) diff --git a/src/apollo/gql/gqlDonations.ts b/src/apollo/gql/gqlDonations.ts index 637fe2ddbc..f701e1cf70 100644 --- a/src/apollo/gql/gqlDonations.ts +++ b/src/apollo/gql/gqlDonations.ts @@ -125,6 +125,8 @@ export const CREATE_DONATION = gql` $referrerId: String $safeTransactionId: String $draftDonationId: Float + $useDonationBox: Boolean + $relevantDonationTxHash: String ) { createDonation( transactionId: $transactionId @@ -139,6 +141,8 @@ export const CREATE_DONATION = gql` referrerId: $referrerId safeTransactionId: $safeTransactionId draftDonationId: $draftDonationId + useDonationBox: $useDonationBox + relevantDonationTxHash: $relevantDonationTxHash ) } `; @@ -182,6 +186,8 @@ export const CREATE_DRAFT_DONATION = gql` $anonymous: Boolean $referrerId: String $safeTransactionId: String + $useDonationBox: Boolean + $relevantDonationTxHash: String ) { createDraftDonation( networkId: $networkId @@ -193,6 +199,8 @@ export const CREATE_DRAFT_DONATION = gql` anonymous: $anonymous referrerId: $referrerId safeTransactionId: $safeTransactionId + useDonationBox: $useDonationBox + relevantDonationTxHash: $relevantDonationTxHash ) } `; diff --git a/src/components/views/donate/DonateModal.tsx b/src/components/views/donate/DonateModal.tsx index 1b8e88a090..9e34272ce0 100644 --- a/src/components/views/donate/DonateModal.tsx +++ b/src/components/views/donate/DonateModal.tsx @@ -209,6 +209,7 @@ const DonateModal: FC = props => { chainvineReferred, setFailedModalType, symbol: token.symbol, + useDonationBox: isDonatingToGiveth, }) .then(({ isSaved, txHash: firstHash }) => { if (!firstHash) { @@ -224,6 +225,8 @@ const DonateModal: FC = props => { projectId: config.GIVETH_PROJECT_ID, setFailedModalType, symbol: token.symbol, + useDonationBox: true, + relevantDonationTxHash: firstHash, }) .then(({ txHash: secondHash }) => { if (!secondHash) { diff --git a/src/components/views/donate/helpers.tsx b/src/components/views/donate/helpers.tsx index 11c67a3e0f..148b27eca2 100644 --- a/src/components/views/donate/helpers.tsx +++ b/src/components/views/donate/helpers.tsx @@ -61,6 +61,8 @@ export interface ICreateDonation { symbol: string; draftDonationId?: number; setFailedModalType: (type: EDonationFailedType) => void; + useDonationBox: boolean; + relevantDonationTxHash?: string; } export const calcDonationShare = ( diff --git a/src/hooks/useCreateEvmDonation.tsx b/src/hooks/useCreateEvmDonation.tsx index 01160e2bff..a421a8ed36 100644 --- a/src/hooks/useCreateEvmDonation.tsx +++ b/src/hooks/useCreateEvmDonation.tsx @@ -77,6 +77,8 @@ export const useCreateEvmDonation = () => { token, draftDonationId, setFailedModalType, + useDonationBox, + relevantDonationTxHash, } = props; if (isSafeEnv) { @@ -94,6 +96,8 @@ export const useCreateEvmDonation = () => { setFailedModalType, safeTransactionId: txHash, draftDonationId, + useDonationBox, + relevantDonationTxHash, }; } else { return null; @@ -115,6 +119,8 @@ export const useCreateEvmDonation = () => { setFailedModalType, safeTransactionId: null, draftDonationId, + useDonationBox, + relevantDonationTxHash, }; } else { return null; @@ -142,6 +148,8 @@ export const useCreateEvmDonation = () => { walletAddress: transaction?.from, symbol: token.symbol, error: e.message, + useDonationBox, + relevantDonationTxHash, }); setFailedModalType(EDonationFailedType.NOT_SAVED); } @@ -199,6 +207,8 @@ export const useCreateEvmDonation = () => { tokenAddress: token.address, anonymous: props.anonymous, referrerId: props.chainvineReferred, + usingDonationBox: props.useDonationBox, + relevantDonationTxHash: props.relevantDonationTxHash, // safeTransactionId: safeTransactionId, // Not supported yet }, }); diff --git a/src/hooks/useCreateSolanaDonation.tsx b/src/hooks/useCreateSolanaDonation.tsx index 4c1293cf74..f0ff72bd1c 100644 --- a/src/hooks/useCreateSolanaDonation.tsx +++ b/src/hooks/useCreateSolanaDonation.tsx @@ -59,6 +59,8 @@ export const useCreateSolanaDonation = () => { amount, token, setFailedModalType, + useDonationBox, + relevantDonationTxHash, } = props; let donationData: IOnTxHash; @@ -77,6 +79,8 @@ export const useCreateSolanaDonation = () => { symbol: token.symbol, setFailedModalType, safeTransactionId: null, + useDonationBox, + relevantDonationTxHash, }; } else return; @@ -101,6 +105,8 @@ export const useCreateSolanaDonation = () => { walletAddress: transaction?.from, symbol: token.symbol, error: e.message, + useDonationBox, + relevantDonationTxHash, }); setFailedModalType(EDonationFailedType.NOT_SAVED); } diff --git a/src/services/donation.ts b/src/services/donation.ts index 383cfeb882..a8f03c063c 100644 --- a/src/services/donation.ts +++ b/src/services/donation.ts @@ -72,6 +72,8 @@ const createDonation = async (props: IOnTxHash) => { chainvineReferred, safeTransactionId, draftDonationId, + useDonationBox, + relevantDonationTxHash, } = props; const { address, symbol } = token; let donationId = 0; @@ -91,6 +93,8 @@ const createDonation = async (props: IOnTxHash) => { referrerId: chainvineReferred, safeTransactionId, draftDonationId, + useDonationBox, + relevantDonationTxHash, }, }); donationId = data.createDonation;