0xtrails 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,9 +14,8 @@ import { useConnections, useAccount, useWalletClient } from "wagmi"
14
14
  import { ChevronDown } from "lucide-react"
15
15
  import { getExplorerUrl } from "../../explorer.js"
16
16
  import { ErrorDisplay } from "./ErrorDisplay.js"
17
- import { attemptSwitchChain } from "../../chainSwitch.js"
18
17
  import { logger } from "../../logger.js"
19
- import { useTrailsRefund } from "../../refund.js"
18
+ import { useIntentRecover } from "../../recover.js"
20
19
 
21
20
  interface AccountIntentTransactionHistoryProps {
22
21
  accountAddress?: string
@@ -71,27 +70,18 @@ const TransactionItem: React.FC<{
71
70
  // Track refund transaction hash per intent
72
71
  const [refundTxHash, setRefundTxHash] = useState<`0x${string}` | null>(null)
73
72
 
74
- // Check if intent is not completed
75
- const isCompleted =
76
- transaction.executionStatus === "executed" ||
77
- transaction.executionStatus === "completed" ||
78
- transaction.executionStatus === "succeeded"
79
-
80
- // Hook for refunding intents (recover) - call early to get hasIntentBalance
73
+ // Hook for recovering intents - call early to get hasIntentBalance
74
+ // Always check balances regardless of execution status, but skip if already refunded
81
75
  const {
82
- signPayload,
83
- getRefundTx,
76
+ recover,
84
77
  isLoadingIntent,
85
78
  isLoadingBalances,
86
79
  intentError,
87
80
  balancesError,
88
81
  hasIntentBalance,
89
82
  refetchIntent,
90
- } = useTrailsRefund({
91
- intentId:
92
- !isCompleted && transaction.intentId && !refundTxHash
93
- ? transaction.intentId
94
- : "",
83
+ } = useIntentRecover({
84
+ intentId: transaction.intentId && !refundTxHash ? transaction.intentId : "",
95
85
  walletClient: walletClient || undefined,
96
86
  })
97
87
 
@@ -102,24 +92,15 @@ const TransactionItem: React.FC<{
102
92
  return () => {
103
93
  onRefetch()
104
94
  // Refetch intent data and balances to update recover button state
105
- if (!isCompleted && transaction.intentId && !refundTxHash) {
95
+ if (transaction.intentId && !refundTxHash) {
106
96
  refetchIntent()
107
97
  }
108
98
  }
109
- }, [
110
- onRefetch,
111
- isCompleted,
112
- transaction.intentId,
113
- refundTxHash,
114
- refetchIntent,
115
- ])
99
+ }, [onRefetch, transaction.intentId, refundTxHash, refetchIntent])
116
100
 
101
+ // Allow recovery for any intent with balances, regardless of execution status
117
102
  const canRecover =
118
- !isCompleted &&
119
- transaction.intentId &&
120
- walletClient &&
121
- !refundTxHash &&
122
- hasIntentBalance
103
+ transaction.intentId && walletClient && !refundTxHash && hasIntentBalance
123
104
 
124
105
  const [isRecovering, setIsRecovering] = useState(false)
125
106
  const [recoverError, setRecoverError] = useState<string | null>(null)
@@ -136,36 +117,16 @@ const TransactionItem: React.FC<{
136
117
  setIsRecovering(true)
137
118
  setRecoverError(null)
138
119
 
139
- // Sign the payload
140
- const { signature, payload } = await signPayload()
141
-
142
- // Get the refund transaction
143
- const refundTx = await getRefundTx({
144
- signedHash: signature,
145
- payload,
146
- })
147
-
148
- // Ensure we're on the correct chain before sending
149
- // attemptSwitchChain already checks if we're on the correct chain
150
- await attemptSwitchChain({
151
- walletClient,
152
- desiredChainId: refundTx.chainId,
153
- })
154
-
155
- // Send the refund transaction with explicit chain
156
- const hash = await walletClient.sendTransaction({
157
- to: refundTx.to,
158
- data: refundTx.data,
159
- chain: refundTx.chain,
160
- })
120
+ // Use the recover method which handles everything automatically
121
+ const { txHash } = await recover()
161
122
 
162
123
  logger.console.log(
163
- "[AccountIntentTransactionHistory] Refund transaction sent",
164
- { intentId: transaction.intentId, hash },
124
+ "[AccountIntentTransactionHistory] Recover transaction sent",
125
+ { intentId: transaction.intentId, txHash },
165
126
  )
166
127
 
167
128
  // Store the transaction hash to show explorer link
168
- setRefundTxHash(hash)
129
+ setRefundTxHash(txHash)
169
130
  setRecoverError(null)
170
131
 
171
132
  // Refetch history after recovery
@@ -1 +0,0 @@
1
- {"version":3,"file":"refund.d.ts","sourceRoot":"","sources":["../src/refund.ts"],"names":[],"mappings":"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"}