0xtrails 0.1.13 → 0.2.1

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 (256) hide show
  1. package/dist/aave.d.ts.map +1 -1
  2. package/dist/analytics.d.ts +12 -2
  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-D3gTQONK.js → ccip-BbfANth7.js} +12 -12
  7. package/dist/cctp.d.ts.map +1 -1
  8. package/dist/cctpqueue.d.ts +3 -3
  9. package/dist/cctpqueue.d.ts.map +1 -1
  10. package/dist/chains.d.ts.map +1 -1
  11. package/dist/config.d.ts +18 -5
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/constants.d.ts +6 -5
  14. package/dist/constants.d.ts.map +1 -1
  15. package/dist/contractUtils.d.ts +2 -0
  16. package/dist/contractUtils.d.ts.map +1 -1
  17. package/dist/customChains.d.ts +24 -0
  18. package/dist/customChains.d.ts.map +1 -0
  19. package/dist/gasless.d.ts +19 -7
  20. package/dist/gasless.d.ts.map +1 -1
  21. package/dist/{index-CnUM7lKf.js → index-WpIVoh3X.js} +36741 -31761
  22. package/dist/index.d.ts +5 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +405 -394
  25. package/dist/indexerClient.d.ts +10 -0
  26. package/dist/indexerClient.d.ts.map +1 -1
  27. package/dist/intentEntrypoint.d.ts +122 -0
  28. package/dist/intentEntrypoint.d.ts.map +1 -0
  29. package/dist/intents.d.ts +5 -3
  30. package/dist/intents.d.ts.map +1 -1
  31. package/dist/metaTxnMonitor.d.ts.map +1 -1
  32. package/dist/morpho.d.ts.map +1 -1
  33. package/dist/pools.d.ts +3 -1
  34. package/dist/pools.d.ts.map +1 -1
  35. package/dist/prepareSend.d.ts +18 -9
  36. package/dist/prepareSend.d.ts.map +1 -1
  37. package/dist/prices.d.ts +1 -1
  38. package/dist/prices.d.ts.map +1 -1
  39. package/dist/relaySdk.d.ts.map +1 -1
  40. package/dist/relayer.d.ts.map +1 -1
  41. package/dist/toast.d.ts +9 -0
  42. package/dist/toast.d.ts.map +1 -0
  43. package/dist/tokenBalances.d.ts +6 -2
  44. package/dist/tokenBalances.d.ts.map +1 -1
  45. package/dist/tokens.d.ts.map +1 -1
  46. package/dist/trails.d.ts +6 -5
  47. package/dist/trails.d.ts.map +1 -1
  48. package/dist/trailsClient.d.ts +12 -0
  49. package/dist/trailsClient.d.ts.map +1 -0
  50. package/dist/trailsRouter.d.ts +22 -0
  51. package/dist/trailsRouter.d.ts.map +1 -0
  52. package/dist/transactions.d.ts +8 -1
  53. package/dist/transactions.d.ts.map +1 -1
  54. package/dist/wallets.d.ts.map +1 -1
  55. package/dist/widget/components/AccountActionsDropdown.d.ts.map +1 -1
  56. package/dist/widget/components/AccountIntentTransactionHistory.d.ts.map +1 -1
  57. package/dist/widget/components/AccountSettings.d.ts +7 -0
  58. package/dist/widget/components/AccountSettings.d.ts.map +1 -0
  59. package/dist/widget/components/ChainList.d.ts +0 -1
  60. package/dist/widget/components/ChainList.d.ts.map +1 -1
  61. package/dist/widget/components/ClassicSwap.d.ts +46 -0
  62. package/dist/widget/components/ClassicSwap.d.ts.map +1 -0
  63. package/dist/widget/components/ConfigDisplay.d.ts.map +1 -1
  64. package/dist/widget/components/ConnectWallet.d.ts.map +1 -1
  65. package/dist/widget/components/ConnectedWallets.d.ts +9 -0
  66. package/dist/widget/components/ConnectedWallets.d.ts.map +1 -0
  67. package/dist/widget/components/DebugMenu.d.ts.map +1 -1
  68. package/dist/widget/components/DebugScreensList.d.ts.map +1 -1
  69. package/dist/widget/components/DebugToast.d.ts +3 -0
  70. package/dist/widget/components/DebugToast.d.ts.map +1 -0
  71. package/dist/widget/components/Earn.d.ts.map +1 -1
  72. package/dist/widget/components/EarnPools.d.ts.map +1 -1
  73. package/dist/widget/components/FeeOption.d.ts +22 -0
  74. package/dist/widget/components/FeeOption.d.ts.map +1 -0
  75. package/dist/widget/components/FeeOptions.d.ts +13 -17
  76. package/dist/widget/components/FeeOptions.d.ts.map +1 -1
  77. package/dist/widget/components/Fund.d.ts +44 -0
  78. package/dist/widget/components/Fund.d.ts.map +1 -0
  79. package/dist/widget/components/FundMethods.d.ts +1 -1
  80. package/dist/widget/components/FundMethods.d.ts.map +1 -1
  81. package/dist/widget/components/FundSendForm.d.ts.map +1 -1
  82. package/dist/widget/components/Identicon.d.ts +9 -0
  83. package/dist/widget/components/Identicon.d.ts.map +1 -0
  84. package/dist/widget/components/MeshConnectExchanges.d.ts +5 -2
  85. package/dist/widget/components/MeshConnectExchanges.d.ts.map +1 -1
  86. package/dist/widget/components/MeshConnectFlow.d.ts +2 -0
  87. package/dist/widget/components/MeshConnectFlow.d.ts.map +1 -1
  88. package/dist/widget/components/NativeGasOption.d.ts +12 -0
  89. package/dist/widget/components/NativeGasOption.d.ts.map +1 -0
  90. package/dist/widget/components/Pay.d.ts +46 -0
  91. package/dist/widget/components/Pay.d.ts.map +1 -0
  92. package/dist/widget/components/PaySendForm.d.ts.map +1 -1
  93. package/dist/widget/components/QuoteDetails.d.ts.map +1 -1
  94. package/dist/widget/components/Receive.d.ts.map +1 -1
  95. package/dist/widget/components/RecentTokens.d.ts.map +1 -1
  96. package/dist/widget/components/Recipients.d.ts +9 -0
  97. package/dist/widget/components/Recipients.d.ts.map +1 -0
  98. package/dist/widget/components/RefundWarning.d.ts +9 -0
  99. package/dist/widget/components/RefundWarning.d.ts.map +1 -0
  100. package/dist/widget/components/SimpleSwap.d.ts.map +1 -1
  101. package/dist/widget/components/Swap.d.ts.map +1 -1
  102. package/dist/widget/components/SwapSettings.d.ts +1 -5
  103. package/dist/widget/components/SwapSettings.d.ts.map +1 -1
  104. package/dist/widget/components/ThemeProvider.d.ts.map +1 -1
  105. package/dist/widget/components/ThemeSyncer.d.ts +6 -0
  106. package/dist/widget/components/ThemeSyncer.d.ts.map +1 -0
  107. package/dist/widget/components/Toast.d.ts +24 -0
  108. package/dist/widget/components/Toast.d.ts.map +1 -0
  109. package/dist/widget/components/TokenList.d.ts.map +1 -1
  110. package/dist/widget/components/TokenSelector.d.ts.map +1 -1
  111. package/dist/widget/components/TransactionDetails.d.ts.map +1 -1
  112. package/dist/widget/components/TruncatedAddress.d.ts +2 -0
  113. package/dist/widget/components/TruncatedAddress.d.ts.map +1 -1
  114. package/dist/widget/components/UserPreferences.d.ts +7 -0
  115. package/dist/widget/components/UserPreferences.d.ts.map +1 -0
  116. package/dist/widget/hooks/useBack.d.ts +2 -0
  117. package/dist/widget/hooks/useBack.d.ts.map +1 -1
  118. package/dist/widget/hooks/useBalanceVisible.d.ts +1 -0
  119. package/dist/widget/hooks/useBalanceVisible.d.ts.map +1 -1
  120. package/dist/widget/hooks/useCheckout.d.ts.map +1 -1
  121. package/dist/widget/hooks/useCurrentScreen.d.ts +1 -1
  122. package/dist/widget/hooks/useCurrentScreen.d.ts.map +1 -1
  123. package/dist/widget/hooks/useDebugScreens.d.ts +1 -1
  124. package/dist/widget/hooks/useDebugScreens.d.ts.map +1 -1
  125. package/dist/widget/hooks/useDefaultTokenSelection.d.ts +54 -0
  126. package/dist/widget/hooks/useDefaultTokenSelection.d.ts.map +1 -0
  127. package/dist/widget/hooks/useIntentTransactionHistory.d.ts.map +1 -1
  128. package/dist/widget/hooks/usePayMessage.d.ts +34 -0
  129. package/dist/widget/hooks/usePayMessage.d.ts.map +1 -0
  130. package/dist/widget/hooks/useRecipients.d.ts +17 -0
  131. package/dist/widget/hooks/useRecipients.d.ts.map +1 -0
  132. package/dist/widget/hooks/useSelectedFeeToken.d.ts +32 -0
  133. package/dist/widget/hooks/useSelectedFeeToken.d.ts.map +1 -0
  134. package/dist/widget/hooks/useSelectedMeshExchange.d.ts +14 -0
  135. package/dist/widget/hooks/useSelectedMeshExchange.d.ts.map +1 -0
  136. package/dist/widget/hooks/useSelectedRecipient.d.ts +12 -0
  137. package/dist/widget/hooks/useSelectedRecipient.d.ts.map +1 -0
  138. package/dist/widget/hooks/useSendForm.d.ts +10 -13
  139. package/dist/widget/hooks/useSendForm.d.ts.map +1 -1
  140. package/dist/widget/hooks/useSwapAmount.d.ts +13 -0
  141. package/dist/widget/hooks/useSwapAmount.d.ts.map +1 -0
  142. package/dist/widget/hooks/useSwapSettings.d.ts +16 -0
  143. package/dist/widget/hooks/useSwapSettings.d.ts.map +1 -0
  144. package/dist/widget/hooks/useTargetAmount.d.ts +5 -0
  145. package/dist/widget/hooks/useTargetAmount.d.ts.map +1 -0
  146. package/dist/widget/hooks/useTheme.d.ts +14 -0
  147. package/dist/widget/hooks/useTheme.d.ts.map +1 -0
  148. package/dist/widget/hooks/useTokenList.d.ts.map +1 -1
  149. package/dist/widget/index.js +2 -2
  150. package/dist/widget/widget.d.ts +9 -0
  151. package/dist/widget/widget.d.ts.map +1 -1
  152. package/package.json +38 -36
  153. package/src/aave.ts +6 -1
  154. package/src/analytics.ts +109 -53
  155. package/src/apiClient.ts +1 -1
  156. package/src/cctp.ts +6 -2
  157. package/src/cctpqueue.ts +7 -7
  158. package/src/chains.ts +18 -0
  159. package/src/config.ts +63 -17
  160. package/src/constants.ts +20 -16
  161. package/src/contractUtils.ts +33 -2
  162. package/src/customChains.ts +24 -0
  163. package/src/gasless.ts +162 -109
  164. package/src/index.ts +11 -1
  165. package/src/indexerClient.ts +73 -1
  166. package/src/intentEntrypoint.ts +218 -0
  167. package/src/intents.ts +85 -54
  168. package/src/metaTxnMonitor.ts +1 -0
  169. package/src/morpho.ts +13 -2
  170. package/src/pools.ts +68 -86
  171. package/src/prepareSend.ts +1719 -967
  172. package/src/prices.ts +51 -7
  173. package/src/relaySdk.ts +6 -4
  174. package/src/relayer.ts +6 -3
  175. package/src/toast.ts +110 -0
  176. package/src/tokenBalances.ts +112 -20
  177. package/src/tokens.ts +70 -7
  178. package/src/trails.ts +81 -80
  179. package/src/trailsClient.ts +48 -0
  180. package/src/{proxyCaller.ts → trailsRouter.ts} +25 -20
  181. package/src/transactions.ts +30 -88
  182. package/src/umd.tsx +1 -1
  183. package/src/wallets.ts +2 -1
  184. package/src/widget/assets/sequence-logo.svg +15 -0
  185. package/src/widget/compiled.css +2 -2
  186. package/src/widget/components/AccountActionsDropdown.tsx +18 -159
  187. package/src/widget/components/AccountIntentTransactionHistory.tsx +346 -63
  188. package/src/widget/components/AccountSettings.tsx +102 -0
  189. package/src/widget/components/ChainFilterDropdown.tsx +1 -1
  190. package/src/widget/components/ChainList.tsx +10 -20
  191. package/src/widget/components/ClassicSwap.tsx +921 -0
  192. package/src/widget/components/ConfigDisplay.tsx +41 -5
  193. package/src/widget/components/ConnectWallet.tsx +168 -11
  194. package/src/widget/components/ConnectedWallets.tsx +342 -0
  195. package/src/widget/components/DebugMenu.tsx +2 -0
  196. package/src/widget/components/DebugScreensList.tsx +3 -0
  197. package/src/widget/components/DebugToast.tsx +63 -0
  198. package/src/widget/components/Earn.tsx +112 -143
  199. package/src/widget/components/EarnPools.tsx +2 -4
  200. package/src/widget/components/EarnPoolsFilters.tsx +6 -6
  201. package/src/widget/components/FeeOption.tsx +78 -0
  202. package/src/widget/components/FeeOptions.tsx +192 -127
  203. package/src/widget/components/Fund.tsx +1236 -0
  204. package/src/widget/components/FundMethods.tsx +4 -4
  205. package/src/widget/components/FundSendForm.tsx +1 -34
  206. package/src/widget/components/Identicon.tsx +158 -0
  207. package/src/widget/components/MeshConnectExchanges.tsx +32 -3
  208. package/src/widget/components/MeshConnectFlow.tsx +23 -4
  209. package/src/widget/components/NativeGasOption.tsx +99 -0
  210. package/src/widget/components/Pay.tsx +1092 -0
  211. package/src/widget/components/PaySendForm.tsx +1 -38
  212. package/src/widget/components/QuoteDetails.tsx +1 -30
  213. package/src/widget/components/Receipt.tsx +1 -1
  214. package/src/widget/components/Receive.tsx +4 -2
  215. package/src/widget/components/RecentTokens.tsx +2 -1
  216. package/src/widget/components/Recipients.tsx +448 -0
  217. package/src/widget/components/RefundWarning.tsx +61 -0
  218. package/src/widget/components/ScreenHeader.tsx +1 -1
  219. package/src/widget/components/SimpleSwap.tsx +74 -58
  220. package/src/widget/components/Swap.tsx +35 -853
  221. package/src/widget/components/SwapSettings.tsx +5 -11
  222. package/src/widget/components/ThemeProvider.tsx +32 -0
  223. package/src/widget/components/ThemeSyncer.tsx +47 -0
  224. package/src/widget/components/Toast.tsx +315 -0
  225. package/src/widget/components/TokenList.tsx +2 -34
  226. package/src/widget/components/TokenSelector.tsx +14 -3
  227. package/src/widget/components/TransactionDetails.tsx +153 -13
  228. package/src/widget/components/TransferPendingVertical.tsx +1 -1
  229. package/src/widget/components/TruncatedAddress.tsx +5 -1
  230. package/src/widget/components/UserPreferences.tsx +155 -0
  231. package/src/widget/components/WalletList.tsx +1 -1
  232. package/src/widget/hooks/useBack.tsx +4 -0
  233. package/src/widget/hooks/useBalanceVisible.tsx +40 -2
  234. package/src/widget/hooks/useCheckout.ts +13 -0
  235. package/src/widget/hooks/useCurrentScreen.tsx +4 -0
  236. package/src/widget/hooks/useDebugScreens.ts +12 -2
  237. package/src/widget/hooks/useDefaultTokenSelection.tsx +471 -0
  238. package/src/widget/hooks/useIntentTransactionHistory.ts +212 -0
  239. package/src/widget/hooks/usePayMessage.tsx +370 -0
  240. package/src/widget/hooks/useRecipients.ts +168 -0
  241. package/src/widget/hooks/useSelectedFeeToken.tsx +299 -0
  242. package/src/widget/hooks/useSelectedMeshExchange.tsx +46 -0
  243. package/src/widget/hooks/useSelectedRecipient.tsx +48 -0
  244. package/src/widget/hooks/useSendForm.ts +257 -49
  245. package/src/widget/hooks/useSwapAmount.tsx +50 -0
  246. package/src/widget/hooks/useSwapSettings.tsx +100 -0
  247. package/src/widget/hooks/useTargetAmount.ts +23 -0
  248. package/src/widget/hooks/useTheme.tsx +80 -0
  249. package/src/widget/hooks/useTokenList.ts +20 -11
  250. package/src/widget/index.css +45 -21
  251. package/src/widget/widget.tsx +294 -136
  252. package/dist/address.d.ts +0 -2
  253. package/dist/address.d.ts.map +0 -1
  254. package/dist/proxyCaller.d.ts +0 -21
  255. package/dist/proxyCaller.d.ts.map +0 -1
  256. package/src/address.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/widget/widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/widget/widget.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0xtrails",
