thirdweb 5.99.3 → 5.100.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 (348) hide show
  1. package/dist/cjs/bridge/Buy.js +17 -13
  2. package/dist/cjs/bridge/Buy.js.map +1 -1
  3. package/dist/cjs/bridge/Chains.js +2 -2
  4. package/dist/cjs/bridge/Chains.js.map +1 -1
  5. package/dist/cjs/bridge/Onramp.js +152 -0
  6. package/dist/cjs/bridge/Onramp.js.map +1 -0
  7. package/dist/cjs/bridge/OnrampStatus.js +78 -0
  8. package/dist/cjs/bridge/OnrampStatus.js.map +1 -0
  9. package/dist/cjs/bridge/Routes.js +2 -2
  10. package/dist/cjs/bridge/Routes.js.map +1 -1
  11. package/dist/cjs/bridge/Sell.js +18 -14
  12. package/dist/cjs/bridge/Sell.js.map +1 -1
  13. package/dist/cjs/bridge/Status.js +15 -2
  14. package/dist/cjs/bridge/Status.js.map +1 -1
  15. package/dist/cjs/bridge/Transfer.js +229 -0
  16. package/dist/cjs/bridge/Transfer.js.map +1 -0
  17. package/dist/cjs/bridge/index.js +3 -1
  18. package/dist/cjs/bridge/index.js.map +1 -1
  19. package/dist/cjs/bridge/types/BridgeAction.js +3 -0
  20. package/dist/cjs/bridge/types/BridgeAction.js.map +1 -0
  21. package/dist/cjs/bridge/types/Token.js +3 -0
  22. package/dist/cjs/bridge/types/Token.js.map +1 -0
  23. package/dist/cjs/extensions/ens/resolve-l2-name.js +0 -2
  24. package/dist/cjs/extensions/ens/resolve-l2-name.js.map +1 -1
  25. package/dist/cjs/pay/buyWithCrypto/getQuote.js +159 -53
  26. package/dist/cjs/pay/buyWithCrypto/getQuote.js.map +1 -1
  27. package/dist/cjs/pay/buyWithCrypto/getStatus.js +160 -14
  28. package/dist/cjs/pay/buyWithCrypto/getStatus.js.map +1 -1
  29. package/dist/cjs/pay/buyWithCrypto/getTransfer.js +95 -37
  30. package/dist/cjs/pay/buyWithCrypto/getTransfer.js.map +1 -1
  31. package/dist/cjs/pay/buyWithFiat/getQuote.js +129 -33
  32. package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
  33. package/dist/cjs/pay/buyWithFiat/getStatus.js +71 -20
  34. package/dist/cjs/pay/buyWithFiat/getStatus.js.map +1 -1
  35. package/dist/cjs/pay/utils/commonTypes.js +1 -1
  36. package/dist/cjs/pay/utils/commonTypes.js.map +1 -1
  37. package/dist/cjs/pay/utils/definitions.js +1 -43
  38. package/dist/cjs/pay/utils/definitions.js.map +1 -1
  39. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatStatus.js +1 -3
  40. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatStatus.js.map +1 -1
  41. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js +44 -38
  42. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  43. package/dist/cjs/react/core/utils/wallet.js +15 -0
  44. package/dist/cjs/react/core/utils/wallet.js.map +1 -1
  45. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +1 -1
  46. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  47. package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js +1 -23
  48. package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
  49. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js +1 -1
  50. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  51. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +1 -1
  52. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  53. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +0 -177
  54. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
  55. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +2 -10
  56. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
  57. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +5 -8
  58. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
  59. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js +0 -15
  60. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js.map +1 -1
  61. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.js +0 -60
  62. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.js.map +1 -1
  63. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +3 -1
  64. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  65. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.js +1 -1
  66. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.js.map +1 -1
  67. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.js +4 -4
  68. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.js.map +1 -1
  69. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js +83 -34
  70. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js.map +1 -1
  71. package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js +133 -0
  72. package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js.map +1 -0
  73. package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js +4 -3
  74. package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
  75. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +9 -1
  76. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  77. package/dist/cjs/utils/any-evm/zksync/constants.js +1 -0
  78. package/dist/cjs/utils/any-evm/zksync/constants.js.map +1 -1
  79. package/dist/cjs/utils/domains.js +3 -0
  80. package/dist/cjs/utils/domains.js.map +1 -1
  81. package/dist/cjs/version.js +1 -1
  82. package/dist/cjs/version.js.map +1 -1
  83. package/dist/esm/bridge/Buy.js +17 -13
  84. package/dist/esm/bridge/Buy.js.map +1 -1
  85. package/dist/esm/bridge/Chains.js +2 -2
  86. package/dist/esm/bridge/Chains.js.map +1 -1
  87. package/dist/esm/bridge/Onramp.js +147 -0
  88. package/dist/esm/bridge/Onramp.js.map +1 -0
  89. package/dist/esm/bridge/OnrampStatus.js +75 -0
  90. package/dist/esm/bridge/OnrampStatus.js.map +1 -0
  91. package/dist/esm/bridge/Routes.js +2 -2
  92. package/dist/esm/bridge/Routes.js.map +1 -1
  93. package/dist/esm/bridge/Sell.js +18 -14
  94. package/dist/esm/bridge/Sell.js.map +1 -1
  95. package/dist/esm/bridge/Status.js +15 -2
  96. package/dist/esm/bridge/Status.js.map +1 -1
  97. package/dist/esm/bridge/Transfer.js +226 -0
  98. package/dist/esm/bridge/Transfer.js.map +1 -0
  99. package/dist/esm/bridge/index.js +2 -0
  100. package/dist/esm/bridge/index.js.map +1 -1
  101. package/dist/esm/bridge/types/BridgeAction.js +2 -0
  102. package/dist/esm/bridge/types/BridgeAction.js.map +1 -0
  103. package/dist/esm/bridge/types/Token.js +2 -0
  104. package/dist/esm/bridge/types/Token.js.map +1 -0
  105. package/dist/esm/extensions/ens/resolve-l2-name.js +0 -2
  106. package/dist/esm/extensions/ens/resolve-l2-name.js.map +1 -1
  107. package/dist/esm/pay/buyWithCrypto/getQuote.js +159 -53
  108. package/dist/esm/pay/buyWithCrypto/getQuote.js.map +1 -1
  109. package/dist/esm/pay/buyWithCrypto/getStatus.js +160 -14
  110. package/dist/esm/pay/buyWithCrypto/getStatus.js.map +1 -1
  111. package/dist/esm/pay/buyWithCrypto/getTransfer.js +95 -37
  112. package/dist/esm/pay/buyWithCrypto/getTransfer.js.map +1 -1
  113. package/dist/esm/pay/buyWithFiat/getQuote.js +129 -33
  114. package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
  115. package/dist/esm/pay/buyWithFiat/getStatus.js +71 -20
  116. package/dist/esm/pay/buyWithFiat/getStatus.js.map +1 -1
  117. package/dist/esm/pay/utils/commonTypes.js +1 -1
  118. package/dist/esm/pay/utils/commonTypes.js.map +1 -1
  119. package/dist/esm/pay/utils/definitions.js +0 -35
  120. package/dist/esm/pay/utils/definitions.js.map +1 -1
  121. package/dist/esm/react/core/hooks/pay/useBuyWithFiatStatus.js +1 -3
  122. package/dist/esm/react/core/hooks/pay/useBuyWithFiatStatus.js.map +1 -1
  123. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js +44 -38
  124. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  125. package/dist/esm/react/core/utils/wallet.js +15 -0
  126. package/dist/esm/react/core/utils/wallet.js.map +1 -1
  127. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +1 -1
  128. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  129. package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js +1 -23
  130. package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
  131. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js +1 -1
  132. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  133. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +1 -1
  134. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  135. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +4 -180
  136. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
  137. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js +2 -10
  138. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.js.map +1 -1
  139. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +5 -8
  140. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
  141. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js +2 -16
  142. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js.map +1 -1
  143. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.js +0 -59
  144. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.js.map +1 -1
  145. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +3 -1
  146. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  147. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.js +1 -1
  148. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.js.map +1 -1
  149. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.js +1 -1
  150. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.js.map +1 -1
  151. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js +84 -34
  152. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js.map +1 -1
  153. package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js +130 -0
  154. package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js.map +1 -0
  155. package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js +4 -3
  156. package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
  157. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +9 -1
  158. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  159. package/dist/esm/utils/any-evm/zksync/constants.js +1 -0
  160. package/dist/esm/utils/any-evm/zksync/constants.js.map +1 -1
  161. package/dist/esm/utils/domains.js +3 -0
  162. package/dist/esm/utils/domains.js.map +1 -1
  163. package/dist/esm/version.js +1 -1
  164. package/dist/esm/version.js.map +1 -1
  165. package/dist/types/bridge/Buy.d.ts +11 -9
  166. package/dist/types/bridge/Buy.d.ts.map +1 -1
  167. package/dist/types/bridge/Onramp.d.ts +123 -0
  168. package/dist/types/bridge/Onramp.d.ts.map +1 -0
  169. package/dist/types/bridge/OnrampStatus.d.ts +108 -0
  170. package/dist/types/bridge/OnrampStatus.d.ts.map +1 -0
  171. package/dist/types/bridge/Sell.d.ts +13 -11
  172. package/dist/types/bridge/Sell.d.ts.map +1 -1
  173. package/dist/types/bridge/Status.d.ts.map +1 -1
  174. package/dist/types/bridge/Transfer.d.ts +199 -0
  175. package/dist/types/bridge/Transfer.d.ts.map +1 -0
  176. package/dist/types/bridge/index.d.ts +7 -3
  177. package/dist/types/bridge/index.d.ts.map +1 -1
  178. package/dist/types/bridge/types/BridgeAction.d.ts +2 -0
  179. package/dist/types/bridge/types/BridgeAction.d.ts.map +1 -0
  180. package/dist/types/bridge/types/Quote.d.ts +3 -65
  181. package/dist/types/bridge/types/Quote.d.ts.map +1 -1
  182. package/dist/types/bridge/types/Route.d.ts +38 -17
  183. package/dist/types/bridge/types/Route.d.ts.map +1 -1
  184. package/dist/types/bridge/types/Status.d.ts +15 -0
  185. package/dist/types/bridge/types/Status.d.ts.map +1 -1
  186. package/dist/types/bridge/types/Token.d.ts +11 -0
  187. package/dist/types/bridge/types/Token.d.ts.map +1 -0
  188. package/dist/types/extensions/ens/resolve-l2-name.d.ts.map +1 -1
  189. package/dist/types/pay/buyWithCrypto/commonTypes.d.ts +0 -9
  190. package/dist/types/pay/buyWithCrypto/commonTypes.d.ts.map +1 -1
  191. package/dist/types/pay/buyWithCrypto/getQuote.d.ts.map +1 -1
  192. package/dist/types/pay/buyWithCrypto/getStatus.d.ts +1 -1
  193. package/dist/types/pay/buyWithCrypto/getStatus.d.ts.map +1 -1
  194. package/dist/types/pay/buyWithCrypto/getTransfer.d.ts.map +1 -1
  195. package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
  196. package/dist/types/pay/buyWithFiat/getStatus.d.ts +1 -12
  197. package/dist/types/pay/buyWithFiat/getStatus.d.ts.map +1 -1
  198. package/dist/types/pay/utils/commonTypes.d.ts +1 -1
  199. package/dist/types/pay/utils/commonTypes.d.ts.map +1 -1
  200. package/dist/types/pay/utils/definitions.d.ts +0 -35
  201. package/dist/types/pay/utils/definitions.d.ts.map +1 -1
  202. package/dist/types/react/core/hooks/pay/useBuyWithFiatStatus.d.ts.map +1 -1
  203. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +1 -0
  204. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  205. package/dist/types/react/core/utils/wallet.d.ts.map +1 -1
  206. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  207. package/dist/types/react/web/ui/ConnectWallet/TransactionsScreen.d.ts.map +1 -1
  208. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.d.ts +1 -30
  209. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.d.ts.map +1 -1
  210. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts +2 -0
  211. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts.map +1 -1
  212. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts +2 -0
  213. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts.map +1 -1
  214. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.d.ts +0 -5
  215. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.d.ts.map +1 -1
  216. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.d.ts +1 -3
  217. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.d.ts.map +1 -1
  218. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -1
  219. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.d.ts +0 -1
  220. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.d.ts.map +1 -1
  221. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.d.ts +8 -4
  222. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.d.ts.map +1 -1
  223. package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts +15 -0
  224. package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts.map +1 -0
  225. package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts.map +1 -1
  226. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts +1 -0
  227. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
  228. package/dist/types/utils/any-evm/zksync/constants.d.ts.map +1 -1
  229. package/dist/types/utils/domains.d.ts +6 -0
  230. package/dist/types/utils/domains.d.ts.map +1 -1
  231. package/dist/types/version.d.ts +1 -1
  232. package/dist/types/version.d.ts.map +1 -1
  233. package/package.json +15 -15
  234. package/src/bridge/Buy.ts +19 -13
  235. package/src/bridge/Chains.ts +2 -2
  236. package/src/bridge/Onramp.test.ts +118 -0
  237. package/src/bridge/Onramp.ts +244 -0
  238. package/src/bridge/OnrampStatus.ts +133 -0
  239. package/src/bridge/Routes.ts +2 -2
  240. package/src/bridge/Sell.ts +20 -14
  241. package/src/bridge/Status.ts +15 -2
  242. package/src/bridge/Transfer.test.ts +76 -0
  243. package/src/bridge/Transfer.ts +270 -0
  244. package/src/bridge/index.ts +12 -3
  245. package/src/bridge/types/BridgeAction.ts +1 -0
  246. package/src/bridge/types/Quote.ts +3 -65
  247. package/src/bridge/types/Route.ts +42 -17
  248. package/src/bridge/types/Status.ts +15 -1
  249. package/src/bridge/types/Token.ts +11 -0
  250. package/src/extensions/ens/resolve-l2-name.ts +0 -2
  251. package/src/pay/buyWithCrypto/commonTypes.ts +0 -10
  252. package/src/pay/buyWithCrypto/getQuote.ts +210 -100
  253. package/src/pay/buyWithCrypto/getStatus.ts +213 -20
  254. package/src/pay/buyWithCrypto/getTransfer.ts +129 -61
  255. package/src/pay/buyWithFiat/getQuote.ts +184 -33
  256. package/src/pay/buyWithFiat/getStatus.ts +101 -42
  257. package/src/pay/convert/cryptoToFiat.test.ts +7 -5
  258. package/src/pay/convert/fiatToCrypto.test.ts +6 -4
  259. package/src/pay/utils/commonTypes.ts +1 -1
  260. package/src/pay/utils/definitions.ts +0 -48
  261. package/src/react/core/hooks/pay/useBuyWithFiatStatus.ts +0 -2
  262. package/src/react/core/hooks/transaction/useSendTransaction.ts +53 -52
  263. package/src/react/core/utils/wallet.ts +15 -0
  264. package/src/react/web/hooks/transaction/useSendTransaction.tsx +1 -0
  265. package/src/react/web/ui/ConnectWallet/TransactionsScreen.tsx +5 -64
  266. package/src/react/web/ui/ConnectWallet/locale/en.ts +1 -1
  267. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +3 -1
  268. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx +3 -510
  269. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/OnRampScreen.tsx +2 -12
  270. package/src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts +2 -0
  271. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts +19 -20
  272. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.tsx +1 -37
  273. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.test.ts +1 -95
  274. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/statusMeta.ts +0 -69
  275. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +3 -1
  276. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/fetchBalancesForWallet.tsx +1 -1
  277. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.ts +1 -3
  278. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.ts +118 -63
  279. package/src/react/web/ui/TransactionButton/DepositScreen.tsx +295 -0
  280. package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +4 -5
  281. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +20 -1
  282. package/src/utils/any-evm/zksync/constants.ts +1 -0
  283. package/src/utils/domain.test.ts +1 -0
  284. package/src/utils/domains.ts +8 -0
  285. package/src/version.ts +1 -1
  286. package/dist/cjs/bridge/constants.js +0 -5
  287. package/dist/cjs/bridge/constants.js.map +0 -1
  288. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +0 -37
  289. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +0 -1
  290. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +0 -86
  291. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +0 -1
  292. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +0 -25
  293. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +0 -1
  294. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +0 -54
  295. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +0 -1
  296. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js +0 -52
  297. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js.map +0 -1
  298. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js +0 -81
  299. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js.map +0 -1
  300. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js +0 -17
  301. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js.map +0 -1
  302. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js +0 -138
  303. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js.map +0 -1
  304. package/dist/esm/bridge/constants.js +0 -2
  305. package/dist/esm/bridge/constants.js.map +0 -1
  306. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +0 -34
  307. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +0 -1
  308. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +0 -83
  309. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +0 -1
  310. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +0 -22
  311. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +0 -1
  312. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +0 -51
  313. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +0 -1
  314. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js +0 -48
  315. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.js.map +0 -1
  316. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js +0 -78
  317. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js.map +0 -1
  318. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js +0 -14
  319. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js.map +0 -1
  320. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js +0 -135
  321. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.js.map +0 -1
  322. package/dist/types/bridge/constants.d.ts +0 -2
  323. package/dist/types/bridge/constants.d.ts.map +0 -1
  324. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.d.ts +0 -26
  325. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.d.ts.map +0 -1
  326. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts +0 -16
  327. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts.map +0 -1
  328. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts +0 -23
  329. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts.map +0 -1
  330. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.d.ts +0 -10
  331. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.d.ts.map +0 -1
  332. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.d.ts +0 -9
  333. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.d.ts.map +0 -1
  334. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.d.ts +0 -14
  335. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.d.ts.map +0 -1
  336. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.d.ts +0 -14
  337. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.d.ts.map +0 -1
  338. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.d.ts +0 -21
  339. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.d.ts.map +0 -1
  340. package/src/bridge/constants.ts +0 -1
  341. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx +0 -142
  342. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.tsx +0 -170
  343. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.tsx +0 -63
  344. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.tsx +0 -163
  345. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistoryButton.tsx +0 -127
  346. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.tsx +0 -138
  347. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.tsx +0 -45
  348. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/useBuyTransactionsToShow.ts +0 -191
