UNPKG

@phiresky/eth-scan

Version:

An efficient Ether and token balance scanner

6 lines 1.23 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPayload=exports.default=void 0;var _isomorphicUnfetch=_interopRequireDefault(require("isomorphic-unfetch")),_nanoid=require("nanoid");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}/** * A raw HTTP provider, which can be used with an Ethereum node endpoint (JSON-RPC), or an `HttpProviderOptions` object. */const provider={isProvider:a=>"string"==typeof a||"object"==typeof a&&void 0!==a.url,send:async(a,b,c)=>{const d="string"==typeof a?a:a.url,e="object"==typeof a?a.params:{},f=getPayload(b,c),g=await(0,_isomorphicUnfetch.default)(d,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(f),cache:"no-cache",...e});if(!g.ok)throw new Error(`Request failed with HTTP error ${g.status}: ${g.statusText}`);const{error:h,result:i}=await g.json();if(h)throw new Error(`Request failed: ${h.message}`);return i}};var _default=provider;/** * Get the JSON-RPC payload for the `eth_call` function. */exports.default=_default;const getPayload=(a,b)=>({jsonrpc:"2.0",method:a,params:b,id:(0,_nanoid.nanoid)()});exports.getPayload=getPayload; //# sourceMappingURL=http.js.map