mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
76a2a9bb8b
* @metamask/eslint-config@5.0.0 * Update eslintrc and prettierrc * yarn lint:fix
36 lines
965 B
JavaScript
36 lines
965 B
JavaScript
import { createAsyncMiddleware } from 'json-rpc-engine';
|
|
import { formatTxMetaForRpcResult } from '../util';
|
|
|
|
export function createPendingNonceMiddleware({ getPendingNonce }) {
|
|
return createAsyncMiddleware(async (req, res, next) => {
|
|
const { method, params } = req;
|
|
if (method !== 'eth_getTransactionCount') {
|
|
next();
|
|
return;
|
|
}
|
|
const [param, blockRef] = params;
|
|
if (blockRef !== 'pending') {
|
|
next();
|
|
return;
|
|
}
|
|
res.result = await getPendingNonce(param);
|
|
});
|
|
}
|
|
|
|
export function createPendingTxMiddleware({ getPendingTransactionByHash }) {
|
|
return createAsyncMiddleware(async (req, res, next) => {
|
|
const { method, params } = req;
|
|
if (method !== 'eth_getTransactionByHash') {
|
|
next();
|
|
return;
|
|
}
|
|
const [hash] = params;
|
|
const txMeta = getPendingTransactionByHash(hash);
|
|
if (!txMeta) {
|
|
next();
|
|
return;
|
|
}
|
|
res.result = formatTxMetaForRpcResult(txMeta);
|
|
});
|
|
}
|