ekzyis 243b094fcd
Wallet debug logs (#2307)
* Add wallet debug logs

* Add checkbox to toggle diagnostics

* Require authentication for /wallets/debug

* Update debug log messages

* Use me.privates.diagnostics as source of truth
2025-07-23 10:42:14 -05:00

260 lines
5.2 KiB
JavaScript

import { gql } from '@apollo/client'
const VAULT_ENTRY_FIELDS = gql`
fragment VaultEntryFields on VaultEntry {
id
iv
value
}
`
export const CLEAR_VAULT = gql`
mutation ClearVault {
clearVault
}
`
const WALLET_PROTOCOL_FIELDS = gql`
${VAULT_ENTRY_FIELDS}
# need to use field aliases because of https://github.com/graphql/graphql-js/issues/53
fragment WalletProtocolFields on WalletProtocol {
id
name
send
enabled
config {
__typename
... on WalletSendNWC {
id
encryptedUrl: url {
...VaultEntryFields
}
}
... on WalletSendLNbits {
id
url
encryptedApiKey: apiKey {
...VaultEntryFields
}
}
... on WalletSendPhoenixd {
id
url
encryptedApiKey: apiKey {
...VaultEntryFields
}
}
... on WalletSendBlink {
id
encryptedCurrency: currency {
...VaultEntryFields
}
encryptedApiKey: apiKey {
...VaultEntryFields
}
}
... on WalletSendWebLN {
id
}
... on WalletSendLNC {
id
encryptedPairingPhrase: pairingPhrase {
...VaultEntryFields
}
encryptedLocalKey: localKey {
...VaultEntryFields
}
encryptedRemoteKey: remoteKey {
...VaultEntryFields
}
encryptedServerHost: serverHost {
...VaultEntryFields
}
}
... on WalletRecvNWC {
id
url
}
... on WalletRecvLNbits {
id
url
apiKey
}
... on WalletRecvPhoenixd {
id
url
apiKey
}
... on WalletRecvBlink {
id
currency
apiKey
}
... on WalletRecvLightningAddress {
id
address
}
... on WalletRecvCLNRest {
id
socket
rune
cert
}
... on WalletRecvLNDGRPC {
id
socket
macaroon
cert
}
}
}
`
const WALLET_TEMPLATE_FIELDS = gql`
fragment WalletTemplateFields on WalletTemplate {
# need to use field alias because of https://github.com/graphql/graphql-js/issues/53
id: name
send
receive
protocols {
id
name
send
}
}
`
const USER_WALLET_FIELDS = gql`
${WALLET_PROTOCOL_FIELDS}
${WALLET_TEMPLATE_FIELDS}
fragment WalletFields on Wallet {
id
name
priority
send
receive
protocols {
...WalletProtocolFields
}
template {
...WalletTemplateFields
}
}
`
const WALLET_OR_TEMPLATE_FIELDS = gql`
${USER_WALLET_FIELDS}
${WALLET_TEMPLATE_FIELDS}
fragment WalletOrTemplateFields on WalletOrTemplate {
... on Wallet {
...WalletFields
}
... on WalletTemplate {
...WalletTemplateFields
}
}
`
export const WALLETS = gql`
${WALLET_OR_TEMPLATE_FIELDS}
query Wallets {
wallets {
...WalletOrTemplateFields
}
}
`
export const WALLET = gql`
${WALLET_OR_TEMPLATE_FIELDS}
query Wallet($id: ID, $name: String) {
wallet(id: $id, name: $name) {
...WalletOrTemplateFields
}
}
`
export const REMOVE_WALLET = gql`
mutation removeWallet($id: ID!) {
removeWallet(id: $id)
}
`
export const SET_WALLET_PRIORITIES = gql`
mutation SetWalletPriorities($priorities: [WalletPriorityUpdate!]!) {
setWalletPriorities(priorities: $priorities)
}
`
export const UPDATE_WALLET_ENCRYPTION = gql`
mutation UpdateWalletEncryption($keyHash: String!, $wallets: [WalletEncryptionUpdate!]!) {
updateWalletEncryption(keyHash: $keyHash, wallets: $wallets)
}
`
export const UPDATE_KEY_HASH = gql`
mutation UpdateKeyHash($keyHash: String!) {
updateKeyHash(keyHash: $keyHash)
}
`
export const RESET_WALLETS = gql`
mutation ResetWallets($newKeyHash: String!) {
resetWallets(newKeyHash: $newKeyHash)
}
`
export const DISABLE_PASSPHRASE_EXPORT = gql`
mutation DisablePassphraseExport {
disablePassphraseExport
}
`
export const WALLET_SETTINGS = gql`
query WalletSettings {
walletSettings {
receiveCreditsBelowSats
sendCreditsBelowSats
proxyReceive
autoWithdrawMaxFeePercent
autoWithdrawMaxFeeTotal
autoWithdrawThreshold
}
}
`
export const SET_WALLET_SETTINGS = gql`
mutation SetWalletSettings($settings: WalletSettingsInput!) {
setWalletSettings(settings: $settings)
}
`
export const ADD_WALLET_LOG = gql`
mutation AddWalletLog($protocolId: Int, $level: String!, $message: String!, $timestamp: Date!, $invoiceId: Int) {
addWalletLog(protocolId: $protocolId, level: $level, message: $message, timestamp: $timestamp, invoiceId: $invoiceId)
}
`
export const WALLET_LOGS = gql`
query WalletLogs($protocolId: Int, $cursor: String, $debug: Boolean) {
walletLogs(protocolId: $protocolId, cursor: $cursor, debug: $debug) {
entries {
id
level
message
createdAt
wallet {
name
}
context
}
cursor
}
}
`
export const DELETE_WALLET_LOGS = gql`
mutation DeleteWalletLogs($protocolId: Int, $debug: Boolean) {
deleteWalletLogs(protocolId: $protocolId, debug: $debug)
}
`