1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-23 02:10:12 +01:00

Using current time in place of block timestamp for completion time metric (#11483)

This commit is contained in:
ryanml 2021-07-12 10:14:54 -07:00 committed by GitHub
parent f15a68b923
commit bf4cdb0b5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 21 deletions

View File

@ -820,15 +820,12 @@ export default class TransactionController extends EventEmitter {
this._markNonceDuplicatesDropped(txId); this._markNonceDuplicatesDropped(txId);
const { submittedTime } = txMeta; const { submittedTime } = txMeta;
const { blockNumber } = txReceipt;
const metricsParams = { gas_used: gasUsed }; const metricsParams = { gas_used: gasUsed };
const completionTime = await this._getTransactionCompletionTime(
blockNumber,
submittedTime,
);
if (completionTime) { if (submittedTime) {
metricsParams.completion_time = completionTime; metricsParams.completion_time = this._getTransactionCompletionTime(
submittedTime,
);
} }
if (txReceipt.status === '0x0') { if (txReceipt.status === '0x0') {
@ -1256,20 +1253,8 @@ export default class TransactionController extends EventEmitter {
}); });
} }
async _getTransactionCompletionTime(blockNumber, submittedTime) { _getTransactionCompletionTime(submittedTime) {
const transactionBlock = await this.query.getBlockByNumber( return Math.round((Date.now() - submittedTime) / 1000).toString();
blockNumber.toString(16),
false,
);
if (!transactionBlock) {
return '';
}
return new BigNumber(transactionBlock.timestamp, 10)
.minus(submittedTime / 1000)
.round()
.toString(10);
} }
_failTransaction(txId, error) { _failTransaction(txId, error) {

View File

@ -1391,4 +1391,28 @@ describe('Transaction Controller', function () {
); );
}); });
}); });
describe('#_getTransactionCompletionTime', function () {
let nowStub;
beforeEach(function () {
nowStub = sinon.stub(Date, 'now').returns(1625782016341);
});
afterEach(function () {
nowStub.restore();
});
it('calculates completion time (one)', function () {
const submittedTime = 1625781997397;
const result = txController._getTransactionCompletionTime(submittedTime);
assert.equal(result, '19');
});
it('calculates completion time (two)', function () {
const submittedTime = 1625781995397;
const result = txController._getTransactionCompletionTime(submittedTime);
assert.equal(result, '21');
});
});
}); });