btcpayserver / btcpayserver/node-btcpay

module depends on deprecated "request" which has issues with certs

Open
#64 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
82
Forks
24
PR merge metrics
No merged PRs in 30d

Description

My BTCPayServer is using a letsencrypt cert which is affected by [this issue](https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/). As explained in the link, the browser has no issue with expired certs but my api call fails.

```
$ node
> const key = "redacted"
> const btcpay = require('btcpay')
> const keypair = btcpay.crypto.load_keypair(new Buffer.from(key, 'hex'))
> const client = new btcpay.BTCPayClient("https://pos.btcpay.nz", keypair, {merchant: 'redacted'})
> client.get_invoices({status: "complete"}).then( invoices => {})
Promise { }
> (node:2032689) UnhandledPromiseRejectionWarning: RequestError: Error: certificate has expired
at new RequestError (/path/to/project/node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (/path/to/project/node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (/path/to/project/node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (/path/to/project/node_modules/request/request.js:185:22)
at Request.emit (events.js:193:13)
at Request.EventEmitter.emit (domain.js:481:20)
at Request.onRequestError (/path/to/project/node_modules/request/request.js:877:8)
at ClientRequest.emit (events.js:193:13)
at ClientRequest.EventEmitter.emit (domain.js:481:20)
at TLSSocket.socketErrorListener (_http_client.js:397:9)
at TLSSocket.emit (events.js:193:13)
at TLSSocket.EventEmitter.emit (domain.js:481:20)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at processTicksAndRejections (internal/process/task_queues.js:81:17)
(node:2032689) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:2032689) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
```

As the crash is caused in `btcpay.BTCPayClient`, I suspect this should be fixed in this project?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.