Skip to content
This repository was archived by the owner on Oct 21, 2025. It is now read-only.

Commit 43f34c9

Browse files
authored
fix: Avoid emitting events when balanceIncrease is zero (#745)
1 parent f8825f8 commit 43f34c9

File tree

2 files changed

+32
-22
lines changed

2 files changed

+32
-22
lines changed

contracts/protocol/tokenization/base/ScaledBalanceTokenBase.sol

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,10 @@ abstract contract ScaledBalanceTokenBase is MintableIncentivizedERC20, IScaledBa
154154

155155
super._transfer(sender, recipient, amount.rayDiv(index).toUint128());
156156

157-
emit Transfer(address(0), sender, senderBalanceIncrease);
158-
emit Mint(_msgSender(), sender, senderBalanceIncrease, senderBalanceIncrease, index);
157+
if (senderBalanceIncrease > 0) {
158+
emit Transfer(address(0), sender, senderBalanceIncrease);
159+
emit Mint(_msgSender(), sender, senderBalanceIncrease, senderBalanceIncrease, index);
160+
}
159161

160162
if (recipientBalanceIncrease > 0) {
161163
emit Transfer(address(0), recipient, recipientBalanceIncrease);

test-suites/helpers/utils/tokenization-events.ts

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -216,18 +216,20 @@ export const transfer = async (
216216
addedScaledBalance,
217217
indexAfter,
218218
]);
219-
matchEvent(rcpt, 'Transfer', aToken, aToken.address, [
220-
ZERO_ADDRESS,
221-
user.address,
222-
fromBalanceIncrease,
223-
]);
224-
matchEvent(rcpt, 'Mint', aToken, aToken.address, [
225-
user.address,
226-
user.address,
227-
fromBalanceIncrease,
228-
fromBalanceIncrease,
229-
indexAfter,
230-
]);
219+
if (fromBalanceIncrease.gt(0)) {
220+
matchEvent(rcpt, 'Transfer', aToken, aToken.address, [
221+
ZERO_ADDRESS,
222+
user.address,
223+
fromBalanceIncrease,
224+
]);
225+
matchEvent(rcpt, 'Mint', aToken, aToken.address, [
226+
user.address,
227+
user.address,
228+
fromBalanceIncrease,
229+
fromBalanceIncrease,
230+
indexAfter,
231+
]);
232+
}
231233
if (toBalanceIncrease.gt(0)) {
232234
matchEvent(rcpt, 'Transfer', aToken, aToken.address, [ZERO_ADDRESS, to, toBalanceIncrease]);
233235
matchEvent(rcpt, 'Mint', aToken, aToken.address, [
@@ -277,14 +279,20 @@ export const transferFrom = async (
277279
addedScaledBalance,
278280
indexAfter,
279281
]);
280-
matchEvent(rcpt, 'Transfer', aToken, aToken.address, [ZERO_ADDRESS, origin, fromBalanceIncrease]);
281-
matchEvent(rcpt, 'Mint', aToken, aToken.address, [
282-
user.address,
283-
origin,
284-
fromBalanceIncrease,
285-
fromBalanceIncrease,
286-
indexAfter,
287-
]);
282+
if (fromBalanceIncrease.gt(0)) {
283+
matchEvent(rcpt, 'Transfer', aToken, aToken.address, [
284+
ZERO_ADDRESS,
285+
origin,
286+
fromBalanceIncrease,
287+
]);
288+
matchEvent(rcpt, 'Mint', aToken, aToken.address, [
289+
user.address,
290+
origin,
291+
fromBalanceIncrease,
292+
fromBalanceIncrease,
293+
indexAfter,
294+
]);
295+
}
288296
if (toBalanceIncrease.gt(0)) {
289297
matchEvent(rcpt, 'Transfer', aToken, aToken.address, [ZERO_ADDRESS, to, toBalanceIncrease]);
290298
matchEvent(rcpt, 'Mint', aToken, aToken.address, [

0 commit comments

Comments
 (0)