Fix missing logs on save (#1729)
* Fix missing logs on save * fix receive logs wrt device sync --------- Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com> Co-authored-by: k00b <k00b@stacker.news>
This commit is contained in:
parent
62a922247d
commit
6098d39574
|
@ -22,7 +22,7 @@ import { lnAddrOptions } from '@/lib/lnurl'
|
|||
import { GqlAuthenticationError, GqlAuthorizationError, GqlInputError } from '@/lib/error'
|
||||
import { getNodeSockets, getOurPubkey } from '../lnd'
|
||||
import validateWallet from '@/wallets/validate'
|
||||
import { canReceive } from '@/wallets/common'
|
||||
import { canReceive, getWalletByType } from '@/wallets/common'
|
||||
import performPaidAction from '../paidAction'
|
||||
import performPayingAction from '../payingAction'
|
||||
import { timeoutSignal, withTimeout } from '@/lib/time'
|
||||
|
@ -65,6 +65,7 @@ function injectResolvers (resolvers) {
|
|||
|
||||
return await upsertWallet({
|
||||
wallet,
|
||||
walletDef,
|
||||
testCreateInvoice:
|
||||
walletDef.testCreateInvoice && validateLightning && canReceive({ def: walletDef, config: data })
|
||||
? (data) => withTimeout(
|
||||
|
@ -558,7 +559,10 @@ const resolvers = {
|
|||
|
||||
const logger = walletLogger({ wallet, models })
|
||||
await models.wallet.delete({ where: { userId: me.id, id: Number(id) } })
|
||||
logger.info('wallet detached')
|
||||
|
||||
if (canReceive({ def: getWalletByType(wallet.type), config: wallet.wallet })) {
|
||||
logger.info('details for receiving deleted')
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
|
@ -766,7 +770,7 @@ export const walletLogger = ({ wallet, models }) => {
|
|||
}
|
||||
|
||||
async function upsertWallet (
|
||||
{ wallet, testCreateInvoice }, { settings, data, vaultEntries }, { logger, me, models }) {
|
||||
{ wallet, walletDef, testCreateInvoice }, { settings, data, vaultEntries }, { logger, me, models }) {
|
||||
if (!me) {
|
||||
throw new GqlAuthenticationError()
|
||||
}
|
||||
|
@ -872,24 +876,26 @@ async function upsertWallet (
|
|||
)
|
||||
}
|
||||
|
||||
txs.push(
|
||||
models.walletLog.createMany({
|
||||
data: {
|
||||
userId: me.id,
|
||||
wallet: wallet.type,
|
||||
level: 'SUCCESS',
|
||||
message: id ? 'wallet details updated' : 'wallet attached'
|
||||
}
|
||||
}),
|
||||
models.walletLog.create({
|
||||
data: {
|
||||
userId: me.id,
|
||||
wallet: wallet.type,
|
||||
level: enabled ? 'SUCCESS' : 'INFO',
|
||||
message: enabled ? 'wallet enabled' : 'wallet disabled'
|
||||
}
|
||||
})
|
||||
)
|
||||
if (canReceive({ def: walletDef, config: walletData })) {
|
||||
txs.push(
|
||||
models.walletLog.createMany({
|
||||
data: {
|
||||
userId: me.id,
|
||||
wallet: wallet.type,
|
||||
level: 'SUCCESS',
|
||||
message: id ? 'details for receiving updated' : 'details for receiving saved'
|
||||
}
|
||||
}),
|
||||
models.walletLog.create({
|
||||
data: {
|
||||
userId: me.id,
|
||||
wallet: wallet.type,
|
||||
level: enabled ? 'SUCCESS' : 'INFO',
|
||||
message: enabled ? 'receiving enabled' : 'receiving disabled'
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
const [upsertedWallet] = await models.$transaction(txs)
|
||||
return upsertedWallet
|
||||
|
|
|
@ -84,33 +84,52 @@ export function useWalletConfigurator (wallet) {
|
|||
}, [me?.id, wallet.def.name, reloadLocalWallets])
|
||||
|
||||
const save = useCallback(async (newConfig, validateLightning = true) => {
|
||||
const { clientConfig, serverConfig } = await _validate(newConfig, validateLightning)
|
||||
const { clientWithShared: oldClientConfig } = siftConfig(wallet.def.fields, wallet.config)
|
||||
const { clientConfig: newClientConfig, serverConfig: newServerConfig } = await _validate(newConfig, validateLightning)
|
||||
|
||||
const oldCanSend = canSend({ def: wallet.def, config: oldClientConfig })
|
||||
const newCanSend = canSend({ def: wallet.def, config: newClientConfig })
|
||||
|
||||
// if vault is active, encrypt and send to server regardless of wallet type
|
||||
if (isActive) {
|
||||
await _saveToServer(serverConfig, clientConfig, validateLightning)
|
||||
await _saveToServer(newServerConfig, newClientConfig, validateLightning)
|
||||
await _detachFromLocal()
|
||||
} else {
|
||||
if (canSend({ def: wallet.def, config: clientConfig })) {
|
||||
await _saveToLocal(clientConfig)
|
||||
if (newCanSend) {
|
||||
await _saveToLocal(newClientConfig)
|
||||
} else {
|
||||
// if it previously had a client config, remove it
|
||||
await _detachFromLocal()
|
||||
}
|
||||
if (canReceive({ def: wallet.def, config: serverConfig })) {
|
||||
await _saveToServer(serverConfig, clientConfig, validateLightning)
|
||||
if (canReceive({ def: wallet.def, config: newServerConfig })) {
|
||||
await _saveToServer(newServerConfig, newClientConfig, validateLightning)
|
||||
} else if (wallet.config.id) {
|
||||
// we previously had a server config
|
||||
if (wallet.vaultEntries.length > 0) {
|
||||
// we previously had a server config with vault entries, save it
|
||||
await _saveToServer(serverConfig, clientConfig, validateLightning)
|
||||
await _saveToServer(newServerConfig, newClientConfig, validateLightning)
|
||||
} else {
|
||||
// we previously had a server config without vault entries, remove it
|
||||
await _detachFromServer()
|
||||
}
|
||||
}
|
||||
}
|
||||
}, [isActive, wallet.def, _saveToServer, _saveToLocal, _validate,
|
||||
|
||||
if (newCanSend) {
|
||||
if (oldCanSend) {
|
||||
logger.ok('details for sending updated')
|
||||
} else {
|
||||
logger.ok('details for sending saved')
|
||||
}
|
||||
if (newConfig.enabled) {
|
||||
logger.ok('sending enabled')
|
||||
} else {
|
||||
logger.info('sending disabled')
|
||||
}
|
||||
} else if (oldCanSend) {
|
||||
logger.info('details for sending deleted')
|
||||
}
|
||||
}, [isActive, wallet.def, wallet.config, _saveToServer, _saveToLocal, _validate,
|
||||
_detachFromLocal, _detachFromServer])
|
||||
|
||||
const detach = useCallback(async () => {
|
||||
|
@ -125,7 +144,9 @@ export function useWalletConfigurator (wallet) {
|
|||
// if vault is not active and has a client config, delete from local storage
|
||||
await _detachFromLocal()
|
||||
}
|
||||
}, [isActive, _detachFromServer, _detachFromLocal])
|
||||
|
||||
logger.info('details for sending deleted')
|
||||
}, [logger, isActive, _detachFromServer, _detachFromLocal])
|
||||
|
||||
return { save, detach }
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue