0xtrails 0.1.2 → 0.1.4

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.
Files changed (158) hide show
  1. package/dist/address.d.ts.map +1 -1
  2. package/dist/analytics.d.ts +86 -1
  3. package/dist/analytics.d.ts.map +1 -1
  4. package/dist/apiClient.d.ts +1 -1
  5. package/dist/apiClient.d.ts.map +1 -1
  6. package/dist/{ccip-BmFTEOaB.js → ccip-dLSEJjCf.js} +55 -55
  7. package/dist/cctpqueue.d.ts +1 -1
  8. package/dist/cctpqueue.d.ts.map +1 -1
  9. package/dist/chains.d.ts +9 -3
  10. package/dist/chains.d.ts.map +1 -1
  11. package/dist/constants.d.ts +1 -0
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/decoders.d.ts +58 -0
  14. package/dist/decoders.d.ts.map +1 -0
  15. package/dist/ens.d.ts +13 -0
  16. package/dist/ens.d.ts.map +1 -0
  17. package/dist/error.d.ts +9 -0
  18. package/dist/error.d.ts.map +1 -1
  19. package/dist/{index-BPsVj7zK.js → index-BXbaLmtt.js} +28779 -25738
  20. package/dist/index.js +2 -2
  21. package/dist/intents.d.ts +4 -4
  22. package/dist/intents.d.ts.map +1 -1
  23. package/dist/lifi.d.ts +4 -0
  24. package/dist/lifi.d.ts.map +1 -0
  25. package/dist/metaTxns.d.ts +1 -1
  26. package/dist/metaTxns.d.ts.map +1 -1
  27. package/dist/mode.d.ts +1 -1
  28. package/dist/mode.d.ts.map +1 -1
  29. package/dist/preconditions.d.ts +1 -1
  30. package/dist/preconditions.d.ts.map +1 -1
  31. package/dist/prepareSend.d.ts +32 -24
  32. package/dist/prepareSend.d.ts.map +1 -1
  33. package/dist/prices.d.ts +3 -1
  34. package/dist/prices.d.ts.map +1 -1
  35. package/dist/proxyCaller.d.ts +0 -1
  36. package/dist/proxyCaller.d.ts.map +1 -1
  37. package/dist/relaySdk.d.ts.map +1 -1
  38. package/dist/relayer.d.ts.map +1 -1
  39. package/dist/tokenBalances.d.ts +1 -1
  40. package/dist/tokenBalances.d.ts.map +1 -1
  41. package/dist/tokens.d.ts +2 -1
  42. package/dist/tokens.d.ts.map +1 -1
  43. package/dist/trails.d.ts +4 -4
  44. package/dist/trails.d.ts.map +1 -1
  45. package/dist/transactions.d.ts +4 -0
  46. package/dist/transactions.d.ts.map +1 -1
  47. package/dist/utils.d.ts +6 -0
  48. package/dist/utils.d.ts.map +1 -1
  49. package/dist/wallets.d.ts +247 -5
  50. package/dist/wallets.d.ts.map +1 -1
  51. package/dist/widget/components/ChainFilterDropdown.d.ts +2 -0
  52. package/dist/widget/components/ChainFilterDropdown.d.ts.map +1 -1
  53. package/dist/widget/components/ConnectWallet.d.ts +1 -0
  54. package/dist/widget/components/ConnectWallet.d.ts.map +1 -1
  55. package/dist/widget/components/DebugScreensDropdown.d.ts.map +1 -1
  56. package/dist/widget/components/ErrorDisplay.d.ts +9 -0
  57. package/dist/widget/components/ErrorDisplay.d.ts.map +1 -0
  58. package/dist/widget/components/FundSendForm.d.ts +2 -2
  59. package/dist/widget/components/FundSendForm.d.ts.map +1 -1
  60. package/dist/widget/components/OriginTransferInformation.d.ts +10 -0
  61. package/dist/widget/components/OriginTransferInformation.d.ts.map +1 -0
  62. package/dist/widget/components/PaySendForm.d.ts +2 -2
  63. package/dist/widget/components/PaySendForm.d.ts.map +1 -1
  64. package/dist/widget/components/QrCode.d.ts +1 -1
  65. package/dist/widget/components/QrCode.d.ts.map +1 -1
  66. package/dist/widget/components/QuoteDetails.d.ts.map +1 -1
  67. package/dist/widget/components/Receipt.d.ts.map +1 -1
  68. package/dist/widget/components/Receive.d.ts +12 -0
  69. package/dist/widget/components/Receive.d.ts.map +1 -0
  70. package/dist/widget/components/RefundAddressInput.d.ts +13 -0
  71. package/dist/widget/components/RefundAddressInput.d.ts.map +1 -0
  72. package/dist/widget/components/Swap.d.ts +47 -0
  73. package/dist/widget/components/Swap.d.ts.map +1 -0
  74. package/dist/widget/components/SwapDisplay.d.ts +9 -0
  75. package/dist/widget/components/SwapDisplay.d.ts.map +1 -0
  76. package/dist/widget/components/TokenList.d.ts +0 -2
  77. package/dist/widget/components/TokenList.d.ts.map +1 -1
  78. package/dist/widget/components/TokenSelector.d.ts +26 -0
  79. package/dist/widget/components/TokenSelector.d.ts.map +1 -0
  80. package/dist/widget/components/TransferPendingVertical.d.ts +2 -0
  81. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -1
  82. package/dist/widget/components/WalletConnect.d.ts.map +1 -1
  83. package/dist/widget/components/WalletConnectionPending.d.ts +12 -0
  84. package/dist/widget/components/WalletConnectionPending.d.ts.map +1 -0
  85. package/dist/widget/components/WalletList.d.ts.map +1 -1
  86. package/dist/widget/components/YellowWarningAnimation.d.ts +2 -0
  87. package/dist/widget/components/YellowWarningAnimation.d.ts.map +1 -0
  88. package/dist/widget/hooks/useAmountUsd.d.ts +1 -3
  89. package/dist/widget/hooks/useAmountUsd.d.ts.map +1 -1
  90. package/dist/widget/hooks/useCheckout.d.ts.map +1 -1
  91. package/dist/widget/hooks/useDebugScreens.d.ts +22 -0
  92. package/dist/widget/hooks/useDebugScreens.d.ts.map +1 -0
  93. package/dist/widget/hooks/useSendForm.d.ts +12 -6
  94. package/dist/widget/hooks/useSendForm.d.ts.map +1 -1
  95. package/dist/widget/hooks/useTokenList.d.ts +2 -3
  96. package/dist/widget/hooks/useTokenList.d.ts.map +1 -1
  97. package/dist/widget/index.js +1 -1
  98. package/dist/widget/widget.d.ts.map +1 -1
  99. package/package.json +19 -15
  100. package/src/aave.ts +13 -13
  101. package/src/address.ts +3 -0
  102. package/src/analytics.ts +192 -8
  103. package/src/apiClient.ts +1 -1
  104. package/src/cctpqueue.ts +1 -1
  105. package/src/chains.ts +45 -7
  106. package/src/constants.ts +7 -4
  107. package/src/decoders.ts +310 -0
  108. package/src/ens.ts +32 -0
  109. package/src/error.ts +101 -1
  110. package/src/intents.ts +10 -2
  111. package/src/lifi.ts +58 -0
  112. package/src/metaTxns.ts +1 -1
  113. package/src/mode.ts +1 -1
  114. package/src/morpho.ts +3 -3
  115. package/src/pools.ts +18 -18
  116. package/src/preconditions.ts +1 -1
  117. package/src/prepareSend.ts +463 -113
  118. package/src/prices.ts +26 -1
  119. package/src/proxyCaller.ts +2 -14
  120. package/src/relaySdk.ts +1 -0
  121. package/src/relayer.ts +8 -0
  122. package/src/tokenBalances.ts +24 -17
  123. package/src/tokens.ts +147 -22
  124. package/src/trails.ts +4 -4
  125. package/src/transactions.ts +35 -17
  126. package/src/utils.ts +28 -0
  127. package/src/wallets.ts +275 -35
  128. package/src/widget/compiled.css +2 -2
  129. package/src/widget/components/ChainFilterDropdown.tsx +42 -33
  130. package/src/widget/components/ChainImage.tsx +1 -1
  131. package/src/widget/components/ConnectWallet.tsx +92 -128
  132. package/src/widget/components/DebugScreensDropdown.tsx +6 -0
  133. package/src/widget/components/ErrorDisplay.tsx +150 -0
  134. package/src/widget/components/FundSendForm.tsx +78 -11
  135. package/src/widget/components/OriginTransferInformation.tsx +59 -0
  136. package/src/widget/components/PaySendForm.tsx +80 -13
  137. package/src/widget/components/QRCodeDeposit.tsx +6 -6
  138. package/src/widget/components/QrCode.tsx +278 -17
  139. package/src/widget/components/QuoteDetails.tsx +93 -25
  140. package/src/widget/components/Receipt.tsx +296 -103
  141. package/src/widget/components/Receive.tsx +146 -0
  142. package/src/widget/components/RecentTokens.tsx +1 -1
  143. package/src/widget/components/RefundAddressInput.tsx +149 -0
  144. package/src/widget/components/Swap.tsx +769 -0
  145. package/src/widget/components/SwapDisplay.tsx +68 -0
  146. package/src/widget/components/TokenList.tsx +27 -363
  147. package/src/widget/components/TokenSelector.tsx +405 -0
  148. package/src/widget/components/TransferPendingVertical.tsx +162 -112
  149. package/src/widget/components/WalletConnect.tsx +9 -7
  150. package/src/widget/components/WalletConnectionPending.tsx +157 -0
  151. package/src/widget/components/WalletList.tsx +6 -5
  152. package/src/widget/components/YellowWarningAnimation.tsx +146 -0
  153. package/src/widget/hooks/useAmountUsd.ts +3 -8
  154. package/src/widget/hooks/useCheckout.ts +3 -2
  155. package/src/widget/hooks/useDebugScreens.ts +583 -0
  156. package/src/widget/hooks/useSendForm.ts +111 -35
  157. package/src/widget/hooks/useTokenList.ts +155 -122
  158. package/src/widget/widget.tsx +503 -523
