@rabbitio/ui-kit 1.0.0-beta.110 → 1.0.0-beta.112

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 (212) hide show
  1. package/.env +1 -1
  2. package/.env.example +1 -1
  3. package/coverage/clover.xml +1411 -1410
  4. package/coverage/coverage-final.json +18 -18
  5. package/coverage/index.html +17 -17
  6. package/coverage/ui-kit/index.html +1 -1
  7. package/coverage/ui-kit/index.js.html +1 -1
  8. package/coverage/ui-kit/src/common-apis/adapters/analyticsAdapters/googleAnalyticsAdapter.js.html +1 -1
  9. package/coverage/ui-kit/src/common-apis/adapters/analyticsAdapters/index.html +1 -1
  10. package/coverage/ui-kit/src/common-apis/adapters/analyticsAdapters/metrikaAdapter.js.html +1 -1
  11. package/coverage/ui-kit/src/common-apis/adapters/analyticsAdapters/mixpanelAdapter.js.html +1 -1
  12. package/coverage/ui-kit/src/common-apis/adapters/axiosAdapter.js.html +1 -1
  13. package/coverage/ui-kit/src/common-apis/adapters/index.html +1 -1
  14. package/coverage/ui-kit/src/common-apis/adapters/qrUtils.js.html +1 -1
  15. package/coverage/ui-kit/src/common-apis/external-apis/apiGroups.js.html +1 -1
  16. package/coverage/ui-kit/src/common-apis/external-apis/emailAPI.js.html +1 -1
  17. package/coverage/ui-kit/src/common-apis/external-apis/index.html +1 -1
  18. package/coverage/ui-kit/src/common-apis/external-apis/ipAddressProviders.js.html +1 -1
  19. package/coverage/ui-kit/src/common-apis/globalConstants.jsx.html +1 -1
  20. package/coverage/ui-kit/src/common-apis/index.html +1 -1
  21. package/coverage/ui-kit/src/common-apis/models/blockchain.js.html +4 -4
  22. package/coverage/ui-kit/src/common-apis/models/coin.js.html +221 -221
  23. package/coverage/ui-kit/src/common-apis/models/index.html +1 -1
  24. package/coverage/ui-kit/src/common-apis/models/protocol.js.html +3 -3
  25. package/coverage/ui-kit/src/common-apis/services/fiatCurrenciesService.js.html +1 -1
  26. package/coverage/ui-kit/src/common-apis/services/index.html +1 -1
  27. package/coverage/ui-kit/src/common-apis/utils/amountUtils.js.html +21 -21
  28. package/coverage/ui-kit/src/common-apis/utils/cache.js.html +6 -6
  29. package/coverage/ui-kit/src/common-apis/utils/errorUtils.js.html +13 -13
  30. package/coverage/ui-kit/src/common-apis/utils/index.html +1 -1
  31. package/coverage/ui-kit/src/common-apis/utils/logging/index.html +1 -1
  32. package/coverage/ui-kit/src/common-apis/utils/logging/logger.js.html +22 -22
  33. package/coverage/ui-kit/src/common-apis/utils/logging/logsStorage.js.html +3 -3
  34. package/coverage/ui-kit/src/common-apis/utils/postponeExecution.js.html +1 -1
  35. package/coverage/ui-kit/src/common-apis/utils/rabbitTicker.js.html +10 -10
  36. package/coverage/ui-kit/src/common-apis/utils/safeStringify.js.html +27 -27
  37. package/coverage/ui-kit/src/index.html +1 -1
  38. package/coverage/ui-kit/src/index.js.html +1 -1
  39. package/coverage/ui-kit/src/robust-api-caller/cacheAndConcurrentRequestsResolver.js.html +1 -1
  40. package/coverage/ui-kit/src/robust-api-caller/cachedRobustExternalApiCallerService.js.html +1 -1
  41. package/coverage/ui-kit/src/robust-api-caller/cancelProcessing.js.html +1 -1
  42. package/coverage/ui-kit/src/robust-api-caller/concurrentCalculationsMetadataHolder.js.html +1 -1
  43. package/coverage/ui-kit/src/robust-api-caller/externalApiProvider.js.html +1 -1
  44. package/coverage/ui-kit/src/robust-api-caller/externalServicesStatsCollector.js.html +1 -1
  45. package/coverage/ui-kit/src/robust-api-caller/index.html +1 -1
  46. package/coverage/ui-kit/src/robust-api-caller/robustExternalAPICallerService.js.html +1 -1
  47. package/coverage/ui-kit/src/swaps-lib/external-apis/exolixSwapProvider.js.html +66 -45
  48. package/coverage/ui-kit/src/swaps-lib/external-apis/goexmeSwapProvider.js.html +521 -545
  49. package/coverage/ui-kit/src/swaps-lib/external-apis/index.html +27 -27
  50. package/coverage/ui-kit/src/swaps-lib/external-apis/letsExchangeSwapProvider.js.html +1 -1
  51. package/coverage/ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +328 -328
  52. package/coverage/ui-kit/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +76 -52
  53. package/coverage/ui-kit/src/swaps-lib/external-apis/utils.js.html +14 -14
  54. package/coverage/ui-kit/src/swaps-lib/models/baseSwapCreationInfo.js.html +1 -1
  55. package/coverage/ui-kit/src/swaps-lib/models/existingSwap.js.html +141 -141
  56. package/coverage/ui-kit/src/swaps-lib/models/existingSwapWithFiatData.js.html +1 -1
  57. package/coverage/ui-kit/src/swaps-lib/models/index.html +1 -1
  58. package/coverage/ui-kit/src/swaps-lib/models/partner.js.html +1 -1
  59. package/coverage/ui-kit/src/swaps-lib/models/swapProviderCoinInfo.js.html +73 -73
  60. package/coverage/ui-kit/src/swaps-lib/services/index.html +1 -1
  61. package/coverage/ui-kit/src/swaps-lib/services/publicSwapService.js.html +1 -1
  62. package/coverage/ui-kit/src/swaps-lib/utils/index.html +1 -1
  63. package/coverage/ui-kit/src/swaps-lib/utils/swapUtils.js.html +1 -1
  64. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/arrowIcon.jsx.html +1 -1
  65. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/arrowTosca.jsx.html +1 -1
  66. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/arrowWhite.jsx.html +1 -1
  67. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/darkRectangle.jsx.html +1 -1
  68. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/determinedError.jsx.html +1 -1
  69. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/failedValidationIcon.jsx.html +1 -1
  70. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/index.html +1 -1
  71. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/infoIcon.jsx.html +1 -1
  72. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/messageIcon.jsx.html +1 -1
  73. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/noticeQuestionIcon.jsx.html +1 -1
  74. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/successfulValidationIcon.jsx.html +1 -1
  75. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/supportDialogImage.jsx.html +1 -1
  76. package/coverage/ui-kit/src/ui-kit/assets/wrappedImages/walletIcon.jsx.html +1 -1
  77. package/coverage/ui-kit/src/ui-kit/components/atoms/AssetIcon/AssetIcon.jsx.html +1 -1
  78. package/coverage/ui-kit/src/ui-kit/components/atoms/AssetIcon/index.html +1 -1
  79. package/coverage/ui-kit/src/ui-kit/components/atoms/AssetSelection/AssetSelection.jsx.html +1 -1
  80. package/coverage/ui-kit/src/ui-kit/components/atoms/AssetSelection/index.html +1 -1
  81. package/coverage/ui-kit/src/ui-kit/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +1 -1
  82. package/coverage/ui-kit/src/ui-kit/components/atoms/BackgroundTitle/index.html +1 -1
  83. package/coverage/ui-kit/src/ui-kit/components/atoms/InformationMessage/InformationMessage.jsx.html +1 -1
  84. package/coverage/ui-kit/src/ui-kit/components/atoms/InformationMessage/index.html +1 -1
  85. package/coverage/ui-kit/src/ui-kit/components/atoms/Input/Input.jsx.html +1 -1
  86. package/coverage/ui-kit/src/ui-kit/components/atoms/Input/index.html +1 -1
  87. package/coverage/ui-kit/src/ui-kit/components/atoms/LoadingDots/LoadingDots.jsx.html +1 -1
  88. package/coverage/ui-kit/src/ui-kit/components/atoms/LoadingDots/index.html +1 -1
  89. package/coverage/ui-kit/src/ui-kit/components/atoms/NoticeIcon/NoticeIcon.jsx.html +1 -1
  90. package/coverage/ui-kit/src/ui-kit/components/atoms/NoticeIcon/index.html +1 -1
  91. package/coverage/ui-kit/src/ui-kit/components/atoms/QrCode/QrCode.jsx.html +7 -25
  92. package/coverage/ui-kit/src/ui-kit/components/atoms/QrCode/index.html +5 -5
  93. package/coverage/ui-kit/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx.html +1 -1
  94. package/coverage/ui-kit/src/ui-kit/components/atoms/RateSelector/index.html +1 -1
  95. package/coverage/ui-kit/src/ui-kit/components/atoms/SupportChat/SupportChat.jsx.html +1 -1
  96. package/coverage/ui-kit/src/ui-kit/components/atoms/SupportChat/index.html +1 -1
  97. package/coverage/ui-kit/src/ui-kit/components/atoms/Textarea/Textarea.jsx.html +1 -1
  98. package/coverage/ui-kit/src/ui-kit/components/atoms/Textarea/index.html +1 -1
  99. package/coverage/ui-kit/src/ui-kit/components/atoms/TitleBox/TitleBox.jsx.html +1 -1
  100. package/coverage/ui-kit/src/ui-kit/components/atoms/TitleBox/index.html +1 -1
  101. package/coverage/ui-kit/src/ui-kit/components/atoms/Tooltip/Tooltip.jsx.html +1 -1
  102. package/coverage/ui-kit/src/ui-kit/components/atoms/Tooltip/index.html +1 -1
  103. package/coverage/ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +1 -1
  104. package/coverage/ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/index.html +1 -1
  105. package/coverage/ui-kit/src/ui-kit/components/atoms/Validation/Validation.jsx.html +1 -1
  106. package/coverage/ui-kit/src/ui-kit/components/atoms/Validation/index.html +1 -1
  107. package/coverage/ui-kit/src/ui-kit/components/atoms/buttons/Button/Button.jsx.html +1 -1
  108. package/coverage/ui-kit/src/ui-kit/components/atoms/buttons/Button/index.html +1 -1
  109. package/coverage/ui-kit/src/ui-kit/components/atoms/buttons/Close/Close.jsx.html +1 -1
  110. package/coverage/ui-kit/src/ui-kit/components/atoms/buttons/Close/index.html +1 -1
  111. package/coverage/ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/LinkButton.jsx.html +1 -1
  112. package/coverage/ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/index.html +1 -1
  113. package/coverage/ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +1 -1
  114. package/coverage/ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +1 -1
  115. package/coverage/ui-kit/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx.html +1 -1
  116. package/coverage/ui-kit/src/ui-kit/components/molecules/AmountInput/index.html +1 -1
  117. package/coverage/ui-kit/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx.html +1 -1
  118. package/coverage/ui-kit/src/ui-kit/components/molecules/CoinPicker/index.html +1 -1
  119. package/coverage/ui-kit/src/ui-kit/components/molecules/ColoredNotice/ColoredNotice.jsx.html +1 -1
  120. package/coverage/ui-kit/src/ui-kit/components/molecules/ColoredNotice/index.html +1 -1
  121. package/coverage/ui-kit/src/ui-kit/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +1 -1
  122. package/coverage/ui-kit/src/ui-kit/components/molecules/LineWithIconLink/index.html +1 -1
  123. package/coverage/ui-kit/src/ui-kit/components/molecules/LogoCarousel/LogoCarousel.jsx.html +1 -1
  124. package/coverage/ui-kit/src/ui-kit/components/molecules/LogoCarousel/index.html +1 -1
  125. package/coverage/ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/SearchableCoinsList.jsx.html +1 -1
  126. package/coverage/ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/index.html +1 -1
  127. package/coverage/ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +1 -1
  128. package/coverage/ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +1 -1
  129. package/coverage/ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +1 -1
  130. package/coverage/ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/index.html +1 -1
  131. package/coverage/ui-kit/src/ui-kit/components/organisms/Dialog/Dialog.jsx.html +1 -1
  132. package/coverage/ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +1 -1
  133. package/coverage/ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +1 -1
  134. package/coverage/ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +1 -1
  135. package/coverage/ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +1 -1
  136. package/coverage/ui-kit/src/ui-kit/components/organisms/Dialog/index.html +1 -1
  137. package/coverage/ui-kit/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx.html +1 -1
  138. package/coverage/ui-kit/src/ui-kit/components/organisms/SwapForm/index.html +1 -1
  139. package/coverage/ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/WaitlistSubscription.jsx.html +1 -1
  140. package/coverage/ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/index.html +1 -1
  141. package/coverage/ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +1 -1
  142. package/coverage/ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +1 -1
  143. package/coverage/ui-kit/src/ui-kit/hooks/index.html +1 -1
  144. package/coverage/ui-kit/src/ui-kit/hooks/useCallHandlingErrors.js.html +1 -1
  145. package/coverage/ui-kit/src/ui-kit/hooks/useIsHydrated.js.html +1 -1
  146. package/coverage/ui-kit/src/ui-kit/hooks/useReferredState.js.html +1 -1
  147. package/coverage/ui-kit/src/ui-kit/utils/index.html +1 -1
  148. package/coverage/ui-kit/src/ui-kit/utils/inputValueProviders.js.html +1 -1
  149. package/coverage/ui-kit/src/ui-kit/utils/searchCoins.js.html +1 -1
  150. package/coverage/ui-kit/src/ui-kit/utils/textUtils.js.html +1 -1
  151. package/coverage/ui-kit/src/ui-kit/utils/uiUtils.js.html +1 -1
  152. package/coverage/ui-kit/src/ui-kit/utils/urlQueryUtils.js.html +1 -1
  153. package/coverage/ui-kit/stories/atoms/BackgroundTitle.stories.jsx.html +1 -1
  154. package/coverage/ui-kit/stories/atoms/LinesOfText.stories.jsx.html +1 -1
  155. package/coverage/ui-kit/stories/atoms/LoadingDots.stories.jsx.html +1 -1
  156. package/coverage/ui-kit/stories/atoms/QrCode.stories.jsx.html +1 -1
  157. package/coverage/ui-kit/stories/atoms/RateSelector.stories.jsx.html +1 -1
  158. package/coverage/ui-kit/stories/atoms/Validation.stories.jsx.html +1 -1
  159. package/coverage/ui-kit/stories/atoms/buttons/Button.stories.jsx.html +1 -1
  160. package/coverage/ui-kit/stories/atoms/buttons/Close.stories.jsx.html +1 -1
  161. package/coverage/ui-kit/stories/atoms/buttons/LinkButton.stories.jsx.html +1 -1
  162. package/coverage/ui-kit/stories/atoms/buttons/index.html +1 -1
  163. package/coverage/ui-kit/stories/atoms/index.html +1 -1
  164. package/coverage/ui-kit/stories/molecules/AmountInput.stories.jsx.html +1 -1
  165. package/coverage/ui-kit/stories/molecules/CoinPicker.stories.jsx.html +1 -1
  166. package/coverage/ui-kit/stories/molecules/ColoredNotice.stories.jsx.html +1 -1
  167. package/coverage/ui-kit/stories/molecules/LineWithIconLink.stories.jsx.html +1 -1
  168. package/coverage/ui-kit/stories/molecules/LogoCarousel.stories.jsx.html +1 -1
  169. package/coverage/ui-kit/stories/molecules/TitledLineWithIconLink.stories.jsx.html +1 -1
  170. package/coverage/ui-kit/stories/molecules/index.html +1 -1
  171. package/coverage/ui-kit/stories/organisms/Dialog/Dialog.stories.jsx.html +1 -1
  172. package/coverage/ui-kit/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +1 -1
  173. package/coverage/ui-kit/stories/organisms/Dialog/DialogButtons/index.html +1 -1
  174. package/coverage/ui-kit/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +1 -1
  175. package/coverage/ui-kit/stories/organisms/Dialog/DialogStep/index.html +1 -1
  176. package/coverage/ui-kit/stories/organisms/Dialog/index.html +1 -1
  177. package/coverage/ui-kit/stories/organisms/WaitlistSubscription.stories.jsx.html +1 -1
  178. package/coverage/ui-kit/stories/organisms/index.html +1 -1
  179. package/coverage/ui-kit/stories/stubs/coins.jsx.html +1 -1
  180. package/coverage/ui-kit/stories/stubs/exampleContent.jsx.html +1 -1
  181. package/coverage/ui-kit/stories/stubs/index.html +1 -1
  182. package/coverage/ui-kit/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +1 -1
  183. package/coverage/ui-kit/stories/templates/index.html +1 -1
  184. package/dist/index.cjs +94 -92
  185. package/dist/index.cjs.map +1 -1
  186. package/dist/index.css +4 -12
  187. package/dist/index.css.map +1 -1
  188. package/dist/index.modern.js +82 -78
  189. package/dist/index.modern.js.map +1 -1
  190. package/dist/index.module.js +94 -92
  191. package/dist/index.module.js.map +1 -1
  192. package/dist/index.umd.js +94 -92
  193. package/dist/index.umd.js.map +1 -1
  194. package/package.json +1 -1
  195. package/src/common-apis/tests/integration/external-apis/ipAddressProviders/getClientIpAddress.test.js +9 -5
  196. package/src/swaps-lib/external-apis/exolixSwapProvider.js +46 -39
  197. package/src/swaps-lib/external-apis/goexmeSwapProvider.js +29 -37
  198. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +54 -46
  199. package/src/swaps-lib/models/existingSwap.js +1 -1
  200. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/_convertCurrencyMeta.test.js +80 -0
  201. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/_ensurePairsLoaded.test.js +77 -0
  202. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +50 -123
  203. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/createSwap.test.js +184 -72
  204. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/getExistingSwapsDetailsAndStatus.test.js +151 -0
  205. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/getSwapInfo.test.js +155 -104
  206. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/helpers.test.js +26 -0
  207. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/integration/PairSupport.int.test.js +57 -57
  208. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/integration/_fetchSupportedCurrenciesIfNeeded.int.test.js +289 -126
  209. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/integration/createSwap.int.test.js +320 -225
  210. package/src/swaps-lib/test/external-apis/goexmeSwapProvider/integration/getSwapInfo.int.test.js +138 -127
  211. package/src/ui-kit/components/atoms/QrCode/QrCode.jsx +2 -8
  212. package/src/ui-kit/components/atoms/QrCode/qr-code.module.scss +4 -11
