mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 18:00:18 +01:00
Using current time in place of block timestamp for completion time metric (#11483)
This commit is contained in:
parent
f15a68b923
commit
bf4cdb0b5c
@ -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) {
|
||||||
|
@ -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…
Reference in New Issue
Block a user