1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
metamask-extension/app/scripts/controllers/network/middleware/pending.js
Erik Marks 76a2a9bb8b
@metamask/eslint config@5.0.0 (#10358)
* @metamask/eslint-config@5.0.0
* Update eslintrc and prettierrc
* yarn lint:fix
2021-02-04 10:15:23 -08:00

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