0xtrails 0.13.1 → 0.13.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.
Files changed (229) hide show
  1. package/dist/{ccip-DStzFCYT.js → ccip-CT_An6eM.js} +28 -28
  2. package/dist/chains.d.ts +1 -1
  3. package/dist/chains.d.ts.map +1 -1
  4. package/dist/constants.d.ts +1 -0
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/customTokens.d.ts.map +1 -1
  7. package/dist/{index-HY9_ppit.js → index-RfqL5Foz.js} +56523 -43196
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +383 -332
  11. package/dist/intents.d.ts +8 -2
  12. package/dist/intents.d.ts.map +1 -1
  13. package/dist/keyMachineClient.d.ts +9 -0
  14. package/dist/keyMachineClient.d.ts.map +1 -0
  15. package/dist/keymachine/index.d.ts +14 -0
  16. package/dist/keymachine/index.d.ts.map +1 -0
  17. package/dist/keymachine/key-machine.gen.d.ts +461 -0
  18. package/dist/keymachine/key-machine.gen.d.ts.map +1 -0
  19. package/dist/onramp/MeshConnectFlow.d.ts +18 -0
  20. package/dist/onramp/MeshConnectFlow.d.ts.map +1 -0
  21. package/dist/onramp/MeshConnectIframe.d.ts +13 -0
  22. package/dist/onramp/MeshConnectIframe.d.ts.map +1 -0
  23. package/dist/onramp/SendFromExchangeButton.d.ts +16 -0
  24. package/dist/onramp/SendFromExchangeButton.d.ts.map +1 -0
  25. package/dist/onramp/TrailsOnRampProvider.d.ts +31 -0
  26. package/dist/onramp/TrailsOnRampProvider.d.ts.map +1 -0
  27. package/dist/onramp/index.d.ts +13 -0
  28. package/dist/onramp/index.d.ts.map +1 -0
  29. package/dist/onramp/meshconnect.d.ts +30 -0
  30. package/dist/onramp/meshconnect.d.ts.map +1 -0
  31. package/dist/onramp/trailsOnramp.d.ts +24 -0
  32. package/dist/onramp/trailsOnramp.d.ts.map +1 -0
  33. package/dist/onramp-client/index.d.ts +3 -3
  34. package/dist/onramp-client/index.d.ts.map +1 -1
  35. package/dist/prepareSend.d.ts.map +1 -1
  36. package/dist/query/balance.fetchers.d.ts +27 -0
  37. package/dist/query/balance.fetchers.d.ts.map +1 -1
  38. package/dist/query/balance.hooks.d.ts +19 -0
  39. package/dist/query/balance.hooks.d.ts.map +1 -1
  40. package/dist/query/balance.queries.d.ts +18 -1
  41. package/dist/query/balance.queries.d.ts.map +1 -1
  42. package/dist/query/chains.queries.d.ts.map +1 -1
  43. package/dist/query/meld.fetchers.d.ts +1 -1
  44. package/dist/query/meld.fetchers.d.ts.map +1 -1
  45. package/dist/query/meld.hooks.d.ts +3 -3
  46. package/dist/query/meld.hooks.d.ts.map +1 -1
  47. package/dist/query/meld.queries.d.ts +1 -1
  48. package/dist/query/meld.queries.d.ts.map +1 -1
  49. package/dist/query/tokenList.queries.d.ts +54 -0
  50. package/dist/query/tokenList.queries.d.ts.map +1 -0
  51. package/dist/recover.d.ts +3 -1
  52. package/dist/recover.d.ts.map +1 -1
  53. package/dist/tokens.d.ts +13 -0
  54. package/dist/tokens.d.ts.map +1 -1
  55. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts +2 -2
  56. package/dist/transactionIntent/deposits/depositOrchestrator.d.ts.map +1 -1
  57. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts +2 -2
  58. package/dist/transactionIntent/deposits/gaslessDeposit.d.ts.map +1 -1
  59. package/dist/transactionIntent/deposits/standardDeposit.d.ts +1 -1
  60. package/dist/transactionIntent/deposits/standardDeposit.d.ts.map +1 -1
  61. package/dist/transactionIntent/handlers/intentHandler.d.ts.map +1 -1
  62. package/dist/transactionIntent/helpers/transactionStateHelpers.d.ts.map +1 -1
  63. package/dist/transactionIntent/quote/normalizeQuote.d.ts.map +1 -1
  64. package/dist/transactionIntent/types.d.ts +1 -1
  65. package/dist/transactionIntent/types.d.ts.map +1 -1
  66. package/dist/transactions.d.ts +3 -0
  67. package/dist/transactions.d.ts.map +1 -1
  68. package/dist/umd/trails.min.js +291 -202
  69. package/dist/walletUtils.d.ts +2 -1
  70. package/dist/walletUtils.d.ts.map +1 -1
  71. package/dist/wallets.d.ts +13 -54
  72. package/dist/wallets.d.ts.map +1 -1
  73. package/dist/widget/components/ClassicSwap.d.ts.map +1 -1
  74. package/dist/widget/components/ConnectWallet.d.ts.map +1 -1
  75. package/dist/widget/components/ConnectedWallets.d.ts.map +1 -1
  76. package/dist/widget/components/DirectTransfer.d.ts +1 -1
  77. package/dist/widget/components/DirectTransfer.d.ts.map +1 -1
  78. package/dist/widget/components/Fund.d.ts.map +1 -1
  79. package/dist/widget/components/FundMethods.d.ts.map +1 -1
  80. package/dist/widget/components/MeshExchangeSelection.d.ts +11 -0
  81. package/dist/widget/components/MeshExchangeSelection.d.ts.map +1 -0
  82. package/dist/widget/components/OnrampHistoryRow.d.ts +1 -1
  83. package/dist/widget/components/OnrampHistoryRow.d.ts.map +1 -1
  84. package/dist/widget/components/Pay.d.ts.map +1 -1
  85. package/dist/widget/components/PoolDeposit.d.ts.map +1 -1
  86. package/dist/widget/components/QRCodeWalletSelect.d.ts +1 -1
  87. package/dist/widget/components/QRCodeWalletSelect.d.ts.map +1 -1
  88. package/dist/widget/components/QuoteDetails.d.ts.map +1 -1
  89. package/dist/widget/components/Recipients.d.ts.map +1 -1
  90. package/dist/widget/components/RefundWarning.d.ts.map +1 -1
  91. package/dist/widget/components/TokenSelector.d.ts.map +1 -1
  92. package/dist/widget/components/TransactionDetails.d.ts.map +1 -1
  93. package/dist/widget/components/TransferPendingVertical.d.ts +1 -0
  94. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -1
  95. package/dist/widget/components/WalletConnect.d.ts.map +1 -1
  96. package/dist/widget/components/WalletImage.d.ts.map +1 -1
  97. package/dist/widget/components/WalletList.d.ts.map +1 -1
  98. package/dist/widget/components/Withdraw.d.ts.map +1 -1
  99. package/dist/widget/css/compiled.css +1 -1
  100. package/dist/widget/hooks/useAddressWalletIcon.d.ts.map +1 -1
  101. package/dist/widget/hooks/useCustomTokenSearch.d.ts +6 -1
  102. package/dist/widget/hooks/useCustomTokenSearch.d.ts.map +1 -1
  103. package/dist/widget/hooks/useDefaultDestinationToken.d.ts.map +1 -1
  104. package/dist/widget/hooks/useDefaultOriginToken.d.ts.map +1 -1
  105. package/dist/widget/hooks/useFiatOnRampCurrencies.d.ts +1 -1
  106. package/dist/widget/hooks/useFiatOnRampCurrencies.d.ts.map +1 -1
  107. package/dist/widget/hooks/useIntentTransactionHistory.d.ts.map +1 -1
  108. package/dist/widget/hooks/useQuote.d.ts +1 -1
  109. package/dist/widget/hooks/useQuote.d.ts.map +1 -1
  110. package/dist/widget/hooks/useSelectedFundMethod.d.ts +7 -0
  111. package/dist/widget/hooks/useSelectedFundMethod.d.ts.map +1 -1
  112. package/dist/widget/hooks/useSendForm.d.ts.map +1 -1
  113. package/dist/widget/hooks/useTokenList.d.ts +7 -1
  114. package/dist/widget/hooks/useTokenList.d.ts.map +1 -1
  115. package/dist/widget/hooks/useViewManager.d.ts +1 -1
  116. package/dist/widget/hooks/useViewManager.d.ts.map +1 -1
  117. package/dist/widget/index.js +1 -1
  118. package/dist/widget/providers/TrailsProvider.d.ts +2 -0
  119. package/dist/widget/providers/TrailsProvider.d.ts.map +1 -1
  120. package/dist/widget/utils/createWagmiConfig.d.ts +2 -2
  121. package/dist/widget/utils/createWagmiConfig.d.ts.map +1 -1
  122. package/dist/widget/utils/fundMethodSwitchState.d.ts +1 -0
  123. package/dist/widget/utils/fundMethodSwitchState.d.ts.map +1 -1
  124. package/dist/widget/utils/meldProviderUtils.d.ts +1 -1
  125. package/dist/widget/utils/meldProviderUtils.d.ts.map +1 -1
  126. package/dist/widget/utils/meshSupportedTokens.d.ts +4 -0
  127. package/dist/widget/utils/meshSupportedTokens.d.ts.map +1 -0
  128. package/dist/widget/utils/onrampConfig.d.ts +11 -0
  129. package/dist/widget/utils/onrampConfig.d.ts.map +1 -0
  130. package/dist/widget/utils/trailsOnrampConfig.d.ts +18 -0
  131. package/dist/widget/utils/trailsOnrampConfig.d.ts.map +1 -0
  132. package/dist/widget/widget.d.ts +24 -8
  133. package/dist/widget/widget.d.ts.map +1 -1
  134. package/package.json +9 -7
  135. package/src/chains.ts +9 -4
  136. package/src/constants.ts +2 -0
  137. package/src/customTokens.ts +21 -0
  138. package/src/index.ts +1 -0
  139. package/src/intents.ts +49 -41
  140. package/src/keyMachineClient.ts +29 -0
  141. package/src/keymachine/index.ts +175 -0
  142. package/src/keymachine/key-machine.gen.ts +993 -0
  143. package/src/onramp/MeshConnectFlow.tsx +86 -0
  144. package/src/onramp/MeshConnectIframe.tsx +661 -0
  145. package/src/onramp/SendFromExchangeButton.tsx +81 -0
  146. package/src/onramp/TrailsOnRampProvider.tsx +59 -0
  147. package/src/onramp/index.ts +31 -0
  148. package/src/onramp/meshconnect.ts +277 -0
  149. package/src/onramp/trailsOnramp.tsx +130 -0
  150. package/src/onramp-client/index.ts +4 -6
  151. package/src/prepareSend.ts +45 -44
  152. package/src/query/balance.fetchers.ts +134 -4
  153. package/src/query/balance.hooks.ts +61 -2
  154. package/src/query/balance.queries.ts +63 -0
  155. package/src/query/chains.queries.ts +1 -6
  156. package/src/query/meld.fetchers.ts +1 -1
  157. package/src/query/meld.hooks.ts +1 -1
  158. package/src/query/meld.queries.ts +1 -1
  159. package/src/query/tokenList.queries.ts +118 -0
  160. package/src/recover.ts +86 -23
  161. package/src/tokens.ts +108 -26
  162. package/src/transactionIntent/deposits/depositOrchestrator.ts +11 -11
  163. package/src/transactionIntent/deposits/gaslessDeposit.ts +38 -38
  164. package/src/transactionIntent/deposits/standardDeposit.ts +0 -4
  165. package/src/transactionIntent/handlers/intentHandler.ts +28 -11
  166. package/src/transactionIntent/helpers/transactionStateHelpers.ts +5 -2
  167. package/src/transactionIntent/quote/normalizeQuote.ts +11 -5
  168. package/src/transactionIntent/types.ts +1 -1
  169. package/src/transactions.ts +3 -0
  170. package/src/walletUtils.ts +2 -1
  171. package/src/wallets.ts +184 -380
  172. package/src/widget/compiled.css +1 -1
  173. package/src/widget/components/ClassicSwap.tsx +22 -5
  174. package/src/widget/components/ConnectWallet.tsx +4 -2
  175. package/src/widget/components/ConnectedWallets.tsx +2 -5
  176. package/src/widget/components/DirectTransfer.tsx +5 -2
  177. package/src/widget/components/Fund.tsx +144 -12
  178. package/src/widget/components/FundMethods.tsx +5 -9
  179. package/src/widget/components/MeldHistory.tsx +1 -1
  180. package/src/widget/components/MeshExchangeSelection.tsx +218 -0
  181. package/src/widget/components/OnrampHistoryRow.tsx +1 -1
  182. package/src/widget/components/Pay.tsx +20 -36
  183. package/src/widget/components/PoolDeposit.tsx +13 -22
  184. package/src/widget/components/QRCodeWalletSelect.tsx +5 -2
  185. package/src/widget/components/QuoteDetails.tsx +77 -68
  186. package/src/widget/components/Recipients.tsx +2 -1
  187. package/src/widget/components/RefundWarning.tsx +5 -10
  188. package/src/widget/components/TokenSelector.tsx +85 -16
  189. package/src/widget/components/TransactionDetails.tsx +46 -0
  190. package/src/widget/components/TransferPendingVertical.tsx +27 -19
  191. package/src/widget/components/WalletConnect.tsx +2 -5
  192. package/src/widget/components/WalletImage.tsx +6 -18
  193. package/src/widget/components/WalletList.tsx +1 -1
  194. package/src/widget/components/Withdraw.tsx +22 -4
  195. package/src/widget/hooks/useAddressWalletIcon.ts +2 -1
  196. package/src/widget/hooks/useCustomTokenSearch.tsx +63 -33
  197. package/src/widget/hooks/useDefaultDestinationToken.tsx +2 -5
  198. package/src/widget/hooks/useDefaultOriginToken.tsx +2 -5
  199. package/src/widget/hooks/useFiatOnRampCurrencies.ts +1 -1
  200. package/src/widget/hooks/useIntentTransactionHistory.ts +5 -0
  201. package/src/widget/hooks/useMeldTransactionStatus.ts +1 -1
  202. package/src/widget/hooks/useQuote.ts +51 -45
  203. package/src/widget/hooks/useSelectedFundMethod.tsx +14 -1
  204. package/src/widget/hooks/useSendForm.ts +26 -10
  205. package/src/widget/hooks/useTokenList.ts +208 -139
  206. package/src/widget/hooks/useViewManager.tsx +1 -0
  207. package/src/widget/providers/TrailsProvider.tsx +5 -0
  208. package/src/widget/styles.ts +1 -1
  209. package/src/widget/utils/createWagmiConfig.ts +7 -2
  210. package/src/widget/utils/fundMethodSwitchState.ts +2 -0
  211. package/src/widget/utils/meldProviderUtils.ts +8 -2
  212. package/src/widget/utils/meshSupportedTokens.ts +28 -0
  213. package/src/widget/utils/onrampConfig.ts +15 -0
  214. package/src/widget/utils/trailsOnrampConfig.ts +39 -0
  215. package/src/widget/widget.tsx +164 -98
  216. package/dist/onramp-client/trails-onramp.gen.d.ts +0 -570
  217. package/dist/onramp-client/trails-onramp.gen.d.ts.map +0 -1
  218. package/dist/widget/hooks/useCustomTokenFetch.d.ts +0 -19
  219. package/dist/widget/hooks/useCustomTokenFetch.d.ts.map +0 -1
  220. package/dist/widget/hooks/useTokenWithFreshBalance.d.ts +0 -18
  221. package/dist/widget/hooks/useTokenWithFreshBalance.d.ts.map +0 -1
  222. package/src/onramp-client/trails-onramp.gen.ts +0 -1320
  223. package/src/widget/assets/Binance_Icon_Logo.svg +0 -14
  224. package/src/widget/assets/Bitfinex_Icon_Logo.svg +0 -5
  225. package/src/widget/assets/Coinbase_Icon_Logo.svg +0 -1
  226. package/src/widget/assets/WalletConnect-logo-blue-bg.svg +0 -11
  227. package/src/widget/assets/sequence-logo.svg +0 -15
  228. package/src/widget/hooks/useCustomTokenFetch.tsx +0 -74
  229. package/src/widget/hooks/useTokenWithFreshBalance.ts +0 -246
