@reown/appkit-react-native 0.0.0-feat-coinbase-20250723185200 → 0.0.0-feat-multichain-20250725133522

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 (383) hide show
  1. package/lib/commonjs/AppKit.js +4 -9
  2. package/lib/commonjs/AppKit.js.map +1 -1
  3. package/lib/commonjs/AppKitContext.js +1 -2
  4. package/lib/commonjs/AppKitContext.js.map +1 -1
  5. package/lib/commonjs/config/animations.js.map +1 -1
  6. package/lib/commonjs/connectors/WalletConnectConnector.js.map +1 -1
  7. package/lib/commonjs/hooks/useAccount.js.map +1 -1
  8. package/lib/commonjs/hooks/useAppKit.js.map +1 -1
  9. package/lib/commonjs/hooks/useAppKitEvents.js.map +1 -1
  10. package/lib/commonjs/hooks/useCustomDimensions.js.map +1 -1
  11. package/lib/commonjs/hooks/useDebounceCallback.js.map +1 -1
  12. package/lib/commonjs/hooks/useKeyboard.js.map +1 -1
  13. package/lib/commonjs/hooks/useProvider.js.map +1 -1
  14. package/lib/commonjs/hooks/useTimeout.js.map +1 -1
  15. package/lib/commonjs/hooks/useWalletInfo.js.map +1 -1
  16. package/lib/commonjs/index.js +0 -7
  17. package/lib/commonjs/index.js.map +1 -1
  18. package/lib/commonjs/modal/w3m-account-button/index.js +0 -1
  19. package/lib/commonjs/modal/w3m-account-button/index.js.map +1 -1
  20. package/lib/commonjs/modal/w3m-button/index.js.map +1 -1
  21. package/lib/commonjs/modal/w3m-connect-button/index.js.map +1 -1
  22. package/lib/commonjs/modal/w3m-modal/index.js.map +1 -1
  23. package/lib/commonjs/modal/w3m-modal/styles.js.map +1 -1
  24. package/lib/commonjs/modal/w3m-network-button/index.js.map +1 -1
  25. package/lib/commonjs/modal/w3m-router/index.js.map +1 -1
  26. package/lib/commonjs/partials/w3m-account-activity/index.js.map +1 -1
  27. package/lib/commonjs/partials/w3m-account-activity/styles.js.map +1 -1
  28. package/lib/commonjs/partials/w3m-account-activity/utils.js.map +1 -1
  29. package/lib/commonjs/partials/w3m-account-tokens/index.js.map +1 -1
  30. package/lib/commonjs/partials/w3m-account-wallet-features/index.js.map +1 -1
  31. package/lib/commonjs/partials/w3m-account-wallet-features/styles.js.map +1 -1
  32. package/lib/commonjs/partials/w3m-all-wallets-list/index.js.map +1 -1
  33. package/lib/commonjs/partials/w3m-all-wallets-list/styles.js.map +1 -1
  34. package/lib/commonjs/partials/w3m-all-wallets-search/index.js.map +1 -1
  35. package/lib/commonjs/partials/w3m-all-wallets-search/styles.js.map +1 -1
  36. package/lib/commonjs/partials/w3m-connecting-body/index.js.map +1 -1
  37. package/lib/commonjs/partials/w3m-connecting-body/utils.js.map +1 -1
  38. package/lib/commonjs/partials/w3m-connecting-header/index.js.map +1 -1
  39. package/lib/commonjs/partials/w3m-connecting-mobile/components/StoreLink.js.map +1 -1
  40. package/lib/commonjs/partials/w3m-connecting-mobile/index.js.map +1 -1
  41. package/lib/commonjs/partials/w3m-connecting-mobile/styles.js.map +1 -1
  42. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js +2 -2
  43. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js.map +1 -1
  44. package/lib/commonjs/partials/w3m-connecting-qrcode/styles.js.map +1 -1
  45. package/lib/commonjs/partials/w3m-connecting-web/index.js.map +1 -1
  46. package/lib/commonjs/partials/w3m-connecting-web/styles.js.map +1 -1
  47. package/lib/commonjs/partials/w3m-header/index.js +1 -4
  48. package/lib/commonjs/partials/w3m-header/index.js.map +1 -1
  49. package/lib/commonjs/partials/w3m-header/styles.js.map +1 -1
  50. package/lib/commonjs/partials/w3m-information-modal/index.js.map +1 -1
  51. package/lib/commonjs/partials/w3m-information-modal/styles.js.map +1 -1
  52. package/lib/commonjs/partials/w3m-otp-code/index.js.map +1 -1
  53. package/lib/commonjs/partials/w3m-otp-code/styles.js.map +1 -1
  54. package/lib/commonjs/partials/w3m-placeholder/index.js.map +1 -1
  55. package/lib/commonjs/partials/w3m-selector-modal/index.js.map +1 -1
  56. package/lib/commonjs/partials/w3m-selector-modal/styles.js.map +1 -1
  57. package/lib/commonjs/partials/w3m-send-input-address/index.js +0 -1
  58. package/lib/commonjs/partials/w3m-send-input-address/index.js.map +1 -1
  59. package/lib/commonjs/partials/w3m-send-input-address/styles.js.map +1 -1
  60. package/lib/commonjs/partials/w3m-send-input-token/index.js.map +1 -1
  61. package/lib/commonjs/partials/w3m-send-input-token/styles.js.map +1 -1
  62. package/lib/commonjs/partials/w3m-send-input-token/utils.js.map +1 -1
  63. package/lib/commonjs/partials/w3m-snackbar/index.js.map +1 -1
  64. package/lib/commonjs/partials/w3m-snackbar/styles.js.map +1 -1
  65. package/lib/commonjs/partials/w3m-swap-details/index.js.map +1 -1
  66. package/lib/commonjs/partials/w3m-swap-details/styles.js.map +1 -1
  67. package/lib/commonjs/partials/w3m-swap-details/utils.js.map +1 -1
  68. package/lib/commonjs/partials/w3m-swap-input/index.js.map +1 -1
  69. package/lib/commonjs/partials/w3m-swap-input/styles.js.map +1 -1
  70. package/lib/commonjs/utils/HelpersUtil.js.map +1 -1
  71. package/lib/commonjs/utils/NetworkUtil.js.map +1 -1
  72. package/lib/commonjs/utils/UiUtil.js.map +1 -1
  73. package/lib/commonjs/views/w3m-account-default-view/components/auth-buttons.js.map +1 -1
  74. package/lib/commonjs/views/w3m-account-default-view/components/upgrade-wallet-button.js.map +1 -1
  75. package/lib/commonjs/views/w3m-account-default-view/index.js.map +1 -1
  76. package/lib/commonjs/views/w3m-account-default-view/styles.js.map +1 -1
  77. package/lib/commonjs/views/w3m-account-view/index.js.map +1 -1
  78. package/lib/commonjs/views/w3m-account-view/styles.js.map +1 -1
  79. package/lib/commonjs/views/w3m-all-wallets-view/index.js.map +1 -1
  80. package/lib/commonjs/views/w3m-all-wallets-view/styles.js.map +1 -1
  81. package/lib/commonjs/views/w3m-connect-socials-view/index.js.map +1 -1
  82. package/lib/commonjs/views/w3m-connect-socials-view/styles.js.map +1 -1
  83. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  84. package/lib/commonjs/views/w3m-connect-view/components/all-wallets-button.js.map +1 -1
  85. package/lib/commonjs/views/w3m-connect-view/components/connectors-list.js +1 -1
  86. package/lib/commonjs/views/w3m-connect-view/components/connectors-list.js.map +1 -1
  87. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js.map +1 -1
  88. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js.map +1 -1
  89. package/lib/commonjs/views/w3m-connect-view/components/social-login-list.js.map +1 -1
  90. package/lib/commonjs/views/w3m-connect-view/index.js.map +1 -1
  91. package/lib/commonjs/views/w3m-connect-view/styles.js.map +1 -1
  92. package/lib/commonjs/views/w3m-connect-view/utils.js.map +1 -1
  93. package/lib/commonjs/views/w3m-connecting-external-view/index.js +3 -0
  94. package/lib/commonjs/views/w3m-connecting-external-view/index.js.map +1 -1
  95. package/lib/commonjs/views/w3m-connecting-external-view/styles.js.map +1 -1
  96. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js +2 -2
  97. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js.map +1 -1
  98. package/lib/commonjs/views/w3m-connecting-siwe-view/styles.js.map +1 -1
  99. package/lib/commonjs/views/w3m-connecting-social-view/index.js.map +1 -1
  100. package/lib/commonjs/views/w3m-connecting-social-view/styles.js.map +1 -1
  101. package/lib/commonjs/views/w3m-connecting-view/index.js.map +1 -1
  102. package/lib/commonjs/views/w3m-get-wallet-view/index.js.map +1 -1
  103. package/lib/commonjs/views/w3m-get-wallet-view/styles.js.map +1 -1
  104. package/lib/commonjs/views/w3m-network-switch-view/index.js.map +1 -1
  105. package/lib/commonjs/views/w3m-network-switch-view/styles.js.map +1 -1
  106. package/lib/commonjs/views/w3m-networks-view/index.js.map +1 -1
  107. package/lib/commonjs/views/w3m-networks-view/styles.js.map +1 -1
  108. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js.map +1 -1
  109. package/lib/commonjs/views/w3m-onramp-loading-view/index.js.map +1 -1
  110. package/lib/commonjs/views/w3m-onramp-loading-view/styles.js.map +1 -1
  111. package/lib/commonjs/views/w3m-onramp-settings-view/components/Country.js.map +1 -1
  112. package/lib/commonjs/views/w3m-onramp-settings-view/index.js.map +1 -1
  113. package/lib/commonjs/views/w3m-onramp-settings-view/styles.js.map +1 -1
  114. package/lib/commonjs/views/w3m-onramp-settings-view/utils.js.map +1 -1
  115. package/lib/commonjs/views/w3m-onramp-transaction-view/index.js.map +1 -1
  116. package/lib/commonjs/views/w3m-onramp-transaction-view/styles.js.map +1 -1
  117. package/lib/commonjs/views/w3m-onramp-view/components/Currency.js +5 -3
  118. package/lib/commonjs/views/w3m-onramp-view/components/Currency.js.map +1 -1
  119. package/lib/commonjs/views/w3m-onramp-view/components/CurrencyInput.js +3 -2
  120. package/lib/commonjs/views/w3m-onramp-view/components/CurrencyInput.js.map +1 -1
  121. package/lib/commonjs/views/w3m-onramp-view/components/Header.js.map +1 -1
  122. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js +2 -2
  123. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  124. package/lib/commonjs/views/w3m-onramp-view/components/PaymentButton.js +109 -0
  125. package/lib/commonjs/views/w3m-onramp-view/components/PaymentButton.js.map +1 -0
  126. package/lib/commonjs/views/w3m-onramp-view/components/PaymentMethod.js +9 -8
  127. package/lib/commonjs/views/w3m-onramp-view/components/PaymentMethod.js.map +1 -1
  128. package/lib/commonjs/views/w3m-onramp-view/components/Quote.js +5 -3
  129. package/lib/commonjs/views/w3m-onramp-view/components/Quote.js.map +1 -1
  130. package/lib/commonjs/views/w3m-onramp-view/components/SelectPaymentModal.js +39 -51
  131. package/lib/commonjs/views/w3m-onramp-view/components/SelectPaymentModal.js.map +1 -1
  132. package/lib/commonjs/views/w3m-onramp-view/index.js +32 -51
  133. package/lib/commonjs/views/w3m-onramp-view/index.js.map +1 -1
  134. package/lib/commonjs/views/w3m-onramp-view/styles.js +4 -0
  135. package/lib/commonjs/views/w3m-onramp-view/styles.js.map +1 -1
  136. package/lib/commonjs/views/w3m-onramp-view/utils.js +19 -78
  137. package/lib/commonjs/views/w3m-onramp-view/utils.js.map +1 -1
  138. package/lib/commonjs/views/w3m-swap-preview-view/index.js.map +1 -1
  139. package/lib/commonjs/views/w3m-swap-preview-view/styles.js.map +1 -1
  140. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/index.js.map +1 -1
  141. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/styles.js.map +1 -1
  142. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/utils.js.map +1 -1
  143. package/lib/commonjs/views/w3m-swap-view/index.js.map +1 -1
  144. package/lib/commonjs/views/w3m-swap-view/styles.js.map +1 -1
  145. package/lib/commonjs/views/w3m-transactions-view/index.js.map +1 -1
  146. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js.map +1 -1
  147. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  148. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  149. package/lib/commonjs/views/w3m-wallet-compatible-networks-view/index.js.map +1 -1
  150. package/lib/commonjs/views/w3m-wallet-compatible-networks-view/styles.js.map +1 -1
  151. package/lib/commonjs/views/w3m-wallet-receive-view/index.js.map +1 -1
  152. package/lib/commonjs/views/w3m-wallet-receive-view/styles.js.map +1 -1
  153. package/lib/commonjs/views/w3m-wallet-send-preview-view/components/preview-send-details.js.map +1 -1
  154. package/lib/commonjs/views/w3m-wallet-send-preview-view/components/preview-send-pill.js.map +1 -1
  155. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  156. package/lib/commonjs/views/w3m-wallet-send-preview-view/styles.js.map +1 -1
  157. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  158. package/lib/commonjs/views/w3m-wallet-send-select-token-view/styles.js.map +1 -1
  159. package/lib/commonjs/views/w3m-wallet-send-view/index.js.map +1 -1
  160. package/lib/commonjs/views/w3m-wallet-send-view/styles.js.map +1 -1
  161. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js.map +1 -1
  162. package/lib/commonjs/views/w3m-what-is-a-network-view/styles.js.map +1 -1
  163. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  164. package/lib/commonjs/views/w3m-what-is-a-wallet-view/styles.js.map +1 -1
  165. package/lib/module/AppKit.js +4 -9
  166. package/lib/module/AppKit.js.map +1 -1
  167. package/lib/module/AppKitContext.js.map +1 -1
  168. package/lib/module/config/animations.js.map +1 -1
  169. package/lib/module/connectors/WalletConnectConnector.js.map +1 -1
  170. package/lib/module/hooks/useAccount.js.map +1 -1
  171. package/lib/module/hooks/useAppKit.js.map +1 -1
  172. package/lib/module/hooks/useAppKitEvents.js.map +1 -1
  173. package/lib/module/hooks/useCustomDimensions.js.map +1 -1
  174. package/lib/module/hooks/useDebounceCallback.js.map +1 -1
  175. package/lib/module/hooks/useKeyboard.js.map +1 -1
  176. package/lib/module/hooks/useProvider.js.map +1 -1
  177. package/lib/module/hooks/useTimeout.js.map +1 -1
  178. package/lib/module/hooks/useWalletInfo.js.map +1 -1
  179. package/lib/module/index.js +0 -4
  180. package/lib/module/index.js.map +1 -1
  181. package/lib/module/modal/w3m-account-button/index.js +0 -2
  182. package/lib/module/modal/w3m-account-button/index.js.map +1 -1
  183. package/lib/module/modal/w3m-button/index.js.map +1 -1
  184. package/lib/module/modal/w3m-connect-button/index.js.map +1 -1
  185. package/lib/module/modal/w3m-modal/index.js.map +1 -1
  186. package/lib/module/modal/w3m-modal/styles.js.map +1 -1
  187. package/lib/module/modal/w3m-network-button/index.js.map +1 -1
  188. package/lib/module/modal/w3m-router/index.js.map +1 -1
  189. package/lib/module/partials/w3m-account-activity/index.js.map +1 -1
  190. package/lib/module/partials/w3m-account-activity/styles.js.map +1 -1
  191. package/lib/module/partials/w3m-account-activity/utils.js.map +1 -1
  192. package/lib/module/partials/w3m-account-tokens/index.js.map +1 -1
  193. package/lib/module/partials/w3m-account-wallet-features/index.js.map +1 -1
  194. package/lib/module/partials/w3m-account-wallet-features/styles.js.map +1 -1
  195. package/lib/module/partials/w3m-all-wallets-list/index.js.map +1 -1
  196. package/lib/module/partials/w3m-all-wallets-list/styles.js.map +1 -1
  197. package/lib/module/partials/w3m-all-wallets-search/index.js.map +1 -1
  198. package/lib/module/partials/w3m-all-wallets-search/styles.js.map +1 -1
  199. package/lib/module/partials/w3m-connecting-body/index.js.map +1 -1
  200. package/lib/module/partials/w3m-connecting-body/utils.js.map +1 -1
  201. package/lib/module/partials/w3m-connecting-header/index.js.map +1 -1
  202. package/lib/module/partials/w3m-connecting-mobile/components/StoreLink.js.map +1 -1
  203. package/lib/module/partials/w3m-connecting-mobile/index.js.map +1 -1
  204. package/lib/module/partials/w3m-connecting-mobile/styles.js.map +1 -1
  205. package/lib/module/partials/w3m-connecting-qrcode/index.js +2 -2
  206. package/lib/module/partials/w3m-connecting-qrcode/index.js.map +1 -1
  207. package/lib/module/partials/w3m-connecting-qrcode/styles.js.map +1 -1
  208. package/lib/module/partials/w3m-connecting-web/index.js.map +1 -1
  209. package/lib/module/partials/w3m-connecting-web/styles.js.map +1 -1
  210. package/lib/module/partials/w3m-header/index.js +1 -4
  211. package/lib/module/partials/w3m-header/index.js.map +1 -1
  212. package/lib/module/partials/w3m-header/styles.js.map +1 -1
  213. package/lib/module/partials/w3m-information-modal/index.js.map +1 -1
  214. package/lib/module/partials/w3m-information-modal/styles.js.map +1 -1
  215. package/lib/module/partials/w3m-otp-code/index.js.map +1 -1
  216. package/lib/module/partials/w3m-otp-code/styles.js.map +1 -1
  217. package/lib/module/partials/w3m-placeholder/index.js.map +1 -1
  218. package/lib/module/partials/w3m-selector-modal/index.js.map +1 -1
  219. package/lib/module/partials/w3m-selector-modal/styles.js.map +1 -1
  220. package/lib/module/partials/w3m-send-input-address/index.js +0 -1
  221. package/lib/module/partials/w3m-send-input-address/index.js.map +1 -1
  222. package/lib/module/partials/w3m-send-input-address/styles.js.map +1 -1
  223. package/lib/module/partials/w3m-send-input-token/index.js.map +1 -1
  224. package/lib/module/partials/w3m-send-input-token/styles.js.map +1 -1
  225. package/lib/module/partials/w3m-send-input-token/utils.js.map +1 -1
  226. package/lib/module/partials/w3m-snackbar/index.js.map +1 -1
  227. package/lib/module/partials/w3m-snackbar/styles.js.map +1 -1
  228. package/lib/module/partials/w3m-swap-details/index.js.map +1 -1
  229. package/lib/module/partials/w3m-swap-details/styles.js.map +1 -1
  230. package/lib/module/partials/w3m-swap-details/utils.js.map +1 -1
  231. package/lib/module/partials/w3m-swap-input/index.js.map +1 -1
  232. package/lib/module/partials/w3m-swap-input/styles.js.map +1 -1
  233. package/lib/module/utils/HelpersUtil.js.map +1 -1
  234. package/lib/module/utils/NetworkUtil.js.map +1 -1
  235. package/lib/module/utils/UiUtil.js.map +1 -1
  236. package/lib/module/views/w3m-account-default-view/components/auth-buttons.js.map +1 -1
  237. package/lib/module/views/w3m-account-default-view/components/upgrade-wallet-button.js.map +1 -1
  238. package/lib/module/views/w3m-account-default-view/index.js.map +1 -1
  239. package/lib/module/views/w3m-account-default-view/styles.js.map +1 -1
  240. package/lib/module/views/w3m-account-view/index.js.map +1 -1
  241. package/lib/module/views/w3m-account-view/styles.js.map +1 -1
  242. package/lib/module/views/w3m-all-wallets-view/index.js.map +1 -1
  243. package/lib/module/views/w3m-all-wallets-view/styles.js.map +1 -1
  244. package/lib/module/views/w3m-connect-socials-view/index.js.map +1 -1
  245. package/lib/module/views/w3m-connect-socials-view/styles.js.map +1 -1
  246. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  247. package/lib/module/views/w3m-connect-view/components/all-wallets-button.js.map +1 -1
  248. package/lib/module/views/w3m-connect-view/components/connectors-list.js +1 -1
  249. package/lib/module/views/w3m-connect-view/components/connectors-list.js.map +1 -1
  250. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js.map +1 -1
  251. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js.map +1 -1
  252. package/lib/module/views/w3m-connect-view/components/social-login-list.js.map +1 -1
  253. package/lib/module/views/w3m-connect-view/index.js.map +1 -1
  254. package/lib/module/views/w3m-connect-view/styles.js.map +1 -1
  255. package/lib/module/views/w3m-connect-view/utils.js.map +1 -1
  256. package/lib/module/views/w3m-connecting-external-view/index.js +3 -0
  257. package/lib/module/views/w3m-connecting-external-view/index.js.map +1 -1
  258. package/lib/module/views/w3m-connecting-external-view/styles.js.map +1 -1
  259. package/lib/module/views/w3m-connecting-siwe-view/index.js +2 -2
  260. package/lib/module/views/w3m-connecting-siwe-view/index.js.map +1 -1
  261. package/lib/module/views/w3m-connecting-siwe-view/styles.js.map +1 -1
  262. package/lib/module/views/w3m-connecting-social-view/index.js.map +1 -1
  263. package/lib/module/views/w3m-connecting-social-view/styles.js.map +1 -1
  264. package/lib/module/views/w3m-connecting-view/index.js.map +1 -1
  265. package/lib/module/views/w3m-get-wallet-view/index.js.map +1 -1
  266. package/lib/module/views/w3m-get-wallet-view/styles.js.map +1 -1
  267. package/lib/module/views/w3m-network-switch-view/index.js.map +1 -1
  268. package/lib/module/views/w3m-network-switch-view/styles.js.map +1 -1
  269. package/lib/module/views/w3m-networks-view/index.js.map +1 -1
  270. package/lib/module/views/w3m-networks-view/styles.js.map +1 -1
  271. package/lib/module/views/w3m-onramp-checkout-view/index.js.map +1 -1
  272. package/lib/module/views/w3m-onramp-loading-view/index.js.map +1 -1
  273. package/lib/module/views/w3m-onramp-loading-view/styles.js.map +1 -1
  274. package/lib/module/views/w3m-onramp-settings-view/components/Country.js.map +1 -1
  275. package/lib/module/views/w3m-onramp-settings-view/index.js.map +1 -1
  276. package/lib/module/views/w3m-onramp-settings-view/styles.js.map +1 -1
  277. package/lib/module/views/w3m-onramp-settings-view/utils.js.map +1 -1
  278. package/lib/module/views/w3m-onramp-transaction-view/index.js.map +1 -1
  279. package/lib/module/views/w3m-onramp-transaction-view/styles.js.map +1 -1
  280. package/lib/module/views/w3m-onramp-view/components/Currency.js +6 -4
  281. package/lib/module/views/w3m-onramp-view/components/Currency.js.map +1 -1
  282. package/lib/module/views/w3m-onramp-view/components/CurrencyInput.js +4 -4
  283. package/lib/module/views/w3m-onramp-view/components/CurrencyInput.js.map +1 -1
  284. package/lib/module/views/w3m-onramp-view/components/Header.js +1 -2
  285. package/lib/module/views/w3m-onramp-view/components/Header.js.map +1 -1
  286. package/lib/module/views/w3m-onramp-view/components/LoadingView.js +2 -2
  287. package/lib/module/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  288. package/lib/module/views/w3m-onramp-view/components/PaymentButton.js +103 -0
  289. package/lib/module/views/w3m-onramp-view/components/PaymentButton.js.map +1 -0
  290. package/lib/module/views/w3m-onramp-view/components/PaymentMethod.js +9 -8
  291. package/lib/module/views/w3m-onramp-view/components/PaymentMethod.js.map +1 -1
  292. package/lib/module/views/w3m-onramp-view/components/Quote.js +5 -3
  293. package/lib/module/views/w3m-onramp-view/components/Quote.js.map +1 -1
  294. package/lib/module/views/w3m-onramp-view/components/SelectPaymentModal.js +42 -55
  295. package/lib/module/views/w3m-onramp-view/components/SelectPaymentModal.js.map +1 -1
  296. package/lib/module/views/w3m-onramp-view/index.js +35 -55
  297. package/lib/module/views/w3m-onramp-view/index.js.map +1 -1
  298. package/lib/module/views/w3m-onramp-view/styles.js +4 -0
  299. package/lib/module/views/w3m-onramp-view/styles.js.map +1 -1
  300. package/lib/module/views/w3m-onramp-view/utils.js +18 -77
  301. package/lib/module/views/w3m-onramp-view/utils.js.map +1 -1
  302. package/lib/module/views/w3m-swap-preview-view/index.js.map +1 -1
  303. package/lib/module/views/w3m-swap-preview-view/styles.js.map +1 -1
  304. package/lib/module/views/w3m-swap-view/components/select-token-view/index.js.map +1 -1
  305. package/lib/module/views/w3m-swap-view/components/select-token-view/styles.js.map +1 -1
  306. package/lib/module/views/w3m-swap-view/components/select-token-view/utils.js.map +1 -1
  307. package/lib/module/views/w3m-swap-view/index.js.map +1 -1
  308. package/lib/module/views/w3m-swap-view/styles.js.map +1 -1
  309. package/lib/module/views/w3m-transactions-view/index.js.map +1 -1
  310. package/lib/module/views/w3m-unsupported-chain-view/index.js.map +1 -1
  311. package/lib/module/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  312. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  313. package/lib/module/views/w3m-wallet-compatible-networks-view/index.js.map +1 -1
  314. package/lib/module/views/w3m-wallet-compatible-networks-view/styles.js.map +1 -1
  315. package/lib/module/views/w3m-wallet-receive-view/index.js.map +1 -1
  316. package/lib/module/views/w3m-wallet-receive-view/styles.js.map +1 -1
  317. package/lib/module/views/w3m-wallet-send-preview-view/components/preview-send-details.js.map +1 -1
  318. package/lib/module/views/w3m-wallet-send-preview-view/components/preview-send-pill.js.map +1 -1
  319. package/lib/module/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  320. package/lib/module/views/w3m-wallet-send-preview-view/styles.js.map +1 -1
  321. package/lib/module/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  322. package/lib/module/views/w3m-wallet-send-select-token-view/styles.js.map +1 -1
  323. package/lib/module/views/w3m-wallet-send-view/index.js.map +1 -1
  324. package/lib/module/views/w3m-wallet-send-view/styles.js.map +1 -1
  325. package/lib/module/views/w3m-what-is-a-network-view/index.js.map +1 -1
  326. package/lib/module/views/w3m-what-is-a-network-view/styles.js.map +1 -1
  327. package/lib/module/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  328. package/lib/module/views/w3m-what-is-a-wallet-view/styles.js.map +1 -1
  329. package/lib/typescript/AppKit.d.ts +2 -3
  330. package/lib/typescript/AppKit.d.ts.map +1 -1
  331. package/lib/typescript/AppKitContext.d.ts +1 -1
  332. package/lib/typescript/index.d.ts +0 -3
  333. package/lib/typescript/index.d.ts.map +1 -1
  334. package/lib/typescript/modal/w3m-account-button/index.d.ts.map +1 -1
  335. package/lib/typescript/partials/w3m-header/index.d.ts.map +1 -1
  336. package/lib/typescript/utils/HelpersUtil.d.ts +1 -1
  337. package/lib/typescript/utils/HelpersUtil.d.ts.map +1 -1
  338. package/lib/typescript/utils/NetworkUtil.d.ts +1 -1
  339. package/lib/typescript/utils/NetworkUtil.d.ts.map +1 -1
  340. package/lib/typescript/views/w3m-connecting-external-view/index.d.ts.map +1 -1
  341. package/lib/typescript/views/w3m-onramp-view/components/Currency.d.ts.map +1 -1
  342. package/lib/typescript/views/w3m-onramp-view/components/CurrencyInput.d.ts.map +1 -1
  343. package/lib/typescript/views/w3m-onramp-view/components/Header.d.ts.map +1 -1
  344. package/lib/typescript/views/w3m-onramp-view/components/PaymentButton.d.ts +13 -0
  345. package/lib/typescript/views/w3m-onramp-view/components/PaymentButton.d.ts.map +1 -0
  346. package/lib/typescript/views/w3m-onramp-view/components/PaymentMethod.d.ts +1 -1
  347. package/lib/typescript/views/w3m-onramp-view/components/PaymentMethod.d.ts.map +1 -1
  348. package/lib/typescript/views/w3m-onramp-view/components/Quote.d.ts +2 -1
  349. package/lib/typescript/views/w3m-onramp-view/components/Quote.d.ts.map +1 -1
  350. package/lib/typescript/views/w3m-onramp-view/components/SelectPaymentModal.d.ts.map +1 -1
  351. package/lib/typescript/views/w3m-onramp-view/index.d.ts.map +1 -1
  352. package/lib/typescript/views/w3m-onramp-view/styles.d.ts +4 -0
  353. package/lib/typescript/views/w3m-onramp-view/styles.d.ts.map +1 -1
  354. package/lib/typescript/views/w3m-onramp-view/utils.d.ts +2 -2
  355. package/lib/typescript/views/w3m-onramp-view/utils.d.ts.map +1 -1
  356. package/package.json +9 -9
  357. package/src/AppKit.ts +9 -9
  358. package/src/index.ts +0 -5
  359. package/src/modal/w3m-account-button/index.tsx +1 -4
  360. package/src/partials/w3m-connecting-qrcode/index.tsx +2 -2
  361. package/src/partials/w3m-header/index.tsx +1 -4
  362. package/src/utils/HelpersUtil.ts +6 -5
  363. package/src/utils/NetworkUtil.ts +6 -2
  364. package/src/views/w3m-connecting-external-view/index.tsx +3 -0
  365. package/src/views/w3m-connecting-siwe-view/index.tsx +3 -3
  366. package/src/views/w3m-onramp-view/components/Currency.tsx +3 -4
  367. package/src/views/w3m-onramp-view/components/CurrencyInput.tsx +33 -28
  368. package/src/views/w3m-onramp-view/components/Header.tsx +1 -2
  369. package/src/views/w3m-onramp-view/components/LoadingView.tsx +2 -2
  370. package/src/views/w3m-onramp-view/components/PaymentButton.tsx +137 -0
  371. package/src/views/w3m-onramp-view/components/PaymentMethod.tsx +9 -8
  372. package/src/views/w3m-onramp-view/components/Quote.tsx +5 -2
  373. package/src/views/w3m-onramp-view/components/SelectPaymentModal.tsx +61 -76
  374. package/src/views/w3m-onramp-view/index.tsx +38 -67
  375. package/src/views/w3m-onramp-view/styles.ts +4 -0
  376. package/src/views/w3m-onramp-view/utils.ts +22 -92
  377. package/lib/commonjs/client.js +0 -238
  378. package/lib/commonjs/client.js.map +0 -1
  379. package/lib/module/client.js +0 -232
  380. package/lib/module/client.js.map +0 -1
  381. package/lib/typescript/client.d.ts +0 -85
  382. package/lib/typescript/client.d.ts.map +0 -1
  383. package/src/client.ts +0 -350
