UNPKG

@rarible/estimate-middleware

Version:
34 lines (33 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.estimate = void 0; const eth_json_rpc_middleware_1 = require("eth-json-rpc-middleware"); const json_rpc_engine_1 = require("json-rpc-engine"); const middleware_js_1 = require("./middleware.js"); const utils_js_1 = require("./utils.js"); function estimate(provider, options = {}) { if ((0, utils_js_1.isSafeEventEmitterProvider)(provider)) { const engine = new json_rpc_engine_1.JsonRpcEngine(); const estimateEngine = getEstimateEngine(provider, options.estimation); engine.push((0, middleware_js_1.createEstimateGasMiddleware)(estimateEngine, options.force, options.threshold)); engine.push((0, eth_json_rpc_middleware_1.providerAsMiddleware)(provider)); return (0, eth_json_rpc_middleware_1.providerFromEngine)(engine); } return provider; } exports.estimate = estimate; function getEstimateEngine(provider, estimate) { if (estimate === undefined) { const estimateEngine = new json_rpc_engine_1.JsonRpcEngine(); estimateEngine.push((0, eth_json_rpc_middleware_1.providerAsMiddleware)(provider)); return estimateEngine; } else if (typeof estimate === "string") { const engine = new json_rpc_engine_1.JsonRpcEngine(); engine.push((0, eth_json_rpc_middleware_1.createFetchMiddleware)({ rpcUrl: estimate })); return engine; } else { return estimate; } }