0xtrails 0.2.6 → 0.4.0

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 (218) hide show
  1. package/dist/aave.d.ts +2 -0
  2. package/dist/aave.d.ts.map +1 -1
  3. package/dist/{ccip-Xjh9d1gb.js → ccip-BpQGQiWq.js} +7 -7
  4. package/dist/config.d.ts +0 -5
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/constants.d.ts +2 -4
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/error.d.ts +4 -1
  9. package/dist/error.d.ts.map +1 -1
  10. package/dist/fees.d.ts +2 -2
  11. package/dist/fees.d.ts.map +1 -1
  12. package/dist/{index-BnhdZ8Ho.js → index-DsJM5F-V.js} +46084 -48697
  13. package/dist/index.d.ts +9 -8
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +741 -923
  16. package/dist/intentReceiptMonitor.d.ts +24 -0
  17. package/dist/intentReceiptMonitor.d.ts.map +1 -0
  18. package/dist/intentReceiptPoller.d.ts +69 -0
  19. package/dist/intentReceiptPoller.d.ts.map +1 -0
  20. package/dist/intents.d.ts +15 -11
  21. package/dist/intents.d.ts.map +1 -1
  22. package/dist/morpho.d.ts +6 -5
  23. package/dist/morpho.d.ts.map +1 -1
  24. package/dist/mutations.d.ts +16 -0
  25. package/dist/mutations.d.ts.map +1 -0
  26. package/dist/preconditions.d.ts +5 -4
  27. package/dist/preconditions.d.ts.map +1 -1
  28. package/dist/prepareSend.d.ts +5 -190
  29. package/dist/prepareSend.d.ts.map +1 -1
  30. package/dist/prices.d.ts +9 -6
  31. package/dist/prices.d.ts.map +1 -1
  32. package/dist/sequenceWallet.d.ts +3 -16
  33. package/dist/sequenceWallet.d.ts.map +1 -1
  34. package/dist/tokenBalances.d.ts +17 -13
  35. package/dist/tokenBalances.d.ts.map +1 -1
  36. package/dist/trails.d.ts +24 -40
  37. package/dist/trails.d.ts.map +1 -1
  38. package/dist/trailsClient.d.ts +5 -6
  39. package/dist/trailsClient.d.ts.map +1 -1
  40. package/dist/transactionIntent/constants.d.ts +7 -0
  41. package/dist/transactionIntent/constants.d.ts.map +1 -0
  42. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts +44 -0
  43. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts.map +1 -0
  44. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts +30 -0
  45. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts.map +1 -0
  46. package/dist/transactionIntent/deposits/index.d.ts +4 -0
  47. package/dist/transactionIntent/deposits/index.d.ts.map +1 -0
  48. package/dist/transactionIntent/deposits/standardDeposit.d.ts +30 -0
  49. package/dist/transactionIntent/deposits/standardDeposit.d.ts.map +1 -0
  50. package/dist/transactionIntent/execution/index.d.ts +2 -0
  51. package/dist/transactionIntent/execution/index.d.ts.map +1 -0
  52. package/dist/transactionIntent/execution/transactionState.d.ts +5 -0
  53. package/dist/transactionIntent/execution/transactionState.d.ts.map +1 -0
  54. package/dist/transactionIntent/handlers/crossChain.d.ts +82 -0
  55. package/dist/transactionIntent/handlers/crossChain.d.ts.map +1 -0
  56. package/dist/transactionIntent/handlers/index.d.ts +4 -0
  57. package/dist/transactionIntent/handlers/index.d.ts.map +1 -0
  58. package/dist/transactionIntent/handlers/sameChainDifferentToken.d.ts +62 -0
  59. package/dist/transactionIntent/handlers/sameChainDifferentToken.d.ts.map +1 -0
  60. package/dist/transactionIntent/handlers/sameChainSameToken.d.ts +72 -0
  61. package/dist/transactionIntent/handlers/sameChainSameToken.d.ts.map +1 -0
  62. package/dist/transactionIntent/index.d.ts +9 -0
  63. package/dist/transactionIntent/index.d.ts.map +1 -0
  64. package/dist/transactionIntent/quote/feeExtractors.d.ts +17 -0
  65. package/dist/transactionIntent/quote/feeExtractors.d.ts.map +1 -0
  66. package/dist/transactionIntent/quote/index.d.ts +4 -0
  67. package/dist/transactionIntent/quote/index.d.ts.map +1 -0
  68. package/dist/transactionIntent/quote/normalizeQuote.d.ts +34 -0
  69. package/dist/transactionIntent/quote/normalizeQuote.d.ts.map +1 -0
  70. package/dist/transactionIntent/quote/quoteHelpers.d.ts +5 -0
  71. package/dist/transactionIntent/quote/quoteHelpers.d.ts.map +1 -0
  72. package/dist/transactionIntent/types.d.ts +131 -0
  73. package/dist/transactionIntent/types.d.ts.map +1 -0
  74. package/dist/transactionIntent/utils/balanceChecker.d.ts +18 -0
  75. package/dist/transactionIntent/utils/balanceChecker.d.ts.map +1 -0
  76. package/dist/transactionIntent/utils/index.d.ts +4 -0
  77. package/dist/transactionIntent/utils/index.d.ts.map +1 -0
  78. package/dist/transactionIntent/utils/lifiHelpers.d.ts +10 -0
  79. package/dist/transactionIntent/utils/lifiHelpers.d.ts.map +1 -0
  80. package/dist/transactionIntent/utils/testnetHelpers.d.ts +3 -0
  81. package/dist/transactionIntent/utils/testnetHelpers.d.ts.map +1 -0
  82. package/dist/transactionIntent/validators.d.ts +6 -0
  83. package/dist/transactionIntent/validators.d.ts.map +1 -0
  84. package/dist/transactions.d.ts +2 -1
  85. package/dist/transactions.d.ts.map +1 -1
  86. package/dist/widget/components/AccountSettings.d.ts.map +1 -1
  87. package/dist/widget/components/ClassicSwap.d.ts +0 -1
  88. package/dist/widget/components/ClassicSwap.d.ts.map +1 -1
  89. package/dist/widget/components/ConfigDisplay.d.ts.map +1 -1
  90. package/dist/widget/components/ConnectedWallets.d.ts.map +1 -1
  91. package/dist/widget/components/DynamicSizeInputField.d.ts +13 -0
  92. package/dist/widget/components/DynamicSizeInputField.d.ts.map +1 -0
  93. package/dist/widget/components/Earn.d.ts +0 -1
  94. package/dist/widget/components/Earn.d.ts.map +1 -1
  95. package/dist/widget/components/FeeOptions.d.ts +5 -13
  96. package/dist/widget/components/FeeOptions.d.ts.map +1 -1
  97. package/dist/widget/components/Fund.d.ts +0 -1
  98. package/dist/widget/components/Fund.d.ts.map +1 -1
  99. package/dist/widget/components/FundMethods.d.ts.map +1 -1
  100. package/dist/widget/components/FundSwap.d.ts +0 -1
  101. package/dist/widget/components/FundSwap.d.ts.map +1 -1
  102. package/dist/widget/components/Pay.d.ts +0 -1
  103. package/dist/widget/components/Pay.d.ts.map +1 -1
  104. package/dist/widget/components/PoolDeposit.d.ts +0 -1
  105. package/dist/widget/components/PoolDeposit.d.ts.map +1 -1
  106. package/dist/widget/components/PoolWithdraw.d.ts +0 -18
  107. package/dist/widget/components/PoolWithdraw.d.ts.map +1 -1
  108. package/dist/widget/components/QuoteDetails.d.ts +1 -0
  109. package/dist/widget/components/QuoteDetails.d.ts.map +1 -1
  110. package/dist/widget/components/Swap.d.ts +0 -1
  111. package/dist/widget/components/Swap.d.ts.map +1 -1
  112. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -1
  113. package/dist/widget/components/WaasFeeOptions.d.ts.map +1 -1
  114. package/dist/widget/css/compiled.css +2 -2
  115. package/dist/widget/hooks/useCheckout.d.ts +17 -4
  116. package/dist/widget/hooks/useCheckout.d.ts.map +1 -1
  117. package/dist/widget/hooks/useDefaultTokenSelection.d.ts.map +1 -1
  118. package/dist/widget/hooks/useQuote.d.ts +3 -4
  119. package/dist/widget/hooks/useQuote.d.ts.map +1 -1
  120. package/dist/widget/hooks/useSelectedFeeToken.d.ts +1 -0
  121. package/dist/widget/hooks/useSelectedFeeToken.d.ts.map +1 -1
  122. package/dist/widget/hooks/useSendForm.d.ts +3 -4
  123. package/dist/widget/hooks/useSendForm.d.ts.map +1 -1
  124. package/dist/widget/hooks/useTokenList.d.ts.map +1 -1
  125. package/dist/widget/hooks/useWalletConnectionContext.d.ts +25 -0
  126. package/dist/widget/hooks/useWalletConnectionContext.d.ts.map +1 -0
  127. package/dist/widget/index.js +1 -1
  128. package/dist/widget/widget.d.ts +12 -7
  129. package/dist/widget/widget.d.ts.map +1 -1
  130. package/package.json +21 -23
  131. package/src/aave.ts +54 -1
  132. package/src/config.ts +57 -58
  133. package/src/constants.ts +8 -9
  134. package/src/error.ts +21 -3
  135. package/src/fees.ts +53 -42
  136. package/src/index.ts +35 -13
  137. package/src/intentReceiptMonitor.ts +102 -0
  138. package/src/intentReceiptPoller.ts +299 -0
  139. package/src/intents.ts +206 -172
  140. package/src/morpho.ts +58 -9
  141. package/src/mutations.ts +129 -0
  142. package/src/preconditions.ts +16 -21
  143. package/src/prepareSend.ts +80 -4514
  144. package/src/prices.ts +26 -22
  145. package/src/relaySdk.ts +2 -2
  146. package/src/sequenceWallet.ts +6 -73
  147. package/src/tokenBalances.ts +175 -69
  148. package/src/trails.ts +230 -722
  149. package/src/trailsClient.ts +10 -23
  150. package/src/transactionIntent/constants.ts +11 -0
  151. package/src/transactionIntent/deposits/depositOrchestrator.ts +210 -0
  152. package/src/transactionIntent/deposits/gaslessDeposit.ts +588 -0
  153. package/src/transactionIntent/deposits/index.ts +3 -0
  154. package/src/transactionIntent/deposits/standardDeposit.ts +379 -0
  155. package/src/transactionIntent/execution/index.ts +1 -0
  156. package/src/transactionIntent/execution/transactionState.ts +35 -0
  157. package/src/transactionIntent/handlers/crossChain.ts +1707 -0
  158. package/src/transactionIntent/handlers/index.ts +3 -0
  159. package/src/transactionIntent/handlers/sameChainDifferentToken.ts +323 -0
  160. package/src/transactionIntent/handlers/sameChainSameToken.ts +712 -0
  161. package/src/transactionIntent/index.ts +9 -0
  162. package/src/transactionIntent/quote/feeExtractors.ts +81 -0
  163. package/src/transactionIntent/quote/index.ts +3 -0
  164. package/src/transactionIntent/quote/normalizeQuote.ts +367 -0
  165. package/src/transactionIntent/quote/quoteHelpers.ts +53 -0
  166. package/src/transactionIntent/types.ts +157 -0
  167. package/src/transactionIntent/utils/balanceChecker.ts +96 -0
  168. package/src/transactionIntent/utils/index.ts +3 -0
  169. package/src/transactionIntent/utils/lifiHelpers.ts +68 -0
  170. package/src/transactionIntent/utils/testnetHelpers.ts +10 -0
  171. package/src/transactionIntent/validators.ts +57 -0
  172. package/src/transactions.ts +36 -53
  173. package/src/widget/compiled.css +2 -2
  174. package/src/widget/components/AccountIntentTransactionHistory.tsx +36 -36
  175. package/src/widget/components/AccountSettings.tsx +23 -6
  176. package/src/widget/components/ClassicSwap.tsx +28 -53
  177. package/src/widget/components/ConfigDisplay.tsx +0 -11
  178. package/src/widget/components/ConnectedWallets.tsx +30 -4
  179. package/src/widget/components/DynamicSizeInputField.tsx +109 -0
  180. package/src/widget/components/Earn.tsx +0 -16
  181. package/src/widget/components/FeeBreakdown.tsx +3 -3
  182. package/src/widget/components/FeeOption.tsx +2 -2
  183. package/src/widget/components/FeeOptions.tsx +151 -112
  184. package/src/widget/components/Fund.tsx +0 -3
  185. package/src/widget/components/FundMethods.tsx +4 -3
  186. package/src/widget/components/FundSwap.tsx +0 -1
  187. package/src/widget/components/Pay.tsx +11 -16
  188. package/src/widget/components/PoolDeposit.tsx +35 -32
  189. package/src/widget/components/PoolWithdraw.tsx +153 -256
  190. package/src/widget/components/QuoteDetails.tsx +899 -494
  191. package/src/widget/components/Swap.tsx +0 -1
  192. package/src/widget/components/TransferPendingVertical.tsx +12 -8
  193. package/src/widget/components/WaasFeeOptions.tsx +23 -7
  194. package/src/widget/components/WalletConfirmation.tsx +1 -1
  195. package/src/widget/hooks/useAmountUsd.ts +9 -9
  196. package/src/widget/hooks/useCheckout.ts +97 -9
  197. package/src/widget/hooks/useDefaultTokenSelection.tsx +27 -21
  198. package/src/widget/hooks/useQuote.ts +86 -33
  199. package/src/widget/hooks/useSelectedFeeToken.tsx +32 -37
  200. package/src/widget/hooks/useSendForm.ts +37 -47
  201. package/src/widget/hooks/useTokenList.ts +34 -26
  202. package/src/widget/hooks/useWalletConnectionContext.tsx +128 -0
  203. package/src/widget/widget.tsx +197 -207
  204. package/dist/apiClient.d.ts +0 -9
  205. package/dist/apiClient.d.ts.map +0 -1
  206. package/dist/intentEntrypoint.d.ts +0 -114
  207. package/dist/intentEntrypoint.d.ts.map +0 -1
  208. package/dist/metaTxnMonitor.d.ts +0 -15
  209. package/dist/metaTxnMonitor.d.ts.map +0 -1
  210. package/dist/metaTxns.d.ts +0 -11
  211. package/dist/metaTxns.d.ts.map +0 -1
  212. package/dist/relayer.d.ts +0 -43
  213. package/dist/relayer.d.ts.map +0 -1
  214. package/src/apiClient.ts +0 -35
  215. package/src/intentEntrypoint.ts +0 -203
  216. package/src/metaTxnMonitor.ts +0 -171
  217. package/src/metaTxns.ts +0 -45
  218. package/src/relayer.ts +0 -289
