diff --git a/app/markets/components/MarketTableBody.tsx b/app/markets/components/MarketTableBody.tsx index a8def89f..2892f5f2 100644 --- a/app/markets/components/MarketTableBody.tsx +++ b/app/markets/components/MarketTableBody.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Tooltip } from '@nextui-org/tooltip'; +import { Tooltip, Button } from '@nextui-org/react'; import { motion, AnimatePresence } from 'framer-motion'; import Image from 'next/image'; import { FaShieldAlt } from 'react-icons/fa'; @@ -155,19 +155,19 @@ export function MarketTableBody({ )} - - + +
+ +
diff --git a/app/positions/components/PositionsSummaryTable.tsx b/app/positions/components/PositionsSummaryTable.tsx index 81c198e7..c879c5ae 100644 --- a/app/positions/components/PositionsSummaryTable.tsx +++ b/app/positions/components/PositionsSummaryTable.tsx @@ -365,9 +365,8 @@ export function PositionsSummaryTable({
- - - + +
+ + +
); diff --git a/src/components/supplyModal.tsx b/src/components/supplyModal.tsx index 809e2619..41756b73 100644 --- a/src/components/supplyModal.tsx +++ b/src/components/supplyModal.tsx @@ -15,7 +15,7 @@ import { usePermit2 } from '@/hooks/usePermit2'; import { useTransactionWithToast } from '@/hooks/useTransactionWithToast'; import { formatBalance } from '@/utils/balance'; import { getExplorerURL } from '@/utils/external'; -import { getBundlerV2, getIRMTitle } from '@/utils/morpho'; +import { getBundlerV2, getIRMTitle, MONARCH_TX_IDENTIFIER } from '@/utils/morpho'; import { findToken } from '@/utils/tokens'; import { Market } from '@/utils/types'; import OracleVendorBadge from './OracleVendorBadge'; @@ -164,11 +164,11 @@ export function SupplyModal({ market, onClose }: SupplyModalProps): JSX.Element await sendTransactionAsync({ account, to: getBundlerV2(market.morphoBlue.chain.id), - data: encodeFunctionData({ + data: (encodeFunctionData({ abi: morphoBundlerAbi, functionName: 'multicall', args: [txs], - }), + }) + MONARCH_TX_IDENTIFIER) as `0x${string}`, value: useEth ? supplyAmount : 0n, }); diff --git a/src/hooks/useMultiMarketSupply.ts b/src/hooks/useMultiMarketSupply.ts index fcd06d93..54b574c8 100644 --- a/src/hooks/useMultiMarketSupply.ts +++ b/src/hooks/useMultiMarketSupply.ts @@ -7,7 +7,7 @@ import { usePermit2 } from '@/hooks/usePermit2'; import { useTransactionWithToast } from '@/hooks/useTransactionWithToast'; import { NetworkToken } from '@/types/token'; import { formatBalance } from '@/utils/balance'; -import { getBundlerV2 } from '@/utils/morpho'; +import { getBundlerV2, MONARCH_TX_IDENTIFIER } from '@/utils/morpho'; import { SupportedNetworks } from '@/utils/networks'; import { Market } from '@/utils/types'; import { useERC20Approval } from './useERC20Approval'; @@ -149,11 +149,11 @@ export function useMultiMarketSupply( await sendTransactionAsync({ account, to: getBundlerV2(chainId), - data: encodeFunctionData({ + data: (encodeFunctionData({ abi: morphoBundlerAbi, functionName: 'multicall', args: [txs], - }), + }) + MONARCH_TX_IDENTIFIER) as `0x${string}`, value: useEth ? totalAmount : 0n, }); diff --git a/src/hooks/useRebalance.ts b/src/hooks/useRebalance.ts index 1abc56e2..deea1b36 100644 --- a/src/hooks/useRebalance.ts +++ b/src/hooks/useRebalance.ts @@ -5,7 +5,7 @@ import { useAccount, useReadContract, useSignTypedData } from 'wagmi'; import morphoBundlerAbi from '@/abis/bundlerV2'; import morphoAbi from '@/abis/morpho'; import { useTransactionWithToast } from '@/hooks/useTransactionWithToast'; -import { getBundlerV2, MORPHO } from '@/utils/morpho'; +import { getBundlerV2, MONARCH_TX_IDENTIFIER, MORPHO } from '@/utils/morpho'; import { GroupedPosition, RebalanceAction } from '@/utils/types'; import { usePermit2 } from './usePermit2'; @@ -270,11 +270,11 @@ export const useRebalance = (groupedPosition: GroupedPosition, onRebalance?: () transactions.push(...supplyTxs); // Execute all transactions - const multicallTx = encodeFunctionData({ + const multicallTx = (encodeFunctionData({ abi: morphoBundlerAbi, functionName: 'multicall', args: [transactions], - }); + }) + MONARCH_TX_IDENTIFIER) as `0x${string}`; await sendTransactionAsync({ account, diff --git a/src/utils/morpho.ts b/src/utils/morpho.ts index 6b62b62f..3f0b4b04 100644 --- a/src/utils/morpho.ts +++ b/src/utils/morpho.ts @@ -4,6 +4,9 @@ import { UserTxTypes } from './types'; export const MORPHO = '0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb'; +// appended to the end of datahash to identify a monarch tx +export const MONARCH_TX_IDENTIFIER = 'beef'; + export const getBundlerV2 = (chain: SupportedNetworks) => { if (chain === SupportedNetworks.Base) { // ChainAgnosticBundlerV2