From cba77da2c727ffafddebb038ca3e1762ecc32836 Mon Sep 17 00:00:00 2001 From: Fabio Rigamonti <73019897+fabiorigam@users.noreply.github.com> Date: Thu, 11 Jul 2024 08:53:05 +0200 Subject: [PATCH] fix: fix potential bug in transaction formatter (#1035) * fix: fix potential bug in transaction formatter * fix: fix fixture tests --- .../utils/formatter/transactions/formatter.ts | 12 ++++-------- .../methods/eth_getTransactionReceipt/fixture.ts | 6 +++--- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/network/src/provider/utils/formatter/transactions/formatter.ts b/packages/network/src/provider/utils/formatter/transactions/formatter.ts index 98a126f0f..b5ceb8fca 100644 --- a/packages/network/src/provider/utils/formatter/transactions/formatter.ts +++ b/packages/network/src/provider/utils/formatter/transactions/formatter.ts @@ -146,16 +146,11 @@ function formatTransactionReceiptToRPCStandard( transactionHash, chainId ); - const n = receipt.outputs.length > 0 ? receipt.outputs[0].events.length : 0; - const filledLogIndexes = new Array(n) - .fill(logIndexOffset) - .map((_, i) => i + logIndexOffset); - - const logIndexes: string[] = filledLogIndexes.map((i) => Quantity.of(i)); const logs: TransactionReceiptLogsRPC[] = []; + let logIndex = logIndexOffset; receipt.outputs.forEach((output) => { - output.events.forEach((event, index) => { + output.events.forEach((event) => { logs.push({ blockHash: receipt.meta.blockID, blockNumber: Quantity.of(receipt.meta.blockNumber), @@ -165,8 +160,9 @@ function formatTransactionReceiptToRPCStandard( data: event.data, removed: false, transactionIndex: Quantity.of(transactionIndex), - logIndex: logIndexes[index] + logIndex: Quantity.of(logIndex) }); + logIndex++; }); }); diff --git a/packages/network/tests/provider/rpc-mapper/methods/eth_getTransactionReceipt/fixture.ts b/packages/network/tests/provider/rpc-mapper/methods/eth_getTransactionReceipt/fixture.ts index f8b4f1bcb..11baaa9e0 100644 --- a/packages/network/tests/provider/rpc-mapper/methods/eth_getTransactionReceipt/fixture.ts +++ b/packages/network/tests/provider/rpc-mapper/methods/eth_getTransactionReceipt/fixture.ts @@ -151,7 +151,7 @@ const getReceiptCorrectCasesTestNetwork = [ '0x0114b4a1182a9103113a4052b2d08e7785ea74901c6974f16661d352202d7bf6', blockNumber: '0x114b4a1', data: '0x0000000000000000000000000000000000000000000000024808a928fe542eed', - logIndex: '0x1', + logIndex: '0x2', removed: false, topics: [ '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef', @@ -168,7 +168,7 @@ const getReceiptCorrectCasesTestNetwork = [ '0x0114b4a1182a9103113a4052b2d08e7785ea74901c6974f16661d352202d7bf6', blockNumber: '0x114b4a1', data: '0x0000000000000000000000000000000000000000000000043c47d85f5fdafe3d000000000000000000000000000000000000000000000006845081885e2f2d2a', - logIndex: undefined, + logIndex: '0x3', removed: false, topics: [ '0xdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724', @@ -184,7 +184,7 @@ const getReceiptCorrectCasesTestNetwork = [ '0x0114b4a1182a9103113a4052b2d08e7785ea74901c6974f16661d352202d7bf6', blockNumber: '0x114b4a1', data: '0x0000000000000000000000000000000000000000000000024808a928fe542eed', - logIndex: undefined, + logIndex: '0x4', removed: false, topics: [ '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',