mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-02 14:15:06 +01:00
92971d3c87
* Update eslint-plugin-import version * Convert JS files to use ESM * Update ESLint rules to check imports * Fix test:unit:global command env * Cleanup mock-dev script
32 lines
946 B
JavaScript
32 lines
946 B
JavaScript
import { formatTxMetaForRpcResult } from '../util'
|
|
import createAsyncMiddleware from 'json-rpc-engine/src/createAsyncMiddleware'
|
|
|
|
export function createPendingNonceMiddleware ({ getPendingNonce }) {
|
|
return createAsyncMiddleware(async (req, res, next) => {
|
|
const { method, params } = req
|
|
if (method !== 'eth_getTransactionCount') {
|
|
return next()
|
|
}
|
|
const [param, blockRef] = params
|
|
if (blockRef !== 'pending') {
|
|
return next()
|
|
}
|
|
res.result = await getPendingNonce(param)
|
|
})
|
|
}
|
|
|
|
export function createPendingTxMiddleware ({ getPendingTransactionByHash }) {
|
|
return createAsyncMiddleware(async (req, res, next) => {
|
|
const { method, params } = req
|
|
if (method !== 'eth_getTransactionByHash') {
|
|
return next()
|
|
}
|
|
const [hash] = params
|
|
const txMeta = getPendingTransactionByHash(hash)
|
|
if (!txMeta) {
|
|
return next()
|
|
}
|
|
res.result = formatTxMetaForRpcResult(txMeta)
|
|
})
|
|
}
|