Compare commits
5 Commits
c88afc5aae
...
67a0565c04
Author | SHA1 | Date |
---|---|---|
Keyan | 67a0565c04 | |
Keyan | cfbb274d8f | |
Keyan | b012f7670e | |
Riccardo Balbo | 21207184dd | |
ekzyis | f45144cb1c |
|
@ -142,3 +142,6 @@ Soxasora,pr,#1599,#1258,medium,,,,250k,soxasora@blink.sv,2024-11-19
|
||||||
aegroto,pr,#1585,#1522,easy,high,,1,180k,aegroto@blink.sv,2024-11-19
|
aegroto,pr,#1585,#1522,easy,high,,1,180k,aegroto@blink.sv,2024-11-19
|
||||||
sig47,issue,#1585,#1522,easy,high,,1,18k,siggy47@stacker.news,2024-11-19
|
sig47,issue,#1585,#1522,easy,high,,1,18k,siggy47@stacker.news,2024-11-19
|
||||||
aegroto,pr,#1583,#1572,easy,,,2,80k,aegroto@blink.sv,2024-11-19
|
aegroto,pr,#1583,#1572,easy,,,2,80k,aegroto@blink.sv,2024-11-19
|
||||||
|
Soxasora,pr,#1617,#1616,easy,,,,100k,soxasora@blink.sv,2024-11-20
|
||||||
|
Soxasora,issue,#1617,#1616,easy,,,,10k,soxasora@blink.sv,2024-11-20
|
||||||
|
AndreaDiazCorreia,helpfulness,#1605,#1566,good-first-issue,,,tried in pr,2k,andrea@lawallet.ar,2024-11-20
|
||||||
|
|
|
|
@ -1 +1 @@
|
||||||
70A2D30FE991B24B5A6BF85421BE5EF083665E7E
|
70A2D30FE991B24B5A6BF85421BE5EF083665E81
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
-----BEGIN PRIVATE KEY-----
|
-----BEGIN PRIVATE KEY-----
|
||||||
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
|
||||||
9BnJIn6TN2lFZl6yNePe5S0=
|
HVqTsNNjnv2JqMKD6rxDlw==
|
||||||
-----END PRIVATE KEY-----
|
-----END PRIVATE KEY-----
|
||||||
|
|
|
@ -1,17 +1,16 @@
|
||||||
-----BEGIN CERTIFICATE REQUEST-----
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
MIICoDCCAYgCAQAwWzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
|
MIICmDCCAYACAQAwUzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
|
||||||
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLc3Rh
|
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAwwDY2xu
|
||||||
Y2tlcl9jbG4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDeBF5jfabc
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTNzl/YXp8II2bwRBppw
|
||||||
zcazVnYFEB9botC3TevcCpyucbLmCPFU3dcXjUdDJFfnQDlbIAm9UqbUwIF0GIRR
|
xA7huV1xAM2E73dyc/HqHsZE1510QCXZ4JtIFbBQRcGxjq5+KyR9TXOVgMROmfmS
|
||||||
J1IlH5mZ3MxXVGMNHlLuLdfVMfJFk72WczPecUPh5jJea+ujdW4I5Q+kgx/CjVat
|
FuA470IvIYT0B2aVnrLkawVwnRft3VFnQmBxkgP3Pp3XEMe1mZGaQqTmk1/AdjIX
|
||||||
PHz5WYgKC+6d10tawYLR47RRZhOgzAdrCD//L3AE+WPcdWicRSJoYDxdmyQiF9X9
|
3YH7qBIbhoC/KAmrr/+eaA7G0GZYgrYtkqVw7e2sznpzO1oiW8zFnpmiWs91mzrI
|
||||||
Vz6XNQuOExYk3etHzwEf8alnMZbzS7j10//QxaxR/Ujp4tgt+ACwxNLd7TdoYZ8F
|
dkGRC311ktSpqTdYwZjeyJnGzVeyF//MytJmdmLzkAWOR9OpvKt5V7UhWLTLGULs
|
||||||
P4AY1ijabYxLGUA+Mk0rC6Al36EE78dUg1fTDCh+ee1YAnoYgnT7jrUQ+6pbiwmf
|
GAzYaSl8PXunstRiVjWeLPFIVBtzni0Lry+6PF1ltqAPS6ZSRd3bMtdHEjG/76zt
|
||||||
jrO0lHVDJ+CpAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAs3mdbEeLipHKeGZO
|
yQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAIHrxnnPdlZL+ODOIajoqyGWxNju
|
||||||
BbZ9vz7Ye0hRMX3q4liSBwGbHm/ByUqtzcXKf+R2T0+5dfc2PJNd7uRxWlRPSDdV
|
Tigv0sKW6T+ty6sSJaHlHJynGAKKXRz8NzyUpeAwaBXTSU9Ca3PSCs4vvAvvamGT
|
||||||
ebHm5ctZaDIGUS2XQrj67KoRRtZTLM4IGM2g5ppbgnm9NM6NWYpO9t2hKupIqNa+
|
nqEUeb9YhLe4pkBBUtpQrml6ixotids1PFf38f6965Z34S3xivucBRrGnB+hGFEz
|
||||||
ATYNOzxLHZQJRTvxhC0kpy196huw/vs4d7TVPF7SxJVsXPmjt1OGso52HL0HjDsD
|
QKgMnQmUan9AWOqAQEzWU4sVkNzYtH1sjtRLSIVyoWD/8DiBlEL0poKq6/NjnT1z
|
||||||
BcNW2Qtd9WcrEwM8HmydBJuSru5gX7HHgKMHUmPtyvFXdTjiiqFnU1apTmF8ptY5
|
Q6kZh5uGbeViZ9VzCM1xJVpVP1Z1oVZkMHndKf4I03IRWhW34ddhQJcja9nr2wdU
|
||||||
tvNtz8pGmb3p0lvkyAUaEurtzNChwIdU5rvkkZGC8sphpMECPEmMgpavkkZK3+EJ
|
m1Pv78262l5B0YdXTd3C73i70k7GqSusKCW+HvQAy8DmEDRxJRLGTpYNsrc=
|
||||||
aUwdqQ==
|
|
||||||
-----END CERTIFICATE REQUEST-----
|
-----END CERTIFICATE REQUEST-----
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIICfzCCAiagAwIBAgIUcKLTD+mRsktaa/hUIb5e8INmXn4wCgYIKoZIzj0EAwIw
|
MIICLzCCAdUCFHCi0w/pkbJLWmv4VCG+XvCDZl6BMAoGCCqGSM49BAMCMBYxFDAS
|
||||||
FjEUMBIGA1UEAwwLY2xuIFJvb3QgQ0EwHhcNMjQwNDExMTU1ODQ2WhcNMzQwNDA5
|
BgNVBAMMC2NsbiBSb290IENBMB4XDTI0MTEyMDE4MDgxMVoXDTI1MTEyMDE4MDgx
|
||||||
MTU1ODQ2WjBbMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8G
|
MVowUzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
||||||
A1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRQwEgYDVQQDDAtzdGFja2Vy
|
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAwwDY2xuMIIBIjANBgkq
|
||||||
X2NsbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN4EXmN9ptzNxrNW
|
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTNzl/YXp8II2bwRBppwxA7huV1xAM2E
|
||||||
dgUQH1ui0LdN69wKnK5xsuYI8VTd1xeNR0MkV+dAOVsgCb1SptTAgXQYhFEnUiUf
|
73dyc/HqHsZE1510QCXZ4JtIFbBQRcGxjq5+KyR9TXOVgMROmfmSFuA470IvIYT0
|
||||||
mZnczFdUYw0eUu4t19Ux8kWTvZZzM95xQ+HmMl5r66N1bgjlD6SDH8KNVq08fPlZ
|
B2aVnrLkawVwnRft3VFnQmBxkgP3Pp3XEMe1mZGaQqTmk1/AdjIX3YH7qBIbhoC/
|
||||||
iAoL7p3XS1rBgtHjtFFmE6DMB2sIP/8vcAT5Y9x1aJxFImhgPF2bJCIX1f1XPpc1
|
KAmrr/+eaA7G0GZYgrYtkqVw7e2sznpzO1oiW8zFnpmiWs91mzrIdkGRC311ktSp
|
||||||
C44TFiTd60fPAR/xqWcxlvNLuPXT/9DFrFH9SOni2C34ALDE0t3tN2hhnwU/gBjW
|
qTdYwZjeyJnGzVeyF//MytJmdmLzkAWOR9OpvKt5V7UhWLTLGULsGAzYaSl8PXun
|
||||||
KNptjEsZQD4yTSsLoCXfoQTvx1SDV9MMKH557VgCehiCdPuOtRD7qluLCZ+Os7SU
|
stRiVjWeLPFIVBtzni0Lry+6PF1ltqAPS6ZSRd3bMtdHEjG/76ztyQIDAQABMAoG
|
||||||
dUMn4KkCAwEAAaNCMEAwHQYDVR0OBBYEFE15SBJ5Z/50fktS1qs9agwhQ40PMB8G
|
CCqGSM49BAMCA0gAMEUCIDExbaYoitsXHdu8wgVlv7LozbNK9Te6t292ctH0dZCy
|
||||||
A1UdIwQYMBaAFIRyY3/2vNLaFHobsQiCxf7nU3QKMAoGCCqGSM49BAMCA0cAMEQC
|
AiEAjg/GqpNIv01ACeK/5+HVLtba8TL6vBd9dENR4ADDoj4=
|
||||||
IGSPak0NLkIDa1Dyw/NNWeBf+PxLysd9tCIPmMF7YmN3AiAZcdXrWldVW/9RLRyT
|
|
||||||
0RU2Uqr/47R+MADhX961ZlfzfQ==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
-----BEGIN PRIVATE KEY-----
|
-----BEGIN PRIVATE KEY-----
|
||||||
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
|
||||||
Y9gQQi/itHYOEBy6L+OC3ETD
|
9n8zIzZDF+k/mPsAVXwTDR0g
|
||||||
-----END PRIVATE KEY-----
|
-----END PRIVATE KEY-----
|
||||||
|
|
|
@ -1,17 +1,16 @@
|
||||||
-----BEGIN CERTIFICATE REQUEST-----
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
MIICoDCCAYgCAQAwWzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUx
|
MIICmDCCAYACAQAwUzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
|
||||||
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLc3Rh
|
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAwwDY2xu
|
||||||
Y2tlcl9jbG4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJ+Q2pred
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt+KCYNwj+YJNQXlJwuFi
|
||||||
hnnYroMhBgQNWt3OvY49M6WC2u+P2HWj3+pjjt6oNaM8emYqRXTh4WlAyi8G/XNk
|
MvJK5nU1DOcp9dvo4gvBClzwOeaRPsB4qnkWLxZqQ8+/q+LMD7P+QUXHqI49b8SF
|
||||||
ADLvZf4HMzBp5kYtCemtzce6Zt1LE45Xd7xdFDca7PLOTFaaNY99AENBbaJf0s5z
|
m7FFEpCL5GEN090F1+GIEUBgEqMPHP3QRfyhnI4hmo0fgGArI7BMhBZrYH7nRKSN
|
||||||
tJSzIfBisPfhvDwOhbwJB5KZ0ezaa/RItYcOdkZeggbgoYeDA63L+fHTX5Y/Rt9A
|
oEgpWd8dtm9NR/jx7j9sWXtFx6LZoM6yZZXVy6DdDGNk7WR0o98fR3NtT+OzUAkC
|
||||||
ooo9VDix6y1pGMa53jVxdGvj1bb5hkqPtr5zi6hwIum1YDWWwp7wMkft0pnvrnwM
|
MJR45aT7SYUNadCVNcFKsJqVMq0HDoa4sW1u184Fg5Bx38+gDXGn4VsDXwVXNMNx
|
||||||
Q9mkA+Pxd8pMie5I5Ks+RPjYk2W8faEccwgN0DXhOBTnxwmdKxVnq+5nU6neZ2d1
|
mGNY7ADn+AiRq0MLGDu6B5a+Raqt+LAlvvsqbFww8wtWUHQ2gnvXZBEVS+Wi2U7V
|
||||||
pRelrklppay9AgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAOoXArh2qS9wxSEKx
|
pQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAD1yimwCgeFZwkSyzFYrzf9e68L8
|
||||||
JqgTCSxrocuY5xdpeNCoReIQazT+bG332THdiy8a3HtuNGnCSPqrKffpv/G95oSu
|
Or8Fo7w5Wa1dtiGLz8hyHL5hephUgR5xA92VJ6zIXFXWYMfOvEFvRPCmXMjnS1Y5
|
||||||
eGGxx+n/3sObgzliOk9kDA8XOebuUDb+jM3joLZikGzeFOaMCcwJrhYIyTSmN9Zh
|
hxfLo+6NJ+U4qX301Dd3NEKCDqxYQIoRVxY+fqZBYn7vbVwimmdf3Epn8CX/tvSq
|
||||||
k5rQT6ufRA7LCL5FS4sYG1sly/fYlBqp2kLs2piEgvWdjh2cnfJ2UnyIk/a6sUJI
|
49YWkq2yRDUrcOzvvt6wfG6Gv1N2Igra2op3A0LywLXkPYNFmvMOvXzA9/Tk5dGb
|
||||||
x7zfmzFAeU3M+fR1Q3//4ISe4MAPDzn/rV8bpcl5iRqagyfbXHIeLfX68mCG3ABf
|
LNH1aIYbgMgA9XL7g1XVHqOqIBjqTukwVUJ6o/MVx8T9eoqZQRfV1s92BkhfnugS
|
||||||
SKnzUBnfB3g1GjUXIMFzGk23VuKRd6dBHoIMNknkDCM4r4thUtWH7oywWDiYBMX7
|
XQ16AO45gXNnjz0T1OjXLHzYpXIlSneo1BMIh9/eAi3d5PihBk2ss8eo3U4=
|
||||||
oKrKwg==
|
|
||||||
-----END CERTIFICATE REQUEST-----
|
-----END CERTIFICATE REQUEST-----
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIICfzCCAiagAwIBAgIUcKLTD+mRsktaa/hUIb5e8INmXn0wCgYIKoZIzj0EAwIw
|
MIICLzCCAdUCFHCi0w/pkbJLWmv4VCG+XvCDZl6AMAoGCCqGSM49BAMCMBYxFDAS
|
||||||
FjEUMBIGA1UEAwwLY2xuIFJvb3QgQ0EwHhcNMjQwNDEwMDk1OTA1WhcNMjUwNDEw
|
BgNVBAMMC2NsbiBSb290IENBMB4XDTI0MTEyMDE4MDE0NloXDTI1MTEyMDE4MDE0
|
||||||
MDk1OTA1WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8G
|
NlowUzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
||||||
A1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRQwEgYDVQQDDAtzdGFja2Vy
|
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAwwDY2xuMIIBIjANBgkq
|
||||||
X2NsbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMYn5Damt52Gediu
|
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt+KCYNwj+YJNQXlJwuFiMvJK5nU1DOcp
|
||||||
gyEGBA1a3c69jj0zpYLa74/YdaPf6mOO3qg1ozx6ZipFdOHhaUDKLwb9c2QAMu9l
|
9dvo4gvBClzwOeaRPsB4qnkWLxZqQ8+/q+LMD7P+QUXHqI49b8SFm7FFEpCL5GEN
|
||||||
/gczMGnmRi0J6a3Nx7pm3UsTjld3vF0UNxrs8s5MVpo1j30AQ0Ftol/SznO0lLMh
|
090F1+GIEUBgEqMPHP3QRfyhnI4hmo0fgGArI7BMhBZrYH7nRKSNoEgpWd8dtm9N
|
||||||
8GKw9+G8PA6FvAkHkpnR7Npr9Ei1hw52Rl6CBuChh4MDrcv58dNflj9G30Ciij1U
|
R/jx7j9sWXtFx6LZoM6yZZXVy6DdDGNk7WR0o98fR3NtT+OzUAkCMJR45aT7SYUN
|
||||||
OLHrLWkYxrneNXF0a+PVtvmGSo+2vnOLqHAi6bVgNZbCnvAyR+3Sme+ufAxD2aQD
|
adCVNcFKsJqVMq0HDoa4sW1u184Fg5Bx38+gDXGn4VsDXwVXNMNxmGNY7ADn+AiR
|
||||||
4/F3ykyJ7kjkqz5E+NiTZbx9oRxzCA3QNeE4FOfHCZ0rFWer7mdTqd5nZ3WlF6Wu
|
q0MLGDu6B5a+Raqt+LAlvvsqbFww8wtWUHQ2gnvXZBEVS+Wi2U7VpQIDAQABMAoG
|
||||||
SWmlrL0CAwEAAaNCMEAwHQYDVR0OBBYEFF4+yBxv8b+F7Jwr1dQbstMRYuO9MB8G
|
CCqGSM49BAMCA0gAMEUCIDcuZHxYHgEr0PHIR6JJF72T7c1JccvIvjl0JIqjjwwq
|
||||||
A1UdIwQYMBaAFIRyY3/2vNLaFHobsQiCxf7nU3QKMAoGCCqGSM49BAMCA0cAMEQC
|
AiEAtzbdnTMuJP16csHt+RrSsIVGUy5G5byI/M0RtIwyQGQ=
|
||||||
IHDwzjxMRMztT4mN7tRMAHQsMCMbdIeKzDr7g0so19X/AiBZV4kvDbQSbVoJ2UIA
|
|
||||||
gZiiN5TD+ucMjU4wLzdiBRAFqA==
|
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import fetch from 'cross-fetch'
|
import fetch from 'cross-fetch'
|
||||||
import crypto from 'crypto'
|
import crypto from 'crypto'
|
||||||
import { getAgent } from '@/lib/proxy'
|
import { getAgent } from '@/lib/proxy'
|
||||||
import { assertContentTypeJson } from './url'
|
import { assertContentTypeJson, assertResponseOk } from './url'
|
||||||
|
|
||||||
export const createInvoice = async ({ socket, rune, cert, label, description, msats, expiry }) => {
|
export const createInvoice = async ({ socket, rune, cert, label, description, msats, expiry }) => {
|
||||||
const agent = getAgent({ hostname: socket, cert })
|
const agent = getAgent({ hostname: socket, cert })
|
||||||
|
@ -27,9 +27,8 @@ export const createInvoice = async ({ socket, rune, cert, label, description, ms
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!res.ok) {
|
assertResponseOk(res)
|
||||||
assertContentTypeJson(res)
|
assertContentTypeJson(res)
|
||||||
}
|
|
||||||
|
|
||||||
const inv = await res.json()
|
const inv = await res.json()
|
||||||
if (inv.error) {
|
if (inv.error) {
|
||||||
|
|
12
lib/url.js
12
lib/url.js
|
@ -213,9 +213,21 @@ export function parseNwcUrl (walletConnectUrl) {
|
||||||
return params
|
return params
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function assertResponseOk (res) {
|
||||||
|
if (!res.ok) {
|
||||||
|
// consume response body to avoid memory leaks
|
||||||
|
// see https://github.com/nodejs/node/issues/51162
|
||||||
|
res.text().catch(() => {})
|
||||||
|
throw new Error(`POST ${res.url}: ${res.status} ${res.statusText}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function assertContentTypeJson (res) {
|
export function assertContentTypeJson (res) {
|
||||||
const contentType = res.headers.get('content-type')
|
const contentType = res.headers.get('content-type')
|
||||||
if (!contentType || !contentType.includes('application/json')) {
|
if (!contentType || !contentType.includes('application/json')) {
|
||||||
|
// consume response body to avoid memory leaks
|
||||||
|
// see https://github.com/nodejs/node/issues/51162
|
||||||
|
res.text().catch(() => {})
|
||||||
throw new Error(`POST ${res.url}: ${res.status} ${res.statusText}`)
|
throw new Error(`POST ${res.url}: ${res.status} ${res.statusText}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { assertContentTypeJson, assertResponseOk } from '@/lib/url'
|
||||||
|
|
||||||
export const galoyBlinkUrl = 'https://api.blink.sv/graphql'
|
export const galoyBlinkUrl = 'https://api.blink.sv/graphql'
|
||||||
export const galoyBlinkDashboardUrl = 'https://dashboard.blink.sv/'
|
export const galoyBlinkDashboardUrl = 'https://dashboard.blink.sv/'
|
||||||
|
|
||||||
|
@ -37,15 +39,10 @@ export async function request (authToken, query, variables = {}) {
|
||||||
body: JSON.stringify({ query, variables })
|
body: JSON.stringify({ query, variables })
|
||||||
}
|
}
|
||||||
const res = await fetch(galoyBlinkUrl, options)
|
const res = await fetch(galoyBlinkUrl, options)
|
||||||
if (res.status >= 400 && res.status <= 599) {
|
|
||||||
// consume res
|
assertResponseOk(res)
|
||||||
res.text().catch(() => {})
|
assertContentTypeJson(res)
|
||||||
if (res.status === 401) {
|
|
||||||
throw new Error('unauthorized')
|
|
||||||
} else {
|
|
||||||
throw new Error('API responded with HTTP ' + res.status)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return res.json()
|
return res.json()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { msatsSatsFloor } from '@/lib/format'
|
import { msatsSatsFloor } from '@/lib/format'
|
||||||
import { lnAddrOptions } from '@/lib/lnurl'
|
import { lnAddrOptions } from '@/lib/lnurl'
|
||||||
|
import { assertContentTypeJson, assertResponseOk } from '@/lib/url'
|
||||||
|
|
||||||
export * from '@/wallets/lightning-address'
|
export * from '@/wallets/lightning-address'
|
||||||
|
|
||||||
|
@ -24,8 +25,13 @@ export const createInvoice = async (
|
||||||
}
|
}
|
||||||
|
|
||||||
// call callback with amount and conditionally comment
|
// call callback with amount and conditionally comment
|
||||||
const res = await (await fetch(callbackUrl.toString())).json()
|
const res = await fetch(callbackUrl.toString())
|
||||||
if (res.status === 'ERROR') {
|
|
||||||
|
assertResponseOk(res)
|
||||||
|
assertContentTypeJson(res)
|
||||||
|
|
||||||
|
const body = await res.json()
|
||||||
|
if (body.status === 'ERROR') {
|
||||||
throw new Error(res.reason)
|
throw new Error(res.reason)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,9 @@ async function getWallet ({ url, adminKey, invoiceKey }) {
|
||||||
headers.append('X-Api-Key', adminKey || invoiceKey)
|
headers.append('X-Api-Key', adminKey || invoiceKey)
|
||||||
|
|
||||||
const res = await fetch(url + path, { method: 'GET', headers })
|
const res = await fetch(url + path, { method: 'GET', headers })
|
||||||
|
|
||||||
|
assertContentTypeJson(res)
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
assertContentTypeJson(res)
|
|
||||||
const errBody = await res.json()
|
const errBody = await res.json()
|
||||||
throw new Error(errBody.detail)
|
throw new Error(errBody.detail)
|
||||||
}
|
}
|
||||||
|
@ -54,8 +55,9 @@ async function postPayment (bolt11, { url, adminKey }) {
|
||||||
const body = JSON.stringify({ bolt11, out: true })
|
const body = JSON.stringify({ bolt11, out: true })
|
||||||
|
|
||||||
const res = await fetch(url + path, { method: 'POST', headers, body })
|
const res = await fetch(url + path, { method: 'POST', headers, body })
|
||||||
|
|
||||||
|
assertContentTypeJson(res)
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
assertContentTypeJson(res)
|
|
||||||
const errBody = await res.json()
|
const errBody = await res.json()
|
||||||
throw new Error(errBody.detail)
|
throw new Error(errBody.detail)
|
||||||
}
|
}
|
||||||
|
@ -73,8 +75,9 @@ async function getPayment (paymentHash, { url, adminKey }) {
|
||||||
headers.append('X-Api-Key', adminKey)
|
headers.append('X-Api-Key', adminKey)
|
||||||
|
|
||||||
const res = await fetch(url + path, { method: 'GET', headers })
|
const res = await fetch(url + path, { method: 'GET', headers })
|
||||||
|
|
||||||
|
assertContentTypeJson(res)
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
assertContentTypeJson(res)
|
|
||||||
const errBody = await res.json()
|
const errBody = await res.json()
|
||||||
throw new Error(errBody.detail)
|
throw new Error(errBody.detail)
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,8 +44,9 @@ export async function createInvoice (
|
||||||
agent,
|
agent,
|
||||||
body
|
body
|
||||||
})
|
})
|
||||||
|
|
||||||
|
assertContentTypeJson(res)
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
assertContentTypeJson(res)
|
|
||||||
const errBody = await res.json()
|
const errBody = await res.json()
|
||||||
throw new Error(errBody.detail)
|
throw new Error(errBody.detail)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { assertContentTypeJson, assertResponseOk } from '@/lib/url'
|
||||||
|
|
||||||
export * from '@/wallets/phoenixd'
|
export * from '@/wallets/phoenixd'
|
||||||
|
|
||||||
export async function testSendPayment (config, { logger }) {
|
export async function testSendPayment (config, { logger }) {
|
||||||
|
@ -24,9 +26,9 @@ export async function sendPayment (bolt11, { url, primaryPassword }) {
|
||||||
headers,
|
headers,
|
||||||
body
|
body
|
||||||
})
|
})
|
||||||
if (!res.ok) {
|
|
||||||
throw new Error(`POST ${res.url}: ${res.status} ${res.statusText}`)
|
assertResponseOk(res)
|
||||||
}
|
assertContentTypeJson(res)
|
||||||
|
|
||||||
const payment = await res.json()
|
const payment = await res.json()
|
||||||
const preimage = payment.paymentPreimage
|
const preimage = payment.paymentPreimage
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { msatsToSats } from '@/lib/format'
|
import { msatsToSats } from '@/lib/format'
|
||||||
|
import { assertContentTypeJson, assertResponseOk } from '@/lib/url'
|
||||||
|
|
||||||
export * from '@/wallets/phoenixd'
|
export * from '@/wallets/phoenixd'
|
||||||
|
|
||||||
|
@ -28,9 +29,9 @@ export async function createInvoice (
|
||||||
headers,
|
headers,
|
||||||
body
|
body
|
||||||
})
|
})
|
||||||
if (!res.ok) {
|
|
||||||
throw new Error(`POST ${res.url}: ${res.status} ${res.statusText}`)
|
assertResponseOk(res)
|
||||||
}
|
assertContentTypeJson(res)
|
||||||
|
|
||||||
const payment = await res.json()
|
const payment = await res.json()
|
||||||
return payment.serialized
|
return payment.serialized
|
||||||
|
|
Loading…
Reference in New Issue