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

feature/default_network_editable
ryanml 3 years ago committed by GitHub
parent f15a68b923
commit bf4cdb0b5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 27
      app/scripts/controllers/transactions/index.js
  2. 24
      app/scripts/controllers/transactions/index.test.js

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

@ -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');
});
});
});

Loading…
Cancel
Save