diff --git a/dist/types.d.ts b/dist/types.d.ts index 96f91f5bdf837398e85560d2f33e9c3a5eade766..77bc26610e09a7393c25e56afc81cfcd6bff3289 100644 --- a/dist/types.d.ts +++ b/dist/types.d.ts @@ -56,9 +56,11 @@ export interface BlockData { export interface TxData { hash: string; blockHeight: number; + blockHash: string; tx: { callData: string; }; + time?: number; } export interface DecodedCallData { key: string; diff --git a/src/services/AeternityService/AeternityService.ts b/src/services/AeternityService/AeternityService.ts index 6c2e69e95acdab391e77a566c8263811f09ec826..d9fae929170ff253544bd5647bcdf275b39a7e52 100644 --- a/src/services/AeternityService/AeternityService.ts +++ b/src/services/AeternityService/AeternityService.ts @@ -95,6 +95,7 @@ class AeternityService { tx: { callData: data.tx.call_data, }, + blockHash: data.block_hash, }; } @@ -117,6 +118,20 @@ class AeternityService { }; } + async getMicroBlock( + hash: string + ): Promise<{ height: number; time: number; hash: string }> { + const { time, height } = await this.requestNode({ + url: `/v2/micro-blocks/hash/${hash}/header`, + }).then(({ data }: Response<AeternityAPIBlockData>) => data); + + return { + height, + time, + hash, + }; + } + async getBlock( height: number ): Promise<{ height: number; time: number; hash: string }> { diff --git a/src/services/AeternityService/types.ts b/src/services/AeternityService/types.ts index 8efdbb4224e1ae70939780021dff7a2a147add39..c95b4ed45fa8ea39c459a12c8842005ae53ced40 100644 --- a/src/services/AeternityService/types.ts +++ b/src/services/AeternityService/types.ts @@ -1,6 +1,7 @@ export interface AeternityAPITxData { hash: string; block_height: number; + block_hash: string; tx: { call_data: string; }; diff --git a/src/services/VerificationService/VerificationService.ts b/src/services/VerificationService/VerificationService.ts index d629eafd4cdbdde6d4be54c81e6875399ac83ee3..5bc1a3c8131264a3879a4ccbe4d1865a8b00998a 100644 --- a/src/services/VerificationService/VerificationService.ts +++ b/src/services/VerificationService/VerificationService.ts @@ -144,7 +144,14 @@ class VerificationService extends EventEmitter { this.emit(STATUS_BATCH_VERIFIED, batchVerificationDetails); - blockData = await this.getBlockData(txData.blockHeight); + const blockRequests = await Promise.all([ + this.getBlockData(txData.blockHeight), + this._aeternityService.getMicroBlock(txData.blockHash), + ]); + + blockData = blockRequests[0]; + const microBlockData = blockRequests[1]; + txData.time = microBlockData.time; this.emit(BLOCK_DATA_RETRIEVED, blockData); } catch (e) { diff --git a/src/types.ts b/src/types.ts index 52ae9d3488421ae55459cf2579c9dc37de11545b..312f3fc3b8c9ad85d496d6aedc3fceec91e72c2a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -65,9 +65,11 @@ export interface BlockData { export interface TxData { hash: string; blockHeight: number; + blockHash: string; tx: { callData: string; }; + time?: number; } export interface DecodedCallData {