From aae442332627307b290f1d306f2e726d67feae0d Mon Sep 17 00:00:00 2001 From: CanvasL <746591811@qq.com> Date: Thu, 20 Feb 2025 21:23:41 +0800 Subject: [PATCH 1/3] feat: add stop function --- .../balance-payment-feature.tsx | 58 ++++++++++++++++--- 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx b/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx index 947d811..93c8a01 100644 --- a/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx +++ b/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx @@ -251,6 +251,42 @@ export default function BalancePaymentFeature() { } } + const handleStop = async () => { + if (!sk || !relay || !machinePubkey) { + toast.error('Not initialized') + return + } + + try { + const sTag = selectedTab === 'decharge' ? 'dephy-decharge-controller' : 'dephy-gacha-controller' + const contentData = { + Request: { + to_status: 'Available', + reason: 'UserRequest', + initial_request: '0000000000000000000000000000000000000000000000000000000000000000', + payload: '', + }, + } + + const content = JSON.stringify(contentData) + const eventTemplate = { + kind: 1573, + created_at: Math.floor(Date.now() / 1000), + tags: [ + ['s', sTag], + ['p', machinePubkey], + ], + content, + } + const signedEvent = finalizeEvent(eventTemplate, sk) + await relay.publish(signedEvent) + toast.success('Stop request sent') + handleReset() + } catch (error) { + toast.error(`Failed to send stop request: ${error}`) + } + } + const publishToRelay = async (nonce: number, recoverInfo: any, user: string) => { if (!sk) { toast.error('sk not initialized') @@ -606,15 +642,21 @@ export default function BalancePaymentFeature() { {recoverInfo && ( From b1dcc0179fd8ad017920a9a659210c0e985e2490 Mon Sep 17 00:00:00 2001 From: CanvasL <746591811@qq.com> Date: Thu, 20 Feb 2025 21:35:35 +0800 Subject: [PATCH 2/3] fix: initial request id --- .../balance-payment/balance-payment-feature.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx b/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx index 93c8a01..31df412 100644 --- a/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx +++ b/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx @@ -40,6 +40,7 @@ export default function BalancePaymentFeature() { const [expandedEventIndex, setExpandedEventIndex] = useState(null) const [isChargeDisabled, setIsChargeDisabled] = useState(false) const isTabDisabled = chargeStatus !== 'idle' && chargeStatus !== 'available' + const [initialRequestId, setInitialRequestId] = useState() const subscriptionRef = useRef(null) @@ -252,7 +253,7 @@ export default function BalancePaymentFeature() { } const handleStop = async () => { - if (!sk || !relay || !machinePubkey) { + if (!sk || !relay || !machinePubkey || !initialRequestId) { toast.error('Not initialized') return } @@ -263,7 +264,7 @@ export default function BalancePaymentFeature() { Request: { to_status: 'Available', reason: 'UserRequest', - initial_request: '0000000000000000000000000000000000000000000000000000000000000000', + initial_request: initialRequestId, payload: '', }, } @@ -280,7 +281,7 @@ export default function BalancePaymentFeature() { } const signedEvent = finalizeEvent(eventTemplate, sk) await relay.publish(signedEvent) - toast.success('Stop request sent') + toast.success(`Stop request id [${initialRequestId}]`) handleReset() } catch (error) { toast.error(`Failed to send stop request: ${error}`) @@ -370,6 +371,7 @@ export default function BalancePaymentFeature() { const content = JSON.parse(event.content) if (content.Request) { setChargeStatus('requested') + setInitialRequestId(event.id); } else if (content.Status) { if (content.Status.status === 'Working') { setChargeStatus('working') From 15b78f89593ab0d59cb0c919a278b6fa2a1ebee2 Mon Sep 17 00:00:00 2001 From: CanvasL <746591811@qq.com> Date: Thu, 20 Feb 2025 21:43:09 +0800 Subject: [PATCH 3/3] chore: initial request id reset --- .../src/components/balance-payment/balance-payment-feature.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx b/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx index 31df412..2563b6a 100644 --- a/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx +++ b/balance-payment/app/src/components/balance-payment/balance-payment-feature.tsx @@ -40,7 +40,7 @@ export default function BalancePaymentFeature() { const [expandedEventIndex, setExpandedEventIndex] = useState(null) const [isChargeDisabled, setIsChargeDisabled] = useState(false) const isTabDisabled = chargeStatus !== 'idle' && chargeStatus !== 'available' - const [initialRequestId, setInitialRequestId] = useState() + const [initialRequestId, setInitialRequestId] = useState(null) const subscriptionRef = useRef(null) @@ -409,6 +409,7 @@ export default function BalancePaymentFeature() { setEvents([]) setChargeStatus('idle') setIsChargeDisabled(false) + setInitialRequestId(null) } const ProgressBar = () => {