@@ -0,0 +1,129 @@
1
+ import { useMutation } from "@tanstack/react-query"
2
+ import type { Intent, DepositSignature } from "@0xsequence/trails-api"
3
+ import { useTrailsClient } from "./trailsClient.js"
4
+ import { logger } from "./logger.js"
5
+ import { getFullErrorMessage } from "./error.js"
6
+ import {
7
+ trackIntentCommitStarted,
8
+ trackIntentCommitCompleted,
9
+ trackIntentCommitError,
10
+ } from "./analytics.js"
11
+
12
+ /**
13
+ * Hook for committing an intent to the Trails API
14
+ * Wraps trailsClient.commitIntent with mutation state and analytics tracking
15
+ */
16
+ export function useCommitIntent() {
17
+ const trailsClient = useTrailsClient()
18
+
19
+ return useMutation({
20
+ mutationFn: async (intent: Intent) => {
21
+ logger.console.log("[trails-sdk] useCommitIntent: Starting commit", {
22
+ intentId: intent.intentId,
23
+ originIntentAddress: intent.originIntentAddress,
24
+ })
25
+
26
+ const originChainIdStr = intent.calls[0]?.chainId
27
+ const destinationChainIdStr = intent.calls[1]?.chainId
28
+
29
+ try {
30
+ // Track intent commit start
31
+ trackIntentCommitStarted({
32
+ intentAddress: intent.originIntentAddress,
33
+ userAddress: intent.ownerAddress,
34
+ originChainId: originChainIdStr
35
+ ? Number(originChainIdStr)
36
+ : undefined,
37
+ destinationChainId: destinationChainIdStr
38
+ ? Number(destinationChainIdStr)
39
+ : undefined,
40
+ })
41
+
42
+ // Commit the intent
43
+ const response = await trailsClient.commitIntent({ intent })
44
+
45
+ logger.console.log("[trails-sdk] useCommitIntent: Commit successful", {
46
+ intentId: intent.intentId,
47
+ response,
48
+ })
49
+
50
+ // Track successful intent commit
51
+ trackIntentCommitCompleted({
52
+ intentAddress: intent.originIntentAddress,
53
+ userAddress: intent.ownerAddress,
54
+ originChainId: originChainIdStr
55
+ ? Number(originChainIdStr)
56
+ : undefined,
57
+ destinationChainId: destinationChainIdStr
58
+ ? Number(destinationChainIdStr)
59
+ : undefined,
60
+ })
61
+
62
+ return response
63
+ } catch (error) {
64
+ // Track intent commit error
65
+ trackIntentCommitError({
66
+ error: getFullErrorMessage(error),
67
+ userAddress: intent.ownerAddress,
68
+ intentAddress: intent.originIntentAddress,
69
+ originChainId: originChainIdStr
70
+ ? Number(originChainIdStr)
71
+ : undefined,
72
+ destinationChainId: destinationChainIdStr
73
+ ? Number(destinationChainIdStr)
74
+ : undefined,
75
+ })
76
+ throw error
77
+ }
78
+ },
79
+ })
80
+ }
81
+
82
+ /**
83
+ * Hook for executing an intent
84
+ * Wraps trailsClient.executeIntent with mutation state and analytics tracking
85
+ */
86
+ export function useExecuteIntent() {
87
+ const trailsClient = useTrailsClient()
88
+
89
+ return useMutation({
90
+ mutationFn: async ({
91
+ intentId,
92
+ depositTransactionHash,
93
+ depositSignature,
94
+ }: {
95
+ intentId: string
96
+ depositTransactionHash?: string
97
+ depositSignature?: DepositSignature
98
+ }) => {
99
+ logger.console.log("[trails-sdk] useExecuteIntent: Starting execution", {
100
+ intentId,
101
+ depositTransactionHash,
102
+ hasDepositSignature: !!depositSignature,
103
+ })
104
+
105
+ // Validate that we have either traditional or gasless deposit params
106
+ if (!depositTransactionHash && !depositSignature) {
107
+ throw new Error(
108
+ "[trails-sdk] Either depositTransactionHash or depositSignature must be provided",
109
+ )
110
+ }
111
+
112
+ const response = await trailsClient.executeIntent({
113
+ intentId,
114
+ depositTransactionHash,
115
+ depositSignature,
116
+ })
117
+
118
+ logger.console.log(
119
+ "[trails-sdk] useExecuteIntent: Execution successful",
120
+ {
121
+ intentId,
122
+ response,
123
+ },
124
+ )
125
+
126
+ return response
127
+ },
128
+ })
129
+ }
@@ -1,38 +1,35 @@
1
- import type { IntentPrecondition } from "@0xsequence/trails-api"
1
+ import type { TransactionPrecondition } from "@0xsequence/trails-api"
2
+
3
+ // Backward compatibility alias
4
+ export type IntentPrecondition = TransactionPrecondition
2
5
 
