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
@@ -1,142 +0,0 @@
1
- import { ExternalLinkIcon } from "@radix-ui/react-icons";
2
- import { getCachedChain } from "../../../../../../../chains/utils.js";
3
- import type { ThirdwebClient } from "../../../../../../../client/client.js";
4
- import { formatNumber } from "../../../../../../../utils/formatNumber.js";
5
- import { formatExplorerTxUrl } from "../../../../../../../utils/url.js";
6
- import {
7
- fontSize,
8
- iconSize,
9
- } from "../../../../../../core/design-system/index.js";
10
- import { useChainExplorers } from "../../../../../../core/hooks/others/useChainQuery.js";
11
- import { Spacer } from "../../../../components/Spacer.js";
12
- import { Container, Line } from "../../../../components/basic.js";
13
- import { ButtonLink } from "../../../../components/buttons.js";
14
- import { Text } from "../../../../components/text.js";
15
- import { TokenInfoRow } from "../pay-transactions/TokenInfoRow.js";
16
- import type { FiatStatusMeta } from "../pay-transactions/statusMeta.js";
17
- import { getCurrencyMeta, getFiatIcon } from "./currencies.js";
18
-
19
- /**
20
- * Show a table with the details of a "OnRamp" transaction step in the "Buy with Fiat" flow.
21
- * - Show OnRamp token as "Receive"
22
- * - Show fiat amount as "Pay"
23
- */
24
- export function OnRampTxDetailsTable(props: {
25
- client: ThirdwebClient;
26
- token: {
27
- chainId: number;
28
- address: string;
29
- symbol: string;
30
- amount: string;
31
- };
32
- fiat: {
33
- currencySymbol: string;
34
- amount: string;
35
- };
36
- statusMeta?: {
37
- color: FiatStatusMeta["color"];
38
- text: FiatStatusMeta["status"];
39
- txHash?: string;
40
- };
41
- }) {
42
- const onRampExplorers = useChainExplorers(
43
- getCachedChain(props.token.chainId),
44
- );
45
- const onrampTxHash = props.statusMeta?.txHash;
46
- const currencyMeta = getCurrencyMeta(props.fiat.currencySymbol);
47
-
48
- const lineSpacer = (
49
- <>
50
- <Spacer y="md" />
51
- <Line />
52
- <Spacer y="md" />
53
- </>
54
- );
55
-
56
- return (
57
- <div>
58
- {/* Pay */}
59
- <Container
60
- flex="row"
61
- style={{
62
- justifyContent: "space-between",
63
- }}
64
- >
65
- <Text size="sm">Pay</Text>
66
- <Container
67
- flex="column"
68
- gap="xxs"
69
- style={{
70
- alignItems: "flex-end",
71
- }}
72
- >
73
- <Container flex="row" gap="xs" center="y">
74
- {getFiatIcon(currencyMeta, "sm")}
75
- <Text color="primaryText">
76
- {formatNumber(Number(props.fiat.amount), 2)}{" "}
77
- {props.fiat.currencySymbol}
78
- </Text>
79
- </Container>
80
- </Container>
81
- </Container>
82
-
83
- {lineSpacer}
84
-
85
- {/* Receive */}
86
- <TokenInfoRow
87
- chainId={props.token.chainId}
88
- client={props.client}
89
- label="Receive"
90
- tokenAmount={props.token.amount}
91
- tokenSymbol={props.token.symbol}
92
- tokenAddress={props.token.address}
93
- />
94
-
95
- {/* Status */}
96
- {props.statusMeta && (
97
- <>
98
- {lineSpacer}
99
- <Container
100
- flex="row"
101
- center="y"
102
- style={{
103
- justifyContent: "space-between",
104
- }}
105
- >
106
- <Text>Status</Text>
107
- <Container flex="row" gap="xs" center="y">
108
- <Text color={props.statusMeta.color}>
109
- {props.statusMeta.text}
110
- </Text>
111
- </Container>
112
- </Container>
113
- </>
114
- )}
115
-
116
- {lineSpacer}
117
-
118
- {/* Transaction Hash link */}
119
- {onrampTxHash && onRampExplorers.explorers?.[0]?.url && (
120
- <>
121
- <Spacer y="md" />
122
- <ButtonLink
123
- fullWidth
124
- variant="outline"
125
- href={formatExplorerTxUrl(
126
- onRampExplorers.explorers[0]?.url,
127
- onrampTxHash,
128
- )}
129
- target="_blank"
130
- gap="xs"
131
- style={{
132
- fontSize: fontSize.sm,
133
- }}
134
- >
135
- View on Explorer
136
- <ExternalLinkIcon width={iconSize.sm} height={iconSize.sm} />
137
- </ButtonLink>
138
- </>
139
- )}
140
- </div>
141
- );
142
- }
@@ -1,170 +0,0 @@
1
- import { useQuery } from "@tanstack/react-query";
2
- import { useEffect, useState } from "react";
3
- import { getCachedChain } from "../../../../../../../chains/utils.js";
4
- import type { ThirdwebClient } from "../../../../../../../client/client.js";
5
- import { getContract } from "../../../../../../../contract/contract.js";
6
- import { allowance } from "../../../../../../../extensions/erc20/__generated__/IERC20/read/allowance.js";
7
- import type { BuyWithCryptoQuote } from "../../../../../../../pay/buyWithCrypto/getQuote.js";
8
- import type { BuyWithCryptoStatus } from "../../../../../../../pay/buyWithCrypto/getStatus.js";
9
- import { getPostOnRampQuote } from "../../../../../../../pay/buyWithFiat/getPostOnRampQuote.js";
10
- import type { BuyWithFiatStatus } from "../../../../../../../pay/buyWithFiat/getStatus.js";
11
- import { iconSize } from "../../../../../../core/design-system/index.js";
12
- import { Spacer } from "../../../../components/Spacer.js";
13
- import { Spinner } from "../../../../components/Spinner.js";
14
- import { Container, ModalHeader } from "../../../../components/basic.js";
15
- import { Button } from "../../../../components/buttons.js";
16
- import { Text } from "../../../../components/text.js";
17
- import { AccentFailIcon } from "../../../icons/AccentFailIcon.js";
18
- import { SwapFlow } from "../swap/SwapFlow.js";
19
- import type { PayerInfo } from "../types.js";
20
-
21
- export function PostOnRampSwap(props: {
22
- title: string;
23
- client: ThirdwebClient;
24
- buyWithFiatStatus: BuyWithFiatStatus;
25
- onBack?: () => void;
26
- onDone: () => void;
27
- transactionMode: boolean;
28
- isEmbed: boolean;
29
- payer: PayerInfo;
30
- onSuccess: ((status: BuyWithCryptoStatus) => void) | undefined;
31
- }) {
32
- const [lockedOnRampQuote, setLockedOnRampQuote] = useState<
33
- BuyWithCryptoQuote | undefined
34
- >(undefined);
35
-
36
- const postOnRampQuoteQuery = useQuery({
37
- queryKey: ["getPostOnRampQuote", props.buyWithFiatStatus],
38
- queryFn: async () => {
39
- return await getPostOnRampQuote({
40
- client: props.client,
41
- buyWithFiatStatus: props.buyWithFiatStatus,
42
- });
43
- },
44
- // stop fetching if a quote is already locked
45
- enabled: !lockedOnRampQuote,
46
- refetchOnWindowFocus: false,
47
- });
48
-
49
- const allowanceQuery = useQuery({
50
- queryKey: [
51
- "allowance",
52
- props.payer.account.address,
53
- postOnRampQuoteQuery.data?.approvalData,
54
- ],
55
- queryFn: () => {
56
- if (!postOnRampQuoteQuery.data?.approvalData) {
57
- return null;
58
- }
59
- return allowance({
60
- contract: getContract({
61
- client: props.client,
62
- address: postOnRampQuoteQuery.data.swapDetails.fromToken.tokenAddress,
63
- chain: getCachedChain(
64
- postOnRampQuoteQuery.data.swapDetails.fromToken.chainId,
65
- ),
66
- }),
67
- spender: postOnRampQuoteQuery.data.approvalData.spenderAddress,
68
- owner: props.payer.account.address,
69
- });
70
- },
71
- enabled: !!postOnRampQuoteQuery.data?.approvalData,
72
- refetchOnMount: true,
73
- });
74
-
75
- useEffect(() => {
76
- if (
77
- postOnRampQuoteQuery.data &&
78
- !lockedOnRampQuote &&
79
- !postOnRampQuoteQuery.isRefetching &&
80
- !allowanceQuery.isLoading
81
- ) {
82
- setLockedOnRampQuote(postOnRampQuoteQuery.data);
83
- }
84
- }, [
85
- postOnRampQuoteQuery.data,
86
- lockedOnRampQuote,
87
- postOnRampQuoteQuery.isRefetching,
88
- allowanceQuery.isLoading,
89
- ]);
90
-
91
- if (postOnRampQuoteQuery.isError) {
92
- return (
93
- <Container fullHeight>
94
- <Container p="lg">
95
- <ModalHeader title={props.title} onBack={props.onBack} />
96
- </Container>
97
-
98
- <Container
99
- style={{
100
- minHeight: "300px",
101
- }}
102
- flex="column"
103
- center="both"
104
- p="lg"
105
- >
106
- <AccentFailIcon size={iconSize["3xl"]} />
107
- <Spacer y="xl" />
108
- <Text color="primaryText">Failed to get a price quote</Text>
109
- <Spacer y="lg" />
110
-
111
- <Button
112
- fullWidth
113
- variant="primary"
114
- onClick={() => {
115
- postOnRampQuoteQuery.refetch();
116
- }}
117
- >
118
- Try Again
119
- </Button>
120
- </Container>
121
-
122
- <Spacer y="xxl" />
123
- </Container>
124
- );
125
- }
126
-
127
- if (!lockedOnRampQuote) {
128
- return (
129
- <Container fullHeight>
130
- <Container p="lg">
131
- <ModalHeader title={props.title} onBack={props.onBack} />
132
- </Container>
133
-
134
- <Container
135
- style={{
136
- minHeight: "300px",
137
- }}
138
- flex="column"
139
- center="both"
140
- >
141
- <Spinner size="xxl" color="accentText" />
142
- <Spacer y="xl" />
143
- <Text color="primaryText">Getting price quote</Text>
144
- </Container>
145
-
146
- <Spacer y="xxl" />
147
- </Container>
148
- );
149
- }
150
-
151
- return (
152
- <SwapFlow
153
- title={props.title}
154
- payer={props.payer}
155
- buyWithCryptoQuote={lockedOnRampQuote}
156
- client={props.client}
157
- onBack={props.onBack}
158
- isFiatFlow={true}
159
- onDone={props.onDone}
160
- onTryAgain={() => {
161
- setLockedOnRampQuote(undefined);
162
- postOnRampQuoteQuery.refetch();
163
- }}
164
- transactionMode={props.transactionMode}
165
- isEmbed={props.isEmbed}
166
- onSuccess={props.onSuccess}
167
- approvalAmount={allowanceQuery.data ?? undefined}
168
- />
169
- );
170
- }
@@ -1,63 +0,0 @@
1
- import { useState } from "react";
2
- import type { ThirdwebClient } from "../../../../../../../client/client.js";
3
- import type { BuyWithCryptoStatus } from "../../../../../../../pay/buyWithCrypto/getStatus.js";
4
- import type { BuyWithFiatStatus } from "../../../../../../../pay/buyWithFiat/getStatus.js";
5
- import type { PayerInfo } from "../types.js";
6
- import { type BuyWithFiatPartialQuote, FiatSteps } from "./FiatSteps.js";
7
- import { PostOnRampSwap } from "./PostOnRampSwap.js";
8
-
9
- // Note: It is necessary to lock in the fiat-status in state and only pass that to <PostOnRampSwap /> so it does not suddenly change during the swap process.
10
-
11
- /**
12
- * - Show 2 steps UI with step 2 highlighted, on continue button click:
13
- * - Show swap flow
14
- */
15
- export function PostOnRampSwapFlow(props: {
16
- title: string;
17
- status: BuyWithFiatStatus;
18
- quote: BuyWithFiatPartialQuote;
19
- client: ThirdwebClient;
20
- onBack: () => void;
21
- onDone: () => void;
22
- onSwapFlowStarted: () => void;
23
- transactionMode: boolean;
24
- isEmbed: boolean;
25
- payer: PayerInfo;
26
- onSuccess: ((status: BuyWithCryptoStatus) => void) | undefined;
27
- }) {
28
- const [statusForSwap, setStatusForSwap] = useState<
29
- BuyWithFiatStatus | undefined
30
- >();
31
-
32
- // step 2 flow
33
- if (statusForSwap) {
34
- return (
35
- <PostOnRampSwap
36
- title={props.title}
37
- buyWithFiatStatus={statusForSwap}
38
- client={props.client}
39
- onDone={props.onDone}
40
- transactionMode={props.transactionMode}
41
- isEmbed={props.isEmbed}
42
- payer={props.payer}
43
- onSuccess={props.onSuccess}
44
- />
45
- );
46
- }
47
-
48
- // show step 1 and step 2 details
49
- return (
50
- <FiatSteps
51
- title={props.title}
52
- client={props.client}
53
- onBack={props.onBack}
54
- partialQuote={props.quote}
55
- step={2}
56
- onContinue={() => {
57
- props.onSwapFlowStarted();
58
- setStatusForSwap(props.status);
59
- }}
60
- status={props.status}
61
- />
62
- );
63
- }
@@ -1,163 +0,0 @@
1
- "use client";
2
- import { ArrowRightIcon, CrossCircledIcon } from "@radix-ui/react-icons";
3
- import type { ThirdwebClient } from "../../../../../../../client/client.js";
4
- import {
5
- fontSize,
6
- iconSize,
7
- spacing,
8
- } from "../../../../../../core/design-system/index.js";
9
- import { Skeleton } from "../../../../components/Skeleton.js";
10
- import { Spinner } from "../../../../components/Spinner.js";
11
- import { Container } from "../../../../components/basic.js";
12
- import { Button } from "../../../../components/buttons.js";
13
- import { Text } from "../../../../components/text.js";
14
- import {
15
- BuyTxHistoryButton,
16
- BuyTxHistoryButtonHeight,
17
- } from "./BuyTxHistoryButton.js";
18
- import {
19
- type TxStatusInfo,
20
- useBuyTransactionsToShow,
21
- } from "./useBuyTransactionsToShow.js";
22
-
23
- /**
24
- * @internal
25
- */
26
- export function PayTxHistoryList(props: {
27
- client: ThirdwebClient;
28
- onSelectTx: (tx: TxStatusInfo) => void;
29
- }) {
30
- const {
31
- pageIndex,
32
- setPageIndex,
33
- txInfosToShow,
34
- hidePagination,
35
- isLoading,
36
- pagination,
37
- } = useBuyTransactionsToShow(props.client);
38
-
39
- const noTransactions = txInfosToShow.length === 0;
40
-
41
- return (
42
- <Container
43
- scrollY
44
- flex="column"
45
- fullHeight
46
- style={{
47
- width: "100%",
48
- minHeight: "250px",
49
- maxHeight: "370px",
50
- paddingBottom: spacing.lg,
51
- }}
52
- >
53
- <Container flex="column" gap="xs" expand>
54
- {noTransactions && !isLoading && (
55
- <Container
56
- flex="column"
57
- gap="md"
58
- center="both"
59
- color="secondaryText"
60
- style={{
61
- minHeight: "250px",
62
- }}
63
- >
64
- <CrossCircledIcon width={iconSize.xl} height={iconSize.xl} />
65
- <Text>No Transactions</Text>
66
- </Container>
67
- )}
68
-
69
- {noTransactions && isLoading && (
70
- <Container
71
- flex="row"
72
- center="both"
73
- style={{
74
- minHeight: "250px",
75
- }}
76
- >
77
- <Spinner size="xl" color="accentText" />
78
- </Container>
79
- )}
80
-
81
- {txInfosToShow.length > 0 && (
82
- <Container animate="fadein" flex="column" gap="xs">
83
- {txInfosToShow.map((txInfo) => {
84
- return (
85
- <BuyTxHistoryButton
86
- key={
87
- txInfo.type === "swap"
88
- ? txInfo.status.source?.transactionHash
89
- : txInfo.status.intentId
90
- }
91
- txInfo={txInfo}
92
- client={props.client}
93
- onClick={() => {
94
- props.onSelectTx(txInfo);
95
- }}
96
- />
97
- );
98
- })}
99
- </Container>
100
- )}
101
-
102
- {isLoading && txInfosToShow.length > 0 && (
103
- <>
104
- <Skeleton width="100%" height={BuyTxHistoryButtonHeight} />
105
- <Skeleton width="100%" height={BuyTxHistoryButtonHeight} />
106
- <Skeleton width="100%" height={BuyTxHistoryButtonHeight} />
107
- </>
108
- )}
109
- </Container>
110
-
111
- {pagination && !hidePagination && (
112
- <Container py="md">
113
- <div
114
- style={{
115
- display: "grid",
116
- gridTemplateColumns: "1fr 1fr",
117
- gap: spacing.sm,
118
- }}
119
- >
120
- <Button
121
- variant="outline"
122
- gap="xs"
123
- disabled={pageIndex === 0}
124
- data-disabled={pageIndex === 0}
125
- style={{
126
- fontSize: fontSize.sm,
127
- paddingBlock: spacing.sm,
128
- }}
129
- onClick={() => {
130
- setPageIndex((prev) => prev - 1);
131
- }}
132
- >
133
- <ArrowRightIcon
134
- width={iconSize.sm}
135
- height={iconSize.sm}
136
- style={{
137
- transform: "rotate(180deg)",
138
- }}
139
- />
140
- Prev
141
- </Button>
142
- <Button
143
- variant="outline"
144
- gap="xs"
145
- disabled={!pagination.hasNextPage}
146
- data-disabled={!pagination.hasNextPage}
147
- style={{
148
- fontSize: fontSize.sm,
149
- paddingBlock: spacing.sm,
150
- }}
151
- onClick={() => {
152
- setPageIndex((prev) => prev + 1);
153
- }}
154
- >
155
- Next
156
- <ArrowRightIcon width={iconSize.sm} height={iconSize.sm} />
157
- </Button>
158
- </div>
159
- </Container>
160
- )}
161
- </Container>
162
- );
163
- }
@@ -1,127 +0,0 @@
1
- import styled from "@emotion/styled";
2
- import { getCachedChain } from "../../../../../../../chains/utils.js";
3
- import type { ThirdwebClient } from "../../../../../../../client/client.js";
4
- import { formatNumber } from "../../../../../../../utils/formatNumber.js";
5
- import { useCustomTheme } from "../../../../../../core/design-system/CustomThemeProvider.js";
6
- import { spacing } from "../../../../../../core/design-system/index.js";
7
- import { ChainName } from "../../../../components/ChainName.js";
8
- import { Spacer } from "../../../../components/Spacer.js";
9
- import { Container } from "../../../../components/basic.js";
10
- import { Button } from "../../../../components/buttons.js";
11
- import { Text } from "../../../../components/text.js";
12
- import { PayTokenIcon } from "../PayTokenIcon.js";
13
- import {
14
- getBuyWithCryptoStatusMeta,
15
- getBuyWithFiatStatusMeta,
16
- } from "./statusMeta.js";
17
- import type { TxStatusInfo } from "./useBuyTransactionsToShow.js";
18
-
19
- export const BuyTxHistoryButtonHeight = "62px";
20
-
21
- export function BuyTxHistoryButton(props: {
22
- txInfo: TxStatusInfo;
23
- client: ThirdwebClient;
24
- onClick?: () => void;
25
- }) {
26
- const statusMeta =
27
- props.txInfo.type === "swap"
28
- ? getBuyWithCryptoStatusMeta(props.txInfo.status)
29
- : getBuyWithFiatStatusMeta(props.txInfo.status);
30
-
31
- return (
32
- <TxButton
33
- onClick={props.onClick}
34
- variant="secondary"
35
- fullWidth
36
- style={{
37
- paddingBlock: spacing.sm,
38
- }}
39
- >
40
- <Container
41
- flex="row"
42
- center="y"
43
- gap="sm"
44
- style={{
45
- flex: 1,
46
- }}
47
- >
48
- <PayTokenIcon
49
- client={props.client}
50
- chain={getCachedChain(props.txInfo.status.quote.toToken.chainId)}
51
- size="md"
52
- token={{
53
- address: props.txInfo.status.quote.toToken.tokenAddress,
54
- }}
55
- />
56
-
57
- <div
58
- style={{
59
- flex: 1,
60
- display: "flex",
61
- flexDirection: "column",
62
- justifyContent: "center",
63
- }}
64
- >
65
- {/* Row 1 */}
66
- <Container
67
- flex="row"
68
- gap="xs"
69
- center="y"
70
- style={{
71
- justifyContent: "space-between",
72
- }}
73
- >
74
- <Text size="sm" color="primaryText">
75
- Buy{" "}
76
- {formatNumber(
77
- Number(
78
- props.txInfo.type === "swap"
79
- ? props.txInfo.status.quote.toAmount
80
- : props.txInfo.status.quote.estimatedToTokenAmount,
81
- ),
82
- 6,
83
- )}{" "}
84
- {props.txInfo.status.quote.toToken.symbol}
85
- </Text>
86
- </Container>
87
-
88
- <Spacer y="xxs" />
89
-
90
- {/* Row 2 */}
91
- <Container
92
- flex="row"
93
- center="y"
94
- gap="xxs"
95
- style={{
96
- justifyContent: "space-between",
97
- }}
98
- >
99
- <ChainName
100
- chain={getCachedChain(props.txInfo.status.quote.toToken.chainId)}
101
- size="xs"
102
- client={props.client}
103
- />
104
- </Container>
105
- </div>
106
- </Container>
107
-
108
- {/* Status */}
109
- <Container flex="row" gap="xxs" center="y">
110
- <Text size="xs" color={statusMeta.color}>
111
- {statusMeta.status}
112
- </Text>
113
- </Container>
114
- </TxButton>
115
- );
116
- }
117
-
118
- const TxButton = /* @__PURE__ */ styled(Button)(() => {
119
- const theme = useCustomTheme();
120
- return {
121
- background: theme.colors.tertiaryBg,
122
- "&:hover": {
123
- background: theme.colors.secondaryButtonBg,
124
- },
125
- height: BuyTxHistoryButtonHeight,
126
- };
127
- });