UNPKG

@vafanassieff/bitcoin-cli-ts

Version:

Auto-generated Bitcoin client library for bitcoind JSON-RPC API

34 lines 1.29 kB
import { request } from 'undici'; import JSONBigInt from 'json-bigint'; import { JSONRPCClient as Client } from 'json-rpc-2.0'; const { parse: parseJson } = JSONBigInt({ storeAsString: true }); const sendRequest = async (payload, clientParams) => { const { url, authHeader } = clientParams; const reqHeaders = { Authorization: authHeader, 'Content-Type': 'application/json', }; const { body, statusCode, headers } = await request(url, { method: 'POST', headers: reqHeaders, body: JSON.stringify(payload), }); const responseText = await body.text(); if (statusCode !== 200) { if (statusCode === 401) return Promise.reject(new Error('Invalid credentials')); const contentType = headers['content-type']; const response = contentType === 'application/json' ? parseJson(responseText) : responseText; return Promise.reject(response.error || new Error(response)); } client.receive(parseJson(responseText)); }; const client = new Client(sendRequest); export default async function (cmd, settings) { return client .timeout(settings.timeout || 15000) .request(cmd.method, cmd.params, settings); } //# sourceMappingURL=rpc-request.js.map