fix(handlers): await NostrSend calls throughout codebase
Some checks failed
Docker Compose Actions Workflow / test (push) Has been cancelled
Some checks failed
Docker Compose Actions Workflow / test (push) Has been cancelled
Update all NostrSend call sites to properly handle the async nature of the function now that it returns Promise<void>. Changes: - handler.ts: Add async to sendResponse, await nostrSend calls - debitManager.ts: Add logging for Kind 21002 response sending - nostrMiddleware.ts: Update nostrSend signature - tlvFilesStorageProcessor.ts: Update nostrSend signature - webRTC/index.ts: Add async/await for nostrSend calls This ensures Kind 21002 (ndebit) responses are properly sent to wallet clients, fixing the "Debit request failed" issue in ShockWallet. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
30d818c4d4
commit
748a2d3ed6
5 changed files with 8 additions and 7 deletions
|
|
@ -105,7 +105,7 @@ export default (serverMethods: Types.ServerMethods, mainHandler: Main, nostrSett
|
||||||
|
|
||||||
return {
|
return {
|
||||||
Stop: () => { mainHandler.adminManager.setNostrConnected(false); return nostr.Stop },
|
Stop: () => { mainHandler.adminManager.setNostrConnected(false); return nostr.Stop },
|
||||||
Send: (...args) => nostr.Send(...args),
|
Send: async (...args) => nostr.Send(...args),
|
||||||
Ping: () => nostr.Ping(),
|
Ping: () => nostr.Ping(),
|
||||||
Reset: (settings: NostrSettings) => nostr.Reset(settings)
|
Reset: (settings: NostrSettings) => nostr.Reset(settings)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -153,13 +153,14 @@ export class DebitManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
notifyPaymentSuccess = (debitRes: NdebitSuccess, event: { pub: string, id: string, appId: string }) => {
|
notifyPaymentSuccess = (debitRes: NdebitSuccess, event: { pub: string, id: string, appId: string }) => {
|
||||||
|
this.logger("✅ [DEBIT REQUEST] Payment successful, sending OK response to", event.pub.slice(0, 16) + "...", "for event", event.id.slice(0, 16) + "...")
|
||||||
this.sendDebitResponse(debitRes, event)
|
this.sendDebitResponse(debitRes, event)
|
||||||
}
|
}
|
||||||
|
|
||||||
sendDebitResponse = (debitRes: NdebitFailure | NdebitSuccess, event: { pub: string, id: string, appId: string }) => {
|
sendDebitResponse = (debitRes: NdebitFailure | NdebitSuccess, event: { pub: string, id: string, appId: string }) => {
|
||||||
|
this.logger("📤 [DEBIT RESPONSE] Sending Kind 21002 response:", JSON.stringify(debitRes), "to", event.pub.slice(0, 16) + "...")
|
||||||
const e = newNdebitResponse(JSON.stringify(debitRes), event)
|
const e = newNdebitResponse(JSON.stringify(debitRes), event)
|
||||||
this.storage.NostrSender().Send({ type: 'app', appId: event.appId }, { type: 'event', event: e, encrypt: { toPub: event.pub } })
|
this.storage.NostrSender().Send({ type: 'app', appId: event.appId }, { type: 'event', event: e, encrypt: { toPub: event.pub } })
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
payNdebitInvoice = async (event: NostrEvent, pointerdata: NdebitData): Promise<HandleNdebitRes> => {
|
payNdebitInvoice = async (event: NostrEvent, pointerdata: NdebitData): Promise<HandleNdebitRes> => {
|
||||||
|
|
|
||||||
|
|
@ -132,12 +132,12 @@ const handleNostrSettings = (settings: NostrSettings) => {
|
||||||
send(event)
|
send(event)
|
||||||
})
|
})
|
||||||
} */
|
} */
|
||||||
const sendToNostr: NostrSend = (initiator, data, relays) => {
|
const sendToNostr: NostrSend = async (initiator, data, relays) => {
|
||||||
if (!subProcessHandler) {
|
if (!subProcessHandler) {
|
||||||
getLogger({ component: "nostrMiddleware" })(ERROR, "nostr was not initialized")
|
getLogger({ component: "nostrMiddleware" })(ERROR, "nostr was not initialized")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
subProcessHandler.Send(initiator, data, relays)
|
await subProcessHandler.Send(initiator, data, relays)
|
||||||
}
|
}
|
||||||
|
|
||||||
send({ type: 'ready' })
|
send({ type: 'ready' })
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ class TlvFilesStorageProcessor {
|
||||||
throw new Error('Unknown metric type: ' + t)
|
throw new Error('Unknown metric type: ' + t)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.wrtc.attachNostrSend((initiator: SendInitiator, data: SendData, relays?: string[] | undefined) => {
|
this.wrtc.attachNostrSend(async (initiator: SendInitiator, data: SendData, relays?: string[] | undefined) => {
|
||||||
this.sendResponse({
|
this.sendResponse({
|
||||||
success: true,
|
success: true,
|
||||||
type: 'nostrSend',
|
type: 'nostrSend',
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,11 @@ export default class webRTC {
|
||||||
attachNostrSend(f: NostrSend) {
|
attachNostrSend(f: NostrSend) {
|
||||||
this._nostrSend = f
|
this._nostrSend = f
|
||||||
}
|
}
|
||||||
private nostrSend: NostrSend = (initiator: SendInitiator, data: SendData, relays?: string[] | undefined) => {
|
private nostrSend: NostrSend = async (initiator: SendInitiator, data: SendData, relays?: string[] | undefined) => {
|
||||||
if (!this._nostrSend) {
|
if (!this._nostrSend) {
|
||||||
throw new Error("No nostrSend attached")
|
throw new Error("No nostrSend attached")
|
||||||
}
|
}
|
||||||
this._nostrSend(initiator, data, relays)
|
await this._nostrSend(initiator, data, relays)
|
||||||
}
|
}
|
||||||
|
|
||||||
private sendCandidate = (u: WebRtcUserInfo, candidate: string) => {
|
private sendCandidate = (u: WebRtcUserInfo, candidate: string) => {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue