From bb6eb46dbb195c9f4f59890fbe04753420533921 Mon Sep 17 00:00:00 2001 From: Jan-Felix Date: Fri, 16 Aug 2024 15:42:13 +0200 Subject: [PATCH] correctly handle execution through ser-kit --- extension/.pnp.cjs | 10 +- ...r-kit-npm-0.3.15-ebfc625b6e-c37d3ab05d.zip | Bin 50398 -> 0 bytes ...r-kit-npm-0.3.17-e7d41dfb07-8a08a37aff.zip | Bin 0 -> 50509 bytes extension/package.json | 2 +- extension/src/browser/Drawer/Remove.tsx | 4 +- extension/src/browser/Drawer/Submit.tsx | 167 ++++++++---------- extension/src/browser/Drawer/Translate.tsx | 4 +- extension/src/browser/Drawer/index.tsx | 39 ++-- extension/src/browser/ProvideProvider.tsx | 43 +++-- extension/src/integrations/safe/index.ts | 1 - .../src/integrations/safe/sendTransaction.ts | 80 --------- .../safe/waitForMultisigExecution.ts | 2 +- extension/src/state/actions.ts | 10 +- extension/src/state/index.tsx | 6 +- extension/src/state/reducer.ts | 14 +- extension/src/state/transactionHooks.ts | 4 +- extension/yarn.lock | 10 +- 17 files changed, 137 insertions(+), 259 deletions(-) delete mode 100644 extension/.yarn/cache/ser-kit-npm-0.3.15-ebfc625b6e-c37d3ab05d.zip create mode 100644 extension/.yarn/cache/ser-kit-npm-0.3.17-e7d41dfb07-8a08a37aff.zip delete mode 100644 extension/src/integrations/safe/sendTransaction.ts diff --git a/extension/.pnp.cjs b/extension/.pnp.cjs index 5cdd5933..afc9ec50 100755 --- a/extension/.pnp.cjs +++ b/extension/.pnp.cjs @@ -85,7 +85,7 @@ const RAW_RUNTIME_STATE = ["react-select", "virtual:919984625f908c00f58e56a3a023a4bcc5a02977fb9ef0230392d1979706b2cc874abc287345e6561886da69e547c4d1330a8c5645be8f7e62b06d5144141c21#npm:5.8.0"],\ ["react-toastify", "virtual:919984625f908c00f58e56a3a023a4bcc5a02977fb9ef0230392d1979706b2cc874abc287345e6561886da69e547c4d1330a8c5645be8f7e62b06d5144141c21#npm:9.1.3"],\ ["rimraf", "npm:3.0.2"],\ - ["ser-kit", "npm:0.3.15"],\ + ["ser-kit", "npm:0.3.17"],\ ["typescript", "patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07"],\ ["typescript-eslint", "virtual:919984625f908c00f58e56a3a023a4bcc5a02977fb9ef0230392d1979706b2cc874abc287345e6561886da69e547c4d1330a8c5645be8f7e62b06d5144141c21#npm:7.18.0"],\ ["typescript-plugin-css-modules", "virtual:919984625f908c00f58e56a3a023a4bcc5a02977fb9ef0230392d1979706b2cc874abc287345e6561886da69e547c4d1330a8c5645be8f7e62b06d5144141c21#npm:5.1.0"],\ @@ -10261,10 +10261,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["ser-kit", [\ - ["npm:0.3.15", {\ - "packageLocation": "./.yarn/cache/ser-kit-npm-0.3.15-ebfc625b6e-c37d3ab05d.zip/node_modules/ser-kit/",\ + ["npm:0.3.17", {\ + "packageLocation": "./.yarn/cache/ser-kit-npm-0.3.17-e7d41dfb07-8a08a37aff.zip/node_modules/ser-kit/",\ "packageDependencies": [\ - ["ser-kit", "npm:0.3.15"],\ + ["ser-kit", "npm:0.3.17"],\ ["@safe-global/api-kit", "npm:2.4.4"],\ ["@safe-global/protocol-kit", "npm:4.0.4"],\ ["@safe-global/safe-core-sdk-types", "npm:5.0.3"],\ @@ -12458,7 +12458,7 @@ const RAW_RUNTIME_STATE = ["react-select", "virtual:919984625f908c00f58e56a3a023a4bcc5a02977fb9ef0230392d1979706b2cc874abc287345e6561886da69e547c4d1330a8c5645be8f7e62b06d5144141c21#npm:5.8.0"],\ ["react-toastify", "virtual:919984625f908c00f58e56a3a023a4bcc5a02977fb9ef0230392d1979706b2cc874abc287345e6561886da69e547c4d1330a8c5645be8f7e62b06d5144141c21#npm:9.1.3"],\ ["rimraf", "npm:3.0.2"],\ - ["ser-kit", "npm:0.3.15"],\ + ["ser-kit", "npm:0.3.17"],\ ["typescript", "patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07"],\ ["typescript-eslint", "virtual:919984625f908c00f58e56a3a023a4bcc5a02977fb9ef0230392d1979706b2cc874abc287345e6561886da69e547c4d1330a8c5645be8f7e62b06d5144141c21#npm:7.18.0"],\ ["typescript-plugin-css-modules", "virtual:919984625f908c00f58e56a3a023a4bcc5a02977fb9ef0230392d1979706b2cc874abc287345e6561886da69e547c4d1330a8c5645be8f7e62b06d5144141c21#npm:5.1.0"],\ diff --git a/extension/.yarn/cache/ser-kit-npm-0.3.15-ebfc625b6e-c37d3ab05d.zip b/extension/.yarn/cache/ser-kit-npm-0.3.15-ebfc625b6e-c37d3ab05d.zip deleted file mode 100644 index 68ff3b4219b8af6d650bb5d50a50762d6f5eaee1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50398 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 Ag8%>k diff --git a/extension/.yarn/cache/ser-kit-npm-0.3.17-e7d41dfb07-8a08a37aff.zip b/extension/.yarn/cache/ser-kit-npm-0.3.17-e7d41dfb07-8a08a37aff.zip new file mode 100644 index 0000000000000000000000000000000000000000..aa4bd969597f150413f5994a937a0ed08f24b686 GIT binary patch literal 50509 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 Jz5h7-{{V({VT}L) literal 0 HcmV?d00001 diff --git a/extension/package.json b/extension/package.json index 3e187b84..796ec681 100644 --- a/extension/package.json +++ b/extension/package.json @@ -80,7 +80,7 @@ "react-select": "^5.2.1", "react-toastify": "^9.0.8", "rimraf": "^3.0.2", - "ser-kit": "^0.3.15", + "ser-kit": "^0.3.17", "typescript": "^5.5.4", "typescript-eslint": "^7.16.0", "typescript-plugin-css-modules": "^5.1.0", diff --git a/extension/src/browser/Drawer/Remove.tsx b/extension/src/browser/Drawer/Remove.tsx index 99cefbae..baa8bb13 100644 --- a/extension/src/browser/Drawer/Remove.tsx +++ b/extension/src/browser/Drawer/Remove.tsx @@ -3,7 +3,7 @@ import { RiDeleteBinLine } from 'react-icons/ri' import { IconButton } from '../../components' import { ForkProvider } from '../../providers' import { useProvider } from '../ProvideProvider' -import { TransactionState, useDispatch, useNewTransactions } from '../../state' +import { TransactionState, useDispatch, useTransactions } from '../../state' import classes from './style.module.css' @@ -15,7 +15,7 @@ type Props = { export const Remove: React.FC = ({ transactionState, index }) => { const provider = useProvider() const dispatch = useDispatch() - const transactions = useNewTransactions() + const transactions = useTransactions() if (!(provider instanceof ForkProvider)) { // Removing transactions is only supported when using ForkProvider diff --git a/extension/src/browser/Drawer/Submit.tsx b/extension/src/browser/Drawer/Submit.tsx index 6ffd5c52..3b161cf4 100644 --- a/extension/src/browser/Drawer/Submit.tsx +++ b/extension/src/browser/Drawer/Submit.tsx @@ -6,8 +6,6 @@ import { toast } from 'react-toastify' import { Button, IconButton } from '../../components' import toastClasses from '../../components/Toast/Toast.module.css' import { EXPLORER_URL, CHAIN_NAME } from '../../chains' -import { waitForMultisigExecution } from '../../integrations/safe' -// import { shallExecuteDirectly } from '../../safe/sendTransaction' import { useRoute } from '../../routes' import { JsonRpcError, ProviderType } from '../../types' import { @@ -16,33 +14,22 @@ import { decodeRolesV2Error, } from '../../utils' import { useSubmitTransactions } from '../ProvideProvider' -import { useDispatch, useNewTransactions } from '../../state' +import { useTransactions } from '../../state' import classes from './style.module.css' import { getReadOnlyProvider } from '../../providers/readOnlyProvider' import { usePushConnectionsRoute } from '../../routing' -import { PrefixedAddress } from 'ser-kit' +import { parsePrefixedAddress, PrefixedAddress } from 'ser-kit' +import { waitForMultisigExecution } from '../../integrations/safe' const Submit: React.FC = () => { const { route, chainId, connect, connected } = useRoute() - const { initiator, providerType } = route - const dispatch = useDispatch() + const { initiator, providerType, avatar } = route const pushConnectionsRoute = usePushConnectionsRoute() - const transactions = useNewTransactions() + const transactions = useTransactions() const submitTransactions = useSubmitTransactions() const [signaturePending, setSignaturePending] = useState(false) - // const [executesDirectly, setExecutesDirectly] = useState(false) - - // useEffect(() => { - // let canceled = false - // shallExecuteDirectly(provider, connection).then((executesDirectly) => { - // if (!canceled) setExecutesDirectly(executesDirectly) - // }) - // return () => { - // canceled = true - // } - // }, [provider, connection]) const connectWallet = () => { pushConnectionsRoute(route.id) @@ -64,9 +51,13 @@ const Submit: React.FC = () => { if (!submitTransactions) throw new Error('invariant violation') setSignaturePending(true) - let batchTransactionHash: string + + let result: { + txHash?: `0x${string}` + safeTxHash?: `0x${string}` + } try { - batchTransactionHash = await submitTransactions() + result = await submitTransactions() } catch (e) { console.warn(e) setSignaturePending(false) @@ -86,40 +77,68 @@ const Submit: React.FC = () => { } setSignaturePending(false) - // wait for transaction to be mined - const realBatchTransactionHash = await waitForMultisigExecution( - chainId, - batchTransactionHash - ) - console.log( - `Transaction batch ${batchTransactionHash} has been executed with transaction hash ${realBatchTransactionHash}` - ) - const receipt = await getReadOnlyProvider(chainId).waitForTransaction( - realBatchTransactionHash - ) - console.log( - `Transaction ${realBatchTransactionHash} has been mined`, - receipt - ) - - dispatch({ - type: 'CLEAR_TRANSACTIONS', - payload: { batchTransactionHash }, - }) - - toast( - <> - Transaction batch has been executed - - - View on block explorer - - - ) + const { txHash, safeTxHash } = result + if (txHash) { + console.log( + `Transaction batch has been submitted with transaction hash ${txHash}` + ) + const receipt = + await getReadOnlyProvider(chainId).waitForTransaction(txHash) + console.log(`Transaction ${txHash} has been executed`, receipt) + + toast( + <> + Transaction batch has been executed + + + View in block explorer + + + ) + } + + if (safeTxHash) { + console.log( + `Transaction batch has been proposed with safeTxHash ${safeTxHash}` + ) + const [, avatarAddress] = parsePrefixedAddress(avatar) + toast( + <> + Transaction batch has been proposed for execution + + + {'View in Safe{Wallet}'} + + + ) + + // In case the other safe owners are quick enough to sign while the Pilot session is still open, we can show a toast with an execution confirmation + const txHash = await waitForMultisigExecution(chainId, safeTxHash) + console.log( + `Proposed transaction batch with safeTxHash ${safeTxHash} has been confirmed and executed with transaction hash ${txHash}` + ) + toast( + <> + Proposed Safe transaction has been confirmed and executed{' '} + + + View in block explorer + + + ) + } } return ( @@ -151,15 +170,6 @@ const Submit: React.FC = () => { account={initiator} /> )} - - {/* {signaturePending && executesDirectly && ( - setSignaturePending(false)} - chainId={chainId} - avatarAddress={avatarAddress} - /> - )} */} ) } @@ -200,37 +210,6 @@ const AwaitingSignatureModal: React.FC<{ ) -// const AwaitingMultisigExecutionModal: React.FC<{ -// isOpen: boolean -// onClose(): void -// chainId: ChainId -// avatarAddress: string -// }> = ({ isOpen, onClose, chainId, avatarAddress }) => ( -// -// -// -// -//

Awaiting execution of Safe transaction ...

- -//
-//

-// -// -// Collect signatures and trigger execution -// -//

-//
-// ) - Modal.setAppElement('#root') const modalStyle: Styles = { diff --git a/extension/src/browser/Drawer/Translate.tsx b/extension/src/browser/Drawer/Translate.tsx index 58472dfa..3d0e9e50 100644 --- a/extension/src/browser/Drawer/Translate.tsx +++ b/extension/src/browser/Drawer/Translate.tsx @@ -5,7 +5,7 @@ import { IconButton } from '../../components' import { ForkProvider } from '../../providers' import { useApplicableTranslation } from '../../transactionTranslations' import { useProvider } from '../ProvideProvider' -import { TransactionState, useDispatch, useNewTransactions } from '../../state' +import { TransactionState, useDispatch, useTransactions } from '../../state' import classes from './style.module.css' @@ -22,7 +22,7 @@ export const Translate: React.FC = ({ }) => { const provider = useProvider() const dispatch = useDispatch() - const transactions = useNewTransactions() + const transactions = useTransactions() const translation = useApplicableTranslation(transactionState.transaction) if (!(provider instanceof ForkProvider)) { diff --git a/extension/src/browser/Drawer/index.tsx b/extension/src/browser/Drawer/index.tsx index 4d1f1d1c..144e75ca 100644 --- a/extension/src/browser/Drawer/index.tsx +++ b/extension/src/browser/Drawer/index.tsx @@ -6,22 +6,15 @@ import { BlockButton, Button, Drawer, Flex, IconButton } from '../../components' import { ForkProvider } from '../../providers' import { useRoute } from '../../routes' import { useProvider } from '../ProvideProvider' -import { - useAllTransactions, - useDispatch, - useNewTransactions, -} from '../../state' +import { useDispatch, useTransactions } from '../../state' import Submit from './Submit' import { Transaction, TransactionBadge } from './Transaction' import classes from './style.module.css' -import { planExecution, Route as SerRoute, ExecutionActionType } from 'ser-kit' -import { ZeroAddress } from 'ethers' const TransactionsDrawer: React.FC = () => { const [expanded, setExpanded] = useState(true) - const allTransactions = useAllTransactions() - const newTransactions = useNewTransactions() + const transactions = useTransactions() const dispatch = useDispatch() const provider = useProvider() const { route } = useRoute() @@ -34,18 +27,18 @@ const TransactionsDrawer: React.FC = () => { const lengthRef = useRef(0) useEffect(() => { - if (newTransactions.length > lengthRef.current) { - setScrollItemIntoView(newTransactions.length - 1) + if (transactions.length > lengthRef.current) { + setScrollItemIntoView(transactions.length - 1) } - lengthRef.current = newTransactions.length - }, [newTransactions]) + lengthRef.current = transactions.length + }, [transactions]) const reforkAndRerun = async () => { // remove all transactions from the store dispatch({ type: 'REMOVE_TRANSACTION', - payload: { id: allTransactions[0].id }, + payload: { id: transactions[0].id }, }) if (!(provider instanceof ForkProvider)) { @@ -55,15 +48,13 @@ const TransactionsDrawer: React.FC = () => { await provider.deleteFork() // re-simulate all new transactions (assuming the already submitted ones have already been mined on the fresh fork) - for (const transaction of newTransactions) { + for (const transaction of transactions) { await provider.sendMetaTransaction(transaction.transaction) } } const copyTransactionData = async () => { - const metaTransactions = newTransactions.map( - (txState) => txState.transaction - ) + const metaTransactions = transactions.map((txState) => txState.transaction) navigator.clipboard.writeText( JSON.stringify(metaTransactions, undefined, 2) @@ -94,7 +85,7 @@ const TransactionsDrawer: React.FC = () => { className={classes.body + ' coll'} direction="column" > - {newTransactions.map((transactionState, index) => ( + {transactions.map((transactionState, index) => ( { @@ -121,14 +112,14 @@ const TransactionsDrawer: React.FC = () => { @@ -149,7 +140,7 @@ const TransactionsDrawer: React.FC = () => { className={classes.body + ' exp'} direction="column" > - {newTransactions.map((transactionState, index) => ( + {transactions.map((transactionState, index) => ( { /> ))} - {newTransactions.length === 0 && ( + {transactions.length === 0 && (

As you interact with apps in the browser, transactions will be recorded here. You can then sign and submit them as a batch. @@ -170,7 +161,7 @@ const TransactionsDrawer: React.FC = () => { diff --git a/extension/src/browser/ProvideProvider.tsx b/extension/src/browser/ProvideProvider.tsx index c3cd699e..2cbe01d0 100644 --- a/extension/src/browser/ProvideProvider.tsx +++ b/extension/src/browser/ProvideProvider.tsx @@ -10,13 +10,14 @@ import React, { import { ForkProvider } from '../providers' import { useRoute } from '../routes' import { Eip1193Provider } from '../types' -import { useDispatch, useNewTransactions } from '../state' +import { useDispatch, useTransactions } from '../state' import { fetchContractInfo } from '../utils/abi' import { ExecutionStatus } from '../state/reducer' import { AbiCoder, BrowserProvider, id, TransactionReceipt } from 'ethers' import { ConnectionType, execute, + ExecutionActionType, ExecutionState, parsePrefixedAddress, planExecution, @@ -34,15 +35,15 @@ const ProviderContext = createContext< >(null) export const useProvider = () => useContext(ProviderContext) -const SubmitTransactionsContext = createContext<(() => Promise) | null>( - null -) +const SubmitTransactionsContext = createContext< + (() => Promise<{ txHash?: `0x${string}`; safeTxHash?: `0x${string}` }>) | null +>(null) export const useSubmitTransactions = () => useContext(SubmitTransactionsContext) const ProvideProvider: React.FC = ({ children }) => { const { provider, route, chainId } = useRoute() const dispatch = useDispatch() - const transactions = useNewTransactions() + const transactions = useTransactions() const [, avatarAddress] = parsePrefixedAddress(route.avatar) const avatarWaypoint = route.waypoints?.[route.waypoints.length - 1] @@ -170,6 +171,7 @@ const ProvideProvider: React.FC = ({ children }) => { const submitTransactions = useCallback(async () => { const metaTransactions = transactions.map((txState) => txState.transaction) + const lastTransactionId = transactions[transactions.length - 1].id console.log( transactions.length === 1 @@ -186,21 +188,28 @@ const ProvideProvider: React.FC = ({ children }) => { console.log('Execution plan:', plan) const state = [] as ExecutionState - await execute(plan, state, provider) - - const [batchTransactionHash] = state - if (!batchTransactionHash) { - throw new Error('Execution failed') - } + await execute(plan, state, provider, { origin: 'Zodiac Pilot' }) dispatch({ - type: 'SUBMIT_TRANSACTIONS', - payload: { batchTransactionHash }, + type: 'CLEAR_TRANSACTIONS', + payload: { lastTransactionId }, }) - console.log( - `multi-send batch has been submitted with transaction hash ${batchTransactionHash}` - ) - return batchTransactionHash + + // return the txHash if the execution is already complete or the safeTxHash if the safe transaction was proposed + const safeTxHash = + state[ + plan.findLastIndex( + (action) => + action.type === ExecutionActionType.PROPOSE_SAFE_TRANSACTION + ) + ] + const txHash = + state[ + plan.findLastIndex( + (action) => action.type === ExecutionActionType.EXECUTE_TRANSACTION + ) + ] + return { safeTxHash, txHash: !safeTxHash ? txHash : undefined } }, [transactions, provider, dispatch, route]) if (!forkProviderRef.current) { diff --git a/extension/src/integrations/safe/index.ts b/extension/src/integrations/safe/index.ts index 0d989ce5..d3350932 100644 --- a/extension/src/integrations/safe/index.ts +++ b/extension/src/integrations/safe/index.ts @@ -1,5 +1,4 @@ export { initSafeApiKit, initSafeProtocolKit } from './kits' -export { sendTransaction } from './sendTransaction' export { useSafesWithOwner } from './useSafesWithOwner' export { useSafeDelegates } from './useSafeDelegates' export { waitForMultisigExecution } from './waitForMultisigExecution' diff --git a/extension/src/integrations/safe/sendTransaction.ts b/extension/src/integrations/safe/sendTransaction.ts deleted file mode 100644 index d2fec2db..00000000 --- a/extension/src/integrations/safe/sendTransaction.ts +++ /dev/null @@ -1,80 +0,0 @@ -import Safe, { buildSignatureBytes } from '@safe-global/protocol-kit' - -import { - getEip1193ReadOnlyProvider, - getReadOnlyProvider, -} from '../../providers/readOnlyProvider' -import { LegacyConnection, Eip1193Provider, TransactionData } from '../../types' -import { initSafeApiKit } from './kits' -import { waitForMultisigExecution } from './waitForMultisigExecution' -import { MetaTransactionData } from '@safe-global/safe-core-sdk-types' -import { getAddress } from 'ethers' - -export const shallExecuteDirectly = async (connection: LegacyConnection) => { - const protocolKit = await Safe.init({ - provider: getEip1193ReadOnlyProvider(connection.chainId), - safeAddress: connection.avatarAddress, - }) - - const threshold = await protocolKit.getThreshold() - - const provider = getReadOnlyProvider(connection.chainId) - const pilotIsSmartAccount = - (await provider.getCode(connection.pilotAddress)) !== '0x' - - return !connection.moduleAddress && threshold === 1 && pilotIsSmartAccount -} - -export const sendTransaction = async ( - provider: Eip1193Provider, - connection: LegacyConnection, - request: MetaTransactionData | TransactionData -) => { - if (connection.moduleAddress) { - throw new Error( - `\`sendTransaction\` must only be used for direct execution, not for execution through mods.` - ) - } - - const safeApiKit = initSafeApiKit(connection.chainId) - const protocolKit = await Safe.init({ - provider: provider, - signer: connection.pilotAddress, - safeAddress: connection.avatarAddress, - }) - - const safeTransaction = await protocolKit.createTransaction({ - transactions: [ - { - to: getAddress(request.to || ZERO_ADDRESS), - value: BigInt(request.value || 0).toString(), - data: request.data || '0x00', - operation: ('operation' in request && request.operation) || 0, - }, - ], - }) - const safeTxHash = await protocolKit.getTransactionHash(safeTransaction) - - if (await shallExecuteDirectly(connection)) { - // we execute the transaction directly. this way the pilot safe can collect signatures for the exec transaction (giving more context to co-signers) rather than for signing a meta transaction - await protocolKit.executeTransaction(safeTransaction) - } else { - // more signatures are required, we only store our signature in the tx service - await protocolKit.signTransaction(safeTransaction) - const signature = safeTransaction.getSignature(connection.pilotAddress) - if (!signature) throw new Error('Signature not found') - - await safeApiKit.proposeTransaction({ - safeAddress: getAddress(connection.avatarAddress), - safeTransactionData: safeTransaction.data, - safeTxHash, - senderAddress: getAddress(connection.pilotAddress), - senderSignature: buildSignatureBytes([signature]), - origin: 'Zodiac Pilot', - }) - } - - return await waitForMultisigExecution(connection.chainId, safeTxHash) -} - -const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' diff --git a/extension/src/integrations/safe/waitForMultisigExecution.ts b/extension/src/integrations/safe/waitForMultisigExecution.ts index aace639a..737e8aac 100644 --- a/extension/src/integrations/safe/waitForMultisigExecution.ts +++ b/extension/src/integrations/safe/waitForMultisigExecution.ts @@ -21,7 +21,7 @@ export function waitForMultisigExecution( // around 5 seconds to be available on the transaction-service starts with // isExecuted set to false // NOTE2: after the multisig transaction is approved and mined, it takes - // around an additional around 30 seconds to be reflected in the service and + // around an additional around 30 seconds to be reflected in the service // and come out with meaningful isExecuted and isSuccessful values try { safeMultisigTxResponse = await safeService.getTransaction(safeTxHash) diff --git a/extension/src/state/actions.ts b/extension/src/state/actions.ts index d1f72106..0fa87b18 100644 --- a/extension/src/state/actions.ts +++ b/extension/src/state/actions.ts @@ -49,17 +49,10 @@ interface RemoveTransactionAction { } } -interface SubmitTransactionsAction { - type: 'SUBMIT_TRANSACTIONS' - payload: { - batchTransactionHash: string - } -} - interface ClearTransactionsAction { type: 'CLEAR_TRANSACTIONS' payload: { - batchTransactionHash: string + lastTransactionId: string } } @@ -69,5 +62,4 @@ export type Action = | ConfirmTransactionAction | UpdateTransactionStatusAction | RemoveTransactionAction - | SubmitTransactionsAction | ClearTransactionsAction diff --git a/extension/src/state/index.tsx b/extension/src/state/index.tsx index 744d9d72..2dc93f2f 100644 --- a/extension/src/state/index.tsx +++ b/extension/src/state/index.tsx @@ -6,11 +6,7 @@ import reducer, { TransactionState } from './reducer' export type { TransactionState } const TransactionsContext = createContext([]) -export const useAllTransactions = () => useContext(TransactionsContext) -export const useNewTransactions = () => - useContext(TransactionsContext).filter((tx) => !tx.batchTransactionHash) -export const usePendingTransactions = () => - useContext(TransactionsContext).filter((tx) => tx.batchTransactionHash) +export const useTransactions = () => useContext(TransactionsContext) const DispatchContext = createContext | null>(null) export const useDispatch = () => { diff --git a/extension/src/state/reducer.ts b/extension/src/state/reducer.ts index 60b454fc..9b2f4e44 100644 --- a/extension/src/state/reducer.ts +++ b/extension/src/state/reducer.ts @@ -18,7 +18,6 @@ export interface TransactionState { snapshotId?: string contractInfo?: ContractInfo transactionHash?: string - batchTransactionHash?: string } const rootReducer = ( @@ -58,17 +57,10 @@ const rootReducer = ( ) } - case 'SUBMIT_TRANSACTIONS': { - const { batchTransactionHash } = action.payload - return state.map((item) => - !item.batchTransactionHash ? { ...item, batchTransactionHash } : item - ) - } - case 'CLEAR_TRANSACTIONS': { - const { batchTransactionHash } = action.payload - return state.filter( - (item) => item.batchTransactionHash === batchTransactionHash + const { lastTransactionId } = action.payload + return state.slice( + state.findIndex((item) => item.id === lastTransactionId) + 1 ) } } diff --git a/extension/src/state/transactionHooks.ts b/extension/src/state/transactionHooks.ts index 016e5f69..a41c6164 100644 --- a/extension/src/state/transactionHooks.ts +++ b/extension/src/state/transactionHooks.ts @@ -3,10 +3,10 @@ import { useCallback } from 'react' import { ForkProvider } from '../providers' import { useProvider } from '../browser/ProvideProvider' -import { useAllTransactions, useDispatch } from '.' +import { useTransactions, useDispatch } from '.' export const useClearTransactions = () => { - const transactions = useAllTransactions() + const transactions = useTransactions() const provider = useProvider() const dispatch = useDispatch() diff --git a/extension/yarn.lock b/extension/yarn.lock index fb19b686..6e094a11 100644 --- a/extension/yarn.lock +++ b/extension/yarn.lock @@ -8814,15 +8814,15 @@ __metadata: languageName: node linkType: hard -"ser-kit@npm:^0.3.15": - version: 0.3.15 - resolution: "ser-kit@npm:0.3.15" +"ser-kit@npm:^0.3.17": + version: 0.3.17 + resolution: "ser-kit@npm:0.3.17" dependencies: "@safe-global/api-kit": "npm:^2.4.2" "@safe-global/protocol-kit": "npm:^4.0.2" "@safe-global/safe-core-sdk-types": "npm:^5.0.2" viem: "npm:^2.13.8" - checksum: 10/c37d3ab05d2c30a97b4d80a9cda60c5a12ce30441260296ce662ad359be205c87b444919b90d41bd451121c43bd9f36c0375aaf2bb4c2303554c0635dcf35e74 + checksum: 10/8a08a37aff4353f02c8a895ad6c306cf3d1aee64ddc6663e465a36722adb2e97873dfba6b927b8bba792102104f3d5f5bc900145c73c9d3cf142100fe3c2b7ba languageName: node linkType: hard @@ -10691,7 +10691,7 @@ __metadata: react-select: "npm:^5.2.1" react-toastify: "npm:^9.0.8" rimraf: "npm:^3.0.2" - ser-kit: "npm:^0.3.15" + ser-kit: "npm:^0.3.17" typescript: "npm:^5.5.4" typescript-eslint: "npm:^7.16.0" typescript-plugin-css-modules: "npm:^5.1.0"