@rabbitio/ui-kit 1.0.0-beta.122 → 1.0.0-beta.124

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 (208) hide show
  1. package/coverage/clover.xml +930 -863
  2. package/coverage/coverage-final.json +7 -7
  3. package/coverage/index.html +27 -27
  4. package/coverage/rabbit-ui-kit/index.html +1 -1
  5. package/coverage/rabbit-ui-kit/index.js.html +1 -1
  6. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/googleAnalyticsAdapter.js.html +1 -1
  7. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/index.html +1 -1
  8. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/metrikaAdapter.js.html +1 -1
  9. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/mixpanelAdapter.js.html +1 -1
  10. package/coverage/rabbit-ui-kit/src/common-apis/adapters/axiosAdapter.js.html +1 -1
  11. package/coverage/rabbit-ui-kit/src/common-apis/adapters/index.html +1 -1
  12. package/coverage/rabbit-ui-kit/src/common-apis/adapters/qrUtils.js.html +1 -1
  13. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/apiGroups.js.html +1 -1
  14. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/emailAPI.js.html +1 -1
  15. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/index.html +1 -1
  16. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/ipAddressProviders.js.html +1 -1
  17. package/coverage/rabbit-ui-kit/src/common-apis/globalConstants.jsx.html +1 -1
  18. package/coverage/rabbit-ui-kit/src/common-apis/index.html +1 -1
  19. package/coverage/rabbit-ui-kit/src/common-apis/models/blockchain.js.html +1 -1
  20. package/coverage/rabbit-ui-kit/src/common-apis/models/coin.js.html +1 -1
  21. package/coverage/rabbit-ui-kit/src/common-apis/models/index.html +1 -1
  22. package/coverage/rabbit-ui-kit/src/common-apis/models/protocol.js.html +1 -1
  23. package/coverage/rabbit-ui-kit/src/common-apis/services/fiatCurrenciesService.js.html +1 -1
  24. package/coverage/rabbit-ui-kit/src/common-apis/services/index.html +1 -1
  25. package/coverage/rabbit-ui-kit/src/common-apis/utils/amountUtils.js.html +40 -16
  26. package/coverage/rabbit-ui-kit/src/common-apis/utils/cache.js.html +1 -1
  27. package/coverage/rabbit-ui-kit/src/common-apis/utils/emailUtils.js.html +1 -1
  28. package/coverage/rabbit-ui-kit/src/common-apis/utils/errorUtils.js.html +1 -1
  29. package/coverage/rabbit-ui-kit/src/common-apis/utils/index.html +11 -11
  30. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/index.html +1 -1
  31. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/logger.js.html +1 -1
  32. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/logsStorage.js.html +1 -1
  33. package/coverage/rabbit-ui-kit/src/common-apis/utils/postponeExecution.js.html +1 -1
  34. package/coverage/rabbit-ui-kit/src/common-apis/utils/rabbitTicker.js.html +1 -1
  35. package/coverage/rabbit-ui-kit/src/common-apis/utils/safeStringify.js.html +1 -1
  36. package/coverage/rabbit-ui-kit/src/index.html +1 -1
  37. package/coverage/rabbit-ui-kit/src/index.js.html +1 -1
  38. package/coverage/rabbit-ui-kit/src/robust-api-caller/cacheAndConcurrentRequestsResolver.js.html +1 -1
  39. package/coverage/rabbit-ui-kit/src/robust-api-caller/cachedRobustExternalApiCallerService.js.html +1 -1
  40. package/coverage/rabbit-ui-kit/src/robust-api-caller/cancelProcessing.js.html +1 -1
  41. package/coverage/rabbit-ui-kit/src/robust-api-caller/concurrentCalculationsMetadataHolder.js.html +1 -1
  42. package/coverage/rabbit-ui-kit/src/robust-api-caller/externalApiProvider.js.html +1 -1
  43. package/coverage/rabbit-ui-kit/src/robust-api-caller/externalServicesStatsCollector.js.html +1 -1
  44. package/coverage/rabbit-ui-kit/src/robust-api-caller/index.html +1 -1
  45. package/coverage/rabbit-ui-kit/src/robust-api-caller/robustExternalAPICallerService.js.html +1 -1
  46. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/changeHeroSwapProvider.js.html +21 -9
  47. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/changeNowSwapProvider.js.html +1 -1
  48. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/exolixSwapProvider.js.html +1 -1
  49. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/goexmeSwapProvider.js.html +1 -1
  50. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/index.html +21 -21
  51. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/letsExchangeSwapProvider.js.html +1 -1
  52. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/retriableErrorsUtils.js.html +1 -1
  53. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +1 -1
  54. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +101 -11
  55. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/utils.js.html +1 -1
  56. package/coverage/rabbit-ui-kit/src/swaps-lib/models/baseSwapCreationInfo.js.html +1 -1
  57. package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwap.js.html +1 -1
  58. package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwapWithFiatData.js.html +1 -1
  59. package/coverage/rabbit-ui-kit/src/swaps-lib/models/index.html +1 -1
  60. package/coverage/rabbit-ui-kit/src/swaps-lib/models/partner.js.html +1 -1
  61. package/coverage/rabbit-ui-kit/src/swaps-lib/models/swapProviderCoinInfo.js.html +1 -1
  62. package/coverage/rabbit-ui-kit/src/swaps-lib/services/index.html +5 -5
  63. package/coverage/rabbit-ui-kit/src/swaps-lib/services/publicSwapService.js.html +19 -4
  64. package/coverage/rabbit-ui-kit/src/swaps-lib/utils/index.html +1 -1
  65. package/coverage/rabbit-ui-kit/src/swaps-lib/utils/swapUtils.js.html +1 -1
  66. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowIcon.jsx.html +1 -1
  67. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowTosca.jsx.html +1 -1
  68. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowWhite.jsx.html +1 -1
  69. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/darkRectangle.jsx.html +1 -1
  70. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/determinedError.jsx.html +1 -1
  71. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/failedValidationIcon.jsx.html +1 -1
  72. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/index.html +1 -1
  73. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/infoIcon.jsx.html +1 -1
  74. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/messageIcon.jsx.html +1 -1
  75. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/noticeQuestionIcon.jsx.html +1 -1
  76. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/successfulValidationIcon.jsx.html +1 -1
  77. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/supportDialogImage.jsx.html +1 -1
  78. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/walletIcon.jsx.html +1 -1
  79. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetIcon/AssetIcon.jsx.html +1 -1
  80. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetIcon/index.html +1 -1
  81. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/AssetSelection.jsx.html +1 -1
  82. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/index.html +1 -1
  83. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +1 -1
  84. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/index.html +1 -1
  85. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/InformationMessage.jsx.html +1 -1
  86. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/index.html +1 -1
  87. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Input/Input.jsx.html +1 -1
  88. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Input/index.html +1 -1
  89. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/LoadingDots/LoadingDots.jsx.html +1 -1
  90. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/LoadingDots/index.html +1 -1
  91. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/NoticeIcon.jsx.html +1 -1
  92. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/index.html +1 -1
  93. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/QrCode/QrCode.jsx.html +1 -1
  94. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/QrCode/index.html +1 -1
  95. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx.html +1 -1
  96. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/index.html +1 -1
  97. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/SupportChat.jsx.html +1 -1
  98. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/index.html +1 -1
  99. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/Textarea.jsx.html +1 -1
  100. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/index.html +1 -1
  101. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/TitleBox.jsx.html +1 -1
  102. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/index.html +1 -1
  103. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/Tooltip.jsx.html +1 -1
  104. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/index.html +1 -1
  105. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +1 -1
  106. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/index.html +1 -1
  107. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/Validation.jsx.html +1 -1
  108. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/index.html +1 -1
  109. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Button/Button.jsx.html +20 -5
  110. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Button/index.html +5 -5
  111. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Close/Close.jsx.html +1 -1
  112. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Close/index.html +1 -1
  113. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/LinkButton.jsx.html +1 -1
  114. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/index.html +1 -1
  115. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +1 -1
  116. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +1 -1
  117. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx.html +1 -1
  118. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/index.html +1 -1
  119. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx.html +1 -1
  120. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/CoinPicker/index.html +1 -1
  121. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/ColoredNotice/ColoredNotice.jsx.html +1 -1
  122. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/ColoredNotice/index.html +1 -1
  123. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +1 -1
  124. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LineWithIconLink/index.html +1 -1
  125. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LogoCarousel/LogoCarousel.jsx.html +1 -1
  126. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LogoCarousel/index.html +1 -1
  127. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/SearchableCoinsList.jsx.html +1 -1
  128. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/index.html +1 -1
  129. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +1 -1
  130. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +1 -1
  131. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +1 -1
  132. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/index.html +1 -1
  133. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/Dialog.jsx.html +1 -1
  134. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +1 -1
  135. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +1 -1
  136. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +1 -1
  137. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +1 -1
  138. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/index.html +1 -1
  139. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx.html +58 -16
  140. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/index.html +5 -5
  141. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/WaitlistSubscription.jsx.html +1 -1
  142. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/index.html +1 -1
  143. package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +1 -1
  144. package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +1 -1
  145. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/index.html +1 -1
  146. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useCallHandlingErrors.js.html +1 -1
  147. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useIsHydrated.js.html +1 -1
  148. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useReferredState.js.html +1 -1
  149. package/coverage/rabbit-ui-kit/src/ui-kit/utils/index.html +1 -1
  150. package/coverage/rabbit-ui-kit/src/ui-kit/utils/inputValueProviders.js.html +1 -1
  151. package/coverage/rabbit-ui-kit/src/ui-kit/utils/searchCoins.js.html +1 -1
  152. package/coverage/rabbit-ui-kit/src/ui-kit/utils/textUtils.js.html +1 -1
  153. package/coverage/rabbit-ui-kit/src/ui-kit/utils/uiUtils.js.html +1 -1
  154. package/coverage/rabbit-ui-kit/src/ui-kit/utils/urlQueryUtils.js.html +1 -1
  155. package/coverage/rabbit-ui-kit/stories/atoms/BackgroundTitle.stories.jsx.html +1 -1
  156. package/coverage/rabbit-ui-kit/stories/atoms/LinesOfText.stories.jsx.html +1 -1
  157. package/coverage/rabbit-ui-kit/stories/atoms/LoadingDots.stories.jsx.html +1 -1
  158. package/coverage/rabbit-ui-kit/stories/atoms/QrCode.stories.jsx.html +1 -1
  159. package/coverage/rabbit-ui-kit/stories/atoms/RateSelector.stories.jsx.html +1 -1
  160. package/coverage/rabbit-ui-kit/stories/atoms/Validation.stories.jsx.html +1 -1
  161. package/coverage/rabbit-ui-kit/stories/atoms/buttons/Button.stories.jsx.html +7 -4
  162. package/coverage/rabbit-ui-kit/stories/atoms/buttons/Close.stories.jsx.html +1 -1
  163. package/coverage/rabbit-ui-kit/stories/atoms/buttons/LinkButton.stories.jsx.html +1 -1
  164. package/coverage/rabbit-ui-kit/stories/atoms/buttons/index.html +5 -5
  165. package/coverage/rabbit-ui-kit/stories/atoms/index.html +1 -1
  166. package/coverage/rabbit-ui-kit/stories/molecules/AmountInput.stories.jsx.html +1 -1
  167. package/coverage/rabbit-ui-kit/stories/molecules/CoinPicker.stories.jsx.html +1 -1
  168. package/coverage/rabbit-ui-kit/stories/molecules/ColoredNotice.stories.jsx.html +1 -1
  169. package/coverage/rabbit-ui-kit/stories/molecules/LineWithIconLink.stories.jsx.html +1 -1
  170. package/coverage/rabbit-ui-kit/stories/molecules/LogoCarousel.stories.jsx.html +1 -1
  171. package/coverage/rabbit-ui-kit/stories/molecules/TitledLineWithIconLink.stories.jsx.html +1 -1
  172. package/coverage/rabbit-ui-kit/stories/molecules/index.html +1 -1
  173. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/Dialog.stories.jsx.html +1 -1
  174. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +1 -1
  175. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/index.html +1 -1
  176. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +1 -1
  177. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/index.html +1 -1
  178. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/index.html +1 -1
  179. package/coverage/rabbit-ui-kit/stories/organisms/WaitlistSubscription.stories.jsx.html +1 -1
  180. package/coverage/rabbit-ui-kit/stories/organisms/index.html +1 -1
  181. package/coverage/rabbit-ui-kit/stories/stubs/coins.jsx.html +1 -1
  182. package/coverage/rabbit-ui-kit/stories/stubs/exampleContent.jsx.html +1 -1
  183. package/coverage/rabbit-ui-kit/stories/stubs/index.html +1 -1
  184. package/coverage/rabbit-ui-kit/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +1 -1
  185. package/coverage/rabbit-ui-kit/stories/templates/index.html +1 -1
  186. package/dist/global.css +10 -0
  187. package/dist/global.css.map +1 -1
  188. package/dist/index.cjs +164 -118
  189. package/dist/index.cjs.map +1 -1
  190. package/dist/index.css +19 -0
  191. package/dist/index.css.map +1 -1
  192. package/dist/index.modern.js +73 -24
  193. package/dist/index.modern.js.map +1 -1
  194. package/dist/index.module.js +164 -118
  195. package/dist/index.module.js.map +1 -1
  196. package/dist/index.umd.js +164 -118
  197. package/dist/index.umd.js.map +1 -1
  198. package/package.json +1 -1
  199. package/src/common-apis/utils/amountUtils.js +18 -10
  200. package/src/swaps-lib/external-apis/changeHeroSwapProvider.js +5 -1
  201. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +32 -2
  202. package/src/swaps-lib/services/publicSwapService.js +5 -0
  203. package/src/ui-kit/assets/styles/_mixins.scss +9 -0
  204. package/src/ui-kit/assets/styles/global.scss +4 -0
  205. package/src/ui-kit/components/atoms/buttons/Button/Button.jsx +6 -1
  206. package/src/ui-kit/components/atoms/buttons/Button/Button.module.scss +4 -0
  207. package/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx +26 -12
  208. package/src/ui-kit/components/organisms/SwapForm/swap-form.module.scss +17 -0
@@ -1164,7 +1164,7 @@ if (process.env.NODE_ENV !== 'production') {
1164
1164
 
1165
1165
  var PropTypes = propTypes;
1166
1166
 
1167
- var styles$1 = {"button":"_sauyf","disable":"_sfDzK","full-width-on-tablets":"_BDnqx","full-width-on-mobiles":"_M-OBj","xl":"_5L7n-","lg":"_CnIaG","md":"_-jgwD","sm":"_D09m1","small-padding-on-small-mobiles":"_O-WBl","primary":"_PSWCT","primary-bordered":"_TI-uC","primary-transparent":"_5EoQX","transparent":"_WsTvD","transparent-bordered":"_-3Tg3","transparent-without-shadow":"_6r-Yv","white":"_kNilL","white-flat":"_ZQOSa","button-primary-dots-wrapper":"_WKj7r","show":"_oc-vQ","button-success-icon":"_srU2b","button-text":"_dtwdo","hide":"_8oZMx","button-with-icon":"_5EuuY","button-with-icon-text":"_e54qH","big-icon":"_Z-ja-"};
1167
+ var styles$1 = {"button":"_sauyf","disable":"_sfDzK","no-shadow":"_Z1bNm","full-width-on-tablets":"_BDnqx","full-width-on-mobiles":"_M-OBj","xl":"_5L7n-","lg":"_CnIaG","md":"_-jgwD","sm":"_D09m1","small-padding-on-small-mobiles":"_O-WBl","primary":"_PSWCT","primary-bordered":"_TI-uC","primary-transparent":"_5EoQX","transparent":"_WsTvD","transparent-bordered":"_-3Tg3","transparent-without-shadow":"_6r-Yv","white":"_kNilL","white-flat":"_ZQOSa","button-primary-dots-wrapper":"_WKj7r","show":"_oc-vQ","button-success-icon":"_srU2b","button-text":"_dtwdo","hide":"_8oZMx","button-with-icon":"_5EuuY","button-with-icon-text":"_e54qH","big-icon":"_Z-ja-"};
1168
1168
 
1169
1169
  var styles = {"loading-dots":"_NQPs8","no-margins":"_p92yB","dot":"_nsy9P","dots":"_zyA-B","colored":"_thAVE","big":"_q-1ts","small":"_FP0TD","extra-small":"_nwIyw","align-left":"_fJ2Vv","align-right":"_IpuFT"};
1170
1170
 
@@ -1231,6 +1231,7 @@ LoadingDots.propTypes = {
1231
1231
  * @param {boolean} [props.checkmarkOnClick=false] - Shows a checkmark instead of content for a few seconds after click.
1232
1232
  * @param {boolean} [props.propagatePrimaryButtonClick=true] - Propagates the primary button click event if true.
1233
1233
  * @param {boolean} [props.smallPaddingOnSmallMobiles=false] - Enables smaller paddings for extra-small screen sizes.
1234
+ * @param {boolean} [props.noShadow=false] - Removes box-shadow styling when true.
1234
1235
  * @param {Function} [props.handleError=(func) => func()] - Function to handle errors during button click events.
1235
1236
  * @returns {React.ReactElement}
1236
1237
  */
@@ -1271,6 +1272,8 @@ var Button = function Button(_ref) {
1271
1272
  propagatePrimaryButtonClick = _ref$propagatePrimary === void 0 ? true : _ref$propagatePrimary,
1272
1273
  _ref$smallPaddingOnSm = _ref.smallPaddingOnSmallMobiles,
1273
1274
  smallPaddingOnSmallMobiles = _ref$smallPaddingOnSm === void 0 ? false : _ref$smallPaddingOnSm,
1275
+ _ref$noShadow = _ref.noShadow,
1276
+ noShadow = _ref$noShadow === void 0 ? false : _ref$noShadow,
1274
1277
  _ref$handleError = _ref.handleError,
1275
1278
  handleError = _ref$handleError === void 0 ? function (func, event) {
1276
1279
  return func(event);
@@ -1325,7 +1328,7 @@ var Button = function Button(_ref) {
1325
1328
  }, e);
1326
1329
  }
1327
1330
  };
1328
- var classNames = styles$1.button + " " + styles$1[size] + " " + styles$1[className] + " " + styles$1[mode] + (fullWidthOnMobiles ? " " + styles$1["full-width-on-mobiles"] : "") + (fullWidthOnTablets ? " " + styles$1["full-width-on-tablets"] : "") + (isDisabled ? " " + styles$1.disable : "") + (smallPaddingOnSmallMobiles ? " " + styles$1["small-padding-on-small-mobiles"] : "");
1331
+ var classNames = styles$1.button + " " + styles$1[size] + " " + styles$1[className] + " " + styles$1[mode] + (fullWidthOnMobiles ? " " + styles$1["full-width-on-mobiles"] : "") + (fullWidthOnTablets ? " " + styles$1["full-width-on-tablets"] : "") + (isDisabled ? " " + styles$1.disable : "") + (smallPaddingOnSmallMobiles ? " " + styles$1["small-padding-on-small-mobiles"] : "") + (noShadow ? " " + styles$1["no-shadow"] : "");
1329
1332
  return /*#__PURE__*/React.createElement(React.Fragment, null, isFormSubmittingButton ? /*#__PURE__*/React.createElement("input", {
1330
1333
  type: "submit",
1331
1334
  hidden: true
@@ -1388,6 +1391,7 @@ Button.propTypes = {
1388
1391
  checkmarkOnClick: PropTypes.bool,
1389
1392
  propagatePrimaryButtonClick: PropTypes.bool,
1390
1393
  smallPaddingOnSmallMobiles: PropTypes.bool,
1394
+ noShadow: PropTypes.bool,
1391
1395
  handleError: PropTypes.func
1392
1396
  };
1393
1397
  Button.defaultProps = {
@@ -1409,6 +1413,7 @@ Button.defaultProps = {
1409
1413
  checkmarkOnClick: false,
1410
1414
  propagatePrimaryButtonClick: true,
1411
1415
  smallPaddingOnSmallMobiles: false,
1416
+ noShadow: false,
1412
1417
  handleError: function handleError(func) {
1413
1418
  return func();
1414
1419
  }
@@ -3766,8 +3771,10 @@ var AmountUtils = /*#__PURE__*/function () {
3766
3771
  var currencyDecimalCount = FiatCurrenciesService.getCurrencyDecimalCountByCode(currencyCode);
3767
3772
  var trimmedByMaxDigits = params.collapsible ? BigNumber(amount).toFixed(currencyDecimalCount, BigNumber.ROUND_FLOOR) : BigNumber(amount);
3768
3773
  var processedAmount = BigNumber(trimmedByMaxDigits);
3769
- if (params.collapsible && processedAmount.gte(BigNumber("1000"))) {
3770
- processedAmount = this._collapseToMillionsAndFormat(processedAmount, this.collapsedDecimalCount, params);
3774
+ var shouldCollapseThousands = params.collapsible && params.collapseThousands && processedAmount.gte(BigNumber("1000"));
3775
+ var shouldCollapseMillions = params.collapsible && processedAmount.gte(BigNumber("1000000"));
3776
+ if (shouldCollapseMillions || shouldCollapseThousands) {
3777
+ processedAmount = this._collapseBigNumberToSuffixAndFormat(processedAmount, this.collapsedDecimalCount, params);
3771
3778
  } else {
3772
3779
  var limitResult = this._limitTotalAmountLengthIfNeeded(trimmedByMaxDigits, params);
3773
3780
  processedAmount = BigNumber(limitResult.processedAmount).toFormat(); // Adds commas to integer part
@@ -3859,18 +3866,19 @@ var AmountUtils = /*#__PURE__*/function () {
3859
3866
  var limitResult = this._limitTotalAmountLengthIfNeeded(processedAmount, params);
3860
3867
  processedAmount = limitResult.processedAmount;
3861
3868
  addPeriods || (addPeriods = limitResult.addPeriods);
3862
- var wereMillionsCollapsed = false;
3863
- if (params.collapsible && amountBigNumber.gte("1000000")) {
3864
- // Collapse the 1M+ amounts if applicable
3865
- processedAmount = this._collapseToMillionsAndFormat(BigNumber(processedAmount), this.collapsedDecimalCount, params);
3866
- wereMillionsCollapsed = true;
3869
+ var wasCollapsed = false;
3870
+ var shouldCollapse = params.collapsible && (amountBigNumber.gte("1000000") || params.collapseThousands && amountBigNumber.gte("1000"));
3871
+ if (shouldCollapse) {
3872
+ // Collapse the large amounts if applicable
3873
+ processedAmount = this._collapseBigNumberToSuffixAndFormat(BigNumber(processedAmount), this.collapsedDecimalCount, params);
3874
+ wasCollapsed = true;
3867
3875
  } else if (params.numberPartsSeparator) {
3868
3876
  // Add separators to integer part of the amount
3869
3877
  processedAmount = BigNumber(processedAmount).toFormat();
3870
3878
  }
3871
3879
 
3872
3880
  // Adding periods, if the amount was shortened
3873
- if (params.periods && addPeriods && !wereMillionsCollapsed) {
3881
+ if (params.periods && addPeriods && !wasCollapsed) {
3874
3882
  processedAmount = processedAmount + this.periods;
3875
3883
  }
3876
3884
 
@@ -3926,9 +3934,9 @@ var AmountUtils = /*#__PURE__*/function () {
3926
3934
  * @param amountBigNumber {BigNumber} The number value to be trimmed
3927
3935
  * @param decimalCount {number} The number of digits after period to keep in millions representation
3928
3936
  * @param params {object} params object
3929
- * @return {string} A shortened string, converted into "millions" format, if the amount exceeds 1 million
3937
+ * @return {string} A potentially shortened string
3930
3938
  */;
3931
- AmountUtils._collapseToMillionsAndFormat = function _collapseToMillionsAndFormat(amountBigNumber, decimalCount, params) {
3939
+ AmountUtils._collapseBigNumberToSuffixAndFormat = function _collapseBigNumberToSuffixAndFormat(amountBigNumber, decimalCount, params) {
3932
3940
  if (params === void 0) {
3933
3941
  params = {};
3934
3942
  }
@@ -4075,6 +4083,8 @@ AmountUtils.defaultFiatParams = {
4075
4083
  // Enables currency symbols where available. Requires "ticker: true"
4076
4084
  collapsible: true,
4077
4085
  // Enables minimization of amounts over 1 million (example: 1.52M)
4086
+ collapseThousands: false,
4087
+ // Enables "K" minimization for amounts over 1 thousand (example: 1.52K)
4078
4088
  limitTotalLength: true,
4079
4089
  // Limits the total amount length to maxTotalLength
4080
4090
  extraSmallLength: false // Limits the total amount length to extraSmallMaxTotalLength
@@ -4084,6 +4094,8 @@ AmountUtils.defaultCryptoParams = {
4084
4094
  // If true, asset ticker will be shown
4085
4095
  collapsible: true,
4086
4096
  // Enables minimization of amounts over 1 million (example: 1.52M)
4097
+ collapseThousands: false,
4098
+ // Enables "K" minimization for amounts over 1 thousand (example: 1.52K)
4087
4099
  trim: true,
4088
4100
  // Cuts the right part of the amount if necessary, and adds ".." in the end
4089
4101
  limitTotalLength: true,
@@ -4491,7 +4503,7 @@ AmountInput.defaultProps = {
4491
4503
  fiatInputPlaceholderText: null
4492
4504
  };
4493
4505
 
4494
- var s$b = {"swap-form-inputs-separator":"_2vSSb","disabled":"_t1R13","swap-form":"_Uwb2p","swap-form-inputs":"_kkR8O","swap-form-information-field":"_ZUAfe","semi-transparent":"_1mu0j","interactable":"_S9zQS","red":"_SbQSO","swap-form-address-field":"_c8Nfv","swap-form-rate-selector":"_Fo9O-","swap-form-validation-text":"_8iEHB","swap-form-button-container":"_cVVfG","swap-form-button-container-consent-text":"_UNMjb","swap-form-button-container-consent-text-link":"_-g020"};
4506
+ var s$b = {"swap-form-inputs-separator":"_2vSSb","disabled":"_t1R13","swap-form":"_Uwb2p","swap-form-inputs":"_kkR8O","swap-form-information-field":"_ZUAfe","semi-transparent":"_1mu0j","interactable":"_S9zQS","red":"_SbQSO","swap-form-address-field":"_c8Nfv","swap-form-rate-note":"_y5iPh","swap-form-rate-selector":"_Fo9O-","swap-form-validation-text":"_8iEHB","swap-form-button-container":"_cVVfG","swap-form-button-container-consent-text":"_UNMjb","swap-form-button-container-consent-text-link":"_-g020"};
4495
4507
 
4496
4508
  var s$a = {"textarea-input":"_EJFn-","textarea":"_YjRAf","full-height":"_kDp5e","textarea-input-label":"_XQC6S","adaptive-height":"_UnSJE","small-text":"_WtRnB","disabled":"_IO5nl","error-encountered":"_00pBS"};
4497
4509
 
@@ -5042,6 +5054,7 @@ var EMAIL_VALIDATION_REGEXP = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
5042
5054
  * @param {string} [props.fiatCurrencyCode] - Code for the fiat currency.
5043
5055
  * @param {number} [props.fiatCurrencyDecimals] - Decimal places for the fiat currency.
5044
5056
  * @param {boolean} [props.formHasFiat] - Indicates if the form supports fiat currency.
5057
+ * @param {boolean} [props.showEmailInput=false] - Controls whether the email input is displayed.
5045
5058
  * @param {string|null} [props.termsOfUseUrl] - Terms of use URL, shown only if both terms & privacy policy passed.
5046
5059
  * @param {string|null} [props.privacyPolicyUrl] - Privacy policy of use URL, shown only if both terms & privacy policy passed.
5047
5060
  * @param {string|null} [props.amlPolicyUrl] - AML/KYC policy URL, optional.
@@ -5135,6 +5148,8 @@ var SwapForm = function SwapForm(_ref) {
5135
5148
  fiatCurrencyDecimals = _ref$fiatCurrencyDeci === void 0 ? null : _ref$fiatCurrencyDeci,
5136
5149
  _ref$formHasFiat = _ref.formHasFiat,
5137
5150
  formHasFiat = _ref$formHasFiat === void 0 ? true : _ref$formHasFiat,
5151
+ _ref$showEmailInput = _ref.showEmailInput,
5152
+ showEmailInput = _ref$showEmailInput === void 0 ? false : _ref$showEmailInput,
5138
5153
  _ref$termsOfUseUrl = _ref.termsOfUseUrl,
5139
5154
  termsOfUseUrl = _ref$termsOfUseUrl === void 0 ? null : _ref$termsOfUseUrl,
5140
5155
  _ref$privacyPolicyUrl = _ref.privacyPolicyUrl,
@@ -5178,6 +5193,7 @@ var SwapForm = function SwapForm(_ref) {
5178
5193
  calculatingNetworkFee: "Calculating network fee..",
5179
5194
  loadingMinimalAmount: "Loading minimal amount..",
5180
5195
  swapRate: "Rate: ",
5196
+ rateNotice: "The rate varies depending on the amount.",
5181
5197
  calculatingSwapRates: "Calculating swap rates..",
5182
5198
  pairNotAvailable: "Pair is not available now. Please, try again later or choose another pair."
5183
5199
  },
@@ -5696,9 +5712,14 @@ var SwapForm = function SwapForm(_ref) {
5696
5712
  // eslint-disable-next-line react-hooks/exhaustive-deps
5697
5713
  }, [refundAddress.current, refundAddressExtraId.current, sendingAssetTicker, isRefundAddressRequired]);
5698
5714
  useEffect(function () {
5715
+ if (!showEmailInput) {
5716
+ setEmail("");
5717
+ setIsEmailValid(true);
5718
+ return;
5719
+ }
5699
5720
  setIsEmailValid(email.current === "" || EMAIL_VALIDATION_REGEXP.test(email.current));
5700
5721
  // eslint-disable-next-line react-hooks/exhaustive-deps
5701
- }, [email.current]);
5722
+ }, [email.current, showEmailInput]);
5702
5723
  useEffect(function () {
5703
5724
  // Here we set up auto recalculations for the swap details if the form is ready to swap but is idle for some time
5704
5725
  var timeoutId = null;
@@ -5880,7 +5901,9 @@ var SwapForm = function SwapForm(_ref) {
5880
5901
  }
5881
5902
  }, AmountUtils.crypto(minimalAmount.current.crypto, isLastEditedReceiving.current ? receivingAssetTickerPrintable : sendingAssetTickerPrintable)), ((_minimalAmount$curren7 = minimalAmount.current) == null ? void 0 : _minimalAmount$curren7.fiat) != null && minimalAmount.current.fiat !== "" ? /*#__PURE__*/React.createElement("span", {
5882
5903
  className: "semi-transparent"
5883
- }, " ~ " + AmountUtils.fiat(minimalAmount.current.fiat, fiatCurrencyCode)) : "") : isLoading.current ? sendAssetAmount.current || receiveAssetAmount.current || isSwapAll.current ? translations.informationBlock[formHasBalance ? "calculatingNetworkFee" : "calculatingSwapRates"] : translations.informationBlock.loadingMinimalAmount : translations == null || (_translations$informa = translations.informationBlock) == null ? void 0 : _translations$informa.enterAmount)), isAddressFieldEnabled ? /*#__PURE__*/React.createElement("div", {
5904
+ }, " ~ " + AmountUtils.fiat(minimalAmount.current.fiat, fiatCurrencyCode)) : "") : isLoading.current ? sendAssetAmount.current || receiveAssetAmount.current || isSwapAll.current ? translations.informationBlock[formHasBalance ? "calculatingNetworkFee" : "calculatingSwapRates"] : translations.informationBlock.loadingMinimalAmount : translations == null || (_translations$informa = translations.informationBlock) == null ? void 0 : _translations$informa.enterAmount)), /*#__PURE__*/React.createElement("p", {
5905
+ className: s$b["swap-form-rate-note"]
5906
+ }, translations.informationBlock.rateNotice), isAddressFieldEnabled ? /*#__PURE__*/React.createElement("div", {
5884
5907
  className: s$b["swap-form-address-field"]
5885
5908
  }, /*#__PURE__*/React.createElement(TitleBox, {
5886
5909
  title: translations.addressFields.addressTitle
@@ -5926,7 +5949,7 @@ var SwapForm = function SwapForm(_ref) {
5926
5949
  value: refundAddressExtraId.current,
5927
5950
  adaptiveHeight: true,
5928
5951
  placeholder: translations.addressFields.extraIdPlaceholder
5929
- })) : null) : null) : null, /*#__PURE__*/React.createElement("div", {
5952
+ })) : null) : null) : null, showEmailInput ? /*#__PURE__*/React.createElement("div", {
5930
5953
  className: s$b["swap-form-address-field"]
5931
5954
  }, /*#__PURE__*/React.createElement(TitleBox, {
5932
5955
  title: ((_translations$address = translations.addressFields) == null ? void 0 : _translations$address.emailTitle) || "Email (optional)"
@@ -5938,7 +5961,7 @@ var SwapForm = function SwapForm(_ref) {
5938
5961
  value: email.current,
5939
5962
  placeholder: (_translations$address2 = translations.addressFields) == null ? void 0 : _translations$address2.emailPlaceholder,
5940
5963
  errorEncountered: email.current !== "" && !isEmailValid.current
5941
- }))), validationContent ? /*#__PURE__*/React.createElement("div", {
5964
+ }))) : null, validationContent ? /*#__PURE__*/React.createElement("div", {
5942
5965
  className: s$b["swap-form-validation-text"]
5943
5966
  }, /*#__PURE__*/React.createElement(Validation, {
5944
5967
  text: validationContent
@@ -6007,6 +6030,7 @@ SwapForm.propTypes = {
6007
6030
  fiatCurrencyCode: PropTypes.string,
6008
6031
  fiatCurrencyDecimals: PropTypes.number,
6009
6032
  formHasFiat: PropTypes.bool,
6033
+ showEmailInput: PropTypes.bool,
6010
6034
  termsOfUseUrl: PropTypes.string,
6011
6035
  privacyPolicyUrl: PropTypes.string,
6012
6036
  amlPolicyUrl: PropTypes.string,
@@ -6047,6 +6071,7 @@ SwapForm.defaultProps = {
6047
6071
  fiatCurrencyCode: null,
6048
6072
  fiatCurrencyDecimals: null,
6049
6073
  formHasFiat: true,
6074
+ showEmailInput: false,
6050
6075
  termsOfUseUrl: null,
6051
6076
  privacyPolicyUrl: null,
6052
6077
  amlPolicyUrl: null,
@@ -11855,87 +11880,106 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
11855
11880
  return !fromCoinSwapspaceDetails || !toCoinSwapspaceDetails || !fromCoinSwapspaceDetails.deposit || !toCoinSwapspaceDetails.withdrawal || !fromCoinSwapspaceDetails.isAvailable || !toCoinSwapspaceDetails.isAvailable ? {
11856
11881
  result: false,
11857
11882
  reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
11858
- } : Promise.resolve(axios.get(_this4._URL + "/api/v2/amounts?fromCurrency=" + fromCoinSwapspaceDetails.code + "&fromNetwork=" + fromCoinSwapspaceDetails.network + "&toNetwork=" + toCoinSwapspaceDetails.network + "&toCurrency=" + toCoinSwapspaceDetails.code + "&amount=" + amountCoins + "&estimated=false", _extends({
11859
- headers: _this4._headers
11860
- }, createRobustTimeoutSetupForAxios()))).then(function (response) {
11861
- var _response$data, _exchangesSupportingT;
11862
- var _exit;
11863
- function _temp4(_result) {
11864
- if (_exit) return _result;
11865
- var result = {
11883
+ } : Promise.resolve(_this4._fetchPartnersListIfNeeded()).then(function () {
11884
+ var bannedPartnersSet = new Set(bannedPartners);
11885
+ var whitelistedPartnersSet = whitelistedPartners == null ? null : new Set(whitelistedPartners);
11886
+ var finalAllowedSwapspacePartners = _this4._partners.map(function (partner) {
11887
+ return partner == null ? void 0 : partner.path;
11888
+ }).filter(function (partnerId) {
11889
+ return typeof partnerId === "string" && partnerId.length > 0 && !bannedPartnersSet.has(partnerId) && (whitelistedPartnersSet == null || whitelistedPartnersSet.has(partnerId));
11890
+ });
11891
+ if (_this4._partners.length > 0 && finalAllowedSwapspacePartners.length === 0) {
11892
+ Logger.log("No allowed swapspace partners to request after restrictions.", loggerSource);
11893
+ return {
11866
11894
  result: false,
11867
- reason: smallestMin && BigNumber(amountCoins).lt(smallestMin) ? SwapProvider.NO_SWAPS_REASONS.TOO_LOW : greatestMax && BigNumber(amountCoins).gt(greatestMax) ? SwapProvider.NO_SWAPS_REASONS.TOO_HIGH : SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED,
11868
- smallestMin: smallestMin,
11869
- greatestMax: greatestMax
11895
+ reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
11870
11896
  };
11871
- Logger.log("Returning result " + safeStringify(result), loggerSource);
11872
- return result;
11873
11897
  }
11874
- Logger.log("Retrieved " + (response == null || (_response$data = response.data) == null ? void 0 : _response$data.length) + " options", loggerSource);
11875
- var options = Array.isArray(response.data) ? response.data : [];
11898
+ /* Here we use not documented parameter 'estimated=false'. This parameter controls whether we want to use
11899
+ * cached rate values stored in swapspace cache. Their support says they store at most for 30 sec.
11900
+ * But we are better off using the most actual rates.
11901
+ */
11876
11902
  // TODO: [feature, high] remove if possible over-engineering about toAmount = 0 options treating as supported but not available. task_id=404ae30d9a7743238af3cc0d3bae9239
11877
- var exchangesSupportingThePairDespiteFixedOrFloating = options.filter(function (exchange) {
11878
- return (exchange == null ? void 0 : exchange.exists) && !bannedPartners.includes(exchange == null ? void 0 : exchange.partner) && (whitelistedPartners == null || whitelistedPartners.includes(exchange == null ? void 0 : exchange.partner)) && ((exchange == null ? void 0 : exchange.fixed) === false || (exchange == null ? void 0 : exchange.fixed) === true) && typeof exchange.toAmount === "number" && (typeof exchange.min === "number" && typeof exchange.max === "number" || exchange.toAmount > 0) && (exchange.min === 0 || exchange.max === 0 || exchange.max > exchange.min);
11903
+ // min=0 or max=0 means there is no limit for the partner
11904
+ var requestParams = new URLSearchParams({
11905
+ fromCurrency: fromCoinSwapspaceDetails.code,
11906
+ fromNetwork: fromCoinSwapspaceDetails.network,
11907
+ toNetwork: toCoinSwapspaceDetails.network,
11908
+ toCurrency: toCoinSwapspaceDetails.code,
11909
+ amount: amountCoins,
11910
+ estimated: "false"
11879
11911
  });
11880
- var exchangesSupportingThePair = exchangesSupportingThePairDespiteFixedOrFloating;
11881
- if (fixed != null) {
11882
- exchangesSupportingThePair = exchangesSupportingThePairDespiteFixedOrFloating.filter(function (option) {
11883
- return option.fixed === fixed;
11884
- });
11912
+ if ((finalAllowedSwapspacePartners == null ? void 0 : finalAllowedSwapspacePartners.length) > 0) {
11913
+ // Swapspace `partner` param filters estimation to specific comma-separated partner IDs.
11914
+ requestParams.set("partner", finalAllowedSwapspacePartners.join(","));
11885
11915
  }
11886
- Logger.log(((_exchangesSupportingT = exchangesSupportingThePair) == null ? void 0 : _exchangesSupportingT.length) + " of them have exist=true", loggerSource);
11887
- if (exchangesSupportingThePair.length === 0) {
11888
- if (exchangesSupportingThePairDespiteFixedOrFloating.length > 0 && fixed !== null) {
11916
+ return Promise.resolve(axios.get(_this4._URL + "/api/v2/amounts?" + requestParams.toString(), _extends({
11917
+ headers: _this4._headers
11918
+ }, createRobustTimeoutSetupForAxios()))).then(function (response) {
11919
+ var _response$data, _exchangesSupportingT;
11920
+ Logger.log("Retrieved " + (response == null || (_response$data = response.data) == null ? void 0 : _response$data.length) + " options", loggerSource);
11921
+ var options = Array.isArray(response.data) ? response.data : [];
11922
+ var exchangesSupportingThePairDespiteFixedOrFloating = options.filter(function (exchange) {
11923
+ return (exchange == null ? void 0 : exchange.exists) && !bannedPartners.includes(exchange == null ? void 0 : exchange.partner) && (whitelistedPartners == null || whitelistedPartners.includes(exchange == null ? void 0 : exchange.partner)) && ((exchange == null ? void 0 : exchange.fixed) === false || (exchange == null ? void 0 : exchange.fixed) === true) && typeof exchange.toAmount === "number" && (typeof exchange.min === "number" && typeof exchange.max === "number" || exchange.toAmount > 0) && (exchange.min === 0 || exchange.max === 0 || exchange.max > exchange.min);
11924
+ });
11925
+ var exchangesSupportingThePair = exchangesSupportingThePairDespiteFixedOrFloating;
11926
+ if (fixed != null) {
11927
+ exchangesSupportingThePair = exchangesSupportingThePairDespiteFixedOrFloating.filter(function (option) {
11928
+ return option.fixed === fixed;
11929
+ });
11930
+ }
11931
+ Logger.log(((_exchangesSupportingT = exchangesSupportingThePair) == null ? void 0 : _exchangesSupportingT.length) + " of them have exist=true", loggerSource);
11932
+ if (exchangesSupportingThePair.length === 0) {
11933
+ if (exchangesSupportingThePairDespiteFixedOrFloating.length > 0 && fixed !== null) {
11934
+ return {
11935
+ result: false,
11936
+ reason: fixed ? SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING : SwapProvider.NO_SWAPS_REASONS.NO_FLOATING_BUT_HAVE_FIXED
11937
+ };
11938
+ }
11889
11939
  return {
11890
11940
  result: false,
11891
- reason: fixed ? SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING : SwapProvider.NO_SWAPS_REASONS.NO_FLOATING_BUT_HAVE_FIXED
11941
+ reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
11892
11942
  };
11893
11943
  }
11894
- return {
11895
- result: false,
11896
- reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
11897
- };
11898
- }
11899
- var availableExchanges = exchangesSupportingThePair.filter(function (exchange) {
11900
- return typeof (exchange == null ? void 0 : exchange.toAmount) === "number" && exchange.toAmount > 0;
11901
- });
11902
- Logger.log("Available (having amountTo): " + safeStringify(availableExchanges), loggerSource);
11903
- // min=0 or max=0 means there is no limit for the partner
11904
- var smallestMin = null;
11905
- if (exchangesSupportingThePair.find(function (ex) {
11906
- return BigNumber(ex.min).isZero();
11907
- }) == null) {
11908
- smallestMin = exchangesSupportingThePair.reduce(function (prev, cur) {
11909
- if (typeof cur.min === "number" && (prev === null || BigNumber(cur.min).lt(prev))) return BigNumber(cur.min);
11910
- return prev;
11911
- }, null);
11912
- }
11913
- var greatestMax = null;
11914
- if (exchangesSupportingThePair.find(function (ex) {
11915
- return BigNumber(ex.max).isZero();
11916
- }) == null) {
11917
- greatestMax = exchangesSupportingThePair.reduce(function (prev, cur) {
11918
- if (typeof cur.max === "number" && (prev === null || BigNumber(cur.max).gt(prev))) return BigNumber(cur.max);
11919
- return prev;
11920
- }, null);
11921
- }
11922
- var extraCoinsToFitMinMax = "0";
11923
- if (typeof fromCoinToUsdRate === "string" && BigNumber(fromCoinToUsdRate).gt("0")) {
11924
- var extraUsdToFitMinMax = BigNumber("1"); // We correct the limits as the exact limit can fluctuate and cause failed swap creation
11925
- extraCoinsToFitMinMax = AmountUtils.trim(extraUsdToFitMinMax.div(fromCoinToUsdRate), fromCoin.digits);
11926
- }
11927
- if (smallestMin instanceof BigNumber) {
11928
- smallestMin = AmountUtils.trim(smallestMin.plus(extraCoinsToFitMinMax), fromCoin.digits);
11929
- }
11930
- if (greatestMax instanceof BigNumber) {
11931
- if (greatestMax > extraCoinsToFitMinMax) {
11932
- greatestMax = AmountUtils.trim(greatestMax.minus(extraCoinsToFitMinMax), fromCoin.digits);
11933
- } else {
11934
- greatestMax = "0";
11944
+ var availableExchanges = exchangesSupportingThePair.filter(function (exchange) {
11945
+ return typeof (exchange == null ? void 0 : exchange.toAmount) === "number" && exchange.toAmount > 0;
11946
+ });
11947
+ Logger.log("Available (having amountTo): " + safeStringify(availableExchanges), loggerSource);
11948
+ var smallestMin = null;
11949
+ if (exchangesSupportingThePair.find(function (ex) {
11950
+ return BigNumber(ex.min).isZero();
11951
+ }) == null) {
11952
+ smallestMin = exchangesSupportingThePair.reduce(function (prev, cur) {
11953
+ if (typeof cur.min === "number" && (prev === null || BigNumber(cur.min).lt(prev))) return BigNumber(cur.min);
11954
+ return prev;
11955
+ }, null);
11956
+ }
11957
+ var greatestMax = null;
11958
+ if (exchangesSupportingThePair.find(function (ex) {
11959
+ return BigNumber(ex.max).isZero();
11960
+ }) == null) {
11961
+ greatestMax = exchangesSupportingThePair.reduce(function (prev, cur) {
11962
+ if (typeof cur.max === "number" && (prev === null || BigNumber(cur.max).gt(prev))) return BigNumber(cur.max);
11963
+ return prev;
11964
+ }, null);
11965
+ }
11966
+ var extraCoinsToFitMinMax = "0";
11967
+ if (typeof fromCoinToUsdRate === "string" && BigNumber(fromCoinToUsdRate).gt("0")) {
11968
+ var extraUsdToFitMinMax = BigNumber("1"); // We correct the limits as the exact limit can fluctuate and cause failed swap creation
11969
+ extraCoinsToFitMinMax = AmountUtils.trim(extraUsdToFitMinMax.div(fromCoinToUsdRate), fromCoin.digits);
11970
+ }
11971
+ if (smallestMin instanceof BigNumber) {
11972
+ smallestMin = AmountUtils.trim(smallestMin.plus(extraCoinsToFitMinMax), fromCoin.digits);
11973
+ }
11974
+ if (greatestMax instanceof BigNumber) {
11975
+ if (greatestMax > extraCoinsToFitMinMax) {
11976
+ greatestMax = AmountUtils.trim(greatestMax.minus(extraCoinsToFitMinMax), fromCoin.digits);
11977
+ } else {
11978
+ greatestMax = "0";
11979
+ }
11935
11980
  }
11936
- }
11937
- var _temp3 = function () {
11938
11981
  if (availableExchanges.length) {
11982
+ var _bestOpt$duration;
11939
11983
  var sorted = availableExchanges.sort(function (op1, op2) {
11940
11984
  return op2.toAmount - op1.toAmount;
11941
11985
  });
@@ -11953,37 +11997,35 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
11953
11997
  }
11954
11998
  }
11955
11999
  var rate = bestOpt.toAmount && bestOpt.fromAmount ? BigNumber(bestOpt.toAmount).div(bestOpt.fromAmount) : null;
11956
- return Promise.resolve(_this4._fetchPartnersListIfNeeded()).then(function () {
11957
- var _bestOpt$duration;
11958
- var partner = _this4._partners.find(function (p) {
11959
- var _bestOpt$partner;
11960
- return (bestOpt == null || (_bestOpt$partner = bestOpt.partner) == null ? void 0 : _bestOpt$partner.toLowerCase()) === p.path.toLowerCase();
11961
- });
11962
- var isRefundAddressRequired = partner == null ? true : bestOpt.fixed ? partner.reqFixedRefund : partner.reqFloatRefund;
11963
- var _result$min$max$small = {
11964
- result: true,
11965
- min: min,
11966
- max: max,
11967
- smallestMin: smallestMin,
11968
- greatestMax: greatestMax,
11969
- rate: rate != null ? AmountUtils.trim(rate, _this4._maxRateDigits) : null,
11970
- durationMinutesRange: (_bestOpt$duration = bestOpt.duration) != null ? _bestOpt$duration : null,
11971
- fixed: bestOpt.fixed,
11972
- rawSwapData: bestOpt,
11973
- isRefundAddressRequired: !!isRefundAddressRequired
11974
- };
11975
- _exit = 1;
11976
- return _result$min$max$small;
12000
+ var partner = _this4._partners.find(function (p) {
12001
+ var _bestOpt$partner;
12002
+ return (bestOpt == null || (_bestOpt$partner = bestOpt.partner) == null ? void 0 : _bestOpt$partner.toLowerCase()) === p.path.toLowerCase();
11977
12003
  });
12004
+ var isRefundAddressRequired = partner == null ? true : bestOpt.fixed ? partner.reqFixedRefund : partner.reqFloatRefund;
12005
+ return {
12006
+ result: true,
12007
+ min: min,
12008
+ max: max,
12009
+ smallestMin: smallestMin,
12010
+ greatestMax: greatestMax,
12011
+ rate: rate != null ? AmountUtils.trim(rate, _this4._maxRateDigits) : null,
12012
+ durationMinutesRange: (_bestOpt$duration = bestOpt.duration) != null ? _bestOpt$duration : null,
12013
+ fixed: bestOpt.fixed,
12014
+ rawSwapData: bestOpt,
12015
+ isRefundAddressRequired: !!isRefundAddressRequired
12016
+ };
11978
12017
  }
11979
- }();
11980
- return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
12018
+ var result = {
12019
+ result: false,
12020
+ reason: smallestMin && BigNumber(amountCoins).lt(smallestMin) ? SwapProvider.NO_SWAPS_REASONS.TOO_LOW : greatestMax && BigNumber(amountCoins).gt(greatestMax) ? SwapProvider.NO_SWAPS_REASONS.TOO_HIGH : SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED,
12021
+ smallestMin: smallestMin,
12022
+ greatestMax: greatestMax
12023
+ };
12024
+ Logger.log("Returning result " + safeStringify(result), loggerSource);
12025
+ return result;
12026
+ });
11981
12027
  });
11982
12028
  });
11983
- /* Here we use not documented parameter 'estimated=false'. This parameter controls whether we want to use
11984
- * cached rate values stored in swapspace cache. Their support says they store at most for 30 sec.
11985
- * But we are better off using the most actual rates.
11986
- */
11987
12029
  }, function (e) {
11988
12030
  var _e$response;
11989
12031
  if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
@@ -15568,10 +15610,10 @@ var ChangeHeroSwapProvider = /*#__PURE__*/function (_SwapProvider) {
15568
15610
  }
15569
15611
  };
15570
15612
  return Promise.resolve(axios.post(_this3._URL, amountRequest, _extends({}, _this3.axiosRequestPreset, createRobustTimeoutSetupForAxios()))).then(function (amountHttp) {
15571
- var _amountPayload$result;
15613
+ var _amountPayload$result, _amountPayload$result2;
15572
15614
  var amountPayload = _this3._assertValidJsonRpcPayload(amountHttp == null ? void 0 : amountHttp.data, "getExchangeAmount");
15573
15615
  var receiveAmount = new BigNumber$1((_amountPayload$result = amountPayload == null ? void 0 : amountPayload.result) != null ? _amountPayload$result : "0");
15574
- if (!receiveAmount.isFinite() || receiveAmount.lte(0)) {
15616
+ if (!/^\d+(\.\d+)?$/.test(String((_amountPayload$result2 = amountPayload == null ? void 0 : amountPayload.result) != null ? _amountPayload$result2 : "").trim()) || !receiveAmount.isFinite() || receiveAmount.lte(0)) {
15575
15617
  throw new Error("ChangeHero.getExchangeAmount returned non-positive or invalid amount: " + safeStringify(amountPayload));
15576
15618
  }
15577
15619
  var rate = receiveAmount.div(requestedAmount);
@@ -16395,9 +16437,13 @@ var PublicSwapService = /*#__PURE__*/function () {
16395
16437
  fiatMax: null,
16396
16438
  rate: undefined
16397
16439
  } : Promise.resolve(provider.getSwapInfo(fromCoin, toCoin, amountCoins, fixed, coinUsdtRate, amountIsToReceive, bannedPartners, whitelistedPartners)).then(function (details) {
16398
- var _result$swapCreationI, _result$swapCreationI2;
16440
+ var _details$rate, _result$swapCreationI, _result$swapCreationI2;
16399
16441
  // eslint-disable-next-line no-console
16400
16442
  console.log("getSwapInfo raw result: ", details, loggerSource);
16443
+ var rateBigNumber = new BigNumber((_details$rate = details == null ? void 0 : details.rate) != null ? _details$rate : "NaN");
16444
+ if ((details == null ? void 0 : details.result) === true && (!rateBigNumber.isFinite() || rateBigNumber.lte(0))) {
16445
+ throw new Error("Invalid rate in swap info from " + provider.id + ": " + safeStringify(details == null ? void 0 : details.rate));
16446
+ }
16401
16447
  var min = details.smallestMin != null && BigNumber(details.smallestMin).gt("0") ? details.smallestMin : null;
16402
16448
  var max = details.greatestMax != null && BigNumber(details.greatestMax).gt("0") ? details.greatestMax : null;
16403
16449
  var fiatMin = null,
@@ -16411,7 +16457,7 @@ var PublicSwapService = /*#__PURE__*/function () {
16411
16457
  }
16412
16458
  }
16413
16459
  var composeFailResult = function composeFailResult(reason) {
16414
- var _details$rate;
16460
+ var _details$rate2;
16415
16461
  return {
16416
16462
  result: false,
16417
16463
  reason: reason,
@@ -16419,7 +16465,7 @@ var PublicSwapService = /*#__PURE__*/function () {
16419
16465
  fiatMin: fiatMin,
16420
16466
  max: max != null ? max : null,
16421
16467
  fiatMax: fiatMax,
16422
- rate: (_details$rate = details.rate) != null ? _details$rate : null
16468
+ rate: (_details$rate2 = details.rate) != null ? _details$rate2 : null
16423
16469
  };
16424
16470
  };
16425
16471
  if (!details.result) {