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,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBuyWithCryptoStatus = getBuyWithCryptoStatus;
4
- const fetch_js_1 = require("../../utils/fetch.js");
5
- const definitions_js_1 = require("../utils/definitions.js");
4
+ const index_js_1 = require("../../bridge/index.js");
5
+ const units_js_1 = require("../../utils/units.js");
6
6
  /**
7
7
  * Gets the status of a buy with crypto transaction
8
8
  * @param buyWithCryptoTransaction - Object of type [`BuyWithCryptoTransaction`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoTransaction)
@@ -40,7 +40,7 @@ const definitions_js_1 = require("../utils/definitions.js");
40
40
  * }});
41
41
  * ```
42
42
  * @returns Object of type [`BuyWithCryptoStatus`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoStatus)
43
- * @deprecated
43
+ * @deprecated use Bridge.status instead
44
44
  * @buyCrypto
45
45
  */
46
46
  async function getBuyWithCryptoStatus(buyWithCryptoTransaction) {
@@ -48,23 +48,169 @@ async function getBuyWithCryptoStatus(buyWithCryptoTransaction) {
48
48
  if (!buyWithCryptoTransaction.transactionHash) {
49
49
  throw new Error("Transaction hash is required");
50
50
  }
51
- const queryString = new URLSearchParams({
51
+ const result = await (0, index_js_1.status)({
52
52
  transactionHash: buyWithCryptoTransaction.transactionHash,
53
- chainId: buyWithCryptoTransaction.chainId.toString(),
54
- }).toString();
55
- const url = `${(0, definitions_js_1.getPayBuyWithCryptoStatusUrl)()}?${queryString}`;
56
- const response = await (0, fetch_js_1.getClientFetch)(buyWithCryptoTransaction.client)(url);
57
- // Assuming the response directly matches the BuyWithCryptoStatus interface
58
- if (!response.ok) {
59
- const error = await response.text().catch(() => null);
60
- throw new Error(`HTTP error! status: ${response.status} - ${response.statusText}: ${error || "unknown error"}`);
53
+ chainId: buyWithCryptoTransaction.chainId,
54
+ client: buyWithCryptoTransaction.client,
55
+ });
56
+ switch (result.status) {
57
+ case "COMPLETED": {
58
+ const originTransaction = result.transactions?.find((tx) => tx.chainId === buyWithCryptoTransaction.chainId);
59
+ const destinationTransaction = result.transactions?.find((tx) => tx.chainId !== buyWithCryptoTransaction.chainId);
60
+ return toBuyWithCryptoStatus({
61
+ originTransaction,
62
+ destinationTransaction,
63
+ originAmount: result.originAmount,
64
+ destinationAmount: result.destinationAmount,
65
+ originTokenAddress: result.originTokenAddress,
66
+ destinationTokenAddress: result.destinationTokenAddress,
67
+ originChainId: result.originChainId,
68
+ destinationChainId: result.destinationChainId,
69
+ status: result.status,
70
+ sender: result.sender,
71
+ receiver: result.receiver,
72
+ paymentId: result.paymentId,
73
+ originToken: result.originToken,
74
+ destinationToken: result.destinationToken,
75
+ purchaseData: result.purchaseData,
76
+ });
77
+ }
78
+ case "PENDING": {
79
+ return toBuyWithCryptoStatus({
80
+ originAmount: result.originAmount,
81
+ originTokenAddress: result.originTokenAddress,
82
+ destinationTokenAddress: result.destinationTokenAddress,
83
+ originChainId: result.originChainId,
84
+ destinationChainId: result.destinationChainId,
85
+ status: result.status,
86
+ sender: result.sender,
87
+ receiver: result.receiver,
88
+ paymentId: result.paymentId,
89
+ originToken: result.originToken,
90
+ destinationToken: result.destinationToken,
91
+ purchaseData: result.purchaseData,
92
+ });
93
+ }
94
+ case "FAILED": {
95
+ const originTransaction = result.transactions?.find((tx) => tx.chainId === buyWithCryptoTransaction.chainId);
96
+ const destinationTransaction = result.transactions?.find((tx) => tx.chainId !== buyWithCryptoTransaction.chainId);
97
+ return toBuyWithCryptoStatus({
98
+ originTransaction,
99
+ destinationTransaction,
100
+ originAmount: BigInt(0), // TODO: get from API
101
+ originTokenAddress: "", // TODO: get from API
102
+ destinationTokenAddress: "", // TODO: get from API
103
+ originChainId: 0, // TODO: get from API
104
+ destinationChainId: 0, // TODO: get from API
105
+ status: result.status,
106
+ sender: "",
107
+ receiver: "",
108
+ paymentId: "",
109
+ originToken: undefined,
110
+ destinationToken: undefined,
111
+ purchaseData: result.purchaseData,
112
+ });
113
+ }
114
+ default: {
115
+ return {
116
+ status: "NOT_FOUND",
117
+ };
118
+ }
61
119
  }
62
- const data = (await response.json()).result;
63
- return data;
64
120
  }
65
121
  catch (error) {
66
122
  console.error("Fetch error:", error);
67
123
  throw new Error(`Fetch failed: ${error}`);
68
124
  }
69
125
  }
126
+ function toBuyWithCryptoStatus(args) {
127
+ const { originTransaction, destinationTransaction, status, purchaseData, originAmount, destinationAmount, originTokenAddress, destinationTokenAddress, originChainId, destinationChainId, sender, receiver, originToken, destinationToken, } = args;
128
+ return {
129
+ fromAddress: sender,
130
+ toAddress: receiver,
131
+ quote: {
132
+ createdAt: new Date().toISOString(),
133
+ estimated: {
134
+ fromAmountUSDCents: 0,
135
+ toAmountMinUSDCents: 0,
136
+ toAmountUSDCents: 0,
137
+ slippageBPS: 0,
138
+ feesUSDCents: 0,
139
+ gasCostUSDCents: 0,
140
+ durationSeconds: 0,
141
+ },
142
+ fromAmount: originToken
143
+ ? (0, units_js_1.toTokens)(originAmount, originToken.decimals).toString()
144
+ : "",
145
+ fromAmountWei: originAmount.toString(),
146
+ toAmount: destinationToken && destinationAmount
147
+ ? (0, units_js_1.toTokens)(destinationAmount, destinationToken.decimals).toString()
148
+ : "",
149
+ toAmountWei: destinationAmount ? destinationAmount.toString() : "",
150
+ toAmountMin: destinationToken
151
+ ? (0, units_js_1.toTokens)(destinationAmount ?? BigInt(0), destinationToken.decimals).toString()
152
+ : "",
153
+ toAmountMinWei: destinationAmount ? destinationAmount.toString() : "",
154
+ fromToken: {
155
+ tokenAddress: originTokenAddress,
156
+ chainId: originChainId,
157
+ decimals: originToken?.decimals ?? 18,
158
+ name: originToken?.name ?? "",
159
+ symbol: originToken?.symbol ?? "",
160
+ priceUSDCents: 0,
161
+ },
162
+ toToken: {
163
+ tokenAddress: destinationTokenAddress,
164
+ chainId: destinationChainId,
165
+ decimals: destinationToken?.decimals ?? 18,
166
+ name: destinationToken?.name ?? "",
167
+ symbol: destinationToken?.symbol ?? "",
168
+ priceUSDCents: 0,
169
+ },
170
+ },
171
+ swapType: originTransaction?.chainId === destinationTransaction?.chainId
172
+ ? "SAME_CHAIN"
173
+ : "CROSS_CHAIN", // TODO transfer type?
174
+ status: status,
175
+ subStatus: status === "COMPLETED" ? "SUCCESS" : "NONE",
176
+ purchaseData: purchaseData,
177
+ bridge: "STARPORT",
178
+ destination: {
179
+ amount: destinationToken
180
+ ? (0, units_js_1.toTokens)(destinationAmount ?? BigInt(0), destinationToken.decimals).toString()
181
+ : "",
182
+ amountWei: destinationAmount?.toString() ?? "",
183
+ token: {
184
+ tokenAddress: destinationTokenAddress,
185
+ chainId: destinationChainId,
186
+ decimals: destinationToken?.decimals ?? 18,
187
+ name: destinationToken?.name ?? "",
188
+ symbol: destinationToken?.symbol ?? "",
189
+ priceUSDCents: 0,
190
+ },
191
+ amountUSDCents: 0,
192
+ completedAt: new Date().toISOString(),
193
+ explorerLink: "",
194
+ transactionHash: destinationTransaction?.transactionHash ?? "",
195
+ },
196
+ source: {
197
+ amount: originToken
198
+ ? (0, units_js_1.toTokens)(originAmount, originToken.decimals).toString()
199
+ : "",
200
+ amountWei: originAmount.toString(),
201
+ token: {
202
+ tokenAddress: originTokenAddress,
203
+ chainId: originChainId,
204
+ decimals: originToken?.decimals ?? 18,
205
+ name: originToken?.name ?? "",
206
+ symbol: originToken?.symbol ?? "",
207
+ priceUSDCents: 0,
208
+ },
209
+ amountUSDCents: 0,
210
+ completedAt: new Date().toISOString(),
211
+ explorerLink: "",
212
+ transactionHash: originTransaction?.transactionHash ?? "",
213
+ },
214
+ };
215
+ }
70
216
  //# sourceMappingURL=getStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getStatus.ts"],"names":[],"mappings":";;AAgIA,wDA6BC;AA5JD,mDAAsD;AAKtD,4DAAuE;AAkFvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACI,KAAK,UAAU,sBAAsB,CAC1C,wBAAkD;IAElD,IAAI,CAAC;QACH,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;YACtC,eAAe,EAAE,wBAAwB,CAAC,eAAe;YACzD,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE;SACrD,CAAC,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,GAAG,IAAA,6CAA4B,GAAE,IAAI,WAAW,EAAE,CAAC;QAE/D,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAc,EAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QAE5E,2EAA2E;QAC3E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,KAAK,KAAK,IAAI,eAAe,EAAE,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAwB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getStatus.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBuyWithCryptoTransfer = getBuyWithCryptoTransfer;
4
+ const ox_1 = require("ox");
5
+ const ox__AbiFunction = require("ox/AbiFunction");
6
+ const index_js_1 = require("../../bridge/index.js");
4
7
  const utils_js_1 = require("../../chains/utils.js");
5
- const fetch_js_1 = require("../../utils/fetch.js");
6
- const json_js_1 = require("../../utils/json.js");
7
- const definitions_js_1 = require("../utils/definitions.js");
8
+ const addresses_js_1 = require("../../constants/addresses.js");
9
+ const contract_js_1 = require("../../contract/contract.js");
10
+ const decimals_js_1 = require("../../extensions/erc20/read/decimals.js");
8
11
  /**
9
12
  * Get a quote of type [`BuyWithCryptoTransfer`](https://portal.thirdweb.com/references/typescript/v5/BuyWithCryptoTransfer) to facilitate a token transfer transaction.
10
13
  * Using this instead of a native transfer allows you to receive status and webhooks about successful or failed payments.
@@ -34,46 +37,101 @@ const definitions_js_1 = require("../utils/definitions.js");
34
37
  */
35
38
  async function getBuyWithCryptoTransfer(params) {
36
39
  try {
37
- const clientFetch = (0, fetch_js_1.getClientFetch)(params.client);
38
- const response = await clientFetch((0, definitions_js_1.getPayBuyWithCryptoTransferEndpoint)(), {
39
- method: "POST",
40
- headers: {
41
- Accept: "application/json",
42
- "Content-Type": "application/json",
43
- },
44
- body: (0, json_js_1.stringify)({
45
- fromAddress: params.fromAddress,
46
- toAddress: params.toAddress,
47
- chainId: params.chainId,
48
- tokenAddress: params.tokenAddress,
49
- amount: params.amount,
50
- purchaseData: params.purchaseData,
51
- feePayer: params.feePayer,
52
- }),
40
+ const tokenContract = (0, contract_js_1.getContract)({
41
+ address: params.tokenAddress,
42
+ chain: (0, utils_js_1.getCachedChain)(params.chainId),
43
+ client: params.client,
53
44
  });
54
- if (!response.ok) {
55
- const errorObj = await response.json();
56
- if (errorObj && "error" in errorObj) {
57
- throw errorObj;
58
- }
59
- throw new Error(`HTTP error! status: ${response.status}`);
45
+ const tokenDecimals = tokenContract.address.toLowerCase() === addresses_js_1.NATIVE_TOKEN_ADDRESS
46
+ ? 18
47
+ : await (0, decimals_js_1.decimals)({
48
+ contract: tokenContract,
49
+ });
50
+ const amount = ox_1.Value.from(params.amount, tokenDecimals);
51
+ const quote = await index_js_1.Transfer.prepare({
52
+ chainId: params.chainId,
53
+ tokenAddress: params.tokenAddress,
54
+ amount,
55
+ sender: params.fromAddress,
56
+ receiver: params.toAddress,
57
+ client: params.client,
58
+ feePayer: params.feePayer,
59
+ });
60
+ const firstStep = quote.steps[0];
61
+ if (!firstStep) {
62
+ throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
63
+ }
64
+ const approvalTxs = firstStep.transactions.filter((tx) => tx.action === "approval");
65
+ if (approvalTxs.length > 1) {
66
+ throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
67
+ }
68
+ const approvalTx = approvalTxs[0];
69
+ let approvalData;
70
+ if (approvalTx) {
71
+ const abiFunction = ox__AbiFunction.from([
72
+ "function approve(address spender, uint256 amount)",
73
+ ]);
74
+ const [spender, amount] = ox__AbiFunction.decodeData(abiFunction, approvalTx.data);
75
+ approvalData = {
76
+ chainId: firstStep.originToken.chainId,
77
+ tokenAddress: firstStep.originToken.address,
78
+ spenderAddress: spender,
79
+ amountWei: amount.toString(),
80
+ };
81
+ }
82
+ const txs = firstStep.transactions.filter((tx) => tx.action !== "approval");
83
+ if (txs.length > 1) {
84
+ throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
85
+ }
86
+ const tx = txs[0];
87
+ if (!tx) {
88
+ throw new Error("This quote is incompatible with getBuyWithCryptoTransfer. Please use Bridge.Transfer.prepare instead.");
60
89
  }
61
- const data = (await response.json()).result;
62
90
  const transfer = {
63
91
  transactionRequest: {
64
- chain: (0, utils_js_1.getCachedChain)(data.transactionRequest.chainId),
65
- client: params.client,
66
- data: data.transactionRequest.data,
67
- to: data.transactionRequest.to,
68
- value: BigInt(data.transactionRequest.value),
92
+ ...tx,
69
93
  extraGas: 50000n, // extra gas buffer
70
94
  },
71
- approvalData: data.approval,
72
- fromAddress: data.fromAddress,
73
- toAddress: data.toAddress,
74
- paymentToken: data.paymentToken,
75
- processingFee: data.processingFee,
76
- estimatedGasCostUSDCents: data.estimatedGasCostUSDCents,
95
+ approvalData,
96
+ fromAddress: params.fromAddress,
97
+ toAddress: params.toAddress,
98
+ paymentToken: {
99
+ token: {
100
+ tokenAddress: firstStep.originToken.address,
101
+ chainId: firstStep.originToken.chainId,
102
+ decimals: firstStep.originToken.decimals,
103
+ symbol: firstStep.originToken.symbol,
104
+ name: firstStep.originToken.name,
105
+ priceUSDCents: firstStep.originToken.priceUsd * 100,
106
+ },
107
+ amountWei: quote.originAmount.toString(),
108
+ amount: ox_1.Value.format(quote.originAmount, firstStep.originToken.decimals).toString(),
109
+ amountUSDCents: Number(ox_1.Value.format(quote.originAmount, firstStep.originToken.decimals)) *
110
+ firstStep.originToken.priceUsd *
111
+ 100,
112
+ },
113
+ processingFee: {
114
+ token: {
115
+ tokenAddress: firstStep.originToken.address,
116
+ chainId: firstStep.originToken.chainId,
117
+ decimals: firstStep.originToken.decimals,
118
+ symbol: firstStep.originToken.symbol,
119
+ name: firstStep.originToken.name,
120
+ priceUSDCents: firstStep.originToken.priceUsd * 100,
121
+ },
122
+ amountWei: params.feePayer === "sender"
123
+ ? (quote.originAmount - quote.destinationAmount).toString()
124
+ : "0",
125
+ amount: params.feePayer === "sender"
126
+ ? ox_1.Value.format(quote.originAmount - quote.destinationAmount, firstStep.originToken.decimals).toString()
127
+ : "0",
128
+ amountUSDCents: params.feePayer === "sender"
129
+ ? Number(ox_1.Value.format(quote.originAmount - quote.destinationAmount, firstStep.originToken.decimals)) *
130
+ firstStep.originToken.priceUsd *
131
+ 100
132
+ : 0,
133
+ },
134
+ estimatedGasCostUSDCents: 0,
77
135
  client: params.client,
78
136
  };
79
137
  return transfer;
@@ -1 +1 @@
1
- {"version":3,"file":"getTransfer.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getTransfer.ts"],"names":[],"mappings":";;AA4HA,4DAwDC;AAnLD,oDAAuD;AAIvD,mDAAsD;AACtD,iDAAgD;AAChD,4DAA8E;AA0F9E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACI,KAAK,UAAU,wBAAwB,CAC5C,MAAsC;IAEtC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAA,oDAAmC,GAAE,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAA,mBAAS,EAAC;gBACd,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,QAAQ,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAkC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE3E,MAAM,QAAQ,GAA0B;YACtC,kBAAkB,EAAE;gBAClB,KAAK,EAAE,IAAA,yBAAc,EAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBACtD,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAY;gBAC1C,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAa;gBACzC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAC5C,QAAQ,EAAE,MAAM,EAAE,mBAAmB;aACtC;YACD,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;YACvD,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getTransfer.js","sourceRoot":"","sources":["../../../../src/pay/buyWithCrypto/getTransfer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBuyWithFiatQuote = getBuyWithFiatQuote;
4
- const fetch_js_1 = require("../../utils/fetch.js");
5
- const json_js_1 = require("../../utils/json.js");
6
- const definitions_js_1 = require("../utils/definitions.js");
4
+ const Onramp_js_1 = require("../../bridge/Onramp.js");
5
+ const utils_js_1 = require("../../chains/utils.js");
6
+ const addresses_js_1 = require("../../constants/addresses.js");
7
+ const contract_js_1 = require("../../contract/contract.js");
8
+ const decimals_js_1 = require("../../extensions/erc20/read/decimals.js");
9
+ const units_js_1 = require("../../utils/units.js");
7
10
  /**
8
11
  * Get a quote of type [`BuyWithFiatQuote`](https://portal.thirdweb.com/references/typescript/v5/BuyWithFiatQuote) to buy given token with fiat currency.
9
12
  * This quote contains the information about the swap such as token amounts, processing fees, estimated time etc.
@@ -54,38 +57,131 @@ const definitions_js_1 = require("../utils/definitions.js");
54
57
  */
55
58
  async function getBuyWithFiatQuote(params) {
56
59
  try {
57
- const clientFetch = (0, fetch_js_1.getClientFetch)(params.client);
58
- const response = await clientFetch((0, definitions_js_1.getPayBuyWithFiatQuoteEndpoint)(), {
59
- method: "POST",
60
- headers: {
61
- Accept: "application/json",
62
- "Content-Type": "application/json",
63
- },
64
- body: (0, json_js_1.stringify)({
65
- toAddress: params.toAddress,
66
- fromCurrencySymbol: params.fromCurrencySymbol,
67
- toChainId: params.toChainId.toString(),
68
- toTokenAddress: params.toTokenAddress,
69
- fromAmount: params.fromAmount,
70
- toAmount: params.toAmount,
71
- maxSlippageBPS: params.maxSlippageBPS,
72
- isTestMode: params.isTestMode,
73
- purchaseData: params.purchaseData,
74
- fromAddress: params.fromAddress,
75
- toGasAmountWei: params.toGasAmountWei,
76
- preferredProvider: params.preferredProvider,
77
- multiHopSupported: true,
78
- }),
79
- });
80
- // Assuming the response directly matches the SwapResponse interface
81
- if (!response.ok) {
82
- const errorObj = await response.json();
83
- if (errorObj && "error" in errorObj) {
84
- throw errorObj;
60
+ // map preferred provider (FiatProvider) → onramp string expected by Onramp.prepare
61
+ const mapProviderToOnramp = (provider) => {
62
+ switch (provider) {
63
+ case "STRIPE":
64
+ return "stripe";
65
+ case "TRANSAK":
66
+ return "transak";
67
+ default: // default to coinbase when undefined or any other value
68
+ return "coinbase";
85
69
  }
86
- throw new Error(`HTTP error! status: ${response.status}`);
70
+ };
71
+ // Choose provider or default to STRIPE
72
+ const onrampProvider = mapProviderToOnramp(params.preferredProvider);
73
+ const d = params.toTokenAddress !== addresses_js_1.NATIVE_TOKEN_ADDRESS
74
+ ? await (0, decimals_js_1.decimals)({
75
+ contract: (0, contract_js_1.getContract)({
76
+ client: params.client,
77
+ address: params.toTokenAddress,
78
+ chain: (0, utils_js_1.getCachedChain)(params.toChainId),
79
+ }),
80
+ })
81
+ : 18;
82
+ // Prepare amount in wei if provided
83
+ const amountWei = params.toAmount ? (0, units_js_1.toUnits)(params.toAmount, d) : undefined;
84
+ // Call new Onramp.prepare to get the quote & link
85
+ const prepared = await (0, Onramp_js_1.prepare)({
86
+ client: params.client,
87
+ onramp: onrampProvider,
88
+ chainId: params.toChainId,
89
+ tokenAddress: params.toTokenAddress,
90
+ receiver: params.toAddress,
91
+ sender: params.fromAddress,
92
+ amount: amountWei,
93
+ purchaseData: params.purchaseData,
94
+ currency: params.fromCurrencySymbol,
95
+ maxSteps: 2,
96
+ onrampTokenAddress: addresses_js_1.NATIVE_TOKEN_ADDRESS, // force onramp to native token to avoid missing gas issues
97
+ });
98
+ // Determine tokens based on steps rules
99
+ const hasSteps = prepared.steps.length > 0;
100
+ const firstStep = hasSteps
101
+ ? prepared.steps[0]
102
+ : undefined;
103
+ // Estimated duration in seconds – sum of all step durations
104
+ const estimatedDurationSeconds = Math.max(120, Math.ceil(prepared.steps.reduce((acc, s) => acc + s.estimatedExecutionTimeMs, 0) /
105
+ 1000));
106
+ const estimatedToAmountMinWeiBigInt = prepared.destinationAmount;
107
+ const maxSlippageBPS = params.maxSlippageBPS ?? 0;
108
+ const slippageWei = (estimatedToAmountMinWeiBigInt * BigInt(maxSlippageBPS)) / 10000n;
109
+ const toAmountMinWeiBigInt = estimatedToAmountMinWeiBigInt - slippageWei;
110
+ const estimatedToAmountMin = (0, units_js_1.toTokens)(estimatedToAmountMinWeiBigInt, d);
111
+ const toAmountMin = (0, units_js_1.toTokens)(toAmountMinWeiBigInt, d);
112
+ // Helper to convert a Token → PayTokenInfo
113
+ const tokenToPayTokenInfo = (token) => ({
114
+ chainId: token.chainId,
115
+ tokenAddress: token.address,
116
+ decimals: token.decimals,
117
+ priceUSDCents: Math.round(token.priceUsd * 100),
118
+ name: token.name,
119
+ symbol: token.symbol,
120
+ });
121
+ // Determine the raw token objects using new simplified rules
122
+ // 1. toToken is always the destination token
123
+ const toTokenRaw = prepared.destinationToken;
124
+ // 2. onRampToken: if exactly one step -> originToken of that step, else toTokenRaw
125
+ const onRampTokenRaw = prepared.steps.length > 0 && firstStep
126
+ ? firstStep.originToken
127
+ : toTokenRaw;
128
+ // 3. routingToken: if exactly two steps -> originToken of second step, else undefined
129
+ const routingTokenRaw = prepared.steps.length > 1
130
+ ? prepared.steps[1].originToken
131
+ : undefined;
132
+ // Amounts for onRampToken/raw
133
+ const onRampTokenAmountWei = prepared.steps.length > 0 && firstStep
134
+ ? firstStep.originAmount
135
+ : prepared.destinationAmount;
136
+ const onRampTokenAmount = (0, units_js_1.toTokens)(onRampTokenAmountWei, onRampTokenRaw.decimals);
137
+ // Build info objects
138
+ const onRampTokenObject = {
139
+ amount: onRampTokenAmount,
140
+ amountWei: onRampTokenAmountWei.toString(),
141
+ amountUSDCents: Math.round(Number(onRampTokenAmount) * onRampTokenRaw.priceUsd * 100),
142
+ token: tokenToPayTokenInfo(onRampTokenRaw),
143
+ };
144
+ let routingTokenObject;
145
+ if (routingTokenRaw) {
146
+ const routingAmountWei = prepared.steps[1].originAmount;
147
+ const routingAmount = (0, units_js_1.toTokens)(routingAmountWei, routingTokenRaw.decimals);
148
+ routingTokenObject = {
149
+ amount: routingAmount,
150
+ amountWei: routingAmountWei.toString(),
151
+ amountUSDCents: Math.round(Number(routingAmount) * routingTokenRaw.priceUsd * 100),
152
+ token: tokenToPayTokenInfo(routingTokenRaw),
153
+ };
87
154
  }
88
- return (await response.json()).result;
155
+ const buyWithFiatQuote = {
156
+ estimatedDurationSeconds,
157
+ estimatedToAmountMin: estimatedToAmountMin,
158
+ estimatedToAmountMinWei: estimatedToAmountMinWeiBigInt.toString(),
159
+ toAmountMinWei: toAmountMinWeiBigInt.toString(),
160
+ toAmountMin: toAmountMin,
161
+ fromCurrency: {
162
+ amount: prepared.currencyAmount.toString(),
163
+ amountUnits: Number(prepared.currencyAmount).toFixed(2),
164
+ decimals: 2,
165
+ currencySymbol: prepared.currency,
166
+ },
167
+ fromCurrencyWithFees: {
168
+ amount: prepared.currencyAmount.toString(),
169
+ amountUnits: Number(prepared.currencyAmount).toFixed(2),
170
+ decimals: 2,
171
+ currencySymbol: prepared.currency,
172
+ },
173
+ toToken: tokenToPayTokenInfo(toTokenRaw),
174
+ toAddress: params.toAddress,
175
+ fromAddress: params.fromAddress,
176
+ maxSlippageBPS: maxSlippageBPS,
177
+ intentId: prepared.id,
178
+ processingFees: [],
179
+ onRampToken: onRampTokenObject,
180
+ routingToken: routingTokenObject,
181
+ onRampLink: prepared.link,
182
+ provider: (params.preferredProvider ?? "COINBASE"),
183
+ };
184
+ return buyWithFiatQuote;
89
185
  }
90
186
  catch (error) {
91
187
  console.error("Error getting buy with fiat quote", error);
@@ -1 +1 @@
1
- {"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../../src/pay/buyWithFiat/getQuote.ts"],"names":[],"mappings":";;AAgRA,kDA2CC;AAzTD,mDAAsD;AACtD,iDAAgD;AAEhD,4DAAyE;AA2NzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,yBAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAA,+CAA8B,GAAE,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAA,mBAAS,EAAC;gBACd,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACtC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,iBAAiB,EAAE,IAAI;aACxB,CAAC;SACH,CAAC,CAAC;QAEH,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,QAAQ,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../../src/pay/buyWithFiat/getQuote.ts"],"names":[],"mappings":"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"}