3
- "version": "0.1.13",
3
+ "version": "0.2.1",
4
4
  "description": "SDK for Trails",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -22,64 +22,66 @@
22
22
  "author": "",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
- "@0xsequence/account": "^2.3.28",
26
- "@0xsequence/connect": "^5.3.15",
27
- "@0xsequence/core": "^2.3.28",
28
- "@0xsequence/design-system": "^2.2.3",
29
- "@0xsequence/guard": "^2.3.28",
30
- "@0xsequence/hooks": "^5.3.15",
31
- "@0xsequence/indexer": "^2.3.28",
32
- "@0xsequence/metadata": "^2.3.28",
33
- "@0xsequence/network": "^2.3.28",
34
- "@0xsequence/relayer": "^2.3.28",
35
- "@0xsequence/sessions": "^2.3.28",
36
- "@0xsequence/signhub": "^2.3.28",
37
- "@0xsequence/trails-api": "^0.0.10",
38
- "@0xsequence/trails-relayer": "^0.0.9",
25
+ "@0xsequence/account": "^2.3.30",
26
+ "@0xsequence/api": "^2.3.30",
27
+ "@0xsequence/connect": "^5.3.23",
28
+ "@0xsequence/core": "^2.3.30",
29
+ "@0xsequence/design-system": "^2.2.5",
30
+ "@0xsequence/guard": "^2.3.30",
31
+ "@0xsequence/hooks": "^5.3.23",
32
+ "@0xsequence/indexer": "^2.3.30",
33
+ "@0xsequence/metadata": "^2.3.30",
34
+ "@0xsequence/network": "^2.3.30",
35
+ "@0xsequence/relayer": "^2.3.30",
36
+ "@0xsequence/sessions": "^2.3.30",
37
+ "@0xsequence/signhub": "^2.3.30",
38
+ "@0xsequence/trails-api": "^0.1.1",
39
39
  "@0xsequence/wallet-core": "^0.0.0-20250917144328",
40
40
  "@0xsequence/wallet-primitives": "^0.0.0-20250917144328",
41
41
  "@aave/react": "^0.4.0",
42
42
  "@databeat/tracker": "^0.9.3",
43
+ "@emotion/is-prop-valid": "^1.3.4",
43
44
  "@meshconnect/web-link-sdk": "3.2.14",
44
45
  "@reservoir0x/relay-sdk": "^2.4.0",
45
- "@tanstack/react-query": "^5.90.1",
46
+ "@tanstack/react-query": "^5.90.3",
46
47
  "@types/qrcode": "^1.5.5",
47
48
  "buffer": "^6.0.3",
48
- "framer-motion": "^12.23.18",
49
+ "framer-motion": "^12.23.24",
49
50
  "lucide-react": "^0.493.0",
50
- "motion": "^12.23.18",
51
+ "motion": "^12.23.24",
51
52
  "ox": "^0.7.2",
52
53
  "qrcode": "^1.5.4"
53
54
  },
54
- "peerDependencies": {
55
- "@0xsequence/hooks": "^5.3.13",
56
- "@tanstack/react-query": "^5.85.5",
57
- "ethers": "^6.15.0",
58
- "react": "^19.0.0",
59
- "react-dom": "^19.0.0",
60
- "viem": "^2.33.1",
61
- "wagmi": "^2.16.9"
62
- },
63
55
  "devDependencies": {
64
- "@tailwindcss/cli": "^4.1.13",
65
- "@testing-library/jest-dom": "^6.8.0",
56
+ "@tailwindcss/cli": "^4.1.14",
57
+ "@testing-library/jest-dom": "^6.9.1",
66
58
  "@testing-library/react": "^16.3.0",
67
- "@types/node": "^22.18.6",
68
- "@types/react": "^19.1.13",
69
- "@types/react-dom": "^19.1.9",
59
+ "@types/node": "^22.18.10",
60
+ "@types/react": "^19.2.2",
61
+ "@types/react-dom": "^19.2.2",
70
62
  "@vitejs/plugin-react": "^4.7.0",
71
63
  "dotenv": "^16.6.1",
72
64
  "globals": "^15.15.0",
65
+ "happy-dom": "^19.0.2",
73
66
  "jsdom": "^26.1.0",
74
- "patch-package": "^8.0.0",
67
+ "patch-package": "^8.0.1",
75
68
  "table": "^6.9.0",
76
- "tailwindcss": "^4.1.13",
77
- "turbo": "^2.5.6",
78
- "typescript": "^5.9.2",
69
+ "tailwindcss": "^4.1.14",
70
+ "turbo": "^2.5.8",
71
+ "typescript": "^5.9.3",
79
72
  "vite": "^5.4.20",
80
73
  "vite-plugin-dts": "^4.5.4",
81
74
  "vitest": "^3.2.4"
82
75
  },
