Merge pull request #1709 from stackernews/fix-client-pending-forwards-paid
Fix pending forwards considered paid by client
This commit is contained in:
commit
0e765d4179
|
@ -232,9 +232,15 @@ export function useAct ({ query = ACT_MUTATION, ...options } = {}) {
|
||||||
// because the mutation name we use varies,
|
// because the mutation name we use varies,
|
||||||
// we need to extract the result/invoice from the response
|
// we need to extract the result/invoice from the response
|
||||||
const getPaidActionResult = data => Object.values(data)[0]
|
const getPaidActionResult = data => Object.values(data)[0]
|
||||||
|
const wallets = useSendWallets()
|
||||||
|
|
||||||
const [act] = usePaidMutation(query, {
|
const [act] = usePaidMutation(query, {
|
||||||
waitFor: inv => inv?.satsReceived > 0,
|
waitFor: inv =>
|
||||||
|
// if we have attached wallets, we might be paying a wrapped invoice in which case we need to make sure
|
||||||
|
// we don't prematurely consider the payment as successful (important for receiver fallbacks)
|
||||||
|
wallets.length > 0
|
||||||
|
? inv?.actionState === 'PAID'
|
||||||
|
: inv?.satsReceived > 0,
|
||||||
...options,
|
...options,
|
||||||
update: (cache, { data }) => {
|
update: (cache, { data }) => {
|
||||||
const response = getPaidActionResult(data)
|
const response = getPaidActionResult(data)
|
||||||
|
|
|
@ -23,12 +23,12 @@ export default function useInvoice () {
|
||||||
throw new InvoiceExpiredError(data.invoice)
|
throw new InvoiceExpiredError(data.invoice)
|
||||||
}
|
}
|
||||||
|
|
||||||
const failed = cancelled || actionError
|
const failedForward = forwardStatus && forwardStatus !== 'CONFIRMED'
|
||||||
|
if (failedForward) {
|
||||||
if (failed && (forwardStatus && forwardStatus !== 'CONFIRMED')) {
|
|
||||||
throw new WalletReceiverError(data.invoice)
|
throw new WalletReceiverError(data.invoice)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const failed = cancelled || actionError
|
||||||
if (failed) {
|
if (failed) {
|
||||||
throw new InvoiceCanceledError(data.invoice, actionError)
|
throw new InvoiceCanceledError(data.invoice, actionError)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue