diff --git a/packages/web/src/components/common/approve-transaction-modal/ApproveTransactionModal.tsx b/packages/web/src/components/common/approve-transaction-modal/ApproveTransactionModal.tsx index a4ca484f5..ebfaefbf7 100644 --- a/packages/web/src/components/common/approve-transaction-modal/ApproveTransactionModal.tsx +++ b/packages/web/src/components/common/approve-transaction-modal/ApproveTransactionModal.tsx @@ -16,10 +16,12 @@ import IconAdenaLogo from "../icons/defaultIcon/IconAdenaLogo"; import Button, { ButtonHierarchy } from "@components/common/button/Button"; import IconArrowDown from "../icons/IconArrowDown"; import IconArrowUp from "../icons/IconArrowUp"; +import { TransactionMessage } from "@common/clients/wallet-client/protocols"; interface Props { onConfirm: () => void; onCancel: () => void; + messages: TransactionMessage[]; } const ApproveTransactionModal = ({ onConfirm, onCancel }: Props) => { diff --git a/packages/web/src/containers/approve-transaction-modal-container/ApproveTransactionModalContainer.tsx b/packages/web/src/containers/approve-transaction-modal-container/ApproveTransactionModalContainer.tsx index a807006b8..425b67a96 100644 --- a/packages/web/src/containers/approve-transaction-modal-container/ApproveTransactionModalContainer.tsx +++ b/packages/web/src/containers/approve-transaction-modal-container/ApproveTransactionModalContainer.tsx @@ -1,12 +1,14 @@ +import { TransactionMessage } from "@common/clients/wallet-client/protocols"; import ApproveTransactionModal from "@components/common/approve-transaction-modal/ApproveTransactionModal"; interface Props { onApprove: () => void; onReject: () => void; + messages: TransactionMessage[]; } -const ApproveTransactionModalContainer = ({ onApprove, onReject }: Props) => { - return ; +const ApproveTransactionModalContainer = ({ onApprove, onReject, messages }: Props) => { + return ; }; export default ApproveTransactionModalContainer; diff --git a/packages/web/src/containers/modal-container/ModalContainer.tsx b/packages/web/src/containers/modal-container/ModalContainer.tsx index 79d7d5759..2a2df09aa 100644 --- a/packages/web/src/containers/modal-container/ModalContainer.tsx +++ b/packages/web/src/containers/modal-container/ModalContainer.tsx @@ -7,6 +7,7 @@ import useEscCloseModal from "@hooks/common/use-esc-close-modal"; import { Z_INDEX } from "@styles/zIndex"; import useRouter from "@hooks/common/use-custom-router"; import ApproveTransactionModalContainer from "@containers/approve-transaction-modal-container/ApproveTransactionModalContainer"; +import { TransactionMessage } from "@common/clients/wallet-client/protocols"; // eslint-disable-next-line @typescript-eslint/no-explicit-any type EventCallback = (...args: any[]) => void; @@ -95,9 +96,9 @@ const ModalContainer: React.FC = () => { closeApproveTransactionModal(); }; - eventBus.on("show-approve-modal", () => { + eventBus.on("show-approve-modal", (messages: TransactionMessage[]) => { setApproveTransactionModalContent( - , + , ); setOpenedApproveTransactionModal(true); }); diff --git a/packages/web/src/repositories/swap/swap-router-repository-impl.ts b/packages/web/src/repositories/swap/swap-router-repository-impl.ts index 44463eed8..d599e8502 100644 --- a/packages/web/src/repositories/swap/swap-router-repository-impl.ts +++ b/packages/web/src/repositories/swap/swap-router-repository-impl.ts @@ -96,7 +96,7 @@ export class SwapRouterRepositoryImpl implements SwapRouterRepository { (packagePath, owner, spender) => getGRC20Allowance(this.rpcProvider!, packagePath, owner, spender), ); - return withSocialWalletApproval(this.walletClient, () => { + return withSocialWalletApproval(this.walletClient, messages, () => { return this.walletClient!.sendTransaction({ messages, gasFee: DEFAULT_GAS_FEE, diff --git a/packages/web/src/utils/transaction-utils.ts b/packages/web/src/utils/transaction-utils.ts index cf7f1ec90..1cc11b8c8 100644 --- a/packages/web/src/utils/transaction-utils.ts +++ b/packages/web/src/utils/transaction-utils.ts @@ -1,5 +1,6 @@ import { eventBus } from "@containers/modal-container/ModalContainer"; import { WalletClient } from "@common/clients/wallet-client"; +import { TransactionMessage } from "@common/clients/wallet-client/protocols"; const TX_EVENTS = { SHOW_MODAL: "show-approve-modal", @@ -22,7 +23,7 @@ const TX_EVENTS = { * @returns Whether the user is approved - Promise * */ -export const showApproveTransactionModal = async (): Promise => { +export const showApproveTransactionModal = async (messages: TransactionMessage[]): Promise => { return new Promise((resolve, reject) => { try { const eventHandlers = { @@ -44,7 +45,7 @@ export const showApproveTransactionModal = async (): Promise => { eventBus.on(TX_EVENTS.APPROVED, eventHandlers.handleApprove); eventBus.on(TX_EVENTS.REJECTED, eventHandlers.handleReject); - eventBus.emit(TX_EVENTS.SHOW_MODAL); + eventBus.emit(TX_EVENTS.SHOW_MODAL, messages); const TIMEOUT_MS = 1 * 60 * 1000; setTimeout(() => { @@ -71,6 +72,7 @@ export const showApproveTransactionModal = async (): Promise => { */ export const withSocialWalletApproval = async ( walletClient: WalletClient | null, + messages: TransactionMessage[], executeTransaction: () => Promise, ): Promise => { if (!walletClient) { @@ -78,7 +80,7 @@ export const withSocialWalletApproval = async ( } if (walletClient.getWalletType() === "SOCIAL_WALLET") { - const isApproved = await showApproveTransactionModal(); + const isApproved = await showApproveTransactionModal(messages); if (!isApproved) { throw new Error("Transaction rejected"); }