Skip to content

Commit a1280b7

Browse files
committed
Remove state for deleted transactions
1 parent e9f9508 commit a1280b7

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

packages/transaction-pay-controller/src/utils/transaction.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,32 @@ describe('Transaction Utils', () => {
157157
);
158158
},
159159
);
160+
161+
it('removes state if transaction is deleted', () => {
162+
const removeTransactionDataMock = jest.fn();
163+
164+
pollTransactionChanges(messenger, noop, removeTransactionDataMock);
165+
166+
publish(
167+
'TransactionController:stateChange',
168+
{
169+
transactions: [TRANSACTION_META_MOCK],
170+
} as TransactionControllerState,
171+
[],
172+
);
173+
174+
publish(
175+
'TransactionController:stateChange',
176+
{
177+
transactions: [] as TransactionMeta[],
178+
} as TransactionControllerState,
179+
[],
180+
);
181+
182+
expect(removeTransactionDataMock).toHaveBeenCalledWith(
183+
TRANSACTION_ID_MOCK,
184+
);
185+
});
160186
});
161187

162188
describe('updateTransaction', () => {

packages/transaction-pay-controller/src/utils/transaction.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,11 @@ export function pollTransactionChanges(
8585
);
8686
});
8787

88-
finalizedTransactions.forEach((tx) =>
88+
const deletedTransactions = (previousTransactions ?? []).filter(
89+
(prevTx) => !transactions.find((tx) => tx.id === prevTx.id),
90+
);
91+
92+
[...finalizedTransactions, ...deletedTransactions].forEach((tx) =>
8993
onTransactionFinalized(tx, removeTransactionData),
9094
);
9195

0 commit comments

Comments
 (0)