72e2d19433
* Inject wallet logger interface * Include method in NWC logs * Fix wrong page total * Poll for new logs every second * Fix overlapping pagination * Remove unused total * Better logs for incoming payments * Use _setLogs instead of wrapper * Remove inconsistent receive log * Remove console.log from wallet logger on server * Fix missing 'wallet detached' log * Fix confirm_withdrawl code * Remove duplicate autowithdrawal log * Add context to log * Add more context * Better table styling * Move CSS for wallet logs into one file * remove unused logNav class * rename classes * Align key with second column * Fix TypeError if context empty * Check content-type header before calling res.json() * Fix duplicate 'failed to create invoice' * Parse details from LND error * Fix invalid DOM property 'colspan' * P2P zap logs with context * Remove unnecessary withdrawal error log * the code assignment was broken anyway * we already log withdrawal errors using .catch on payViaPaymentRequest * Don't show outgoing fee to receiver to avoid confusion * Fix typo in comment * Log if invoice was canceled by payer * Automatically populate context from bolt11 * Fix missing context * Fix wrap errors not logged * Only log cancel if client canceled * Remove unused imports * Log withdrawal/forward success/error in payment flow * Fix boss not passed to checkInvoice * Fix TypeError * Fix database timeouts caused by logger The logger shares the same connection pool with any currently running transaction. This means that we enter a classic deadlock when we await logger calls: the logger call is waiting for a connection but the currently running transaction is waiting for the logger call to finish before it can release a connection. * Fix cache returning undefined * Fix typo in comment * Add padding-right to key in log context * Always use 'incoming payment failed:' --------- Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
205 lines
3.8 KiB
JavaScript
205 lines
3.8 KiB
JavaScript
import { gql } from '@apollo/client'
|
|
import { ITEM_FULL_FIELDS } from './items'
|
|
import { VAULT_ENTRY_FIELDS } from './vault'
|
|
|
|
export const INVOICE_FIELDS = gql`
|
|
fragment InvoiceFields on Invoice {
|
|
id
|
|
hash
|
|
hmac
|
|
bolt11
|
|
satsRequested
|
|
satsReceived
|
|
cancelled
|
|
confirmedAt
|
|
expiresAt
|
|
nostr
|
|
isHeld
|
|
comment
|
|
lud18Data
|
|
actionState
|
|
actionType
|
|
actionError
|
|
confirmedPreimage
|
|
}`
|
|
|
|
export const INVOICE_FULL = gql`
|
|
${ITEM_FULL_FIELDS}
|
|
${INVOICE_FIELDS}
|
|
|
|
query Invoice($id: ID!) {
|
|
invoice(id: $id) {
|
|
...InvoiceFields
|
|
item {
|
|
...ItemFullFields
|
|
}
|
|
}
|
|
}`
|
|
|
|
export const INVOICE = gql`
|
|
${INVOICE_FIELDS}
|
|
|
|
query Invoice($id: ID!) {
|
|
invoice(id: $id) {
|
|
...InvoiceFields
|
|
}
|
|
}`
|
|
|
|
export const WITHDRAWL = gql`
|
|
query Withdrawl($id: ID!) {
|
|
withdrawl(id: $id) {
|
|
id
|
|
createdAt
|
|
bolt11
|
|
satsPaid
|
|
satsFeePaying
|
|
satsFeePaid
|
|
status
|
|
autoWithdraw
|
|
preimage
|
|
}
|
|
}`
|
|
|
|
export const WALLET_HISTORY = gql`
|
|
${ITEM_FULL_FIELDS}
|
|
|
|
query WalletHistory($cursor: String, $inc: String) {
|
|
walletHistory(cursor: $cursor, inc: $inc) {
|
|
facts {
|
|
id
|
|
bolt11
|
|
autoWithdraw
|
|
type
|
|
createdAt
|
|
sats
|
|
status
|
|
type
|
|
description
|
|
invoiceComment
|
|
invoicePayerData
|
|
subName
|
|
item {
|
|
...ItemFullFields
|
|
}
|
|
}
|
|
cursor
|
|
}
|
|
}
|
|
`
|
|
|
|
export const CREATE_WITHDRAWL = gql`
|
|
mutation createWithdrawl($invoice: String!, $maxFee: Int!) {
|
|
createWithdrawl(invoice: $invoice, maxFee: $maxFee) {
|
|
id
|
|
}
|
|
}`
|
|
|
|
export const SEND_TO_LNADDR = gql`
|
|
mutation sendToLnAddr($addr: String!, $amount: Int!, $maxFee: Int!, $comment: String, $identifier: Boolean, $name: String, $email: String) {
|
|
sendToLnAddr(addr: $addr, amount: $amount, maxFee: $maxFee, comment: $comment, identifier: $identifier, name: $name, email: $email) {
|
|
id
|
|
}
|
|
}`
|
|
|
|
export const REMOVE_WALLET =
|
|
gql`
|
|
mutation removeWallet($id: ID!) {
|
|
removeWallet(id: $id)
|
|
}
|
|
`
|
|
// XXX [WALLET] this needs to be updated if another server wallet is added
|
|
export const WALLET_FIELDS = gql`
|
|
${VAULT_ENTRY_FIELDS}
|
|
fragment WalletFields on Wallet {
|
|
id
|
|
priority
|
|
type
|
|
updatedAt
|
|
enabled
|
|
vaultEntries {
|
|
...VaultEntryFields
|
|
}
|
|
wallet {
|
|
__typename
|
|
... on WalletLightningAddress {
|
|
address
|
|
}
|
|
... on WalletLnd {
|
|
socket
|
|
macaroon
|
|
cert
|
|
}
|
|
... on WalletCln {
|
|
socket
|
|
rune
|
|
cert
|
|
}
|
|
... on WalletLnbits {
|
|
url
|
|
invoiceKey
|
|
}
|
|
... on WalletNwc {
|
|
nwcUrlRecv
|
|
}
|
|
... on WalletPhoenixd {
|
|
url
|
|
secondaryPassword
|
|
}
|
|
... on WalletBlink {
|
|
apiKeyRecv
|
|
currencyRecv
|
|
}
|
|
}
|
|
}
|
|
`
|
|
|
|
export const WALLET = gql`
|
|
${WALLET_FIELDS}
|
|
query Wallet($id: ID!) {
|
|
wallet(id: $id) {
|
|
...WalletFields
|
|
}
|
|
}
|
|
`
|
|
|
|
// XXX [WALLET] this needs to be updated if another server wallet is added
|
|
export const WALLET_BY_TYPE = gql`
|
|
${WALLET_FIELDS}
|
|
query WalletByType($type: String!) {
|
|
walletByType(type: $type) {
|
|
...WalletFields
|
|
}
|
|
}
|
|
`
|
|
|
|
export const WALLETS = gql`
|
|
${WALLET_FIELDS}
|
|
query Wallets {
|
|
wallets {
|
|
...WalletFields
|
|
}
|
|
}
|
|
`
|
|
|
|
export const WALLET_LOGS = gql`
|
|
query WalletLogs($type: String, $from: String, $to: String, $cursor: String) {
|
|
walletLogs(type: $type, from: $from, to: $to, cursor: $cursor) {
|
|
cursor
|
|
entries {
|
|
id
|
|
createdAt
|
|
wallet
|
|
level
|
|
message
|
|
context
|
|
}
|
|
}
|
|
}
|
|
`
|
|
|
|
export const SET_WALLET_PRIORITY = gql`
|
|
mutation SetWalletPriority($id: ID!, $priority: Int!) {
|
|
setWalletPriority(id: $id, priority: $priority)
|
|
}
|
|
`
|