3
6
  export function findPreconditionAddresses(
4
- preconditions: IntentPrecondition[],
7
+ preconditions: TransactionPrecondition[],
5
8
  originChainId: number,
6
9
  destinationChainId: number,
7
10
  ): { originAddress?: string; destinationAddress?: string } {
8
11
  const origin = preconditions.find(
9
- (p) => p.chainId === originChainId.toString() && p.data?.address,
12
+ (p) => p.chainId === originChainId && p.ownerAddress,
10
13
  )
11
14
  const destination = preconditions.find(
12
- (p) => p.chainId === destinationChainId.toString() && p.data?.address,
15
+ (p) => p.chainId === destinationChainId && p.ownerAddress,
13
16
  )
14
17
 
15
18
  return {
16
- originAddress: origin?.data?.address,
17
- destinationAddress: destination?.data?.address,
19
+ originAddress: origin?.ownerAddress,
20
+ destinationAddress: destination?.ownerAddress,
18
21
  }
19
22
  }
20
23
 
21
24
  export function findChainAndAddressesFromPreconditions(
22
- preconditions: IntentPrecondition[],
25
+ preconditions: TransactionPrecondition[],
23
26
  ): { chainId: number; address: string }[] {
24
27
  const addressesFromPreconditions: { chainId: number; address: string }[] = []
25
28
  preconditions.forEach((p) => {
26
- if (
27
- (p.type === "erc20-balance" ||
28
- p.type === "native-balance" ||
29
- p.type === "transfer-native") &&
30
- p.data?.address &&
31
- p.chainId
32
- ) {
29
+ if (p.type === "tokenMinBalance" && p.ownerAddress && p.chainId) {
33
30
  addressesFromPreconditions.push({
34
- chainId: parseInt(p.chainId, 10),
35
- address: p.data.address,
31
+ chainId: p.chainId,
32
+ address: p.ownerAddress,
36
33
  })
37
34
  }
38
35
  })
@@ -40,13 +37,11 @@ export function findChainAndAddressesFromPreconditions(
40
37
  }
41
38
 
42
39
  export function findFirstPreconditionForChainId(
43
- preconditions: IntentPrecondition[],
40
+ preconditions: TransactionPrecondition[],
44
41
  chainId: number,
45
- ): IntentPrecondition | null {
42
+ ): TransactionPrecondition | null {
46
43
  const precondition = preconditions.find(
47
- (p) =>
48
- (p.type === "erc20-balance" || p.type === "native-balance") &&
49
- p.chainId === chainId?.toString(),
44
+ (p) => p.type === "tokenMinBalance" && p.chainId === chainId,
50
45
  )
51
46
  return precondition ?? null
52
47
  }