@@ -78,7 +78,10 @@ import {
78
78
  updateTransactionStateWithDecodedEvents,
79
79
  } from "../helpers/transactionStateHelpers.js"
80
80
  import { isSameChain, isSameToken } from "../validators.js"
81
- import { isSyntheticTransactionHash } from "../../transactions.js"
81
+ import {
82
+ isSyntheticTransactionHash,
83
+ isDisplayableTransactionHash,
84
+ } from "../../transactions.js"
82
85
 
83
86
  /**
84
87
  * Parameters for the unified intent handler.
@@ -588,20 +591,25 @@ async function executeIntent(
588
591
  // Set up transaction state tracking
589
592
  publishTransactionStates(localTransactionStates)
590
593
 
591
- if (!intent.intentProtocolVersion) {
594
+ const rawIntentProtocol = (intent as { intentProtocol?: string })
595
+ .intentProtocol
596
+
597
+ if (!rawIntentProtocol) {
592
598
  logger.console.log(
593
599
  "[trails-sdk] [intent-protocol] Intent protocol version not found in response, defaulting to v1",
594
600
  )
595
601
  }
596
- const intentProtocolVersion =
597
- intent.intentProtocolVersion ?? IntentProtocolVersion.v1
602
+ const intentProtocol =
603
+ rawIntentProtocol === "v1.5"
604
+ ? IntentProtocolVersion.v1_5
605
+ : IntentProtocolVersion.v1
598
606
 
599
607
  logger.console.log(
600
608
  "[trails-sdk] [intent-protocol] === Intent Protocol Version ===",
601
609
  {
602
- version: intentProtocolVersion,
603
- isV1: intentProtocolVersion === IntentProtocolVersion.v1,
604
- isV1_5: intentProtocolVersion === IntentProtocolVersion.v1_5,
610
+ version: intentProtocol,
611
+ isV1: intentProtocol === IntentProtocolVersion.v1,
612
+ isV1_5: intentProtocol === IntentProtocolVersion.v1_5,
605
613
  intentId: intent.intentId,
606
614
  fundMethod,
607
615
  },
@@ -718,7 +726,7 @@ async function executeIntent(
718
726
  isSameChainSameToken,
719
727
  destinationCalldata,
720
728
  depositTransaction: intent.depositTransaction,
721
- intentProtocolVersion,
729
+ intentProtocol,
722
730
  })
723
731
 
724
732
  // Update state and call executeIntent
@@ -788,11 +796,17 @@ async function executeIntent(
788
796
  )
789
797
 
790
798
  if (receipt.depositTransaction?.status === "SUCCEEDED") {
799
+ const existingHash = localTransactionStates[0].transactionHash
800
+ const existingExplorerUrl =
801
+ localTransactionStates[0].explorerUrl
802
+ const hasClientSideHash =
803
+ isDisplayableTransactionHash(existingHash)
804
+
791
805
  localTransactionStates[0] = {
792
806
  ...localTransactionStates[0],
793
807
  state: "confirmed",
794
- transactionHash: "",
795
- explorerUrl: "",
808
+ transactionHash: hasClientSideHash ? existingHash : "",
809
+ explorerUrl: hasClientSideHash ? existingExplorerUrl : "",
796
810
  txnMinedAt:
797
811
  receipt.depositTransaction?.txnMinedAt || undefined,
798
812
  }
@@ -1406,7 +1420,10 @@ export async function handleIntent(
1406
1420
  tokenAddress: originTokenAddress,
1407
1421
  depositAmount: depositAmount,
1408
1422
  publicClient: effectivePublicClient,
1409
- knownBalance: originTokenBalance,
1423
+ knownBalance:
1424
+ originTokenBalance && originTokenBalance !== "0"
1425
+ ? originTokenBalance
1426
+ : undefined,
1410
1427
  decimals: originTokenDecimals,
1411
1428
  })
1412
1429
  : Promise.resolve({ hasEnoughBalance: true }),
@@ -233,13 +233,16 @@ export function applyIntentReceiptToTransactionStates(params: {
233
233
  return
234
234
  }
235
235
 
236
- const displayableHash = isDisplayableTransactionHash(txnHash) ? txnHash : ""
236
+ const hasNewDisplayableHash = isDisplayableTransactionHash(txnHash)
237
+ const displayableHash = hasNewDisplayableHash
238
+ ? txnHash
239
+ : targetState.transactionHash || ""
237
240
  const nextExplorerUrl = displayableHash
238
241
  ? getExplorerUrl({
239
242
  txHash: displayableHash,
240
243
  chainId: targetState.chainId,
241
244
  })
242
- : ""
245
+ : targetState.explorerUrl || ""
243
246
 
244
247
  const stateChanged =
245
248
  targetState.state !== mappedState ||
@@ -405,18 +405,24 @@ export async function getNormalizedQuoteObject({
405
405
  totalProviderFeesUsdDisplay: "$0.00",
406
406
  }
407
407
 
408
- if (!intent?.intentProtocolVersion) {
408
+ const rawIntentProtocol = (
409
+ intent as { intentProtocol?: string } | null | undefined
410
+ )?.intentProtocol
411
+
412
+ if (!rawIntentProtocol) {
409
413
  logger.console.log(
410
414
  "[trails-sdk] [intent-protocol] Intent protocol version not in API response, defaulting to v1",
411
415
  )
412
416
  }
413
- const intentProtocolVersion =
414
- intent?.intentProtocolVersion ?? IntentProtocolVersion.v1
417
+ const intentProtocol =
418
+ rawIntentProtocol === "v1.5"
419
+ ? IntentProtocolVersion.v1_5
420
+ : IntentProtocolVersion.v1
415
421
 
416
422
  logger.console.log(
417
423
  "[trails-sdk] [intent-protocol] Quote normalized with version",
418
424
  {
419
- intentProtocolVersion,
425
+ intentProtocol,
420
426
  intentId: intent?.intentId,
421
427
  },
422
428
  )
@@ -430,7 +436,7 @@ export async function getNormalizedQuoteObject({
430
436
  })
431
437
 
432
438
  return {
433
- intentProtocolVersion,
439
+ intentProtocol,
434
440
  originDepositAddress: originDepositAddress || "",
435
441
  destinationDepositAddress: destinationDepositAddress || "",
436
442
  destinationAddress: destinationAddress || "",
@@ -130,7 +130,7 @@ export type PrepareSendFees = {
130
130
  }
131
131
 
132
132
  export type PrepareSendQuote = {
133
- intentProtocolVersion: IntentProtocolVersion
133
+ intentProtocol: IntentProtocolVersion
134
134
  originDepositAddress: string
135
135
  destinationDepositAddress: string
136
136
  destinationAddress: string
@@ -307,6 +307,9 @@ export type IntentTransaction = {
307
307
  depositTransactionStatus?: string // Deposit transaction status from API
308
308
  originTransactionStatus?: string // Origin transaction status from API
309
309
  destinationTransactionStatus?: string // Destination transaction status from API
310
+ refundTransactionHash?: string // Refund transaction hash from API
311
+ refundTransactionStatus?: string // Refund transaction status from API
312
+ refundTransactionChainId?: number // Refund transaction chain ID from API
310
313
  // Enriched token information
311
314
  originToken?: {
312
315
  symbol: string
@@ -1,4 +1,5 @@
1
1
  import type { Connector } from "wagmi"
2
+ import type { WalletConnector } from "./wallets.js"
2
3
  import {
3
4
  BaseError,
4
5
  formatTransactionRequest,
@@ -202,7 +203,7 @@ export function isSequenceWalletById(walletId: string | undefined): boolean {
202
203
  }
203
204
 
204
205
  export function isWalletConnectConnector(
205
- connector: Connector | undefined,
206
+ connector: Connector | Pick<WalletConnector, "id" | "name"> | undefined,
206
207
  ): boolean {
207
208
  if (!connector) return false
208
209
  const connectorName = connector.name?.toLowerCase() || ""