@@ -1,7 +1,8 @@
1
+ /* eslint-disable valtio/state-snapshot-rule */
1
2
  import { useSnapshot } from 'valtio';
2
- import { useRef, useState, useMemo } from 'react';
3
+ import { useRef, useState, useMemo, useEffect } from 'react';
3
4
  import Modal from 'react-native-modal';
4
- import { Dimensions, FlatList, StyleSheet, View } from 'react-native';
5
+ import { FlatList, StyleSheet, View } from 'react-native';
5
6
  import {
6
7
  FlexView,
7
8
  IconLink,
@@ -9,7 +10,6 @@ import {
9
10
  Text,
10
11
  useTheme,
11
12
  Separator,
12
- LoadingSpinner,
13
13
  BorderRadius
14
14
  } from '@reown/appkit-ui-react-native';
15
15
  import {
@@ -17,9 +17,8 @@ import {
17
17
  type OnRampPaymentMethod,
18
18
  type OnRampQuote
19
19
  } from '@reown/appkit-core-react-native';
20
- import { Placeholder } from '../../../partials/w3m-placeholder';
21
20
  import { Quote, ITEM_HEIGHT as QUOTE_ITEM_HEIGHT } from './Quote';
22
- import { PaymentMethod, ITEM_SIZE } from './PaymentMethod';
21
+ import { PaymentMethod } from './PaymentMethod';
23
22
 
24
23
  interface SelectPaymentModalProps {
25
24
  title?: string;
@@ -31,124 +30,110 @@ const SEPARATOR_HEIGHT = Spacing.s;
31
30
 
32
31
  export function SelectPaymentModal({ title, visible, onClose }: SelectPaymentModalProps) {
33
32
  const Theme = useTheme();
34
- const { selectedQuote, quotes } = useSnapshot(OnRampController.state);
33
+ const { selectedQuote, quotes, selectedPaymentMethod } = useSnapshot(OnRampController.state);
34
+
35
35
  const paymentMethodsRef = useRef<FlatList>(null);
36
36
  const [paymentMethods, setPaymentMethods] = useState<OnRampPaymentMethod[]>(
37
37
  OnRampController.state.paymentMethods
38
38
  );
39
39
 
40
+ const [activePaymentMethod, setActivePaymentMethod] = useState<OnRampPaymentMethod | undefined>(
41
+ OnRampController.state.selectedPaymentMethod
42
+ );
43
+
44
+ const availablePaymentMethods = useMemo(() => {
45
+ return paymentMethods.filter(
46
+ paymentMethod =>
47
+ quotes?.some(quote => quote.paymentMethodType === paymentMethod.paymentMethod)
48
+ );
49
+ }, [paymentMethods, quotes]);
50
+
51
+ const availableQuotes = useMemo(() => {
52
+ return quotes?.filter(quote => activePaymentMethod?.paymentMethod === quote.paymentMethodType);
53
+ }, [quotes, activePaymentMethod]);
54
+
40
55
  const sortedQuotes = useMemo(() => {
41
- if (!selectedQuote) {
42
- return quotes;
56
+ if (!selectedQuote || selectedQuote.paymentMethodType !== activePaymentMethod?.paymentMethod) {
57
+ return availableQuotes;
43
58
  }
44
59
 
45
60
  return [
46
61
  selectedQuote,
47
- // eslint-disable-next-line valtio/state-snapshot-rule
48
- ...(quotes?.filter(quote => quote.serviceProvider !== selectedQuote.serviceProvider) ?? [])
62
+
63
+ ...(availableQuotes?.filter(
64
+ quote => quote.serviceProvider !== selectedQuote.serviceProvider
65
+ ) ?? [])
49
66
  ];
50
- }, [quotes, selectedQuote]);
67
+ }, [availableQuotes, selectedQuote, activePaymentMethod]);
51
68
 
52
69
  const renderSeparator = () => {
53
70
  return <View style={{ height: SEPARATOR_HEIGHT }} />;
54
71
  };
55
72
 
56
73
  const handleQuotePress = (quote: OnRampQuote) => {
57
- if (quote.serviceProvider !== OnRampController.state.selectedQuote?.serviceProvider) {
74
+ if (activePaymentMethod) {
75
+ OnRampController.clearError();
58
76
  OnRampController.setSelectedQuote(quote);
77
+ OnRampController.setSelectedPaymentMethod(activePaymentMethod);
59
78
  }
60
79
  onClose();
61
80
  };
62
81
 
63
82
  const handlePaymentMethodPress = (paymentMethod: OnRampPaymentMethod) => {
64
- if (
65
- paymentMethod.paymentMethod !== OnRampController.state.selectedPaymentMethod?.paymentMethod
66
- ) {
67
- OnRampController.setSelectedPaymentMethod(paymentMethod);
68
- }
69
-
70
- const visibleItemsCount = Math.round(Dimensions.get('window').width / ITEM_SIZE);
71
-
72
- // Switch payment method to the top if there are more than visibleItemsCount payment methods
73
- if (OnRampController.state.paymentMethods.length > visibleItemsCount) {
74
- const paymentIndex = paymentMethods.findIndex(
75
- method => method.paymentMethod === paymentMethod.paymentMethod
76
- );
77
-
78
- // Switch payment if its not visible
79
- if (paymentIndex + 1 > visibleItemsCount - 1) {
80
- const realIndex = OnRampController.state.paymentMethods.findIndex(
81
- method => method.paymentMethod === paymentMethod.paymentMethod
82
- );
83
-
84
- const newPaymentMethods = [
85
- paymentMethod,
86
- ...OnRampController.state.paymentMethods.slice(0, realIndex),
87
- ...OnRampController.state.paymentMethods.slice(realIndex + 1)
88
- ];
89
- setPaymentMethods(newPaymentMethods);
90
- }
91
- }
92
- paymentMethodsRef.current?.scrollToIndex({
93
- index: 0,
94
- animated: true
95
- });
83
+ setActivePaymentMethod(paymentMethod);
96
84
  };
97
85
 
98
- const renderQuote = ({ item }: { item: OnRampQuote }) => {
86
+ const renderQuote = ({ item, index }: { item: OnRampQuote; index: number }) => {
99
87
  const logoURL = OnRampController.getServiceProviderImage(item.serviceProvider);
100
- const selected = item.serviceProvider === OnRampController.state.selectedQuote?.serviceProvider;
101
- const isBestDeal =
102
- OnRampController.state.quotes?.findIndex(
103
- quote => quote.serviceProvider === item.serviceProvider
104
- ) === 0;
105
- const tagText = isBestDeal ? 'Best Deal' : item.lowKyc ? 'Low KYC' : undefined;
88
+ const isSelected =
89
+ item.serviceProvider === OnRampController.state.selectedQuote?.serviceProvider &&
90
+ item.paymentMethodType === OnRampController.state.selectedQuote?.paymentMethodType;
91
+
92
+ const isRecommended =
93
+ availableQuotes?.findIndex(quote => quote.serviceProvider === item.serviceProvider) === 0 &&
94
+ availableQuotes?.length > 1;
95
+ const tagText = isRecommended ? 'Recommended' : item.lowKyc ? 'Low KYC' : undefined;
106
96
 
107
97
  return (
108
98
  <Quote
109
99
  item={item}
110
- selected={selected}
100
+ selected={isSelected}
111
101
  logoURL={logoURL}
112
102
  onQuotePress={() => handleQuotePress(item)}
113
103
  tagText={tagText}
114
- />
115
- );
116
- };
117
-
118
- const renderEmpty = () => {
119
- return OnRampController.state.quotesLoading ? (
120
- <FlexView
121
- alignItems="center"
122
- justifyContent="center"
123
- padding="2xl"
124
- style={styles.emptyContainer}
125
- >
126
- <LoadingSpinner />
127
- </FlexView>
128
- ) : (
129
- <Placeholder
130
- title="No providers available"
131
- description="Please select a different payment method or increase the amount"
132
- icon="warningCircle"
104
+ testID={`quote-item-${index}`}
133
105
  />
134
106
  );
135
107
  };
136
108
 
137
109
  const renderPaymentMethod = ({ item }: { item: OnRampPaymentMethod }) => {
138
110
  const parsedItem = item as OnRampPaymentMethod;
139
- const selected =
140
- parsedItem.paymentMethod === OnRampController.state.selectedPaymentMethod?.paymentMethod;
111
+ const isSelected = parsedItem.paymentMethod === activePaymentMethod?.paymentMethod;
141
112
 
142
113
  return (
143
114
  <PaymentMethod
144
115
  item={parsedItem}
145
116
  onPress={() => handlePaymentMethodPress(parsedItem)}
146
- selected={selected}
117
+ selected={isSelected}
147
118
  testID={`payment-method-item-${parsedItem.paymentMethod}`}
148
119
  />
149
120
  );
150
121
  };
151
122
 
123
+ useEffect(() => {
124
+ if (visible && OnRampController.state.selectedPaymentMethod) {
125
+ const methods = [
126
+ OnRampController.state.selectedPaymentMethod,
127
+ ...OnRampController.state.paymentMethods.filter(
128
+ m => m.paymentMethod !== OnRampController.state.selectedPaymentMethod?.paymentMethod
129
+ )
130
+ ];
131
+ //Update payment methods order
132
+ setPaymentMethods(methods);
133
+ setActivePaymentMethod(OnRampController.state.selectedPaymentMethod);
134
+ }
135
+ }, [visible]);
136
+
152
137
  return (
153
138
  <Modal
154
139
  isVisible={visible}
@@ -176,7 +161,7 @@ export function SelectPaymentModal({ title, visible, onClose }: SelectPaymentMod
176
161
  </Text>
177
162
  <FlexView>
178
163
  <FlatList
179
- data={paymentMethods}
164
+ data={availablePaymentMethods}
180
165
  renderItem={renderPaymentMethod}
181
166
  ref={paymentMethodsRef}
182
167
  style={styles.paymentMethodsContainer}
@@ -195,10 +180,10 @@ export function SelectPaymentModal({ title, visible, onClose }: SelectPaymentMod
195
180
  data={sortedQuotes}
196
181
  bounces={false}
197
182
  renderItem={renderQuote}
183
+ extraData={selectedPaymentMethod}
198
184
  contentContainerStyle={styles.listContent}
199
185
  ItemSeparatorComponent={renderSeparator}
200
186
  fadingEdgeLength={20}
201
- ListEmptyComponent={renderEmpty}
202
187
  keyExtractor={item => `${item.serviceProvider}-${item.paymentMethodType}`}
203
188
  getItemLayout={(_, index) => ({
204
189
  length: QUOTE_ITEM_HEIGHT + SEPARATOR_HEIGHT,
@@ -16,21 +16,19 @@ import {
16
16
  Button,
17
17
  FlexView,
18
18
  Image,
19
- ListItem,
20
19
  Text,
21
20
  TokenButton,
22
21
  useTheme
23
22
  } from '@reown/appkit-ui-react-native';
24
23
  import { NumberUtil, StringUtil } from '@reown/appkit-common-react-native';
25
24
  import { SelectorModal } from '../../partials/w3m-selector-modal';
26
- import { Currency } from './components/Currency';
27
- import { getPurchaseCurrencies, getCurrencySuggestedValues } from './utils';
25
+ import { Currency, ITEM_HEIGHT as CURRENCY_ITEM_HEIGHT } from './components/Currency';
26
+ import { getPurchaseCurrencies, getQuotesDebounced } from './utils';
28
27
  import { CurrencyInput } from './components/CurrencyInput';
29
28
  import { SelectPaymentModal } from './components/SelectPaymentModal';
30
- import { ITEM_HEIGHT as CURRENCY_ITEM_HEIGHT } from './components/Currency';
31
29
  import { Header } from './components/Header';
32
- import { UiUtil } from '../../utils/UiUtil';
33
30
  import { LoadingView } from './components/LoadingView';
31
+ import PaymentButton from './components/PaymentButton';
34
32
  import styles from './styles';
35
33
 
36
34
  const MemoizedCurrency = memo(Currency);
@@ -42,10 +40,10 @@ export function OnRampView() {
42
40
  const {
43
41
  purchaseCurrency,
44
42
  paymentCurrency,
45
- paymentMethods,
46
43
  selectedPaymentMethod,
47
44
  paymentAmount,
48
45
  quotesLoading,
46
+ quotes,
49
47
  selectedQuote,
50
48
  error,
51
49
  loading,
@@ -56,8 +54,6 @@ export function OnRampView() {
56
54
  const [searchValue, setSearchValue] = useState('');
57
55
  const [isCurrencyModalVisible, setIsCurrencyModalVisible] = useState(false);
58
56
  const [isPaymentMethodModalVisible, setIsPaymentMethodModalVisible] = useState(false);
59
- const providerImage = OnRampController.getServiceProviderImage(selectedQuote?.serviceProvider);
60
- const suggestedValues = getCurrencySuggestedValues(paymentCurrency);
61
57
  const purchaseCurrencyCode =
62
58
  purchaseCurrency?.currencyCode?.split('_')[0] ?? purchaseCurrency?.currencyCode;
63
59
  const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
@@ -68,24 +64,41 @@ export function OnRampView() {
68
64
  }
69
65
  }, []);
70
66
 
71
- const getProviderButtonText = () => {
72
- if (selectedQuote) {
73
- return 'via ';
67
+ const getPaymentButtonTitle = () => {
68
+ if (selectedPaymentMethod) {
69
+ return selectedPaymentMethod.name;
70
+ }
71
+
72
+ if (quotesLoading) {
73
+ return 'Loading quotes';
74
74
  }
75
75
 
76
- if (!paymentAmount) {
77
- return 'Enter an amount';
76
+ if (!paymentAmount || quotes?.length === 0) {
77
+ return 'Enter a valid amount';
78
78
  }
79
79
 
80
- if (!paymentMethods?.length) {
81
- return 'No payment methods available';
80
+ return '';
81
+ };
82
+
83
+ const getPaymentButtonSubtitle = () => {
84
+ if (selectedQuote) {
85
+ return StringUtil.capitalize(selectedQuote?.serviceProvider);
86
+ }
87
+
88
+ if (selectedPaymentMethod) {
89
+ if (quotesLoading) {
90
+ return 'Loading quotes';
91
+ }
92
+
93
+ if (!paymentAmount || quotes?.length === 0) {
94
+ return 'Enter a valid amount';
95
+ }
82
96
  }
83
97
 
84
- return 'Select a provider';
98
+ return undefined;
85
99
  };
86
100
 
87
101
  const onValueChange = (value: number) => {
88
- UiUtil.animateChange();
89
102
  if (!value) {
90
103
  OnRampController.abortGetQuotes();
91
104
  OnRampController.setPaymentAmount(0);
@@ -96,13 +109,7 @@ export function OnRampView() {
96
109
  }
97
110
 
98
111
  OnRampController.setPaymentAmount(value);
99
- OnRampController.getQuotesDebounced();
100
- };
101
-
102
- const onSuggestedValuePress = (value: number) => {
103
- UiUtil.animateChange();
104
- OnRampController.setPaymentAmount(value);
105
- getQuotes();
112
+ getQuotesDebounced();
106
113
  };
107
114
 
108
115
  const handleSearch = (value: string) => {
@@ -142,10 +149,6 @@ export function OnRampView() {
142
149
  setIsPaymentMethodModalVisible(false);
143
150
  };
144
151
 
145
- useEffect(() => {
146
- getQuotes();
147
- }, [selectedPaymentMethod, getQuotes]);
148
-
149
152
  useEffect(() => {
150
153
  if (error?.type === ConstantsUtil.ONRAMP_ERROR_TYPES.FAILED_TO_LOAD) {
151
154
  SnackController.showInternalError({
@@ -196,8 +199,6 @@ export function OnRampView() {
196
199
  value={paymentAmount?.toString()}
197
200
  symbol={paymentCurrency?.currencyCode}
198
201
  error={error?.message}
199
- suggestedValues={suggestedValues}
200
- onSuggestedValuePress={onSuggestedValuePress}
201
202
  isAmountError={
202
203
  error?.type === ConstantsUtil.ONRAMP_ERROR_TYPES.AMOUNT_TOO_LOW ||
203
204
  error?.type === ConstantsUtil.ONRAMP_ERROR_TYPES.AMOUNT_TOO_HIGH ||
@@ -212,46 +213,16 @@ export function OnRampView() {
212
213
  onValueChange={onValueChange}
213
214
  style={styles.currencyInput}
214
215
  />
215
- <ListItem
216
- chevron
217
- backgroundColor="gray-glass-005"
216
+ <PaymentButton
217
+ title={getPaymentButtonTitle()}
218
+ subtitle={getPaymentButtonSubtitle()}
219
+ paymentLogo={selectedPaymentMethod?.logos[themeMode ?? 'light']}
220
+ providerLogo={OnRampController.getServiceProviderImage(selectedQuote?.serviceProvider)}
221
+ disabled={!paymentAmount || quotes?.length === 0}
218
222
  loading={quotesLoading || loading}
219
223
  onPress={() => setIsPaymentMethodModalVisible(true)}
220
- style={styles.paymentMethodButton}
221
- imageSrc={selectedPaymentMethod?.logos[themeMode ?? 'light']}
222
- imageStyle={styles.paymentMethodImage}
223
- imageContainerStyle={[
224
- styles.paymentMethodImageContainer,
225
- { backgroundColor: Theme['gray-glass-010'] }
226
- ]}
227
- disabled={!selectedPaymentMethod || !paymentAmount}
228
224
  testID="payment-method-button"
229
- >
230
- <FlexView>
231
- {selectedPaymentMethod?.name && (
232
- <Text variant="paragraph-400" color="fg-100">
233
- {selectedPaymentMethod.name}
234
- </Text>
235
- )}
236
- {getProviderButtonText() && (
237
- <FlexView flexDirection="row" alignItems="center" margin={['3xs', '0', '0', '0']}>
238
- <Text variant="small-400" color="fg-150">
239
- {getProviderButtonText()}
240
- </Text>
241
- {selectedQuote && (
242
- <>
243
- {providerImage && (
244
- <Image source={providerImage} style={styles.providerImage} />
245
- )}
246
- <Text variant="small-400" color="fg-150">
247
- {StringUtil.capitalize(selectedQuote?.serviceProvider)}
248
- </Text>
249
- </>
250
- )}
251
- </FlexView>
252
- )}
253
- </FlexView>
254
- </ListItem>
225
+ />
255
226
  <FlexView
256
227
  flexDirection="row"
257
228
  alignItems="center"
@@ -37,5 +37,9 @@ export default StyleSheet.create({
37
37
  width: 14,
38
38
  borderRadius: BorderRadius.full,
39
39
  borderWidth: 1
40
+ },
41
+ paymentButtonMock: {
42
+ borderRadius: BorderRadius.s,
43
+ height: 64
40
44
  }
41
45
  });
@@ -1,13 +1,17 @@
1
1
  import {
2
2
  OnRampController,
3
- NetworkController,
4
- type OnRampFiatCurrency,
5
- ConstantsUtil
3
+ ConnectionsController,
4
+ CoreHelperUtil
6
5
  } from '@reown/appkit-core-react-native';
7
6
 
8
7
  // -------------------------- Utils --------------------------
9
8
  export const getPurchaseCurrencies = (searchValue?: string, filterSelected?: boolean) => {
10
- const networkId = NetworkController.state.caipNetwork?.id?.split(':')[1];
9
+ const networkId = getNetworkId();
10
+
11
+ if (!networkId) {
12
+ return [];
13
+ }
14
+
11
15
  let networkTokens =
12
16
  OnRampController.state.purchaseCurrencies?.filter(c => c.chainId === networkId) ?? [];
13
17
 
@@ -21,104 +25,30 @@ export const getPurchaseCurrencies = (searchValue?: string, filterSelected?: boo
21
25
  ? networkTokens.filter(
22
26
  item =>
23
27
  item.name.toLowerCase().includes(searchValue) ||
24
- item.currencyCode.toLowerCase().includes(searchValue)
28
+ item.currencyCode.toLowerCase()?.split('_')?.[0]?.includes(searchValue)
25
29
  )
26
30
  : networkTokens;
27
31
  };
28
32
 
29
- // Helper function to generate values based on limits and default value
30
- function generateValuesFromLimits(
31
- minAmount: number,
32
- maxAmount: number,
33
- defaultAmount?: number | null
34
- ): number[] {
35
- // Use default amount if provided, otherwise calculate a reasonable default
36
- const baseAmount = defaultAmount || Math.min(maxAmount, Math.max(minAmount * 5, 50));
37
-
38
- // Generate two values less than the default and the default itself
39
- const value1 = Math.max(minAmount, baseAmount * 0.5);
40
- const value2 = Math.max(minAmount, baseAmount * 0.75);
41
- const value3 = baseAmount;
33
+ export const getQuotesDebounced = CoreHelperUtil.debounce(function () {
34
+ OnRampController.getQuotes();
35
+ }, 500);
42
36
 
43
- // Ensure all values are within the maximum limit
44
- const safeValue1 = Math.min(value1, maxAmount);
45
- const safeValue2 = Math.min(value2, maxAmount);
46
- const safeValue3 = Math.min(value3, maxAmount);
37
+ export const getNetworkId = (): string | undefined => {
38
+ const [namespace, chainId] =
39
+ ConnectionsController.state.activeNetwork?.caipNetworkId?.split(':') ?? [];
47
40
 
48
- // Round all values to nice numbers
49
- return [safeValue1, safeValue2, safeValue3].map(v => roundToNiceNumber(v));
50
- }
51
-
52
- // Helper function to round to nice numbers
53
- function roundToNiceNumber(value: number): number {
54
- if (value < 10) return Math.ceil(value);
55
-
56
- if (value < 100) {
57
- // Round to nearest 10
58
- return Math.ceil(value / 10) * 10;
59
- } else if (value < 1000) {
60
- // Round to nearest 50
61
- return Math.ceil(value / 50) * 50;
62
- } else if (value < 10000) {
63
- // Round to nearest 100
64
- return Math.ceil(value / 100) * 100;
65
- } else if (value < 100000) {
66
- // Round to nearest 1000
67
- return Math.ceil(value / 1000) * 1000;
68
- } else if (value < 1000000) {
69
- // Round to nearest 10000
70
- return Math.ceil(value / 10000) * 10000;
71
- } else {
72
- // Round to nearest 100000
73
- return Math.ceil(value / 100000) * 100000;
41
+ if (!namespace || !chainId) {
42
+ return undefined;
74
43
  }
75
- }
76
-
77
- export const getCurrencySuggestedValues = (currency?: OnRampFiatCurrency) => {
78
- if (!currency) return [];
79
44
 
80
- const limit = OnRampController.getCurrencyLimit(currency);
81
-
82
- // If we have predefined values for this currency, use them
83
- if (
84
- ConstantsUtil.CURRENCY_SUGGESTED_VALUES[
85
- currency.currencyCode as keyof typeof ConstantsUtil.CURRENCY_SUGGESTED_VALUES
86
- ]
87
- ) {
88
- const suggestedValues =
89
- ConstantsUtil.CURRENCY_SUGGESTED_VALUES[
90
- currency.currencyCode as keyof typeof ConstantsUtil.CURRENCY_SUGGESTED_VALUES
91
- ];
92
-
93
- // Ensure values are within limits
94
- if (limit) {
95
- const minAmount = limit.minimumAmount ?? 0;
96
- const maxAmount = limit.maximumAmount ?? Infinity;
97
-
98
- // Filter values that are within limits
99
- const validValues = suggestedValues?.filter(
100
- (value: number) => value >= minAmount && value <= maxAmount
101
- );
102
-
103
- // If we have valid values, return them
104
- if (validValues?.length) {
105
- return validValues;
106
- }
107
-
108
- // If no valid values, generate new ones based on limits and default
109
- return generateValuesFromLimits(minAmount, maxAmount, limit?.defaultAmount);
110
- }
111
-
112
- return suggestedValues;
45
+ if (namespace === 'solana') {
46
+ return '101'; // Solana mainnet on Meld
113
47
  }
114
48
 
115
- // Fallback to generating values from limits
116
- if (limit) {
117
- const minAmount = limit.minimumAmount ?? 0;
118
- const maxAmount = limit.maximumAmount ?? Infinity;
119
-
120
- return generateValuesFromLimits(minAmount, maxAmount, limit?.defaultAmount);
49
+ if (namespace === 'bip122') {
50
+ return `${namespace}:${chainId}`; // Bitcoin mainnet
121
51
  }
122
52
 
123
- return [];
53
+ return chainId;
124
54
  };