@@ -0,0 +1,583 @@
1
+ import { useCallback } from "react"
2
+ import { parseUnits } from "viem"
3
+ import { getNormalizedQuoteObject } from "../../prepareSend.js"
4
+ import type { PrepareSendQuote } from "../../prepareSend.js"
5
+ import type { TransactionState } from "../../transactions.js"
6
+
7
+ type Screen =
8
+ | "connect"
9
+ | "tokens"
10
+ | "send-form"
11
+ | "fund-form"
12
+ | "fund-methods"
13
+ | "earn-pools"
14
+ | "swap"
15
+ | "receive"
16
+ | "wallet-confirmation"
17
+ | "qr-code-deposit"
18
+ | "pending"
19
+ | "receipt"
20
+ | "mesh-connect"
21
+ | "wallet-connect"
22
+ | "wallet-list"
23
+ | "wallet-connection-pending"
24
+
25
+ interface UseDebugScreensProps {
26
+ setCurrentScreen: (screen: Screen) => void
27
+ setSelectedToken: (token: any) => void
28
+ setTransactionStates: (states: TransactionState[]) => void
29
+ setPrepareSendQuote: (quote: PrepareSendQuote | null) => void
30
+ setShowWalletConfirmRetry: (show: boolean) => void
31
+ setCurrentMode: (mode: any) => void
32
+ setSelectedWalletId: (id: string | null) => void
33
+ setShowWalletConnectionRetry: (show: boolean) => void
34
+ setError: (error: string | null) => void
35
+ setIsConnecting: (connecting: boolean) => void
36
+ setMeshConnectProps: (props: any) => void
37
+ isConnected: boolean
38
+ }
39
+
40
+ export const useDebugScreens = ({
41
+ setCurrentScreen,
42
+ setSelectedToken,
43
+ setTransactionStates,
44
+ setPrepareSendQuote,
45
+ setShowWalletConfirmRetry,
46
+ setCurrentMode,
47
+ setSelectedWalletId,
48
+ setShowWalletConnectionRetry,
49
+ setError,
50
+ isConnected,
51
+ }: UseDebugScreensProps) => {
52
+ const handleDebugScreenSelect = useCallback(
53
+ async (screen: string) => {
54
+ // Reset necessary state based on the target screen
55
+ setError(null)
56
+
57
+ const dummySelectedToken = {
58
+ id: 1,
59
+ name: "USD Coin",
60
+ symbol: "USDC",
61
+ balance: parseUnits("1.99", 6)?.toString(),
62
+ imageUrl:
63
+ "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
64
+ chainId: 1,
65
+ contractAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
66
+ contractInfo: {
67
+ decimals: 6,
68
+ symbol: "USDC",
69
+ name: "USD Coin",
70
+ },
71
+ }
72
+
73
+ const dummyQuote = await getNormalizedQuoteObject({
74
+ originDepositAddress: "0x5A0fb747531bC369367CB031472b89ea4D5c6Df7",
75
+ destinationDepositAddress: "0x5A0fb747531bC369367CB031472b89ea4D5c6Df7",
76
+ originAmount: parseUnits("1", 6)?.toString(),
77
+ originTokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
78
+ originChainId: 1,
79
+ originTokenPriceUsd: "1",
80
+ destinationChainId: 137,
81
+ destinationTokenAddress: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
82
+ destinationAmount: parseUnits("0.97", 6)?.toString(),
83
+ destinationTokenPriceUsd: "1",
84
+ })
85
+
86
+ switch (screen) {
87
+ case "connect":
88
+ setSelectedToken(null)
89
+ setTransactionStates([])
90
+ setCurrentScreen("connect")
91
+ break
92
+ case "tokens":
93
+ if (isConnected) {
94
+ setSelectedToken(null)
95
+ setTransactionStates([])
96
+ setCurrentScreen("tokens")
97
+ }
98
+ break
99
+ case "send-form":
100
+ // Set dummy USDC token for debug mode and set mode to pay
101
+ setCurrentMode("pay")
102
+ setSelectedToken(dummySelectedToken)
103
+ setTransactionStates([])
104
+ setCurrentScreen("send-form")
105
+ break
106
+ case "fund-form":
107
+ // Set dummy USDC token for debug mode and set mode to fund
108
+ setCurrentMode("fund")
109
+ setSelectedToken(dummySelectedToken)
110
+ setTransactionStates([])
111
+ setCurrentScreen("fund-form")
112
+ break
113
+ case "wallet-confirmation":
114
+ // Set dummy USDC token for debug mode
115
+ setSelectedToken(dummySelectedToken)
116
+ setPrepareSendQuote(dummyQuote)
117
+ setTransactionStates([])
118
+ setShowWalletConfirmRetry(false)
119
+ setCurrentScreen("wallet-confirmation")
120
+ break
121
+ case "wallet-confirmation-retry":
122
+ // Set dummy USDC token for debug mode
123
+ setSelectedToken(dummySelectedToken)
124
+ setPrepareSendQuote(dummyQuote)
125
+ setTransactionStates([])
126
+ setShowWalletConfirmRetry(true)
127
+ setCurrentScreen("wallet-confirmation")
128
+ break
129
+ case "pending-1-item-0-confirmed":
130
+ // Set dummy transaction states for debug mode - showing all steps
131
+ setTransactionStates([
132
+ {
133
+ transactionHash:
134
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
135
+ explorerUrl:
136
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
137
+ chainId: 137,
138
+ state: "pending",
139
+ label: "Swap",
140
+ },
141
+ ])
142
+ setPrepareSendQuote(dummyQuote)
143
+ setCurrentScreen("pending")
144
+ break
145
+ case "pending-1-item-1-confirmed":
146
+ // Set dummy transaction states for debug mode - showing all steps
147
+ setTransactionStates([
148
+ {
149
+ transactionHash:
150
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
151
+ explorerUrl:
152
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
153
+ chainId: 137,
154
+ state: "confirmed",
155
+ label: "Swap",
156
+ },
157
+ ])
158
+ setPrepareSendQuote(dummyQuote)
159
+ setCurrentScreen("pending")
160
+ break
161
+ case "pending-2-item-0-confirmed":
162
+ // Set dummy transaction states for debug mode - showing all steps
163
+ setTransactionStates([
164
+ {
165
+ transactionHash:
166
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
167
+ explorerUrl:
168
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
169
+ chainId: 137,
170
+ state: "pending",
171
+ label: "Transfer",
172
+ },
173
+ {
174
+ transactionHash:
175
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
176
+ explorerUrl:
177
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
178
+ chainId: 137,
179
+ state: "pending",
180
+ label: "Swap",
181
+ },
182
+ ])
183
+ setPrepareSendQuote(dummyQuote)
184
+ setCurrentScreen("pending")
185
+ break
186
+ case "pending-2-item-1-confirmed":
187
+ // Set dummy transaction states for debug mode - showing all steps
188
+ setTransactionStates([
189
+ {
190
+ transactionHash:
191
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
192
+ explorerUrl:
193
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
194
+ chainId: 137,
195
+ state: "confirmed",
196
+ label: "Transfer",
197
+ },
198
+ {
199
+ transactionHash:
200
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
201
+ explorerUrl:
202
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
203
+ chainId: 137,
204
+ state: "pending",
205
+ label: "Swap",
206
+ },
207
+ ])
208
+ setPrepareSendQuote(dummyQuote)
209
+ setCurrentScreen("pending")
210
+ break
211
+ case "pending-2-item-2-confirmed":
212
+ // Set dummy transaction states for debug mode - showing all steps
213
+ setTransactionStates([
214
+ {
215
+ transactionHash:
216
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
217
+ explorerUrl:
218
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
219
+ chainId: 137,
220
+ state: "confirmed",
221
+ label: "Transfer",
222
+ },
223
+ {
224
+ transactionHash:
225
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
226
+ explorerUrl:
227
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
228
+ chainId: 137,
229
+ state: "confirmed",
230
+ label: "Swap",
231
+ },
232
+ ])
233
+ setPrepareSendQuote(dummyQuote)
234
+ setCurrentScreen("pending")
235
+ break
236
+ case "pending-3-item-0-confirmed":
237
+ // Set dummy transaction states for debug mode - showing all steps
238
+ setTransactionStates([
239
+ {
240
+ transactionHash:
241
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
242
+ explorerUrl:
243
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
244
+ chainId: 137,
245
+ state: "pending",
246
+ label: "Transfer",
247
+ },
248
+ {
249
+ transactionHash:
250
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
251
+ explorerUrl:
252
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
253
+ chainId: 137,
254
+ state: "pending",
255
+ label: "Swap & Bridge",
256
+ },
257
+ {
258
+ transactionHash:
259
+ "0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
260
+ explorerUrl:
261
+ "https://arbiscan.io/tx/0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
262
+ chainId: 42161,
263
+ state: "pending",
264
+ label: "Execute",
265
+ },
266
+ ])
267
+ setPrepareSendQuote(dummyQuote)
268
+ setCurrentScreen("pending")
269
+ break
270
+ case "pending-3-item-1-confirmed":
271
+ // Set dummy transaction states for debug mode - showing all steps
272
+ setTransactionStates([
273
+ {
274
+ transactionHash:
275
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
276
+ explorerUrl:
277
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
278
+ chainId: 137,
279
+ state: "confirmed",
280
+ label: "Transfer",
281
+ },
282
+ {
283
+ transactionHash:
284
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
285
+ explorerUrl:
286
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
287
+ chainId: 137,
288
+ state: "pending",
289
+ label: "Swap & Bridge",
290
+ },
291
+ {
292
+ transactionHash:
293
+ "0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
294
+ explorerUrl:
295
+ "https://arbiscan.io/tx/0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
296
+ chainId: 42161,
297
+ state: "pending",
298
+ label: "Execute",
299
+ },
300
+ ])
301
+ setPrepareSendQuote(dummyQuote)
302
+ setCurrentScreen("pending")
303
+ break
304
+ case "pending-3-item-2-confirmed":
305
+ // Set dummy transaction states for debug mode - showing all steps
306
+ setTransactionStates([
307
+ {
308
+ transactionHash:
309
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
310
+ explorerUrl:
311
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
312
+ chainId: 137,
313
+ state: "confirmed",
314
+ label: "Transfer",
315
+ },
316
+ {
317
+ transactionHash:
318
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
319
+ explorerUrl:
320
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
321
+ chainId: 137,
322
+ state: "confirmed",
323
+ label: "Swap & Bridge",
324
+ },
325
+ {
326
+ transactionHash:
327
+ "0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
328
+ explorerUrl:
329
+ "https://arbiscan.io/tx/0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
330
+ chainId: 42161,
331
+ state: "pending",
332
+ label: "Execute",
333
+ },
334
+ ])
335
+ setPrepareSendQuote(dummyQuote)
336
+ setCurrentScreen("pending")
337
+ break
338
+ case "pending-3-item-3-confirmed":
339
+ // Set dummy transaction states for debug mode - showing all steps
340
+ setTransactionStates([
341
+ {
342
+ transactionHash:
343
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
344
+ explorerUrl:
345
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
346
+ chainId: 137,
347
+ state: "confirmed",
348
+ label: "Transfer",
349
+ },
350
+ {
351
+ transactionHash:
352
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
353
+ explorerUrl:
354
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
355
+ chainId: 137,
356
+ state: "confirmed",
357
+ label: "Swap & Bridge",
358
+ },
359
+ {
360
+ transactionHash:
361
+ "0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
362
+ explorerUrl:
363
+ "https://arbiscan.io/tx/0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
364
+ chainId: 42161,
365
+ state: "confirmed",
366
+ label: "Execute",
367
+ },
368
+ ])
369
+ setPrepareSendQuote(dummyQuote)
370
+ setCurrentScreen("pending")
371
+ break
372
+ case "pending-3-item-2-confirmed-with-error":
373
+ // Set dummy transaction states for debug mode - second item has CallFailed event
374
+ setTransactionStates([
375
+ {
376
+ transactionHash:
377
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
378
+ explorerUrl:
379
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
380
+ chainId: 137,
381
+ state: "confirmed",
382
+ label: "Transfer",
383
+ },
384
+ {
385
+ transactionHash:
386
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
387
+ explorerUrl:
388
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
389
+ chainId: 137,
390
+ state: "confirmed",
391
+ label: "Swap & Bridge",
392
+ decodedGuestModuleEvents: [
393
+ {
394
+ type: "CallFailed",
395
+ opHash:
396
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
397
+ index: BigInt(1),
398
+ returnData: "0x",
399
+ } as any,
400
+ ],
401
+ },
402
+ {
403
+ transactionHash:
404
+ "0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
405
+ explorerUrl:
406
+ "https://arbiscan.io/tx/0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
407
+ chainId: 42161,
408
+ state: "pending",
409
+ label: "Execute",
410
+ },
411
+ ])
412
+ setPrepareSendQuote(dummyQuote)
413
+ setCurrentScreen("pending")
414
+ break
415
+ case "receipt":
416
+ // Set dummy transaction states data for debug mode
417
+ setTransactionStates([
418
+ {
419
+ transactionHash:
420
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
421
+ explorerUrl:
422
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
423
+ chainId: 137,
424
+ state: "confirmed",
425
+ label: "Transfer",
426
+ },
427
+ {
428
+ transactionHash:
429
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
430
+ explorerUrl:
431
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
432
+ chainId: 137,
433
+ state: "confirmed",
434
+ label: "Swap & Bridge",
435
+ },
436
+ {
437
+ transactionHash:
438
+ "0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
439
+ explorerUrl:
440
+ "https://arbiscan.io/tx/0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
441
+ chainId: 42161,
442
+ state: "confirmed",
443
+ label: "Execute",
444
+ },
445
+ ])
446
+
447
+ setCurrentScreen("receipt")
448
+ break
449
+ case "receipt-failed":
450
+ // Set dummy transaction states data for debug mode
451
+ setTransactionStates([
452
+ {
453
+ transactionHash:
454
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
455
+ explorerUrl:
456
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
457
+ chainId: 137,
458
+ state: "confirmed",
459
+ label: "Transfer",
460
+ },
461
+ {
462
+ transactionHash:
463
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
464
+ explorerUrl:
465
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
466
+ chainId: 137,
467
+ state: "confirmed",
468
+ label: "Swap & Bridge",
469
+ },
470
+ {
471
+ transactionHash: "",
472
+ explorerUrl: "",
473
+ chainId: 42161,
474
+ state: "failed",
475
+ label: "Execute",
476
+ },
477
+ ])
478
+
479
+ setCurrentScreen("receipt")
480
+ break
481
+ case "receipt-refunded":
482
+ // Set dummy transaction states data for debug mode
483
+ setTransactionStates([
484
+ {
485
+ transactionHash:
486
+ "0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
487
+ explorerUrl:
488
+ "https://polygonscan.com/tx/0x45bb2259631e73f32841a6058b0a4008c75bca296942bec6326d188978d5353d",
489
+ chainId: 137,
490
+ state: "confirmed",
491
+ label: "Transfer",
492
+ },
493
+ {
494
+ transactionHash:
495
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
496
+ explorerUrl:
497
+ "https://polygonscan.com/tx/0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
498
+ chainId: 137,
499
+ state: "confirmed",
500
+ label: "Swap & Bridge",
501
+ },
502
+ {
503
+ transactionHash:
504
+ "0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
505
+ explorerUrl:
506
+ "https://arbiscan.io/tx/0xf3b172111d2e64e9d4940d91097f04a0bbd0acc816e2cf49eec664c6f8fcaf76",
507
+ chainId: 42161,
508
+ state: "confirmed",
509
+ label: "Execute",
510
+ decodedGuestModuleEvents: [
511
+ {
512
+ type: "CallFailed",
513
+ opHash:
514
+ "0x6ff30196ca0d4998cc6928bca2ec282766eb3c3997535e0a61e0d69c9c9b16b8",
515
+ index: BigInt(1),
516
+ returnData: "0x",
517
+ } as any,
518
+ ],
519
+ decodedTrailsTokenSweeperEvents: [
520
+ {
521
+ type: "Sweep",
522
+ token: "0x0000000000000000000000000000000000000000",
523
+ recipient: "0x0000000000000000000000000000000000000000",
524
+ amount: BigInt(1000000000000000000),
525
+ } as any,
526
+ ],
527
+ },
528
+ ])
529
+
530
+ setCurrentScreen("receipt")
531
+ break
532
+ case "mesh-connect":
533
+ setCurrentScreen("mesh-connect")
534
+ break
535
+ case "wallet-connect":
536
+ setCurrentScreen("wallet-connect")
537
+ break
538
+ case "wallet-list":
539
+ setCurrentScreen("wallet-list")
540
+ break
541
+ case "wallet-connection-pending":
542
+ setSelectedWalletId("metamask")
543
+ setCurrentScreen("wallet-connection-pending")
544
+ break
545
+ case "wallet-connection-pending-retry":
546
+ setSelectedWalletId("metamask")
547
+ setShowWalletConnectionRetry(true)
548
+ setCurrentScreen("wallet-connection-pending")
549
+ break
550
+ case "fund-methods":
551
+ setCurrentScreen("fund-methods")
552
+ break
553
+ case "earn-pools":
554
+ setCurrentScreen("earn-pools")
555
+ break
556
+ case "swap":
557
+ setCurrentMode("swap")
558
+ setSelectedToken(null)
559
+ setTransactionStates([])
560
+ setCurrentScreen("swap")
561
+ break
562
+ case "receive":
563
+ setCurrentMode("receive")
564
+ setCurrentScreen("receive")
565
+ break
566
+ }
567
+ },
568
+ [
569
+ setCurrentScreen,
570
+ setSelectedToken,
571
+ setTransactionStates,
572
+ setPrepareSendQuote,
573
+ setShowWalletConfirmRetry,
574
+ setCurrentMode,
575
+ setSelectedWalletId,
576
+ setShowWalletConnectionRetry,
577
+ setError,
578
+ isConnected,
579
+ ],
580
+ )
581
+
582
+ return { handleDebugScreenSelect }
583
+ }