Skip to content

Commit f1e11a8

Browse files
authored
feat: upgrade the logs object to include blockТimestamp field (#4358)
Signed-off-by: nikolay <[email protected]>
1 parent 3efdcad commit f1e11a8

File tree

7 files changed

+14
-8
lines changed

7 files changed

+14
-8
lines changed

packages/relay/src/lib/model.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ export class Log {
172172
public readonly address: string;
173173
public readonly blockHash: string;
174174
public readonly blockNumber: string;
175+
public readonly blockTimestamp: string;
175176
public readonly data: string;
176177
public readonly logIndex: string;
177178
public readonly removed: boolean;
@@ -183,6 +184,7 @@ export class Log {
183184
this.address = args.address;
184185
this.blockHash = args.blockHash;
185186
this.blockNumber = args.blockNumber;
187+
this.blockTimestamp = args.blockTimestamp;
186188
this.data = args.data;
187189
this.logIndex = args.logIndex;
188190
this.removed = args.removed;

packages/relay/src/lib/services/ethService/ethCommonService/CommonService.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,7 @@ export class CommonService implements ICommonService {
365365
logs.push(
366366
new Log({
367367
address: log.address,
368+
blockTimestamp: numberTo0x(Number(log.timestamp.split('.')[0])),
368369
blockHash: toHash32(log.block_hash),
369370
blockNumber: numberTo0x(log.block_number),
370371
data: log.data,

packages/relay/src/lib/services/ethService/transactionService/TransactionService.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { JsonRpcError, predefined } from '../../../errors/JsonRpcError';
1313
import { SDKClientError } from '../../../errors/SDKClientError';
1414
import { createTransactionFromContractResult, TransactionFactory } from '../../../factories/transactionFactory';
1515
import {
16-
IRegularTransactionReceiptParams,
1716
ISyntheticTransactionReceiptParams,
1817
TransactionReceiptFactory,
1918
} from '../../../factories/transactionReceiptFactory';
@@ -356,6 +355,7 @@ export class TransactionService implements ITransactionService {
356355
address: log.address,
357356
blockHash: toHash32(receiptResponse.block_hash),
358357
blockNumber: numberTo0x(receiptResponse.block_number),
358+
blockTimestamp: numberTo0x(Number(receiptResponse.timestamp.split('.')[0])),
359359
data: log.data,
360360
logIndex: numberTo0x(log.index),
361361
removed: false,
@@ -369,16 +369,13 @@ export class TransactionService implements ITransactionService {
369369
this.common.resolveEvmAddress(receiptResponse.to, requestDetails),
370370
]);
371371

372-
const transactionReceiptParams: IRegularTransactionReceiptParams = {
372+
return TransactionReceiptFactory.createRegularReceipt({
373373
effectiveGas,
374374
from,
375375
logs,
376376
receiptResponse,
377377
to,
378-
};
379-
const receipt: ITransactionReceipt = TransactionReceiptFactory.createRegularReceipt(transactionReceiptParams);
380-
381-
return receipt;
378+
});
382379
}
383380

384381
/**

packages/relay/tests/helpers.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ export const expectLogData = (res, log, tx) => {
9999
expect(res.address).to.eq(log.address);
100100
expect(res.blockHash).to.eq(toHash32(tx.block_hash));
101101
expect(res.blockHash.length).to.eq(66);
102+
expect(res.blockTimestamp).to.eq(numberTo0x(Number(tx.timestamp.split('.')[0])));
102103
expect(res.blockNumber).to.eq(numberTo0x(tx.block_number));
103104
expect(res.data).to.eq(log.data);
104105
expect(res.logIndex).to.eq(numberTo0x(log.index));

packages/relay/tests/lib/eth/eth_getBlockReceipts.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@ import chaiAsPromised from 'chai-as-promised';
66
import sinon from 'sinon';
77

88
import { numberTo0x } from '../../../dist/formatters';
9-
import { predefined } from '../../../src';
109
import { SDKClient } from '../../../src/lib/clients';
1110
import { EthImpl } from '../../../src/lib/eth';
1211
import { CacheService } from '../../../src/lib/services/cacheService/cacheService';
1312
import HAPIService from '../../../src/lib/services/hapiService/hapiService';
1413
import { RequestDetails } from '../../../src/lib/types';
15-
import RelayAssertions from '../../assertions';
1614
import { defaultContractResults, defaultContractResultsOnlyHash2, defaultLogs1 } from '../../helpers';
1715
import {
1816
BLOCK_HASH,
@@ -213,6 +211,7 @@ describe('@ethGetBlockReceipts using MirrorNode', async function () {
213211
expect(receipts[1].logs.length).to.equal(1);
214212
expect(receipts[1].transactionHash).to.equal(defaultLogs1[0].transaction_hash);
215213
expect(receipts[1].transactionHash).to.equal(defaultLogs1[1].transaction_hash);
214+
expect(receipts[1].logs[0].blockTimestamp).to.equal(numberTo0x(Number(defaultLogs1[0].timestamp.split('.')[0])));
216215
});
217216

218217
it('should handle null to field for contract creation transactions', async function () {

packages/relay/tests/lib/eth/eth_getTransactionReceipt.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ describe('@ethGetTransactionReceipt eth_getTransactionReceipt tests', async func
9595
address: '0x0000000000000000000000000000000000001389',
9696
blockHash: '0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c042',
9797
blockNumber: '0x11',
98+
blockTimestamp: '0x28ee6',
9899
data: '0x0123',
99100
logIndex: '0x0',
100101
removed: false,

packages/server/tests/acceptance/rpc_batch1.spec.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ describe('@api-batch-1 RPC Server Acceptance Tests', function () {
193193
for (const i in logs) {
194194
expect(logs[i]).to.have.property('address');
195195
expect(logs[i]).to.have.property('logIndex');
196+
expect(logs[i]).to.have.property('blockTimestamp');
196197

197198
const key = `${logs[i].transactionHash}---${logs[i].logIndex}`;
198199
txIndexLogIndexMapping.push(key);
@@ -654,6 +655,10 @@ describe('@api-batch-1 RPC Server Acceptance Tests', function () {
654655
expect(res[0].status).to.equal('0x1');
655656
expect(res[0]).to.have.property('transactionHash');
656657
expect(res[0].transactionHash).to.equal(createChildTx.hash);
658+
expect(res[0].logs).to.not.be.empty;
659+
res[0].logs.map((log) =>
660+
expect(log.blockTimestamp).to.equal(numberTo0x(Number(mirrorBlock.timestamp.to.split('.')[0]))),
661+
);
657662
});
658663

659664
it('should execute "eth_getBlockReceipts" with block number successfully', async function () {

0 commit comments

Comments
 (0)