package/dist/index.cjs CHANGED
@@ -5880,7 +5880,7 @@ var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingStrin
5880
5880
  }
5881
5881
  };
5882
5882
 
5883
- var s$8 = {"qr-code":"_VZ0dT","fill":"_hFE1l"};
5883
+ var s$8 = {"qr-code":"_VZ0dT"};
5884
5884
 
5885
5885
  /**
5886
5886
  * QrCode component renders a QR code for a provided crypto address.
@@ -5888,7 +5888,6 @@ var s$8 = {"qr-code":"_VZ0dT","fill":"_hFE1l"};
5888
5888
  * @component
5889
5889
  * @param {Object} props - The props for the component.
5890
5890
  * @param {string} props.address - The crypto address to generate the QR code for.
5891
- * @param {boolean} [props.fill=false] - If true, applies additional CSS class to fill the container.
5892
5891
  *
5893
5892
  * @returns {JSX.Element} A div containing the generated QR code.
5894
5893
  */
@@ -5905,9 +5904,7 @@ function _catch$f(body, recover) {
5905
5904
  return result;
5906
5905
  }
5907
5906
  var QrCode = function QrCode(_ref) {
5908
- var address = _ref.address,
5909
- _ref$fill = _ref.fill,
5910
- fill = _ref$fill === void 0 ? false : _ref$fill;
5907
+ var address = _ref.address;
5911
5908
  var canvasRef = React.useRef();
5912
5909
  React.useEffect(function () {
5913
5910
  (function () {
@@ -5930,16 +5927,12 @@ var QrCode = function QrCode(_ref) {
5930
5927
  })();
5931
5928
  }, [address]);
5932
5929
  return /*#__PURE__*/React__default["default"].createElement("div", {
5933
- className: s$8["qr-code"] + (fill ? " " + s$8["fill"] : ""),
5930
+ className: s$8["qr-code"],
5934
5931
  ref: canvasRef
5935
5932
  });
5936
5933
  };
5937
5934
  QrCode.propTypes = {
5938
- address: PropTypes.string.isRequired,
5939
- fill: PropTypes.bool
5940
- };
5941
- QrCode.defaultProps = {
5942
- fill: false
5935
+ address: PropTypes.string.isRequired
5943
5936
  };
5944
5937
 
5945
5938
  var s$7 = {"first-line-text":"_IGz2I","wrap":"_eKd8P","break":"_mT5i4","full-text":"_PVKxC","shorted":"_wB5qV","horizontal":"_lqJz-","line":"_MGRy0","second-line-text":"_hdF64"};
@@ -10681,7 +10674,7 @@ var ExistingSwap = /** @type {string} The ID of the swap. */
10681
10674
  * @param {number} expiresAt - The timestamp when the swap expires.
10682
10675
  * @param {number|null} confirmations - The number of confirmations the swap has received, or null.
10683
10676
  * @param {string} rate - The exchange rate for the swap.
10684
- * @param {null} fixed - Indicates if the rate is fixed.
10677
+ * @param {boolean} fixed - Indicates if the rate is fixed.
10685
10678
  * @param {string|null} refundAddress - The address to refund to in case of failure, or null.
10686
10679
  * @param {string} payToAddress - The address to send the funds to.
10687
10680
  * @param {Coin} fromCoin - The coin that is being swapped from.
@@ -12050,32 +12043,43 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
12050
12043
  return getNotFailingOn404(swapId);
12051
12044
  }))).then(function (responses) {
12052
12045
  var wo404 = responses.flat();
12053
- Logger.log("All swaps RAW: " + JSON.stringify(wo404.map(function (r) {
12046
+ Logger.log("All swaps RAW swapspace: " + JSON.stringify(wo404.map(function (r) {
12054
12047
  return r.data;
12055
12048
  })), loggerSource);
12056
12049
  var swaps = wo404.map(function (r) {
12057
12050
  return r.data;
12058
12051
  }).map(function (swap, index) {
12059
- var _this6$_supportedCoin, _this6$_supportedCoin2, _swap$blockExplorerTr, _swap$from$extraId, _swap$to$extraId, _swap$refundExtraId;
12060
- var fromCoin = (_this6$_supportedCoin = _this6._supportedCoins.find(function (i) {
12061
- return i.code === swap.from.code && i.network === swap.from.network;
12062
- })) == null ? void 0 : _this6$_supportedCoin.coin;
12063
- var toCoin = (_this6$_supportedCoin2 = _this6._supportedCoins.find(function (i) {
12064
- return i.code === swap.to.code && i.network === swap.to.network;
12065
- })) == null ? void 0 : _this6$_supportedCoin2.coin;
12066
- if (!fromCoin || !toCoin) {
12067
- return []; // We skip swaps with not supported coins for now
12052
+ try {
12053
+ var _this6$_supportedCoin, _this6$_supportedCoin2, _this6$_supportedCoin3, _this6$_supportedCoin4, _swap$blockExplorerTr, _swap$from$extraId, _swap$to$extraId, _swap$refundExtraId;
12054
+ var fromCoin = (_this6$_supportedCoin = (_this6$_supportedCoin2 = _this6._supportedCoins.find(function (i) {
12055
+ return i.code === swap.from.code && i.network === swap.from.network;
12056
+ })) == null ? void 0 : _this6$_supportedCoin2.coin) != null ? _this6$_supportedCoin : {
12057
+ ticker: toRabbitTicker(swap.from.code, swap.from.network),
12058
+ digits: 8
12059
+ };
12060
+ var toCoin = (_this6$_supportedCoin3 = (_this6$_supportedCoin4 = _this6._supportedCoins.find(function (i) {
12061
+ return i.code === swap.to.code && i.network === swap.to.network;
12062
+ })) == null ? void 0 : _this6$_supportedCoin4.coin) != null ? _this6$_supportedCoin3 : {
12063
+ ticker: toRabbitTicker(swap.to.code, swap.to.network),
12064
+ digits: 8
12065
+ };
12066
+ if (!fromCoin || !toCoin) {
12067
+ return []; // We skip swaps with not supported coins for now
12068
+ }
12069
+ var toUtcTimestamp = function toUtcTimestamp(timeStr) {
12070
+ return Date.parse(timeStr.match(/.+[Zz]$/) ? timeStr : timeStr + "Z");
12071
+ };
12072
+ var expiresAt = toUtcTimestamp(swap.timestamps.expiresAt);
12073
+ var isExpiredByTime = expiresAt < Date.now();
12074
+ var status = _this6._mapSwapspaceStatusToRabbitStatus(swap.status, isExpiredByTime);
12075
+ var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
12076
+ var addressToSendCoinsToSwapspace = swap.from.address;
12077
+ var toUrl = ((_swap$blockExplorerTr = swap.blockExplorerTransactionUrl.to) != null ? _swap$blockExplorerTr : "").replace(/from=swapspace&?/g, "").replaceAll(/&&+/g, "&").replace("?&", "?").replace(/&$/, "").replace(/\?$/, "");
12078
+ return new ExistingSwap(swapIds[index], status, toUtcTimestamp(swap.timestamps.createdAt), expiresAt, swap.confirmations, AmountUtils.trim(swap.rate, _this6._maxRateDigits), swap.fixed, swap.refundAddress, addressToSendCoinsToSwapspace, fromCoin, AmountUtils.trim(swap.from.amount, fromCoin.digits), swap.from.transactionHash, swap.blockExplorerTransactionUrl.from, toCoin, AmountUtils.trim(swap.to.amount, toDigits), swap.to.transactionHash, toUrl, swap.to.address, swap.partner, (_swap$from$extraId = swap.from.extraId) != null ? _swap$from$extraId : null, (_swap$to$extraId = swap.to.extraId) != null ? _swap$to$extraId : null, (_swap$refundExtraId = swap.refundExtraId) != null ? _swap$refundExtraId : null);
12079
+ } catch (e) {
12080
+ console.log("Failed to parse loaded swap", e);
12081
+ return [];
12068
12082
  }
12069
- var toUtcTimestamp = function toUtcTimestamp(timeStr) {
12070
- return Date.parse(timeStr.match(/.+[Zz]$/) ? timeStr : timeStr + "Z");
12071
- };
12072
- var expiresAt = toUtcTimestamp(swap.timestamps.expiresAt);
12073
- var isExpiredByTime = expiresAt < Date.now();
12074
- var status = _this6._mapSwapspaceStatusToRabbitStatus(swap.status, isExpiredByTime);
12075
- var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
12076
- var addressToSendCoinsToSwapspace = swap.from.address;
12077
- var toUrl = ((_swap$blockExplorerTr = swap.blockExplorerTransactionUrl.to) != null ? _swap$blockExplorerTr : "").replace(/from=swapspace&?/g, "").replaceAll(/&&+/g, "&").replace("?&", "?").replace(/&$/, "").replace(/\?$/, "");
12078
- return new ExistingSwap(swapIds[index], status, toUtcTimestamp(swap.timestamps.createdAt), expiresAt, swap.confirmations, AmountUtils.trim(swap.rate, _this6._maxRateDigits), swap.fixed, swap.refundAddress, addressToSendCoinsToSwapspace, fromCoin, AmountUtils.trim(swap.from.amount, fromCoin.digits), swap.from.transactionHash, swap.blockExplorerTransactionUrl.from, toCoin, AmountUtils.trim(swap.to.amount, toDigits), swap.to.transactionHash, toUrl, swap.to.address, swap.partner, (_swap$from$extraId = swap.from.extraId) != null ? _swap$from$extraId : null, (_swap$to$extraId = swap.to.extraId) != null ? _swap$to$extraId : null, (_swap$refundExtraId = swap.refundExtraId) != null ? _swap$refundExtraId : null);
12079
12083
  }).flat();
12080
12084
  Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
12081
12085
  return {
@@ -13104,25 +13108,36 @@ var ExolixSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13104
13108
  var swaps = fetchedSwaps.map(function (r) {
13105
13109
  return r.data;
13106
13110
  }).map(function (swap, index) {
13107
- var _this5$_supportedCoin, _this5$_supportedCoin2, _swap$depositExtraId, _swap$withdrawalExtra, _swap$refundExtraId;
13108
- var fromCoin = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
13109
- return i.code === swap.coinFrom.coinCode && i.network === swap.coinFrom.network;
13110
- })) == null ? void 0 : _this5$_supportedCoin.coin;
13111
- var toCoin = (_this5$_supportedCoin2 = _this5._supportedCoins.find(function (i) {
13112
- return i.code === swap.coinTo.coinCode && i.network === swap.coinTo.network;
13113
- })) == null ? void 0 : _this5$_supportedCoin2.coin;
13114
- if (!fromCoin || !toCoin) {
13115
- return []; // We skip swaps with not supported coins for now
13111
+ try {
13112
+ var _this5$_supportedCoin, _this5$_supportedCoin2, _this5$_supportedCoin3, _this5$_supportedCoin4, _swap$depositExtraId, _swap$withdrawalExtra, _swap$refundExtraId;
13113
+ var fromCoin = (_this5$_supportedCoin = (_this5$_supportedCoin2 = _this5._supportedCoins.find(function (i) {
13114
+ return i.code === swap.coinFrom.coinCode && i.network === swap.coinFrom.network;
13115
+ })) == null ? void 0 : _this5$_supportedCoin2.coin) != null ? _this5$_supportedCoin : {
13116
+ ticker: toRabbitTicker(swap.coinFrom.coinCode, swap.coinFrom.network),
13117
+ digits: 8
13118
+ };
13119
+ var toCoin = (_this5$_supportedCoin3 = (_this5$_supportedCoin4 = _this5._supportedCoins.find(function (i) {
13120
+ return i.code === swap.coinTo.coinCode && i.network === swap.coinTo.network;
13121
+ })) == null ? void 0 : _this5$_supportedCoin4.coin) != null ? _this5$_supportedCoin3 : {
13122
+ ticker: toRabbitTicker(swap.coinTo.coinCode, swap.coinTo.network),
13123
+ digits: 8
13124
+ };
13125
+ if (!fromCoin || !toCoin) {
13126
+ return []; // We skip swaps with not supported coins for now
13127
+ }
13128
+ var toUtcTimestamp = function toUtcTimestamp(timeStr) {
13129
+ return Date.parse(timeStr.match(/.+[Zz]$/) ? timeStr : timeStr + "Z");
13130
+ };
13131
+ var createdAt = toUtcTimestamp(swap.createdAt);
13132
+ var expiresAt = createdAt + 25 * 60 * 1000; // Hack with hard-coded 25 minutes
13133
+ var isExpiredByTime = expiresAt < Date.now();
13134
+ var status = _this5._mapExolixStatusToRabbitStatus(swap.status, isExpiredByTime);
13135
+ var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
13136
+ return new ExistingSwap(swapIds[index], status, createdAt, expiresAt, -1, AmountUtils.trim(swap.rate, _this5._maxRateDigits), (swap == null ? void 0 : swap.rateType) === "fixed", swap.refundAddress, swap.depositAddress, fromCoin, AmountUtils.trim(swap.amount, fromCoin.digits), swap.hashIn.hash, swap.hashIn.link, toCoin, AmountUtils.trim(swap.amountTo, toDigits), swap.hashOut.hash, swap.hashOut.link, swap.withdrawalAddress, _this5.id, (_swap$depositExtraId = swap.depositExtraId) != null ? _swap$depositExtraId : null, (_swap$withdrawalExtra = swap.withdrawalExtraId) != null ? _swap$withdrawalExtra : null, (_swap$refundExtraId = swap.refundExtraId) != null ? _swap$refundExtraId : null);
13137
+ } catch (e) {
13138
+ console.log("Failed to parse loaded swap", e);
13139
+ return [];
13116
13140
  }
13117
- var toUtcTimestamp = function toUtcTimestamp(timeStr) {
13118
- return Date.parse(timeStr.match(/.+[Zz]$/) ? timeStr : timeStr + "Z");
13119
- };
13120
- var createdAt = toUtcTimestamp(swap.createdAt);
13121
- var expiresAt = createdAt + 25 * 60 * 1000; // Hack with hard-coded 25 minutes
13122
- var isExpiredByTime = expiresAt < Date.now();
13123
- var status = _this5._mapExolixStatusToRabbitStatus(swap.status, isExpiredByTime);
13124
- var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
13125
- return new ExistingSwap(swapIds[index], status, createdAt, expiresAt, -1, AmountUtils.trim(swap.rate, _this5._maxRateDigits), (swap == null ? void 0 : swap.rateType) === "fixed", swap.refundAddress, swap.depositAddress, fromCoin, AmountUtils.trim(swap.amount, fromCoin.digits), swap.hashIn.hash, swap.hashIn.link, toCoin, AmountUtils.trim(swap.amountTo, toDigits), swap.hashOut.hash, swap.hashOut.link, swap.withdrawalAddress, _this5.id, (_swap$depositExtraId = swap.depositExtraId) != null ? _swap$depositExtraId : null, (_swap$withdrawalExtra = swap.withdrawalExtraId) != null ? _swap$withdrawalExtra : null, (_swap$refundExtraId = swap.refundExtraId) != null ? _swap$refundExtraId : null);
13126
13141
  }).flat();
13127
13142
  Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
13128
13143
  return {
@@ -13480,10 +13495,7 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13480
13495
  };
13481
13496
  }
13482
13497
 
13483
- /* --------------------------------------------------------
13484
- * Convert amountTo → ratio so that downstream code can do
13485
- * amountFrom * rate === amountTo
13486
- * -------------------------------------------------------- */
13498
+ // Convert amountTo → ratio so that downstream code can do amountFrom * rate === amountTo
13487
13499
  var rateRatio = null;
13488
13500
  if (response.data.rate != null && BigNumber__default["default"](amountCoins).gt(0)) {
13489
13501
  rateRatio = AmountUtils.trim(BigNumber__default["default"](response.data.rate).div(amountCoins).toString(), _this4._maxRateDigits);
@@ -13500,10 +13512,6 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13500
13512
  rawSwapData: response.data,
13501
13513
  /**
13502
13514
  * GoExme never requires a refund address.
13503
- *
13504
- * The official API documentation marks `destinationTag` / `refundTag` as **optional**.
13505
- * Support chat confirmation (2025‑06‑27): "Yes, it's optional and can be omitted even for small amounts."
13506
- *
13507
13515
  */
13508
13516
  isRefundAddressRequired: false
13509
13517
  };
@@ -13526,23 +13534,28 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13526
13534
  /**
13527
13535
  * Creates a swap on GoExme.
13528
13536
  *
13529
- * We cannot rely on what upper layers put into
13530
- * `proprietarySwapEstimationData.rate`:
13531
- * • sometimes it is the **amountTo** (GoExme original value);
13532
- * • sometimes it is already a **ratio** – but we cannot know.
13537
+ * The `proprietarySwapEstimationData` object **must** carry two distinct values
13538
+ * produced by a prior `/rate` call:
13539
+ *
13540
+ * • `rawSwapData.rate` **amountTo**
13541
+ * (the exact number of coins GoExme will send to the user);
13542
+ * • `rate` – **ratio**
13543
+ * (`amountTo / amountFrom`, i.e. Rabbit‑style per‑coin rate).
13533
13544
  *
13534
- * The only safe approach: treat any numeric value we get from
13535
- * estimation as amountTo, then derive the ratio ourselves.
13545
+ * Processing steps
13546
+ * ----------------
13547
+ * 1. Determine **amountTo** (`rawSwapData.rate`).
13548
+ * 2. Compute the canonical per‑coin **ratio**:
13536
13549
  *
13537
- * Steps:
13538
- * 1. Pick the first non-null of
13539
- * estimation.rawSwapData.rate
13540
- * estimation.rate
13541
- * (both are amountTo for GoExme).
13542
- * 2. Store it as `toAmountCalculated`.
13543
- * 3. Compute `rateRatio = toAmount / amountFrom`.
13544
- * → both mandatory fields (`rate`, `withdrawal.amount`)
13545
- * are always present, avoiding schema validation errors.
13550
+ * ratio = amountTo / amountFrom
13551
+ *
13552
+ * 3. Return both numbers for downstream code:
13553
+ * `rate` → ratio (Rabbit convention);
13554
+ * `toAmount` amountTo (final coins the user receives).
13555
+ *
13556
+ * This guarantees the invariant:
13557
+ *
13558
+ * amountFrom * rate === toAmount
13546
13559
  */
13547
13560
  ;
13548
13561
  _proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, proprietarySwapEstimationData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
@@ -13576,6 +13589,11 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13576
13589
  fix: true
13577
13590
  } : {});
13578
13591
  params.amount = amount;
13592
+
13593
+ // Add refundAddress only if extraId is present:
13594
+ // GoExme documents these fields as optional, and support (2025‑06‑27) confirmed that.
13595
+ // Extract amountTo from estimation (first non-null source).
13596
+ // Derive ratio so that amountFrom * ratio = amountTo.
13579
13597
  if (toCoinInfo.hasExtraId && toCurrencyExtraId) params.destinationTag = toCurrencyExtraId;
13580
13598
  if (refundAddress) {
13581
13599
  params.refundAddress = refundAddress;
@@ -13591,13 +13609,6 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13591
13609
  Logger.log(errMsg, loggerSource);
13592
13610
  throw new Error(errMsg);
13593
13611
  }
13594
-
13595
- /*------------------------------------------------------------
13596
- * Extract amountTo from estimation (first non-null source).
13597
- *-----------------------------------------------------------*/
13598
- /*------------------------------------------------------------
13599
- * Derive ratio so that amountFrom * ratio = amountTo.
13600
- *-----------------------------------------------------------*/
13601
13612
  var amountToCandidate = (_ref4 = (_proprietarySwapEstim = proprietarySwapEstimationData == null || (_proprietarySwapEstim2 = proprietarySwapEstimationData.rawSwapData) == null ? void 0 : _proprietarySwapEstim2.rate) != null ? _proprietarySwapEstim : proprietarySwapEstimationData == null ? void 0 : proprietarySwapEstimationData.rate) != null ? _ref4 : null;
13602
13613
  if (amountToCandidate == null) {
13603
13614
  throw new Error("Estimation does not contain amountTo/rate");
@@ -13661,22 +13672,18 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13661
13672
  }
13662
13673
  };
13663
13674
  return Promise.resolve(Promise.all(swapIds.map(fetchOne))).then(function (statusResponses) {
13664
- /* helper: normalize coin code using CODE_TRANSLATIONS */
13675
+ // helper: normalize coin code using CODE_TRANSLATIONS
13665
13676
  var normalize = function normalize(code) {
13666
13677
  var _CODE_TRANSLATIONS$co2;
13667
13678
  return (_CODE_TRANSLATIONS$co2 = CODE_TRANSLATIONS[code.toUpperCase()]) != null ? _CODE_TRANSLATIONS$co2 : code.toUpperCase();
13668
13679
  };
13669
13680
  var swaps = statusResponses.map(function (statusData, swapIndex) {
13670
- var _ref5, _statusData$amountFro, _ref6, _statusData$amountTo, _statusData$refundAdd, _statusData$txId;
13681
+ var _ref5, _statusData$amountFro, _ref6, _statusData$amountTo, _statusData$refundAdd;
13671
13682
  if (!statusData) return null;
13672
-
13673
- /* ------------------ coins ------------------ */
13674
13683
  var fromCoinTicker = toRabbitTicker(normalize(statusData.from), "");
13675
13684
  var toCoinTicker = toRabbitTicker(normalize(statusData.to), "");
13676
13685
  var fromCoin = _this6.getCoinByTickerIfPresent(fromCoinTicker);
13677
13686
  var toCoin = _this6.getCoinByTickerIfPresent(toCoinTicker);
13678
-
13679
- /* fallback: look up by raw provider code if ticker lookup failed */
13680
13687
  if (!fromCoin) {
13681
13688
  var _byCode$coin;
13682
13689
  var byCode = _this6._supportedCoins.find(function (c) {
@@ -13684,7 +13691,6 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13684
13691
  });
13685
13692
  fromCoin = (_byCode$coin = byCode == null ? void 0 : byCode.coin) != null ? _byCode$coin : null;
13686
13693
  }
13687
- /* fallback: look up by raw provider code if ticker lookup failed */
13688
13694
  if (!toCoin) {
13689
13695
  var _byCode$coin2;
13690
13696
  var _byCode = _this6._supportedCoins.find(function (c) {
@@ -13693,12 +13699,8 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13693
13699
  toCoin = (_byCode$coin2 = _byCode == null ? void 0 : _byCode.coin) != null ? _byCode$coin2 : null;
13694
13700
  }
13695
13701
  if (!fromCoin || !toCoin) return null;
13696
-
13697
- /* timestamps */
13698
13702
  var createdAt = GoexmeSwapProvider._parseGoexmeDate(statusData.date);
13699
13703
  var expiresAt = createdAt + _this6.SWAP_EXPIRATION_TIME_MS;
13700
-
13701
- /* amounts & rate */
13702
13704
  var amountFromEffective = (_ref5 = (_statusData$amountFro = statusData.amountFrom) != null ? _statusData$amountFro : statusData.expectedAmountFrom) != null ? _ref5 : "0";
13703
13705
  var amountToEffective = (_ref6 = (_statusData$amountTo = statusData.amountTo) != null ? _statusData$amountTo : statusData.expectedAmountTo) != null ? _ref6 : null;
13704
13706
  var rateVal = statusData.rate;
@@ -13713,7 +13715,7 @@ var GoexmeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
13713
13715
  }
13714
13716
  if (toAmountCalculated == null) toAmountCalculated = "0";
13715
13717
  var toAmountTrimmed = AmountUtils.trim(toAmountCalculated, toCoin.digits);
13716
- return new ExistingSwap(swapIds[swapIndex], _this6._mapGoexmeStatus(statusData.status), createdAt, expiresAt, -1, rateTrimmed, null, (_statusData$refundAdd = statusData.refundAddress) != null ? _statusData$refundAdd : "", statusData.depositAddress, fromCoin, AmountUtils.trim(amountFromEffective, fromCoin.digits), null, null, toCoin, toAmountTrimmed, (_statusData$txId = statusData.txId) != null ? _statusData$txId : null, null, statusData.destinationAddress, _this6.id, statusData.depositTag || null, statusData.destinationTag || null, statusData.refundTag || null);
13718
+ return new ExistingSwap(swapIds[swapIndex], _this6._mapGoexmeStatus(statusData.status), createdAt, expiresAt, -1, rateTrimmed, null, (_statusData$refundAdd = statusData.refundAddress) != null ? _statusData$refundAdd : "", statusData.depositAddress, fromCoin, AmountUtils.trim(amountFromEffective, fromCoin.digits), statusData.depositHash, null, toCoin, toAmountTrimmed, statusData.txId, null, statusData.destinationAddress, _this6.id, statusData.depositTag || null, statusData.destinationTag || null, statusData.refundTag || null);
13717
13719
  }).filter(Boolean);
13718
13720
  return {
13719
13721
  result: true,