UNPKG

@venly/web3-provider

Version:

Venly enabled Web3 Provider for the web

53 lines (52 loc) 2.53 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPendingTransactionsMiddleware = exports.createTransactionByHashMiddleware = exports.createPendingNonceMiddleware = void 0; const json_rpc_engine_1 = require("json-rpc-engine"); function createPendingNonceMiddleware({ getPendingNonce }) { return (0, json_rpc_engine_1.createAsyncMiddleware)((req, res, next) => __awaiter(this, void 0, void 0, function* () { const { method, params } = req; if (method !== 'eth_getTransactionCount') { next(); return; } const [param, blockRef] = params; if (blockRef !== 'pending') { next(); return; } yield next(); // res.result = await getPendingNonce(res.result); })); } exports.createPendingNonceMiddleware = createPendingNonceMiddleware; function createTransactionByHashMiddleware({ getTransactionByHash }) { return (0, json_rpc_engine_1.createAsyncMiddleware)((req, res, next) => __awaiter(this, void 0, void 0, function* () { const { method, params } = req; if (method !== 'eth_getTransactionByHash') { next(); return; } const [hash] = params; res.result = yield getTransactionByHash(hash); })); } exports.createTransactionByHashMiddleware = createTransactionByHashMiddleware; function createPendingTransactionsMiddleware({ getPendingTransactions }) { return (0, json_rpc_engine_1.createAsyncMiddleware)((req, res, next) => __awaiter(this, void 0, void 0, function* () { if (req.method !== 'eth_pendingTransactions') { next(); return; } res.result = yield getPendingTransactions(); })); } exports.createPendingTransactionsMiddleware = createPendingTransactionsMiddleware;