76
+ "peerDependencies": {
77
+ "@0xsequence/hooks": "^5.3.23",
78
+ "@tanstack/react-query": "^5.90.3",
79
+ "ethers": "^6.15.0",
80
+ "react": "^19.2.0",
81
+ "react-dom": "^19.2.0",
82
+ "viem": "^2.38.2",
83
+ "wagmi": "^2.18.0"
84
+ },
83
85
  "exports": {
84
86
  ".": {
85
87
  "import": "./dist/index.js",
package/src/aave.ts CHANGED
@@ -111,10 +111,15 @@ export function useAavePools() {
111
111
  return hasSupplyInfo && hasLiquidity
112
112
  })
113
113
  .map((reserve: any) => {
114
+ const decimals = reserve.underlyingToken?.decimals
115
+ if (!decimals) {
116
+ throw new Error("Decimals not found")
117
+ }
118
+
114
119
  const tokenMetadata = {
115
120
  symbol: reserve.underlyingToken?.symbol || "UNKNOWN",
116
121
  name: reserve.underlyingToken?.name || "Unknown Token",
117
- decimals: reserve.underlyingToken?.decimals || 18,
122
+ decimals,
118
123
  }
119
124
 
120
125
  const pool = {
package/src/analytics.ts CHANGED
@@ -2,11 +2,16 @@ import { Databeat, type Event as DatabeatEvent } from "@databeat/tracker"
2
2
  import { Bytes, Hash } from "ox"
3
3
  import { DATABEAT_KEY, DATABEAT_SERVER } from "./constants.js"
4
4
  import { getQueryParam } from "./queryParams.js"
5
- import { getSequenceProjectAccessKey } from "./config.js"
5
+ import { getSequenceProjectAccessKey, getEnvVar } from "./config.js"
6
6
  import { logger } from "./logger.js"
7
+ import packageJson from "../package.json" with { type: "json" }
7
8
 
8
9
  let checkoutIdSingleton: string | null = null
9
10
 
11
+ export function getSdkVersion() {
12
+ return packageJson.version || "dev"
13
+ }
14
+
10
15
  export function hasCheckoutId() {
11
16
  return checkoutIdSingleton !== null
12
17
  }
@@ -125,6 +130,18 @@ export function pseudonymize(
125
130
  return hashHex.replace("0x", "").substring(0, 50)
126
131
  }
127
132
 
133
+ export function hashUserAddress(address: string) {
134
+ return pseudonymize(pseudonymize(address), {
135
+ userAgentSalt: false,
136
+ extraSalt: "s3qs4lt",
137
+ })
138
+ }
139
+
140
+ if (typeof window !== "undefined") {
141
+ // for debugging
142
+ ;(window as any)._pseudonymize = pseudonymize
143
+ }
144
+
128
145
  export const EventType = {
129
146
  PAGEVIEW: "PAGEVIEW" as const,
130
147
  WIDGET_SCREEN: "WIDGET_SCREEN" as const,
@@ -168,6 +185,7 @@ abstract class BaseAnalytics {
168
185
  ...this.getDocumentProps(),
169
186
  ...this.getWindowProps(),
170
187
  sequenceProjectAccessKey: getSequenceProjectAccessKey(),
188
+ sdkVersion: getSdkVersion(),
171
189
  }
172
190
  }
173
191
 
@@ -246,7 +264,7 @@ abstract class BaseAnalytics {
246
264
  checkoutId: getCheckoutId(),
247
265
  ...data,
248
266
  ...(data.userAddress && {
249
- userAddress: pseudonymize(data.userAddress),
267
+ userAddress: hashUserAddress(data.userAddress),
250
268
  }),
251
269
  },
252
270
  })
@@ -275,10 +293,10 @@ abstract class BaseAnalytics {
275
293
  checkoutId: getNewCheckoutId(data.userAddress),
276
294
  ...data,
277
295
  ...(data.userAddress && {
278
- userAddress: pseudonymize(data.userAddress),
296
+ userAddress: hashUserAddress(data.userAddress),
279
297
  }),
280
298
  ...(data.intentAddress && {
281
- intentAddress: pseudonymize(data.intentAddress),
299
+ intentAddress: data.intentAddress,
282
300
  }),
283
301
  destinationChainId: data.destinationChainId?.toString(),
284
302
  originChainId: data.originChainId?.toString(),
@@ -309,10 +327,10 @@ abstract class BaseAnalytics {
309
327
  originChainId: data.originChainId?.toString(),
310
328
  destinationChainId: data.destinationChainId?.toString(),
311
329
  ...(data.userAddress && {
312
- userAddress: pseudonymize(data.userAddress),
330
+ userAddress: hashUserAddress(data.userAddress),
313
331
  }),
314
332
  ...(data.intentAddress && {
315
- intentAddress: pseudonymize(data.intentAddress),
333
+ intentAddress: data.intentAddress,
316
334
  }),
317
335
  depositTokenAmountUsd: data.depositTokenAmountUsd?.toString(),
318
336
  destinationTokenAmountUsd: data.destinationTokenAmountUsd?.toString(),
@@ -338,10 +356,10 @@ abstract class BaseAnalytics {
338
356
  checkoutId: getCheckoutId(),
339
357
  ...data,
340
358
  ...(data.userAddress && {
341
- userAddress: pseudonymize(data.userAddress),
359
+ userAddress: hashUserAddress(data.userAddress),
342
360
  }),
343
361
  ...(data.intentAddress && {
344
- intentAddress: pseudonymize(data.intentAddress),
362
+ intentAddress: data.intentAddress,
345
363
  }),
346
364
  originChainId: data.originChainId?.toString(),
347
365
  destinationChainId: data.destinationChainId?.toString(),
@@ -361,7 +379,7 @@ abstract class BaseAnalytics {
361
379
  props: {
362
380
  ...this.getCommonProps(),
363
381
  ...data,
364
- address: pseudonymize(data.address),
382
+ address: data.address,
365
383
  chainId: data.chainId?.toString(),
366
384
  },
367
385
  })
@@ -400,7 +418,7 @@ abstract class BaseAnalytics {
400
418
  originTokenAddress: data.originTokenAddress,
401
419
  destinationTokenAddress: data.destinationTokenAddress,
402
420
  ...(data.userAddress && {
403
- userAddress: pseudonymize(data.userAddress),
421
+ userAddress: hashUserAddress(data.userAddress),
404
422
  }),
405
423
  originTokenSymbol: data.originTokenSymbol,
406
424
  destinationTokenSymbol: data.destinationTokenSymbol,
@@ -418,7 +436,7 @@ abstract class BaseAnalytics {
418
436
  trailsSwapFeeUSD?: number
419
437
  gasFeesPerChainUSD?: number[]
420
438
  originTokenTotalAmount?: string
421
- destinationTokenAmount?: string
439
+ totalFeeAmount?: string
422
440
  provider?: string
423
441
  feeToken?: string
424
442
  userAddress?: string
@@ -429,13 +447,19 @@ abstract class BaseAnalytics {
429
447
  originTokenSymbol?: string
430
448
  destinationTokenSymbol?: string
431
449
  depositTokenAmountUsd?: string
450
+ originPreconditionAmount?: string
451
+ destinationPreconditionAmount?: string
452
+ fromAmount?: string
453
+ fromAmountMin?: string
454
+ toAmount?: string
455
+ toAmountMin?: string
432
456
  [key: string]: any
433
457
  }) {
434
458
  this.track({
435
459
  event: EventType.INTENT_QUOTE_RECEIVED,
436
460
  props: {
437
461
  ...this.getCommonProps(),
438
- quoteId: pseudonymize(data.quoteId),
462
+ quoteId: data.quoteId,
439
463
  checkoutId: getCheckoutId(),
440
464
  totalFeeUSD: data.totalFeeUSD?.toString(),
441
465
  trailsFixedFeeUSD: data.trailsFixedFeeUSD?.toString(),
@@ -447,19 +471,26 @@ abstract class BaseAnalytics {
447
471
  ?.map((fee) => fee?.toString())
448
472
  .join(","),
449
473
  originTokenTotalAmount: data.originTokenTotalAmount?.toString(),
450
- destinationTokenAmount: data.destinationTokenAmount?.toString(),
474
+ totalFeeAmount: data.totalFeeAmount?.toString(),
451
475
  provider: data.provider,
452
476
  feeToken: data.feeToken,
453
477
  ...(data.userAddress && {
454
- userAddress: pseudonymize(data.userAddress),
478
+ userAddress: hashUserAddress(data.userAddress),
455
479
  }),
456
480
  ...(data.intentAddress && {
457
- intentAddress: pseudonymize(data.intentAddress),
481
+ intentAddress: data.intentAddress,
458
482
  }),
459
483
  feeTokenSymbol: data.feeTokenSymbol,
460
484
  originTokenSymbol: data.originTokenSymbol,
461
485
  destinationTokenSymbol: data.destinationTokenSymbol,
462
486
  depositTokenAmountUsd: data.depositTokenAmountUsd?.toString(),
487
+ originPreconditionAmount: data.originPreconditionAmount?.toString(),
488
+ destinationPreconditionAmount:
489
+ data.destinationPreconditionAmount?.toString(),
490
+ fromAmount: data.fromAmount?.toString(),
491
+ fromAmountMin: data.fromAmountMin?.toString(),
492
+ toAmount: data.toAmount?.toString(),
493
+ toAmountMin: data.toAmountMin?.toString(),
463
494
  },
464
495
  })
465
496
  }
@@ -484,7 +515,7 @@ abstract class BaseAnalytics {
484
515
  checkoutId: getCheckoutId(),
485
516
  ...data,
486
517
  ...(data.userAddress && {
487
- userAddress: pseudonymize(data.userAddress),
518
+ userAddress: hashUserAddress(data.userAddress),
488
519
  }),
489
520
  originChainId: data.originChainId?.toString(),
490
521
  destinationChainId: data.destinationChainId?.toString(),
@@ -509,9 +540,9 @@ abstract class BaseAnalytics {
509
540
  ...data,
510
541
  originChainId: data.originChainId?.toString(),
511
542
  destinationChainId: data.destinationChainId?.toString(),
512
- intentAddress: pseudonymize(data.intentAddress),
543
+ intentAddress: data.intentAddress,
513
544
  ...(data.userAddress && {
514
- userAddress: pseudonymize(data.userAddress),
545
+ userAddress: hashUserAddress(data.userAddress),
515
546
  }),
516
547
  originTokenSymbol: data.originTokenSymbol,
517
548
  destinationTokenSymbol: data.destinationTokenSymbol,
@@ -534,9 +565,9 @@ abstract class BaseAnalytics {
534
565
  ...data,
535
566
  originChainId: data.originChainId?.toString(),
536
567
  destinationChainId: data.destinationChainId?.toString(),
537
- intentAddress: pseudonymize(data.intentAddress),
568
+ intentAddress: data.intentAddress,
538
569
  ...(data.userAddress && {
539
- userAddress: pseudonymize(data.userAddress),
570
+ userAddress: hashUserAddress(data.userAddress),
540
571
  }),
541
572
  originTokenSymbol: data.originTokenSymbol,
542
573
  destinationTokenSymbol: data.destinationTokenSymbol,
@@ -563,10 +594,10 @@ abstract class BaseAnalytics {
563
594
  checkoutId: getCheckoutId(),
564
595
  ...data,
565
596
  ...(data.userAddress && {
566
- userAddress: pseudonymize(data.userAddress),
597
+ userAddress: hashUserAddress(data.userAddress),
567
598
  }),
568
599
  ...(data.intentAddress && {
569
- intentAddress: pseudonymize(data.intentAddress),
600
+ intentAddress: data.intentAddress,
570
601
  }),
571
602
  originChainId: data.originChainId?.toString(),
572
603
  destinationChainId: data.destinationChainId?.toString(),
@@ -594,10 +625,10 @@ abstract class BaseAnalytics {
594
625
  checkoutId: getCheckoutId(),
595
626
  ...data,
596
627
  ...(data.userAddress && {
597
- userAddress: pseudonymize(data.userAddress),
628
+ userAddress: hashUserAddress(data.userAddress),
598
629
  }),
599
630
  ...(data.intentAddress && {
600
- intentAddress: pseudonymize(data.intentAddress),
631
+ intentAddress: data.intentAddress,
601
632
  }),
602
633
  chainId: data.chainId?.toString(),
603
634
  depositTokenAmountUsd: data.depositTokenAmountUsd?.toString(),
@@ -621,10 +652,10 @@ abstract class BaseAnalytics {
621
652
  checkoutId: getCheckoutId(),
622
653
  ...data,
623
654
  ...(data.userAddress && {
624
- userAddress: pseudonymize(data.userAddress),
655
+ userAddress: hashUserAddress(data.userAddress),
625
656
  }),
626
657
  ...(data.intentAddress && {
627
- intentAddress: pseudonymize(data.intentAddress),
658
+ intentAddress: data.intentAddress,
628
659
  }),
629
660
  depositTokenAmountUsd: data.depositTokenAmountUsd?.toString(),
630
661
  },
@@ -648,10 +679,10 @@ abstract class BaseAnalytics {
648
679
  checkoutId: getCheckoutId(),
649
680
  ...data,
650
681
  ...(data.userAddress && {
651
- userAddress: pseudonymize(data.userAddress),
682
+ userAddress: hashUserAddress(data.userAddress),
652
683
  }),
653
684
  ...(data.intentAddress && {
654
- intentAddress: pseudonymize(data.intentAddress),
685
+ intentAddress: data.intentAddress,
655
686
  }),
656
687
  chainId: data.chainId?.toString(),
657
688
  depositTokenAmountUsd: data.depositTokenAmountUsd?.toString(),
@@ -677,10 +708,10 @@ abstract class BaseAnalytics {
677
708
  ...data,
678
709
  chainId: data.chainId?.toString(),
679
710
  ...(data.userAddress && {
680
- userAddress: pseudonymize(data.userAddress),
711
+ userAddress: hashUserAddress(data.userAddress),
681
712
  }),
682
713
  ...(data.intentAddress && {
683
- intentAddress: pseudonymize(data.intentAddress),
714
+ intentAddress: data.intentAddress,
684
715
  }),
685
716
  blockNumber: data.blockNumber?.toString(),
686
717
  depositTokenAmountUsd: data.depositTokenAmountUsd?.toString(),
@@ -704,10 +735,10 @@ abstract class BaseAnalytics {
704
735
  checkoutId: getCheckoutId(),
705
736
  ...data,
706
737
  ...(data.userAddress && {
707
- userAddress: pseudonymize(data.userAddress),
738
+ userAddress: hashUserAddress(data.userAddress),
708
739
  }),
709
740
  ...(data.intentAddress && {
710
- intentAddress: pseudonymize(data.intentAddress),
741
+ intentAddress: data.intentAddress,
711
742
  }),
712
743
  },
713
744
  })
@@ -729,10 +760,10 @@ abstract class BaseAnalytics {
729
760
  checkoutId: getCheckoutId(),
730
761
  ...data,
731
762
  ...(data.walletAddress && {
732
- walletAddress: pseudonymize(data.walletAddress),
763
+ walletAddress: data.walletAddress,
733
764
  }),
734
765
  ...(data.contractAddress && {
735
- contractAddress: pseudonymize(data.contractAddress),
766
+ contractAddress: data.contractAddress,
736
767
  }),
737
768
  chainId: data.chainId?.toString(),
738
769
  },
@@ -754,10 +785,10 @@ abstract class BaseAnalytics {
754
785
  checkoutId: getCheckoutId(),
755
786
  ...data,
756
787
  ...(data.walletAddress && {
757
- walletAddress: pseudonymize(data.walletAddress),
788
+ walletAddress: data.walletAddress,
758
789
  }),
759
790
  ...(data.contractAddress && {
760
- contractAddress: pseudonymize(data.contractAddress),
791
+ contractAddress: data.contractAddress,
761
792
  }),
762
793
  chainId: data.chainId?.toString(),
763
794
  },
@@ -780,10 +811,10 @@ abstract class BaseAnalytics {
780
811
  checkoutId: getCheckoutId(),
781
812
  ...data,
782
813
  ...(data.walletAddress && {
783
- walletAddress: pseudonymize(data.walletAddress),
814
+ walletAddress: data.walletAddress,
784
815
  }),
785
816
  ...(data.contractAddress && {
786
- contractAddress: pseudonymize(data.contractAddress),
817
+ contractAddress: data.contractAddress,
787
818
  }),
788
819
  chainId: data.chainId?.toString(),
789
820
  },
@@ -795,21 +826,37 @@ class Analytics extends BaseAnalytics {
795
826
  private databeat: Databeat<EventTypes>
796
827
  private loggingEnabled: boolean = false
797
828
 
798
- constructor(server: string, config: any) {
829
+ constructor(server: string, auth: any, config: any) {
799
830
  super()
800
- this.databeat = new Databeat<EventTypes>(server, config)
831
+ this.databeat = new Databeat<EventTypes>(server, auth, {
832
+ userIdentTracking: true,
833
+ privacy: {
834
+ userIdHash: false, // Don't hash client-side, let server handle it
835
+ userAgentSalt: false,
836
+ },
837
+ ...config,
838
+ })
839
+
840
+ // Emit VIEW event on instance creation
841
+ setTimeout(() => {
842
+ this.databeat.trackView()
843
+ }, 100)
801
844
  }
802
845
 
803
846
  identifyUser({ address }: { address: string }) {
804
847
  if (getCheckoutUserId() !== address?.toLowerCase()) {
805
848
  resetCheckoutId()
806
849
  }
807
- this.databeat.identify(address?.toLowerCase(), { userIdHash: true })
850
+ this.databeat.identify(hashUserAddress(address), {
851
+ userIdHash: false,
852
+ allowTracking: true,
853
+ })
808
854
  }
809
855
 
810
856
  unidentifyUser() {
811
857
  resetCheckoutId()
812
- this.databeat.identify(undefined, { userIdHash: true })
858
+ this.databeat.reset()
859
+ this.databeat.identify()
813
860
  }
814
861
 
815
862
  track(event: EventProps) {
@@ -903,6 +950,7 @@ export const getAnalytics = () => {
903
950
 
904
951
  const debugLocalMode = getQueryParam("analyticsDebugLocal") === "true"
905
952
  const debugProdMode = getQueryParam("analyticsDebugProd") === "true"
953
+ const isCI = getEnvVar("CI") === "true"
906
954
  let isLocalhost = true
907
955
  if (typeof window !== "undefined") {
908
956
  isLocalhost =
@@ -910,22 +958,28 @@ export const getAnalytics = () => {
910
958
  window.location.hostname === "127.0.0.1"
911
959
  }
912
960
  const enableMockAnalytics =
913
- (!DATABEAT_KEY || debugLocalMode || isLocalhost) && !debugProdMode
961
+ (!DATABEAT_KEY || debugLocalMode || isLocalhost || isCI) && !debugProdMode
914
962
  if (enableMockAnalytics) {
915
- singleton = new MockAnalytics({ loggingEnabled: true }) // return a dummy analytics object
963
+ singleton = new MockAnalytics({ loggingEnabled: !isCI }) // disable logging in CI
916
964
  }
917
965
  if (!singleton) {
918
- singleton = new Analytics(DATABEAT_SERVER, {
919
- jwt: DATABEAT_KEY,
920
- })
966
+ singleton = new Analytics(
967
+ DATABEAT_SERVER,
968
+ {
969
+ jwt: DATABEAT_KEY,
970
+ },
971
+ {},
972
+ )
921
973
  }
922
974
 
923
- logger.console.log(
924
- "[trails-sdk] Analytics sessionId:",
925
- singleton.getSessionId(),
926
- "[trails-sdk] Analytics userId:",
927
- singleton.getUserId(),
928
- )
975
+ if (!isCI) {
976
+ logger.console.log(
977
+ "[trails-sdk] Analytics sessionId:",
978
+ singleton.getSessionId(),
979
+ "[trails-sdk] Analytics userId:",
980
+ singleton.getUserId(),
981
+ )
982
+ }
929
983
 
930
984
  return singleton
931
985
  }
@@ -1047,6 +1101,8 @@ export const trackIntentQuoteReceived = (data: {
1047
1101
  intentAddress?: string
1048
1102
  mode?: string
1049
1103
  fundMethod?: string
1104
+ originPreconditionAmount?: string
1105
+ destinationPreconditionAmount?: string
1050
1106
  [key: string]: any
1051
1107
  }) => {
1052
1108
  const analytics = getAnalytics()
package/src/apiClient.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useConfig } from "@0xsequence/hooks"
2
- import { SequenceAPIClient } from "@0xsequence/trails-api"
2
+ import { SequenceAPIClient } from "@0xsequence/api"
3
3
  import { useMemo } from "react"
4
4
  import { getSequenceApiUrl, getSequenceProjectAccessKey } from "./config.js"
5
5
 
package/src/cctp.ts CHANGED
@@ -206,7 +206,7 @@ export async function cctpTransfer({
206
206
  token: originToken,
207
207
  account,
208
208
  spender: originTokenMessenger,
209
- amount: amount,
209
+ amount: maxUint256,
210
210
  })
211
211
 
212
212
  if (needsApproval) {
@@ -310,6 +310,10 @@ export async function getNeedsApproval({
310
310
  spender: string
311
311
  amount: bigint
312
312
  }): Promise<boolean> {
313
+ if (account?.toLowerCase() === spender.toLowerCase()) {
314
+ return false
315
+ }
316
+
313
317
  const allowance = await publicClient.readContract({
314
318
  address: token as `0x${string}`,
315
319
  abi: erc20Abi,
@@ -703,7 +707,7 @@ export async function cctpTransferWithCustomCall({
703
707
  token: originToken,
704
708
  account,
705
709
  spender: originTokenMessenger,
706
- amount: amount,
710
+ amount: maxUint256,
707
711
  })
708
712
 
709
713
  if (needsApproval) {
package/src/cctpqueue.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { getSequenceApiUrl, getSequenceProjectAccessKey } from "./config.js"
2
- import type { SequenceAPIClient } from "@0xsequence/trails-api"
1
+ import { getTrailsApiUrl, getSequenceProjectAccessKey } from "./config.js"
2
+ import type { TrailsClient } from "./trailsClient.js"
3
3
 
4
4
  // Narrow API client to one that supports queueing CCTP transfers without using 'any'
5
5
  type CctpQueueCapable = {
@@ -21,7 +21,7 @@ const fallbackQueueCCTPTransfer = async (args: {
21
21
  sourceChainId: number
22
22
  destinationChainId: number
23
23
  }): Promise<void> => {
24
- const apiUrl = getSequenceApiUrl()
24
+ const apiUrl = getTrailsApiUrl()
25
25
  const accessKey = getSequenceProjectAccessKey()
26
26
  const headers: { [key: string]: string } = {
27
27
  "Content-Type": "application/json",
@@ -40,18 +40,18 @@ export function hasCctpQueue(client: unknown): client is CctpQueueCapable {
40
40
  }
41
41
 
42
42
  export async function queueCCTPTransfer({
43
- apiClient,
43
+ trailsClient,
44
44
  sourceTxHash,
45
45
  sourceChainId,
46
46
  destinationChainId,
47
47
  }: {
48
- apiClient: SequenceAPIClient
48
+ trailsClient: TrailsClient
49
49
  sourceTxHash: string
50
50
  sourceChainId: number
51
51
  destinationChainId: number
52
52
  }): Promise<void> {
53
- if (hasCctpQueue(apiClient)) {
54
- await apiClient.queueCCTPTransfer({
53
+ if (hasCctpQueue(trailsClient)) {
54
+ await trailsClient.queueCCTPTransfer({
55
55
  sourceTxHash,
56
56
  sourceChainId,
57
57
  destinationChainId,