@@ -13,50 +13,14 @@ import {
13
13
  useChainExplorers,
14
14
  useChainName,
15
15
  } from "../../../../../../core/hooks/others/useChainQuery.js";
16
- import { useBuyWithCryptoStatus } from "../../../../../../core/hooks/pay/useBuyWithCryptoStatus.js";
17
16
  import { Spacer } from "../../../../components/Spacer.js";
18
- import { Container, Line, ModalHeader } from "../../../../components/basic.js";
17
+ import { Container, Line } from "../../../../components/basic.js";
19
18
  import { ButtonLink } from "../../../../components/buttons.js";
20
19
  import { Text } from "../../../../components/text.js";
21
20
  import { WalletRow } from "../swap/WalletRow.js";
22
21
  import { TokenInfoRow } from "./TokenInfoRow.js";
23
22
  import { type StatusMeta, getBuyWithCryptoStatusMeta } from "./statusMeta.js";
24
23
 
25
- export function SwapDetailsScreen(props: {
26
- status: ValidBuyWithCryptoStatus;
27
- onBack: () => void;
28
- client: ThirdwebClient;
29
- }) {
30
- const { status: initialStatus, client } = props;
31
- const statusQuery = useBuyWithCryptoStatus(
32
- initialStatus.source?.transactionHash
33
- ? {
34
- client: client,
35
- transactionHash: initialStatus.source.transactionHash,
36
- chainId: initialStatus.source.token.chainId,
37
- }
38
- : undefined,
39
- );
40
-
41
- const status: ValidBuyWithCryptoStatus =
42
- (statusQuery.data?.status !== "NOT_FOUND" ? statusQuery.data : undefined) ||
43
- initialStatus;
44
-
45
- return (
46
- <Container>
47
- <Container p="lg">
48
- <ModalHeader title="Transaction Details" onBack={props.onBack} />
49
- </Container>
50
-
51
- <Line />
52
-
53
- <Container p="lg">
54
- <SwapTxDetailsTable type="status" status={status} client={client} />
55
- </Container>
56
- </Container>
57
- );
58
- }
59
-
60
24
  type SwapTxDetailsData = {
61
25
  fromToken: {
62
26
  chainId: number;
@@ -1,10 +1,6 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import type { BuyWithCryptoStatus } from "../../../../../../../pay/buyWithCrypto/getStatus.js";
3
- import type { BuyWithFiatStatus } from "../../../../../../../pay/buyWithFiat/getStatus.js";
4
- import {
5
- getBuyWithCryptoStatusMeta,
6
- getBuyWithFiatStatusMeta,
7
- } from "./statusMeta.js";
3
+ import { getBuyWithCryptoStatusMeta } from "./statusMeta.js";
8
4
 
9
5
  describe("getBuyWithCryptoStatusMeta", () => {
10
6
  it('returns "Unknown" for NOT_FOUND status', () => {
@@ -82,93 +78,3 @@ describe("getBuyWithCryptoStatusMeta", () => {
82
78
  });
83
79
  });
84
80
  });
85
-
86
- describe("getBuyWithFiatStatusMeta", () => {
87
- it('returns "Incomplete" for CRYPTO_SWAP_FALLBACK status', () => {
88
- const result = getBuyWithFiatStatusMeta({
89
- status: "CRYPTO_SWAP_FALLBACK",
90
- } as BuyWithFiatStatus);
91
- expect(result).toEqual({
92
- status: "Incomplete",
93
- color: "danger",
94
- step: 2,
95
- progressStatus: "partialSuccess",
96
- });
97
- });
98
-
99
- it('returns "Pending" for CRYPTO_SWAP_IN_PROGRESS status', () => {
100
- const result = getBuyWithFiatStatusMeta({
101
- status: "CRYPTO_SWAP_IN_PROGRESS",
102
- } as BuyWithFiatStatus);
103
- expect(result).toEqual({
104
- status: "Pending",
105
- color: "accentText",
106
- loading: true,
107
- step: 2,
108
- progressStatus: "pending",
109
- });
110
- });
111
-
112
- it('returns "Pending" for PENDING_ON_RAMP_TRANSFER status', () => {
113
- const result = getBuyWithFiatStatusMeta({
114
- status: "PENDING_ON_RAMP_TRANSFER",
115
- } as BuyWithFiatStatus);
116
- expect(result).toEqual({
117
- status: "Pending",
118
- color: "accentText",
119
- loading: true,
120
- step: 1,
121
- progressStatus: "pending",
122
- });
123
- });
124
-
125
- it('returns "Completed" for ON_RAMP_TRANSFER_COMPLETED status', () => {
126
- const result = getBuyWithFiatStatusMeta({
127
- status: "ON_RAMP_TRANSFER_COMPLETED",
128
- } as BuyWithFiatStatus);
129
- expect(result).toEqual({
130
- status: "Completed",
131
- color: "success",
132
- loading: true,
133
- step: 1,
134
- progressStatus: "completed",
135
- });
136
- });
137
-
138
- it('returns "Action Required" for CRYPTO_SWAP_REQUIRED status', () => {
139
- const result = getBuyWithFiatStatusMeta({
140
- status: "CRYPTO_SWAP_REQUIRED",
141
- } as BuyWithFiatStatus);
142
- expect(result).toEqual({
143
- status: "Action Required",
144
- color: "accentText",
145
- step: 2,
146
- progressStatus: "actionRequired",
147
- });
148
- });
149
-
150
- it('returns "Failed" for PAYMENT_FAILED status', () => {
151
- const result = getBuyWithFiatStatusMeta({
152
- status: "PAYMENT_FAILED",
153
- } as BuyWithFiatStatus);
154
- expect(result).toEqual({
155
- status: "Failed",
156
- color: "danger",
157
- step: 1,
158
- progressStatus: "failed",
159
- });
160
- });
161
-
162
- it('returns "Unknown" for unhandled status', () => {
163
- const result = getBuyWithFiatStatusMeta({
164
- // @ts-ignore
165
- status: "UNKNOWN_STATUS",
166
- });
167
- expect(result).toEqual({
168
- status: "Unknown",
169
- color: "secondaryText",
170
- step: 1,
171
- progressStatus: "unknown",
172
- });
173
- });
174
- });
@@ -1,5 +1,4 @@
1
1
  import type { BuyWithCryptoStatus } from "../../../../../../../pay/buyWithCrypto/getStatus.js";
2
- import type { BuyWithFiatStatus } from "../../../../../../../pay/buyWithFiat/getStatus.js";
3
2
  import type { Theme } from "../../../../../../core/design-system/index.js";
4
3
 
5
4
  export type StatusMeta = {
@@ -74,73 +73,5 @@ export type FiatStatusMeta = {
74
73
  | "completed"
75
74
  | "failed"
76
75
  | "actionRequired"
77
- | "partialSuccess"
78
76
  | "unknown";
79
77
  };
80
- export function getBuyWithFiatStatusMeta(
81
- fiatStatus: BuyWithFiatStatus,
82
- ): FiatStatusMeta {
83
- const status = fiatStatus.status;
84
-
85
- switch (status) {
86
- case "CRYPTO_SWAP_FALLBACK": {
87
- return {
88
- status: "Incomplete",
89
- color: "danger",
90
- step: 2,
91
- progressStatus: "partialSuccess",
92
- };
93
- }
94
-
95
- case "CRYPTO_SWAP_IN_PROGRESS":
96
- case "PENDING_ON_RAMP_TRANSFER":
97
- case "ON_RAMP_TRANSFER_IN_PROGRESS":
98
- case "PENDING_PAYMENT": {
99
- return {
100
- status: "Pending",
101
- color: "accentText",
102
- loading: true,
103
- step: status === "CRYPTO_SWAP_IN_PROGRESS" ? 2 : 1,
104
- progressStatus: "pending",
105
- };
106
- }
107
-
108
- case "ON_RAMP_TRANSFER_COMPLETED":
109
- case "CRYPTO_SWAP_COMPLETED": {
110
- return {
111
- status: "Completed", // Is this actually completed though?
112
- color: "success",
113
- loading: true,
114
- step: status === "CRYPTO_SWAP_COMPLETED" ? 2 : 1,
115
- progressStatus: "completed",
116
- };
117
- }
118
-
119
- case "CRYPTO_SWAP_FAILED":
120
- case "CRYPTO_SWAP_REQUIRED": {
121
- return {
122
- status: "Action Required",
123
- color: "accentText",
124
- step: 2,
125
- progressStatus: "actionRequired",
126
- };
127
- }
128
-
129
- case "PAYMENT_FAILED":
130
- case "ON_RAMP_TRANSFER_FAILED": {
131
- return {
132
- status: "Failed",
133
- color: "danger",
134
- step: 1,
135
- progressStatus: "failed",
136
- };
137
- }
138
- }
139
-
140
- return {
141
- status: "Unknown",
142
- color: "secondaryText",
143
- step: 1,
144
- progressStatus: "unknown",
145
- };
146
- }
@@ -43,7 +43,9 @@ export function WalletRow(props: {
43
43
  client,
44
44
  address,
45
45
  });
46
- const addressOrENS = ensNameQuery.data || shortenAddress(address);
46
+ const addressOrENS = address
47
+ ? ensNameQuery.data || shortenAddress(address)
48
+ : "";
47
49
  return (
48
50
  <Container flex="row" style={{ justifyContent: "space-between" }}>
49
51
  <Container flex="row" center="y" gap="sm" color="secondaryText">
@@ -214,7 +214,7 @@ async function fetchBalancesForWallet({
214
214
  chain.id === toChain.id
215
215
  ? !(
216
216
  mode === "fund_wallet" && account.address === accountAddress
217
- )
217
+ ) && balance.value > 0n
218
218
  : balance.value > 0n;
219
219
 
220
220
  if (include) {
@@ -11,9 +11,7 @@ type PendingTxInfo =
11
11
  intentId: string;
12
12
  };
13
13
 
14
- export const pendingTransactions = /* @__PURE__ */ createStore<PendingTxInfo[]>(
15
- [],
16
- );
14
+ const pendingTransactions = /* @__PURE__ */ createStore<PendingTxInfo[]>([]);
17
15
 
18
16
  /**
19
17
  * @internal
@@ -1,28 +1,12 @@
1
1
  import { useQuery } from "@tanstack/react-query";
2
+ import { Address as ox__Address } from "ox";
3
+ import * as Bridge from "../../../../../../../bridge/index.js";
2
4
  import type { Chain } from "../../../../../../../chains/types.js";
3
- import { defineChain } from "../../../../../../../chains/utils.js";
5
+ import { getCachedChain } from "../../../../../../../chains/utils.js";
4
6
  import type { ThirdwebClient } from "../../../../../../../client/client.js";
5
- import {
6
- getPaySupportedDestinations,
7
- getPaySupportedSources,
8
- } from "../../../../../../../pay/utils/definitions.js";
9
- import { getClientFetch } from "../../../../../../../utils/fetch.js";
10
- import { stringify } from "../../../../../../../utils/json.js";
7
+ import type { Address } from "../../../../../../../utils/address.js";
11
8
  import { withCache } from "../../../../../../../utils/promise/withCache.js";
12
9
 
13
- type Response = {
14
- result: Array<{
15
- chainId: number;
16
- tokens: Array<{
17
- address: string;
18
- buyWithCryptoEnabled: boolean;
19
- buyWithFiatEnabled: boolean;
20
- name: string;
21
- symbol: string;
22
- }>;
23
- }>;
24
- };
25
-
26
10
  export type SupportedChainAndTokens = Array<{
27
11
  chain: Chain;
28
12
  tokens: Array<{
@@ -35,35 +19,73 @@ export type SupportedChainAndTokens = Array<{
35
19
  }>;
36
20
  }>;
37
21
 
38
- export async function fetchBuySupportedDestinations(
39
- client: ThirdwebClient,
40
- isTestMode?: boolean,
41
- ): Promise<SupportedChainAndTokens> {
22
+ async function fetchBuySupportedDestinations({
23
+ client,
24
+ originChainId,
25
+ originTokenAddress,
26
+ }: {
27
+ client: ThirdwebClient;
28
+ originChainId?: number;
29
+ originTokenAddress?: Address;
30
+ }): Promise<SupportedChainAndTokens> {
42
31
  return withCache(
43
32
  async () => {
44
- const fetchWithHeaders = getClientFetch(client);
45
- const res = await fetchWithHeaders(
46
- `${getPaySupportedDestinations()}${isTestMode ? "?isTestMode=true" : ""}`,
47
- );
48
- if (!res.ok) {
49
- const error = await res.text();
50
- throw new Error(`Failed to fetch supported destinations: ${error}`);
33
+ const routes = await Bridge.routes({
34
+ client,
35
+ originChainId,
36
+ originTokenAddress,
37
+ maxSteps: 1,
38
+ sortBy: "popularity",
39
+ limit: 1000000,
40
+ });
41
+ const tokens = new Set<string>();
42
+ const chains = new Set<number>();
43
+ const destinationTokens: Record<
44
+ number,
45
+ Array<{
46
+ address: Address;
47
+ buyWithCryptoEnabled: boolean;
48
+ buyWithFiatEnabled: boolean;
49
+ name: string;
50
+ symbol: string;
51
+ icon?: string;
52
+ }>
53
+ > = [];
54
+ for (const route of routes) {
55
+ const key = `${route.destinationToken.chainId}:${route.destinationToken.address}`;
56
+ if (!tokens.has(key)) {
57
+ tokens.add(key);
58
+ if (!chains.has(route.destinationToken.chainId)) {
59
+ chains.add(route.destinationToken.chainId);
60
+ }
61
+ const existing = destinationTokens[route.destinationToken.chainId];
62
+ if (!existing) {
63
+ destinationTokens[route.destinationToken.chainId] = [];
64
+ }
65
+ destinationTokens[route.destinationToken.chainId] = [
66
+ ...(existing || []),
67
+ {
68
+ address: ox__Address.checksum(
69
+ route.destinationToken.address,
70
+ ) as Address,
71
+ // We support both options for all tokens
72
+ buyWithCryptoEnabled: true,
73
+ buyWithFiatEnabled: true,
74
+ name: route.destinationToken.name,
75
+ symbol: route.destinationToken.symbol,
76
+ icon: route.destinationToken.iconUri,
77
+ },
78
+ ];
79
+ }
51
80
  }
52
- const data = (await res.json()) as Response;
53
- if (!data.result) {
54
- throw new Error(
55
- `Failed to parse supported destinations: ${data ? stringify(data) : undefined}`,
56
- );
57
- }
58
- return data.result.map((item) => ({
59
- chain: defineChain({
60
- id: item.chainId,
61
- }),
62
- tokens: item.tokens,
81
+
82
+ return [...chains].map((chainId) => ({
83
+ chain: getCachedChain(chainId),
84
+ tokens: destinationTokens[chainId] || [],
63
85
  }));
64
86
  },
65
87
  {
66
- cacheKey: "destination-tokens",
88
+ cacheKey: `buy-supported-destinations-${originChainId}:${originTokenAddress}`,
67
89
  cacheTime: 5 * 60 * 1000,
68
90
  },
69
91
  );
@@ -74,12 +96,12 @@ export async function fetchBuySupportedDestinations(
74
96
  */
75
97
  export function useBuySupportedDestinations(
76
98
  client: ThirdwebClient,
77
- isTestMode?: boolean,
99
+ _isTestMode?: boolean,
78
100
  ) {
79
101
  return useQuery({
80
102
  queryKey: ["destination-tokens", client],
81
103
  queryFn: async () => {
82
- return fetchBuySupportedDestinations(client, isTestMode);
104
+ return fetchBuySupportedDestinations({ client });
83
105
  },
84
106
  });
85
107
  }
@@ -92,26 +114,59 @@ export function useBuySupportedSources(options: {
92
114
  return useQuery({
93
115
  queryKey: ["source-tokens", options],
94
116
  queryFn: async () => {
95
- const fetchWithHeaders = getClientFetch(options.client);
96
- const baseUrl = getPaySupportedSources();
117
+ const routes = await Bridge.routes({
118
+ client: options.client,
119
+ destinationChainId: options.destinationChainId,
120
+ destinationTokenAddress: options.destinationTokenAddress,
121
+ maxSteps: 1,
122
+ sortBy: "popularity",
123
+ limit: 50,
124
+ });
97
125
 
98
- const url = new URL(baseUrl);
99
- url.searchParams.append(
100
- "destinationChainId",
101
- options.destinationChainId.toString(),
102
- );
103
- url.searchParams.append(
104
- "destinationTokenAddress",
105
- options.destinationTokenAddress,
106
- );
126
+ const tokens = new Set<string>();
127
+ const chains = new Set<number>();
128
+ const originTokens: Record<
129
+ number,
130
+ Array<{
131
+ address: Address;
132
+ buyWithCryptoEnabled: boolean;
133
+ buyWithFiatEnabled: boolean;
134
+ name: string;
135
+ symbol: string;
136
+ icon?: string;
137
+ }>
138
+ > = [];
139
+ for (const route of routes) {
140
+ const key = `${route.originToken.chainId}:${route.originToken.address}`;
141
+ if (!tokens.has(key)) {
142
+ tokens.add(key);
143
+ if (!chains.has(route.originToken.chainId)) {
144
+ chains.add(route.originToken.chainId);
145
+ }
146
+ const existing = originTokens[route.originToken.chainId];
147
+ if (!existing) {
148
+ originTokens[route.originToken.chainId] = [];
149
+ }
150
+ originTokens[route.originToken.chainId] = [
151
+ ...(existing || []),
152
+ {
153
+ address: ox__Address.checksum(
154
+ route.originToken.address,
155
+ ) as Address,
156
+ // We support both options for all tokens
157
+ buyWithCryptoEnabled: true,
158
+ buyWithFiatEnabled: true,
159
+ name: route.originToken.name,
160
+ symbol: route.originToken.symbol,
161
+ icon: route.originToken.iconUri,
162
+ },
163
+ ];
164
+ }
165
+ }
107
166
 
108
- const res = await fetchWithHeaders(url.toString());
109
- const data = (await res.json()) as Response;
110
- return data.result.map((item) => ({
111
- chain: defineChain({
112
- id: item.chainId,
113
- }),
114
- tokens: item.tokens,
167
+ return [...chains].map((chainId) => ({
168
+ chain: getCachedChain(chainId),
169
+ tokens: originTokens[chainId] || [],
115
170
  }));
116
171
  },
117
172
  });