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 = () => {