@rabbitio/ui-kit 1.0.0-beta.72 → 1.0.0-beta.74
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.
- package/coverage/clover.xml +6441 -1864
- package/coverage/coverage-final.json +157 -95
- package/coverage/index.html +339 -84
- package/coverage/{rabbit-ui-kit → ui-kit}/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/index.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/axiosAdapter.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/qrUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/amountUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/errorUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/apiGroups.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/ipAddressProviders.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/fiatCurrenciesService.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/globalConstants.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/blockchain.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/coin.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/protocol.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/cache.js.html +8 -8
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/emailAPI.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/logger.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/logsStorage.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/postponeExecution.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/safeStringify.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/index.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cacheAndConcurrentRequestsResolver.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cachedRobustExternalApiCallerService.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cancelProcessing.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/concurrentCalculationsMetadataHolder.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/externalApiProvider.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/externalServicesStatsCollector.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/robustExternalAPICallerService.js.html +3 -3
- package/coverage/ui-kit/src/swaps-lib/external-apis/index.html +146 -0
- package/coverage/ui-kit/src/swaps-lib/external-apis/letsExchangeSwapProvider.js.html +1456 -0
- package/coverage/ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +1390 -0
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +45 -585
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/baseSwapCreationInfo.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwap.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwapWithFiatData.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/publicSwapService.js.html +233 -50
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/index.html +13 -13
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/swapUtils.js.html +121 -46
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowTosca.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowWhite.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/darkRectangle.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/determinedError.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/failedValidationIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/infoIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/noticeQuestionIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/successfulValidationIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/walletIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetIcon/AssetIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetIcon/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetSelection/AssetSelection.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetSelection/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/BackgroundTitle/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/InformationMessage/InformationMessage.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/InformationMessage/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Input/Input.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Input/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/LoadingDots/LoadingDots.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/LoadingDots/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/NoticeIcon/NoticeIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/NoticeIcon/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/QrCode/QrCode.jsx.html +52 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/QrCode/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/RateSelector/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/SupportChat/SupportChat.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/SupportChat/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Textarea/Textarea.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Textarea/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TitleBox/TitleBox.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TitleBox/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Tooltip/Tooltip.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Tooltip/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TwoLinesOfText/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Validation/Validation.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Validation/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Button/Button.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Button/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Close/Close.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Close/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/LinkButton/LinkButton.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/LinkButton/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/AmountInput/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/CoinPicker/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/LineWithIconLink/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/CoinPickerDialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/Dialog.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx.html +171 -39
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/SwapForm/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useCallHandlingErrors.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useIsHydrated.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useReferredState.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/inputValueProviders.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/textUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/uiUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/urlQueryUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/BackgroundTitle.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LinesOfText.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LoadingDots.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/QrCode.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/RateSelector.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/Validation.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Button.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Close.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/LinkButton.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/LineWithIconLink.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/TitledLineWithIconLink.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/Dialog.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/exampleContent.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/index.html +3 -3
- package/coverage/ui-kit/storybook-static/124.c2d01e5e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/138.56b7edc4.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/312.6f62bbd9.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/341.57a15f57.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/370.73bb343e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/595.2e40d981.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/607.3ea32459.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/609.8c79ec77.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/666.09fdc1d7.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/797.c87cdf19.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/822.4bc0ebce.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/833.08e3ebb6.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/862.bf6bfe62.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/87.0a1bfeb1.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/893.4b09f929.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/996.846a677b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-BackgroundTitle-stories.1a5386a1.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-LinesOfText-stories.7043a48b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-LoadingDots-stories.091245c7.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-QrCode-stories.e10363b6.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-RateSelector-stories.af208e9a.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-Validation-stories.d561b311.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-Button-stories.e8e6b930.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-Close-stories.0a902a7c.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-LinkButton-stories.ca93ab6b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/index.html +596 -0
- package/coverage/ui-kit/storybook-static/main.41f410f2.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/molecules-LineWithIconLink-stories.9721a18c.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/molecules-TitledLineWithIconLink-stories.1383fe3f.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-Dialog-stories.4e6da717.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-DialogButtons-DialogButtons-stories.6f45ae6e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-DialogStep-DialogStep-stories.74896048.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/addon-backgrounds/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/addon-backgrounds/dist/preview.js.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/components/dist/formatter-SWP5E3XI.mjs.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/components/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/buffer/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/buffer/index.js.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/markdown-to-jsx/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/markdown-to-jsx/dist/index.modern.js.html +118 -0
- package/coverage/ui-kit/storybook-static/runtime~main.ad918f38.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/sb-addons/actions-9/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/actions-9/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-backgrounds-2/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-backgrounds-2/manager-bundle.js.html +121 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-controls-1/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.html +274 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-measure-4/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-measure-4/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-outline-5/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-outline-5/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-toolbars-3/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-toolbars-3/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/interactions-7/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/interactions-7/manager-bundle.js.html +121 -0
- package/coverage/ui-kit/storybook-static/sb-addons/links-0/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/links-0/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/onboarding-6/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/onboarding-6/manager-bundle.js.html +1588 -0
- package/coverage/ui-kit/storybook-static/sb-addons/viewport-8/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/viewport-8/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-manager/WithTooltip-V3YHNWJZ-LVYLGZW2.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-2IXBUOFS.js.html +106 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-INSKDKQB.js.html +1129 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-NGTUFCUO.js.html +112 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-UUEAOBSN.js.html +1303 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-ZEU7PDD3.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/formatter-SWP5E3XI-7BGIK6BL.js.html +553 -0
- package/coverage/ui-kit/storybook-static/sb-manager/globals-module-info.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/globals.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/index.html +281 -0
- package/coverage/ui-kit/storybook-static/sb-manager/index.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/runtime.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/syntaxhighlighter-V7JZZA35-DXZCI2WR.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-preview/globals.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-preview/index.html +131 -0
- package/coverage/ui-kit/storybook-static/sb-preview/runtime.js.html +421 -0
- package/coverage/ui-kit/storybook-static/templates-DeterminedErrorDialogStep-stories.3cc14214.iframe.bundle.js.html +85 -0
- package/dist/index.cjs +1201 -605
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +786 -330
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +1201 -605
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1201 -605
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/swaps-lib/external-apis/letsExchangeSwapProvider.js +457 -0
- package/src/swaps-lib/external-apis/swapProvider.js +246 -20
- package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +20 -200
- package/src/swaps-lib/services/publicSwapService.js +105 -44
- package/src/swaps-lib/test/external-apis/swapProvider/removeProtocolNameFromCoinName.test.js +142 -0
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +2 -2
- package/src/swaps-lib/utils/swapUtils.js +63 -38
- package/src/ui-kit/components/atoms/QrCode/QrCode.jsx +16 -1
- package/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx +77 -33
- package/src/ui-kit/components/organisms/SwapForm/swap-form.module.scss +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/index.html +0 -131
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +0 -712
package/dist/index.module.js
CHANGED
|
@@ -1642,7 +1642,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
1642
1642
|
return Logger;
|
|
1643
1643
|
}();
|
|
1644
1644
|
|
|
1645
|
-
function _catch$
|
|
1645
|
+
function _catch$f(body, recover) {
|
|
1646
1646
|
try {
|
|
1647
1647
|
var result = body();
|
|
1648
1648
|
} catch (e) {
|
|
@@ -1658,7 +1658,7 @@ function useCallHandlingErrors() {
|
|
|
1658
1658
|
setState = _useState[1];
|
|
1659
1659
|
return useCallback(function (functionToBeCalled, event) {
|
|
1660
1660
|
try {
|
|
1661
|
-
var _temp = _catch$
|
|
1661
|
+
var _temp = _catch$f(function () {
|
|
1662
1662
|
return Promise.resolve(functionToBeCalled(event)).then(function () {});
|
|
1663
1663
|
}, function (error) {
|
|
1664
1664
|
Logger.logError(error, (functionToBeCalled == null ? void 0 : functionToBeCalled.name) || "errorBoundaryTrigger", "Caught by ErrorBoundary");
|
|
@@ -4596,6 +4596,15 @@ function useIsHydrated() {
|
|
|
4596
4596
|
* @return {string|null}
|
|
4597
4597
|
*/
|
|
4598
4598
|
|
|
4599
|
+
/**
|
|
4600
|
+
* Callback to handle isFixed flag change.
|
|
4601
|
+
*
|
|
4602
|
+
* @function
|
|
4603
|
+
* @name onIsFixedChange
|
|
4604
|
+
* @param {boolean} isFixedNewValue - new value
|
|
4605
|
+
* @return {void}
|
|
4606
|
+
*/
|
|
4607
|
+
|
|
4599
4608
|
/**
|
|
4600
4609
|
* Function validating addresses.
|
|
4601
4610
|
* By default, will treat any addresses as valid.
|
|
@@ -4605,6 +4614,7 @@ function useIsHydrated() {
|
|
|
4605
4614
|
* @name validateAddressByTicker
|
|
4606
4615
|
* @param {string} ticker - Ticker symbol of the asset.
|
|
4607
4616
|
* @param {string} address - Address to be validated
|
|
4617
|
+
* @param {boolean} isFixed - Is swap rate mode = fixed
|
|
4608
4618
|
* @return {Promise<boolean>}
|
|
4609
4619
|
*/
|
|
4610
4620
|
|
|
@@ -4652,16 +4662,18 @@ function useIsHydrated() {
|
|
|
4652
4662
|
* @param {boolean} [props.formHasFiat] - Indicates if the form supports fiat currency.
|
|
4653
4663
|
* @param {string|null} [props.termsOfUseUrl] - Terms of use URL, shown only if both terms & privacy policy passed.
|
|
4654
4664
|
* @param {string|null} [props.privacyPolicyUrl] - Privacy policy of use URL, shown only if both terms & privacy policy passed.
|
|
4665
|
+
* @param {string} props.recipientAddressExtraIdName - Extra ID name for the recipient address.
|
|
4666
|
+
* @param {string} props.refundAddressExtraIdName - Extra ID name for the refund address.
|
|
4655
4667
|
* @param {object} [props.translations] - Object containing translations, default English texts will be used if omitted.
|
|
4656
4668
|
* @param {string} props.swapSeparatorIconSrc - Source URL for the swap separator icon.
|
|
4657
4669
|
* @param {boolean} props.swapButtonAlwaysActive - Setting that allows the form state to proceed to the next step regardless of validity.
|
|
4658
|
-
* @param {getExtraIdNameByTicker} props.getExtraIdNameByTicker - Function returning extraId name for asset
|
|
4659
4670
|
* @param {validateAddressByTicker} [props.validateAddressByTicker] - Function validating address
|
|
4671
|
+
* @param {onIsFixedChange} [props.onIsFixedChange] - callback for changed isFixed
|
|
4660
4672
|
* @return {JSX.Element} Rendered SwapForm component.
|
|
4661
4673
|
* @constructor
|
|
4662
4674
|
*/
|
|
4663
4675
|
|
|
4664
|
-
function _catch$
|
|
4676
|
+
function _catch$e(body, recover) {
|
|
4665
4677
|
try {
|
|
4666
4678
|
var result = body();
|
|
4667
4679
|
} catch (e) {
|
|
@@ -4673,7 +4685,7 @@ function _catch$c(body, recover) {
|
|
|
4673
4685
|
return result;
|
|
4674
4686
|
}
|
|
4675
4687
|
var SwapForm = function SwapForm(_ref) {
|
|
4676
|
-
var _isFixedRate$current2, _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5
|
|
4688
|
+
var _isFixedRate$current2, _isFixedRate$current3, _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5;
|
|
4677
4689
|
var sendingAssetTicker = _ref.sendingAssetTicker,
|
|
4678
4690
|
receivingAssetTicker = _ref.receivingAssetTicker,
|
|
4679
4691
|
_ref$sendingAssetDeci = _ref.sendingAssetDecimalCount,
|
|
@@ -4716,7 +4728,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4716
4728
|
_ref$formHasBalance = _ref.formHasBalance,
|
|
4717
4729
|
formHasBalance = _ref$formHasBalance === void 0 ? false : _ref$formHasBalance,
|
|
4718
4730
|
_ref$retrieveSwapDeta = _ref.retrieveSwapDetails,
|
|
4719
|
-
retrieveSwapDetails = _ref$retrieveSwapDeta === void 0 ? function (sendingAssetTicker, receivingAssetTicker, amount, isSwapAll) {
|
|
4731
|
+
retrieveSwapDetails = _ref$retrieveSwapDeta === void 0 ? function (sendingAssetTicker, receivingAssetTicker, amount, isSwapAll, editedLastInput) {
|
|
4720
4732
|
return Promise.resolve();
|
|
4721
4733
|
} : _ref$retrieveSwapDeta,
|
|
4722
4734
|
_ref$retrieveInitialS = _ref.retrieveInitialSwapData,
|
|
@@ -4743,17 +4755,17 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4743
4755
|
termsOfUseUrl = _ref$termsOfUseUrl === void 0 ? null : _ref$termsOfUseUrl,
|
|
4744
4756
|
_ref$privacyPolicyUrl = _ref.privacyPolicyUrl,
|
|
4745
4757
|
privacyPolicyUrl = _ref$privacyPolicyUrl === void 0 ? null : _ref$privacyPolicyUrl,
|
|
4746
|
-
_ref$getExtraIdNameBy = _ref.getExtraIdNameByTicker,
|
|
4747
|
-
getExtraIdNameByTicker = _ref$getExtraIdNameBy === void 0 ? function (ticker) {
|
|
4748
|
-
return null;
|
|
4749
|
-
} : _ref$getExtraIdNameBy,
|
|
4750
4758
|
_ref$validateAddressB = _ref.validateAddressByTicker,
|
|
4751
|
-
validateAddressByTicker = _ref$validateAddressB === void 0 ? function (
|
|
4759
|
+
validateAddressByTicker = _ref$validateAddressB === void 0 ? function () {
|
|
4752
4760
|
return false;
|
|
4753
4761
|
} : _ref$validateAddressB,
|
|
4754
4762
|
swapSeparatorIconSrc = _ref.swapSeparatorIconSrc,
|
|
4755
4763
|
_ref$swapButtonAlways = _ref.swapButtonAlwaysActive,
|
|
4756
4764
|
swapButtonAlwaysActive = _ref$swapButtonAlways === void 0 ? false : _ref$swapButtonAlways,
|
|
4765
|
+
_ref$onIsFixedChange = _ref.onIsFixedChange,
|
|
4766
|
+
onIsFixedChange = _ref$onIsFixedChange === void 0 ? function () {} : _ref$onIsFixedChange,
|
|
4767
|
+
recipientAddressExtraIdName = _ref.recipientAddressExtraIdName,
|
|
4768
|
+
refundAddressExtraIdName = _ref.refundAddressExtraIdName,
|
|
4757
4769
|
_ref$translations = _ref.translations,
|
|
4758
4770
|
translations = _ref$translations === void 0 ? {
|
|
4759
4771
|
swapAllButtonTitles: {
|
|
@@ -4784,7 +4796,9 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4784
4796
|
addressTitle: "Recepient address",
|
|
4785
4797
|
refundAddressTitle: "Refund address",
|
|
4786
4798
|
extraIdPlaceholder: "(optional)",
|
|
4799
|
+
refundAddressExtraIdTitle: "Refund extra ID (MEMO):",
|
|
4787
4800
|
refundAddressExtraIdNotice: "Please check if your address requires additional identifier (sometimes called a Memo, Destination Tag, Tag, ID, Label or Note). Including this identifier is crucial when required, as omitting or misentering it can result in lost assets.",
|
|
4801
|
+
receivingAddressExtraIdTitle: "Destination extra ID (MEMO):",
|
|
4788
4802
|
receivingAddressExtraIdNotice: "Please check if your address requires additional identifier (sometimes called a Memo, Destination Tag, Tag, ID, Label or Note). Including this identifier is crucial when required, as omitting or misentering it can result in lost assets."
|
|
4789
4803
|
},
|
|
4790
4804
|
rateSelector: {
|
|
@@ -4806,15 +4820,18 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4806
4820
|
var _useReferredState = useReferredState(preservedAmount == null || preservedAmount === "" ? null : preservedAmount),
|
|
4807
4821
|
sendAssetAmount = _useReferredState[0],
|
|
4808
4822
|
setSendAssetAmount = _useReferredState[1];
|
|
4823
|
+
var _useReferredState2 = useReferredState(null),
|
|
4824
|
+
receiveAssetAmount = _useReferredState2[0],
|
|
4825
|
+
setReceiveAssetAmount = _useReferredState2[1];
|
|
4809
4826
|
var _useState3 = useState(),
|
|
4810
4827
|
swapRate = _useState3[0],
|
|
4811
4828
|
setSwapRate = _useState3[1];
|
|
4812
|
-
var _useReferredState2 = useReferredState(null),
|
|
4813
|
-
minimalAmount = _useReferredState2[0],
|
|
4814
|
-
setMinimalAmount = _useReferredState2[1];
|
|
4815
4829
|
var _useReferredState3 = useReferredState(null),
|
|
4816
|
-
|
|
4817
|
-
|
|
4830
|
+
minimalAmount = _useReferredState3[0],
|
|
4831
|
+
setMinimalAmount = _useReferredState3[1];
|
|
4832
|
+
var _useReferredState4 = useReferredState(null),
|
|
4833
|
+
maximumAmount = _useReferredState4[0],
|
|
4834
|
+
setMaximumAmount = _useReferredState4[1];
|
|
4818
4835
|
var _useState4 = useState(),
|
|
4819
4836
|
validationContent = _useState4[0],
|
|
4820
4837
|
setValidationContent = _useState4[1];
|
|
@@ -4841,70 +4858,76 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4841
4858
|
var _useState11 = useState(preservedAmount == null || String(preservedAmount) === "0"),
|
|
4842
4859
|
isAmountZero = _useState11[0],
|
|
4843
4860
|
setIsAmountZero = _useState11[1];
|
|
4844
|
-
var
|
|
4845
|
-
isLoading =
|
|
4846
|
-
setIsLoading =
|
|
4847
|
-
var _useReferredState5 = useReferredState(null),
|
|
4848
|
-
isFixedRate = _useReferredState5[0],
|
|
4849
|
-
setIsFixedRate = _useReferredState5[1];
|
|
4850
|
-
var _useState12 = useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
|
|
4851
|
-
confirmButtonTo = _useState12[0],
|
|
4852
|
-
setConfirmButtonTo = _useState12[1];
|
|
4853
|
-
var _useState13 = useState(),
|
|
4854
|
-
transactionFee = _useState13[0],
|
|
4855
|
-
setTransactionFee = _useState13[1];
|
|
4856
|
-
var _useState14 = useState(true),
|
|
4857
|
-
balanceValid = _useState14[0],
|
|
4858
|
-
setBalanceValid = _useState14[1]; // Whether the amount is less than total balance
|
|
4861
|
+
var _useReferredState5 = useReferredState(false),
|
|
4862
|
+
isLoading = _useReferredState5[0],
|
|
4863
|
+
setIsLoading = _useReferredState5[1]; // Whether the form is in the progress of loading some data (new rates, for example)
|
|
4859
4864
|
var _useReferredState6 = useReferredState(null),
|
|
4860
|
-
|
|
4861
|
-
|
|
4862
|
-
var
|
|
4863
|
-
|
|
4864
|
-
|
|
4865
|
+
isFixedRate = _useReferredState6[0],
|
|
4866
|
+
setIsFixedRate = _useReferredState6[1];
|
|
4867
|
+
var _useState12 = useState(false),
|
|
4868
|
+
isLastEditedReceiving = _useState12[0],
|
|
4869
|
+
setIsLastEditedReceiving = _useState12[1];
|
|
4870
|
+
var _useState13 = useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
|
|
4871
|
+
confirmButtonTo = _useState13[0],
|
|
4872
|
+
setConfirmButtonTo = _useState13[1];
|
|
4873
|
+
var _useState14 = useState(),
|
|
4874
|
+
transactionFee = _useState14[0],
|
|
4875
|
+
setTransactionFee = _useState14[1];
|
|
4876
|
+
var _useState15 = useState(true),
|
|
4877
|
+
balanceValid = _useState15[0],
|
|
4878
|
+
setBalanceValid = _useState15[1]; // Whether the amount is less than total balance
|
|
4865
4879
|
var _useReferredState7 = useReferredState(null),
|
|
4866
|
-
|
|
4867
|
-
|
|
4880
|
+
isSwapAll = _useReferredState7[0],
|
|
4881
|
+
setIsSwapAll = _useReferredState7[1];
|
|
4882
|
+
var _useState16 = useState([]),
|
|
4883
|
+
swapAllButtonLoaderReSetter = _useState16[0],
|
|
4884
|
+
setSwapAllButtonLoaderReSetter = _useState16[1];
|
|
4868
4885
|
var _useReferredState8 = useReferredState(null),
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
var _useReferredState9 = useReferredState(
|
|
4872
|
-
|
|
4873
|
-
|
|
4886
|
+
dataUpdateTimeoutId = _useReferredState8[0],
|
|
4887
|
+
setDataUpdateTimeoutId = _useReferredState8[1];
|
|
4888
|
+
var _useReferredState9 = useReferredState(null),
|
|
4889
|
+
idleDataUpdateTimeoutId = _useReferredState9[0],
|
|
4890
|
+
setIdleDataUpdateTimeoutId = _useReferredState9[1];
|
|
4874
4891
|
var _useReferredState10 = useReferredState(""),
|
|
4875
|
-
|
|
4876
|
-
|
|
4877
|
-
var _useReferredState11 = useReferredState(
|
|
4878
|
-
|
|
4879
|
-
|
|
4880
|
-
var
|
|
4881
|
-
|
|
4882
|
-
|
|
4883
|
-
var
|
|
4884
|
-
|
|
4885
|
-
|
|
4892
|
+
recipientAddress = _useReferredState10[0],
|
|
4893
|
+
setRecipientAddress = _useReferredState10[1];
|
|
4894
|
+
var _useReferredState11 = useReferredState(""),
|
|
4895
|
+
recipientAddressExtraId = _useReferredState11[0],
|
|
4896
|
+
setRecipientAddressExtraId = _useReferredState11[1];
|
|
4897
|
+
var _useReferredState12 = useReferredState(false),
|
|
4898
|
+
isRecipientAddressValid = _useReferredState12[0],
|
|
4899
|
+
setIsRecipientAddressValid = _useReferredState12[1];
|
|
4900
|
+
var _useState17 = useState(false),
|
|
4901
|
+
isRefundAddressRequired = _useState17[0],
|
|
4902
|
+
setIsRefundAddressRequired = _useState17[1];
|
|
4886
4903
|
var _useReferredState13 = useReferredState(""),
|
|
4887
|
-
|
|
4888
|
-
|
|
4889
|
-
var _useReferredState14 = useReferredState(
|
|
4890
|
-
|
|
4891
|
-
|
|
4904
|
+
refundAddress = _useReferredState13[0],
|
|
4905
|
+
setRefundAddress = _useReferredState13[1];
|
|
4906
|
+
var _useReferredState14 = useReferredState(""),
|
|
4907
|
+
refundAddressExtraId = _useReferredState14[0],
|
|
4908
|
+
setRefundAddressExtraId = _useReferredState14[1];
|
|
4909
|
+
var _useReferredState15 = useReferredState(false),
|
|
4910
|
+
isRefundAddressValid = _useReferredState15[0],
|
|
4911
|
+
setIsRefundAddressValid = _useReferredState15[1];
|
|
4892
4912
|
var callHandlingErrors = useCallHandlingErrors();
|
|
4893
4913
|
var isHydrated = useIsHydrated();
|
|
4894
4914
|
var recalculationDelayOnTyping = 1000;
|
|
4895
4915
|
var isAddressFieldEnabled = !formHasBalance;
|
|
4896
4916
|
var displayRateSelector = !formHasBalance;
|
|
4897
|
-
var recipientAddressExtraIdName = getExtraIdNameByTicker(receivingAssetTicker);
|
|
4898
|
-
var refundAddressExtraIdName = getExtraIdNameByTicker(sendingAssetTicker);
|
|
4899
4917
|
var handleSendAssetAmountChange = function handleSendAssetAmountChange(amount) {
|
|
4918
|
+
setIsLastEditedReceiving(false);
|
|
4919
|
+
var receiveAmount = AmountUtils.trim(BigNumber(amount).times(swapRate), receivingAssetDecimalCount);
|
|
4900
4920
|
if (amount != null && amount !== "") {
|
|
4901
|
-
|
|
4921
|
+
setReceiveAssetAmount(receiveAmount);
|
|
4922
|
+
setUpdateReceiveInputTo(receiveAmount);
|
|
4902
4923
|
} else {
|
|
4903
4924
|
setUpdateReceiveInputTo("");
|
|
4904
4925
|
}
|
|
4905
4926
|
setSendAssetAmount(amount);
|
|
4906
4927
|
};
|
|
4907
4928
|
var handleReceiveAssetAmountChange = function handleReceiveAssetAmountChange(amount) {
|
|
4929
|
+
setReceiveAssetAmount(amount);
|
|
4930
|
+
setIsLastEditedReceiving(true);
|
|
4908
4931
|
var sendAssetAmount = "";
|
|
4909
4932
|
if (amount != null && amount !== "") {
|
|
4910
4933
|
sendAssetAmount = AmountUtils.trim(BigNumber(amount).div(swapRate), sendingAssetDecimalCount);
|
|
@@ -5005,7 +5028,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5005
5028
|
}
|
|
5006
5029
|
(function () {
|
|
5007
5030
|
try {
|
|
5008
|
-
return _catch$
|
|
5031
|
+
return _catch$e(function () {
|
|
5009
5032
|
var _minimalAmount$curren4, _maximumAmount$curren3, _isFixedRate$current;
|
|
5010
5033
|
var dataMemento = {
|
|
5011
5034
|
rate: swapRate,
|
|
@@ -5023,7 +5046,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5023
5046
|
setIsSameCoins(false);
|
|
5024
5047
|
setIsPairSupported(true);
|
|
5025
5048
|
setIsSwapCalculated(false);
|
|
5026
|
-
return Promise.resolve(retrieveSwapDetails(sendingAssetTicker, receivingAssetTicker, amount, isSwapAll.current, (_isFixedRate$current = isFixedRate.current) != null ? _isFixedRate$current : IS_FIXED_BY_DEFAULT)).then(function (response) {
|
|
5049
|
+
return Promise.resolve(retrieveSwapDetails(sendingAssetTicker, receivingAssetTicker, amount, isSwapAll.current, (_isFixedRate$current = isFixedRate.current) != null ? _isFixedRate$current : IS_FIXED_BY_DEFAULT, isFixedRate.current ? isLastEditedReceiving : false)).then(function (response) {
|
|
5027
5050
|
if (!isSwapAll.current && String(amount) !== String(isForPreserved && sendAssetAmount.current == null ? preservedAmount : sendAssetAmount.current)) {
|
|
5028
5051
|
// Means amount changed and we no more need to do this exact calculation
|
|
5029
5052
|
return;
|
|
@@ -5071,7 +5094,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5071
5094
|
}
|
|
5072
5095
|
(function () {
|
|
5073
5096
|
try {
|
|
5074
|
-
return _catch$
|
|
5097
|
+
return _catch$e(function () {
|
|
5075
5098
|
setIsLoading(true);
|
|
5076
5099
|
setMinimalAmount(null);
|
|
5077
5100
|
setMaximumAmount(null);
|
|
@@ -5111,7 +5134,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5111
5134
|
};
|
|
5112
5135
|
var handleRateModeChanged = function handleRateModeChanged(isFixed) {
|
|
5113
5136
|
setIsFixedRate(isFixed);
|
|
5114
|
-
requestDataRefresh(sendAssetAmount.current, true);
|
|
5137
|
+
requestDataRefresh(isLastEditedReceiving ? receiveAssetAmount.current : sendAssetAmount.current, true);
|
|
5115
5138
|
};
|
|
5116
5139
|
useEffect(function () {
|
|
5117
5140
|
if (isSwapAll.current === true) {
|
|
@@ -5121,6 +5144,10 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5121
5144
|
}
|
|
5122
5145
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5123
5146
|
}, [isSwapAll.current]);
|
|
5147
|
+
useEffect(function () {
|
|
5148
|
+
onIsFixedChange(isFixedRate.current);
|
|
5149
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5150
|
+
}, [isFixedRate.current]);
|
|
5124
5151
|
useEffect(function () {
|
|
5125
5152
|
setConfirmButtonTo(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, sendAssetAmount.current || preservedAmount || null));
|
|
5126
5153
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -5130,7 +5157,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5130
5157
|
var isCurrentAmountNotZero = sendAssetAmount.current && !BigNumber("0").eq(sendAssetAmount.current);
|
|
5131
5158
|
var isPreservedAmountNotZero = preservedAmount && !BigNumber("0").eq(preservedAmount);
|
|
5132
5159
|
if (isCurrentAmountNotZero) {
|
|
5133
|
-
loadFullEstimation(sendAssetAmount.current);
|
|
5160
|
+
loadFullEstimation(isLastEditedReceiving ? receiveAssetAmount.current : sendAssetAmount.current);
|
|
5134
5161
|
} else if (isPreservedAmountNotZero) {
|
|
5135
5162
|
loadFullEstimation(preservedAmount, true);
|
|
5136
5163
|
} else {
|
|
@@ -5169,7 +5196,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5169
5196
|
};
|
|
5170
5197
|
if (!receivingAssetTicker) return;
|
|
5171
5198
|
var _temp = recipientAddress.current === "";
|
|
5172
|
-
return _temp ? _temp2(false) : Promise.resolve(validateAddressByTicker(receivingAssetTicker, recipientAddress.current)).then(_temp2);
|
|
5199
|
+
return _temp ? _temp2(false) : Promise.resolve(validateAddressByTicker(receivingAssetTicker, recipientAddress.current, isFixedRate.current)).then(_temp2);
|
|
5173
5200
|
} catch (e) {
|
|
5174
5201
|
Promise.reject(e);
|
|
5175
5202
|
}
|
|
@@ -5184,7 +5211,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5184
5211
|
};
|
|
5185
5212
|
if (!sendingAssetTicker || !isRefundAddressRequired) return;
|
|
5186
5213
|
var _temp3 = refundAddress.current === "";
|
|
5187
|
-
return _temp3 ? _temp4(false) : Promise.resolve(validateAddressByTicker(sendingAssetTicker, refundAddress.current)).then(_temp4);
|
|
5214
|
+
return _temp3 ? _temp4(false) : Promise.resolve(validateAddressByTicker(sendingAssetTicker, refundAddress.current, isFixedRate.current)).then(_temp4);
|
|
5188
5215
|
} catch (e) {
|
|
5189
5216
|
Promise.reject(e);
|
|
5190
5217
|
}
|
|
@@ -5197,7 +5224,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5197
5224
|
if (readyToSwap) {
|
|
5198
5225
|
timeoutId = setTimeout(function () {
|
|
5199
5226
|
var _sendAssetAmount$curr;
|
|
5200
|
-
return requestDataRefresh((_sendAssetAmount$curr = sendAssetAmount.current) != null ? _sendAssetAmount$curr : preservedAmount, true);
|
|
5227
|
+
return requestDataRefresh(isLastEditedReceiving ? receiveAssetAmount.current : (_sendAssetAmount$curr = sendAssetAmount.current) != null ? _sendAssetAmount$curr : preservedAmount, true);
|
|
5201
5228
|
}, DETAIL_REFRESH_INTERVAL_MS);
|
|
5202
5229
|
setIdleDataUpdateTimeoutId(timeoutId);
|
|
5203
5230
|
} else {
|
|
@@ -5209,8 +5236,6 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5209
5236
|
};
|
|
5210
5237
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5211
5238
|
}, [readyToSwap]);
|
|
5212
|
-
|
|
5213
|
-
// TODO: [refactoring, critical] this code looks like a hack related to task_id=6e328d39063142b7b9fa01d497e616da
|
|
5214
5239
|
useEffect(function () {
|
|
5215
5240
|
if (triggerDataUpdateResetting) {
|
|
5216
5241
|
clearTimeout(dataUpdateTimeoutId.current);
|
|
@@ -5220,8 +5245,6 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5220
5245
|
}
|
|
5221
5246
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5222
5247
|
}, [triggerDataUpdateResetting]);
|
|
5223
|
-
|
|
5224
|
-
// Resets the passed "set value to" param to null, so it can be used multiple times with any value
|
|
5225
5248
|
useEffect(function () {
|
|
5226
5249
|
if (!!updateSendInputTo) setUpdateSendInputTo(null);
|
|
5227
5250
|
if (!!updateReceiveInputTo) setUpdateReceiveInputTo(null);
|
|
@@ -5240,13 +5263,12 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5240
5263
|
}
|
|
5241
5264
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5242
5265
|
}, [isLoading.current, swapAllButtonLoaderReSetter]);
|
|
5243
|
-
|
|
5244
|
-
// Handlers upon changing the asset amount
|
|
5245
5266
|
useEffect(function () {
|
|
5246
5267
|
setConfirmButtonTo(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, sendAssetAmount.current));
|
|
5247
5268
|
if (sendAssetAmount.current == null) return;
|
|
5248
5269
|
var processingAmount = sendAssetAmount.current === "" ? "0" : sendAssetAmount.current;
|
|
5249
|
-
|
|
5270
|
+
var processingReceivingAmount = receiveAssetAmount.current === "" ? "0" : receiveAssetAmount.current;
|
|
5271
|
+
requestDataRefresh(isLastEditedReceiving ? processingReceivingAmount : processingAmount);
|
|
5250
5272
|
processMinMaxAmounts(processingAmount);
|
|
5251
5273
|
setIsAmountZero(BigNumber("0").eq(processingAmount));
|
|
5252
5274
|
setIsSwapCalculated(false);
|
|
@@ -5261,7 +5283,13 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5261
5283
|
linkText: !formHasBalance ? "" : isSwapAll.current ? translations.swapAllButtonTitles.cancel : translations.swapAllButtonTitles.enable,
|
|
5262
5284
|
linkButtonLoader: true,
|
|
5263
5285
|
isLinkButtonDisabled: isLoading.current || sendingAssetTicker === receivingAssetTicker || BigNumber(sendingAssetBalance == null ? void 0 : sendingAssetBalance.assetAmount).eq(0)
|
|
5264
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
5286
|
+
}, displayRateSelector ? /*#__PURE__*/React.createElement("div", {
|
|
5287
|
+
className: s$9["swap-form-rate-selector"]
|
|
5288
|
+
}, /*#__PURE__*/React.createElement(RateSelector, {
|
|
5289
|
+
isFixed: (_isFixedRate$current2 = isFixedRate.current) != null ? _isFixedRate$current2 : IS_FIXED_BY_DEFAULT,
|
|
5290
|
+
setIsFixed: handleRateModeChanged,
|
|
5291
|
+
translations: translations.rateSelector
|
|
5292
|
+
})) : "", /*#__PURE__*/React.createElement("div", {
|
|
5265
5293
|
className: s$9["swap-form-inputs"]
|
|
5266
5294
|
}, /*#__PURE__*/React.createElement(AmountInput, {
|
|
5267
5295
|
ticker: sendingAssetTicker,
|
|
@@ -5309,7 +5337,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5309
5337
|
assetIconProtocolSrc: receivingAssetProtocolIconSrc,
|
|
5310
5338
|
fallbackAssetIconSrc: fallBackAssetIconSrc,
|
|
5311
5339
|
disabled: isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null,
|
|
5312
|
-
locked: !formHasBalance,
|
|
5340
|
+
locked: !formHasBalance && !isFixedRate.current,
|
|
5313
5341
|
handleCoinAmountChange: handleReceiveAssetAmountChange,
|
|
5314
5342
|
handleChangeAssetClick: handleChangeReceivingAssetClick,
|
|
5315
5343
|
updateAssetInputTo: updateReceiveInputTo,
|
|
@@ -5329,7 +5357,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5329
5357
|
className: s$9["swap-form-information-field"]
|
|
5330
5358
|
}, /*#__PURE__*/React.createElement("p", null, !isPairSupported ? translations.informationBlock.pairNotAvailable : transactionFee && minimalAmountValid ? /*#__PURE__*/React.createElement(React.Fragment, null, translations.informationBlock.transactionFee, /*#__PURE__*/React.createElement("span", null, AmountUtils.crypto(transactionFee == null ? void 0 : transactionFee.crypto, sendingAssetFeeCoinTickerPrintable)), (transactionFee == null ? void 0 : transactionFee.fiat) != null && (transactionFee == null ? void 0 : transactionFee.fiat) !== "" ? /*#__PURE__*/React.createElement("span", {
|
|
5331
5359
|
className: s$9["semi-transparent"]
|
|
5332
|
-
}, " ~ " + AmountUtils.fiat(transactionFee == null ? void 0 : transactionFee.fiat, fiatCurrencyCode)) : "") : !isLoading.current && (isSwapCalculated || !minimalAmount.current && swapRate) ? /*#__PURE__*/React.createElement(React.Fragment, null, translations.informationBlock.swapRate, /*#__PURE__*/React.createElement("span", null, AmountUtils.composeRateText(sendingAssetTickerPrintable, receivingAssetTickerPrintable, swapRate, receivingAssetDecimalCount, (_isFixedRate$
|
|
5360
|
+
}, " ~ " + AmountUtils.fiat(transactionFee == null ? void 0 : transactionFee.fiat, fiatCurrencyCode)) : "") : !isLoading.current && (isSwapCalculated || !minimalAmount.current && swapRate) ? /*#__PURE__*/React.createElement(React.Fragment, null, translations.informationBlock.swapRate, /*#__PURE__*/React.createElement("span", null, AmountUtils.composeRateText(sendingAssetTickerPrintable, receivingAssetTickerPrintable, swapRate, receivingAssetDecimalCount, (_isFixedRate$current3 = isFixedRate.current) != null ? _isFixedRate$current3 : IS_FIXED_BY_DEFAULT))) : minimalAmount.current || maximumAmount.current ? !maximumAmountValid && maximumAmount.current != null ? /*#__PURE__*/React.createElement(React.Fragment, null, translations.informationBlock.maximumAmount, /*#__PURE__*/React.createElement("span", {
|
|
5333
5361
|
className: s$9["interactable"] + " " + s$9["red"],
|
|
5334
5362
|
onClick: isLoading.current ? function () {} : function (e) {
|
|
5335
5363
|
return callHandlingErrors(handleMaximumAmountClick, e);
|
|
@@ -5356,7 +5384,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5356
5384
|
adaptiveHeight: true,
|
|
5357
5385
|
errorEncountered: recipientAddress.current !== "" && !isRecipientAddressValid.current
|
|
5358
5386
|
})), isHydrated && recipientAddressExtraIdName ? /*#__PURE__*/React.createElement(TitleBox, {
|
|
5359
|
-
title:
|
|
5387
|
+
title: translations.addressFields.receivingAddressExtraIdTitle,
|
|
5360
5388
|
titleNoticeText: translations.addressFields.receivingAddressExtraIdNotice,
|
|
5361
5389
|
titleNoticePosition: TOOLTIP_POSITIONS.TOP_LEFT
|
|
5362
5390
|
}, /*#__PURE__*/React.createElement(Textarea, {
|
|
@@ -5378,7 +5406,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5378
5406
|
adaptiveHeight: true,
|
|
5379
5407
|
errorEncountered: refundAddress.current !== "" && !isRefundAddressValid.current
|
|
5380
5408
|
})), refundAddressExtraIdName ? /*#__PURE__*/React.createElement(TitleBox, {
|
|
5381
|
-
title:
|
|
5409
|
+
title: translations.addressFields.refundAddressExtraIdTitle,
|
|
5382
5410
|
titleNoticeText: translations.addressFields.refundAddressExtraIdNotice,
|
|
5383
5411
|
titleNoticePosition: TOOLTIP_POSITIONS.TOP_LEFT
|
|
5384
5412
|
}, /*#__PURE__*/React.createElement(Textarea, {
|
|
@@ -5389,13 +5417,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5389
5417
|
value: refundAddressExtraId.current,
|
|
5390
5418
|
adaptiveHeight: true,
|
|
5391
5419
|
placeholder: translations.addressFields.extraIdPlaceholder
|
|
5392
|
-
})) : null) : null) : null,
|
|
5393
|
-
className: s$9["swap-form-rate-selector"]
|
|
5394
|
-
}, /*#__PURE__*/React.createElement(RateSelector, {
|
|
5395
|
-
isFixed: (_isFixedRate$current3 = isFixedRate.current) != null ? _isFixedRate$current3 : IS_FIXED_BY_DEFAULT,
|
|
5396
|
-
setIsFixed: !isLoading.current ? handleRateModeChanged : function () {},
|
|
5397
|
-
translations: translations.rateSelector
|
|
5398
|
-
})) : "", validationContent ? /*#__PURE__*/React.createElement("div", {
|
|
5420
|
+
})) : null) : null) : null, validationContent ? /*#__PURE__*/React.createElement("div", {
|
|
5399
5421
|
className: s$9["swap-form-validation-text"]
|
|
5400
5422
|
}, /*#__PURE__*/React.createElement(Validation, {
|
|
5401
5423
|
text: validationContent
|
|
@@ -5416,7 +5438,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5416
5438
|
mode: "primary",
|
|
5417
5439
|
content: translations.confirmButtonText,
|
|
5418
5440
|
onClick: function onClick(resetButtonLoader) {
|
|
5419
|
-
return handleConfirmButtonClick(resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins, recipientAddress.current, recipientAddressExtraId.current, refundAddress.current, refundAddressExtraId.current);
|
|
5441
|
+
return handleConfirmButtonClick(resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins, recipientAddress.current, recipientAddressExtraId.current, refundAddress.current, refundAddressExtraId.current, isLastEditedReceiving);
|
|
5420
5442
|
},
|
|
5421
5443
|
fullWidthOnMobiles: true,
|
|
5422
5444
|
isDisabled: !readyToSwap,
|
|
@@ -5462,7 +5484,12 @@ SwapForm.propTypes = {
|
|
|
5462
5484
|
fiatCurrencyCode: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5463
5485
|
fiatCurrencyDecimals: PropTypes.oneOfType([PropTypes.number, null]),
|
|
5464
5486
|
formHasFiat: PropTypes.bool,
|
|
5487
|
+
termsOfUseUrl: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5488
|
+
privacyPolicyUrl: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5489
|
+
recipientAddressExtraIdName: PropTypes.string,
|
|
5490
|
+
refundAddressExtraIdName: PropTypes.string,
|
|
5465
5491
|
translations: PropTypes.object,
|
|
5492
|
+
validateAddressByTicker: PropTypes.func,
|
|
5466
5493
|
swapSeparatorIconSrc: PropTypes.string.isRequired,
|
|
5467
5494
|
swapButtonAlwaysActive: PropTypes.bool
|
|
5468
5495
|
};
|
|
@@ -5495,6 +5522,11 @@ SwapForm.defaultProps = {
|
|
|
5495
5522
|
fiatCurrencyCode: null,
|
|
5496
5523
|
fiatCurrencyDecimals: null,
|
|
5497
5524
|
formHasFiat: true,
|
|
5525
|
+
termsOfUseUrl: null,
|
|
5526
|
+
privacyPolicyUrl: null,
|
|
5527
|
+
validateAddressByTicker: function validateAddressByTicker(ticker) {
|
|
5528
|
+
return false;
|
|
5529
|
+
},
|
|
5498
5530
|
swapButtonAlwaysActive: false
|
|
5499
5531
|
};
|
|
5500
5532
|
|
|
@@ -5506,7 +5538,7 @@ SwapForm.defaultProps = {
|
|
|
5506
5538
|
* @return {Promise<string>} xml string of generated svg image
|
|
5507
5539
|
*/
|
|
5508
5540
|
|
|
5509
|
-
function _catch$
|
|
5541
|
+
function _catch$d(body, recover) {
|
|
5510
5542
|
try {
|
|
5511
5543
|
var result = body();
|
|
5512
5544
|
} catch (e) {
|
|
@@ -5519,7 +5551,7 @@ function _catch$b(body, recover) {
|
|
|
5519
5551
|
}
|
|
5520
5552
|
var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingString) {
|
|
5521
5553
|
try {
|
|
5522
|
-
return Promise.resolve(_catch$
|
|
5554
|
+
return Promise.resolve(_catch$d(function () {
|
|
5523
5555
|
return Promise.resolve(QRCode.toString(encodingString, {
|
|
5524
5556
|
type: "svg"
|
|
5525
5557
|
}));
|
|
@@ -5533,9 +5565,23 @@ var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingStrin
|
|
|
5533
5565
|
|
|
5534
5566
|
var s$6 = {"container":"_cTbW4","m-0":"_pa1z9","p-0":"_JFpOp","m-1":"_iRmOW","p-1":"_0sPGn","m-2":"_cX5Pd","p-2":"_2cKLW","m-3":"_lsOKS","p-3":"_MDp97","m-4":"_tiugy","p-4":"_lcNdz","m-5":"_ph3Rl","p-5":"_8Oxt6","m-6":"_LQvZy","p-6":"_RqY7F","m-7":"_K6wVB","p-7":"_aqQmY","m-8":"_AvgKS","p-8":"_-THq-","m-9":"_fLxYO","p-9":"_wNjdw","m-10":"_CVvN9","p-10":"_W0zcC","ml-0":"_lOxDW","pl-0":"_AZ4Gk","ml-1":"_PfYJJ","pl-1":"_ha7hP","ml-2":"_8HztG","pl-2":"_SB-3g","ml-3":"_udBJe","pl-3":"_EYbrF","ml-4":"_zSB90","pl-4":"_bGSY-","ml-5":"_vCg0l","pl-5":"_-hUSk","ml-6":"_wpvsa","pl-6":"_Po4yI","ml-7":"_Rv-mI","pl-7":"_rHVBB","ml-8":"_zYMBf","pl-8":"_BSAmk","ml-9":"_KE07p","pl-9":"_Bhlol","ml-10":"_iG9RV","pl-10":"_syE5i","mr-0":"_Z0qEx","pr-0":"_lV0Ms","mr-1":"_gO4IU","pr-1":"_CvRZh","mr-2":"_xy-oI","pr-2":"_vihQM","mr-3":"_eJ7bJ","pr-3":"_bmsh0","mr-4":"_EoFmR","pr-4":"_fVbSK","mr-5":"_tdfPe","pr-5":"_MNash","mr-6":"_haTqx","pr-6":"_YIf0P","mr-7":"_pooWd","pr-7":"_7MZOB","mr-8":"_bS7iD","pr-8":"_JRieo","mr-9":"_f6Phu","pr-9":"_mlqUy","mr-10":"_PPXXJ","pr-10":"_abKOE","mt-0":"_ItCpw","pt-0":"_zpY0G","mt-1":"_8TETK","pt-1":"_ANVw2","mt-2":"_s2Ox7","pt-2":"_L2yLo","mt-3":"_e2KDJ","pt-3":"_QfoJy","mt-4":"_O-rrM","pt-4":"_2USiC","mt-5":"_7Kzdb","pt-5":"_l3KrZ","mt-6":"_vgOok","pt-6":"_ng-zC","mt-7":"_nTMsZ","pt-7":"_KGp6z","mt-8":"_XANFt","pt-8":"_o3eiw","mt-9":"_l3H4r","pt-9":"_CRSXn","mt-10":"_ftQLu","pt-10":"_ikh2T","mb-0":"_jg4Jh","pb-0":"_sEOhP","mb-1":"_A9pLc","pb-1":"_O3GpB","mb-2":"_Ko-ls","pb-2":"_Nh0Vh","mb-3":"_APbRY","pb-3":"_tWmjY","mb-4":"_XUlFk","pb-4":"_ZvsvW","mb-5":"_n5nhM","pb-5":"_-tSIX","mb-6":"_QtZDL","pb-6":"_-39t0","mb-7":"_D0Dpl","pb-7":"_45Xmr","mb-8":"_GqsvX","pb-8":"_6CQop","mb-9":"_Z4Ivt","pb-9":"_veodh","mb-10":"_L3rOe","pb-10":"_YRD2e","mx-0":"_bzM7J","px-0":"_8ogz0","mx-1":"_XyVmJ","px-1":"_X9KHo","mx-2":"_R6tXp","px-2":"_Zja9K","mx-3":"_vdTzJ","px-3":"_9O9dG","mx-4":"_mcsEY","px-4":"_HuOg7","mx-5":"_Q96D3","px-5":"_gwh60","mx-6":"_Tli0m","px-6":"_znyER","mx-7":"_WNYMW","px-7":"_r1il4","mx-8":"_vMRfR","px-8":"_SYdPJ","mx-9":"_3mTwX","px-9":"_XqzX6","mx-10":"_ZAjnm","px-10":"_vYiab","my-0":"_DTi5m","py-0":"_NhBC-","my-1":"_lYPq3","py-1":"_LsZYc","my-2":"_ie-4q","py-2":"_-8kuS","my-3":"_PcwSW","py-3":"_9SVW-","my-4":"_HM-DC","py-4":"_cBLeY","my-5":"_iFfyB","py-5":"_cFMUa","my-6":"_uxMHp","py-6":"_OeII-","my-7":"_Y-LlZ","py-7":"_3ydPM","my-8":"_ifpwB","py-8":"_nPGL9","my-9":"_9XS-9","py-9":"_HRWBM","my-10":"_r-9W3","py-10":"_G5SRo","m-sm-0":"_XQBmN","p-sm-0":"_s9MHP","m-sm-1":"_e6dLK","p-sm-1":"_47tQJ","m-sm-2":"_Sq84f","p-sm-2":"_7T9oC","m-sm-3":"_6DK-C","p-sm-3":"_1mWwA","m-sm-4":"_jephJ","p-sm-4":"_8isN2","m-sm-5":"_Qj6AO","p-sm-5":"_dc7y9","m-sm-6":"_TPeN7","p-sm-6":"_2rG8f","m-sm-7":"_MfYlH","p-sm-7":"_6zVKJ","m-sm-8":"_QlZvU","p-sm-8":"_tx9ap","m-sm-9":"_rLz-E","p-sm-9":"_q06Mz","m-sm-10":"_3uSku","p-sm-10":"_Hc-5n","ml-sm-0":"_1UbDf","pl-sm-0":"_touOJ","ml-sm-1":"_1bN5I","pl-sm-1":"_bQHcU","ml-sm-2":"_i8oPe","pl-sm-2":"_Vtfxf","ml-sm-3":"_CBcsQ","pl-sm-3":"_SzmcT","ml-sm-4":"_6qcw8","pl-sm-4":"_vbSGm","ml-sm-5":"_n-zBA","pl-sm-5":"_Q9Q9i","ml-sm-6":"_2o7ve","pl-sm-6":"_UPjnI","ml-sm-7":"_NeEAG","pl-sm-7":"_ngtJ-","ml-sm-8":"_-Z2Hf","pl-sm-8":"_VQpYs","ml-sm-9":"_Sla3G","pl-sm-9":"_9WquO","ml-sm-10":"_kuYOg","pl-sm-10":"_mf-JK","mr-sm-0":"_D-am2","pr-sm-0":"_Z4QgH","mr-sm-1":"_JNB16","pr-sm-1":"_1nuYG","mr-sm-2":"_JSz3T","pr-sm-2":"_VIVsb","mr-sm-3":"_hf2wL","pr-sm-3":"_U27cs","mr-sm-4":"_fphSG","pr-sm-4":"_oan05","mr-sm-5":"_-q4eR","pr-sm-5":"_1z6Az","mr-sm-6":"_ex6FB","pr-sm-6":"_4B5XH","mr-sm-7":"_AhvSF","pr-sm-7":"_98YQI","mr-sm-8":"_ukGgp","pr-sm-8":"_i1l6d","mr-sm-9":"_R-dZ7","pr-sm-9":"_rq-kd","mr-sm-10":"_dVc4S","pr-sm-10":"_X-WfK","mt-sm-0":"_gYF9v","pt-sm-0":"_EA2Ki","mt-sm-1":"_B1K8h","pt-sm-1":"_ug-cq","mt-sm-2":"_SVe1c","pt-sm-2":"_kAto4","mt-sm-3":"_zvT2b","pt-sm-3":"_eaLRc","mt-sm-4":"_2dFgE","pt-sm-4":"_tweF5","mt-sm-5":"_KlgR2","pt-sm-5":"_BwPt9","mt-sm-6":"_FVlah","pt-sm-6":"_HZ-1-","mt-sm-7":"_-usQF","pt-sm-7":"_NvK9x","mt-sm-8":"_VjH2p","pt-sm-8":"_G1yH9","mt-sm-9":"_u4fMt","pt-sm-9":"_tw7GS","mt-sm-10":"_ymkT3","pt-sm-10":"_yJhls","mb-sm-0":"_lGkDj","pb-sm-0":"_HHf7Y","mb-sm-1":"_1I2Vs","pb-sm-1":"_i3RzV","mb-sm-2":"_BIWVv","pb-sm-2":"_4tkvJ","mb-sm-3":"_FwyAM","pb-sm-3":"_abS24","mb-sm-4":"_dqY3O","pb-sm-4":"_b--2r","mb-sm-5":"_I4bmd","pb-sm-5":"_tzrqS","mb-sm-6":"_pgsKQ","pb-sm-6":"_cpvrM","mb-sm-7":"_-Rr98","pb-sm-7":"_KBGRo","mb-sm-8":"_Zl7om","pb-sm-8":"_LWOz1","mb-sm-9":"_vo0F-","pb-sm-9":"_O2BEY","mb-sm-10":"_F-Lhx","pb-sm-10":"_6AZ0T","mx-sm-0":"_Y0X-J","px-sm-0":"_HcvBd","mx-sm-1":"_X3Fb3","px-sm-1":"_-JfYt","mx-sm-2":"_1x4W2","px-sm-2":"_qydtY","mx-sm-3":"_XUuRa","px-sm-3":"_eBVc0","mx-sm-4":"_63l4w","px-sm-4":"_k3SYD","mx-sm-5":"_5i7KK","px-sm-5":"_XDYJN","mx-sm-6":"_w8TjD","px-sm-6":"_5ol5V","mx-sm-7":"_Ot40y","px-sm-7":"_oV5-L","mx-sm-8":"_a8L2h","px-sm-8":"_wi0TE","mx-sm-9":"_v7kEh","px-sm-9":"_0-HhG","mx-sm-10":"_1okBb","px-sm-10":"_95N84","my-sm-0":"_lie2G","py-sm-0":"_ouOvB","my-sm-1":"_ohdC7","py-sm-1":"_aMnh9","my-sm-2":"_7xHoJ","py-sm-2":"_0ug55","my-sm-3":"_U2pB2","py-sm-3":"_4cGIX","my-sm-4":"_ZdqXJ","py-sm-4":"_WxW7n","my-sm-5":"_oVJaN","py-sm-5":"_AWbwx","my-sm-6":"_TBmmo","py-sm-6":"_KwGcy","my-sm-7":"_o3VYk","py-sm-7":"_ci94b","my-sm-8":"_GvBdM","py-sm-8":"_SIEyA","my-sm-9":"_sq-Bc","py-sm-9":"_RahCO","my-sm-10":"_Y22he","py-sm-10":"_zgeqj","m-lg-0":"_hfSrX","p-lg-0":"_pn8y2","m-lg-1":"_LfWT0","p-lg-1":"_QVlAL","m-lg-2":"_1icWB","p-lg-2":"_dl4cc","m-lg-3":"_CMQ3-","p-lg-3":"_zrs1N","m-lg-4":"_x0g6f","p-lg-4":"_Os9NS","m-lg-5":"_U9MlN","p-lg-5":"_jFWCr","m-lg-6":"_tLOlh","p-lg-6":"_42qu5","m-lg-7":"_Aro8c","p-lg-7":"_-uOsA","m-lg-8":"_Au56y","p-lg-8":"_2Oyz7","m-lg-9":"_Osk7K","p-lg-9":"_lXQ8x","m-lg-10":"_dllSC","p-lg-10":"_Tm67i","ml-lg-0":"_Znqug","pl-lg-0":"_454P-","ml-lg-1":"_kUu3E","pl-lg-1":"_w89ET","ml-lg-2":"_WmVQL","pl-lg-2":"_kR-EV","ml-lg-3":"_k5kWU","pl-lg-3":"_-Kb0x","ml-lg-4":"_KKFXp","pl-lg-4":"_-fkcR","ml-lg-5":"_yS-Tb","pl-lg-5":"_O-1Va","ml-lg-6":"_p-vq5","pl-lg-6":"_JMyQH","ml-lg-7":"_k7-ti","pl-lg-7":"_qEF3U","ml-lg-8":"_4Hiwo","pl-lg-8":"_i0YLE","ml-lg-9":"_E7-Mc","pl-lg-9":"_tR6Ca","ml-lg-10":"_XJWn-","pl-lg-10":"_lMFa-","mr-lg-0":"_-5re8","pr-lg-0":"_frmaO","mr-lg-1":"_V7Qjd","pr-lg-1":"_RfFWZ","mr-lg-2":"_zovH5","pr-lg-2":"_I0DtE","mr-lg-3":"_R1FBX","pr-lg-3":"_UGURA","mr-lg-4":"_A91bo","pr-lg-4":"_OC0rQ","mr-lg-5":"_UuInF","pr-lg-5":"_o6Z7k","mr-lg-6":"_2WcKB","pr-lg-6":"_hb6AF","mr-lg-7":"_7zOUh","pr-lg-7":"_ISeQS","mr-lg-8":"_XB-jo","pr-lg-8":"_WH43T","mr-lg-9":"_3Z5tO","pr-lg-9":"_KDtmP","mr-lg-10":"_YWWDg","pr-lg-10":"_3jxch","mt-lg-0":"_NpdpZ","pt-lg-0":"_G3CYP","mt-lg-1":"_rBTNB","pt-lg-1":"_oP3bL","mt-lg-2":"_7k4z7","pt-lg-2":"_W-jQH","mt-lg-3":"_g3B6v","pt-lg-3":"_VJ1Ff","mt-lg-4":"_KMnJN","pt-lg-4":"_ZD8Fa","mt-lg-5":"_b5cHq","pt-lg-5":"_dg5j0","mt-lg-6":"_-Cpwd","pt-lg-6":"_THSdM","mt-lg-7":"_Z3s1F","pt-lg-7":"_lYEdd","mt-lg-8":"_Aqcim","pt-lg-8":"_layfK","mt-lg-9":"_PODRQ","pt-lg-9":"_Jwmvr","mt-lg-10":"_oE-Es","pt-lg-10":"_iqMxI","mb-lg-0":"_0ouBF","pb-lg-0":"_pY5e-","mb-lg-1":"_6UkMv","pb-lg-1":"_rTQpv","mb-lg-2":"_QdezS","pb-lg-2":"_bKRvY","mb-lg-3":"_9kRgX","pb-lg-3":"_0rDFg","mb-lg-4":"_raL2S","pb-lg-4":"_g1goH","mb-lg-5":"_ZYlhK","pb-lg-5":"_xEjIS","mb-lg-6":"_2Bqs7","pb-lg-6":"_0-ck4","mb-lg-7":"_I-Q95","pb-lg-7":"_eBNa3","mb-lg-8":"_jynhW","pb-lg-8":"_N4X7K","mb-lg-9":"_V0gnd","pb-lg-9":"_30KI-","mb-lg-10":"_u7LJD","pb-lg-10":"_0rvxP","mx-lg-0":"_eJDxo","px-lg-0":"_foMtX","mx-lg-1":"_ahZeW","px-lg-1":"_1EJE3","mx-lg-2":"_VsP4e","px-lg-2":"_ZkXCK","mx-lg-3":"_IiuAl","px-lg-3":"_ALX0f","mx-lg-4":"_jPo2Y","px-lg-4":"_iJZSC","mx-lg-5":"_uAU0P","px-lg-5":"_z75CM","mx-lg-6":"_ZiYYZ","px-lg-6":"_-wNvd","mx-lg-7":"_3W1xI","px-lg-7":"_EGCYr","mx-lg-8":"_IKuC1","px-lg-8":"_CsKA7","mx-lg-9":"_y5S5T","px-lg-9":"_pSFpC","mx-lg-10":"_X8XlP","px-lg-10":"_UFRIe","my-lg-0":"_W1tUz","py-lg-0":"_jfJjF","my-lg-1":"_nIUQq","py-lg-1":"_iG2bO","my-lg-2":"_GCiW7","py-lg-2":"_f2j4U","my-lg-3":"_a1kEm","py-lg-3":"_vucDB","my-lg-4":"_6W-Ov","py-lg-4":"_2ktTG","my-lg-5":"_O4LLf","py-lg-5":"_Hcb15","my-lg-6":"_CSfmZ","py-lg-6":"_CPuhc","my-lg-7":"_3mH-z","py-lg-7":"_X6-mZ","my-lg-8":"_asmPC","py-lg-8":"_TTf47","my-lg-9":"_mC-i2","py-lg-9":"_iFSI7","my-lg-10":"_2BFm0","py-lg-10":"_bfNEm","m-md-0":"_-spRI","p-md-0":"_LK8-A","m-md-1":"_zjpam","p-md-1":"_wv8PD","m-md-2":"_06GpP","p-md-2":"_zdlRp","m-md-3":"_sNmTl","p-md-3":"_Yo2qI","m-md-4":"_eHYDi","p-md-4":"_b0S-l","m-md-5":"_U15c8","p-md-5":"_5tzlt","m-md-6":"_ZGL7n","p-md-6":"_5wNZQ","m-md-7":"_a0fPA","p-md-7":"_QQVBX","m-md-8":"_9-xcZ","p-md-8":"_RW3k1","m-md-9":"_rDAcs","p-md-9":"_k1xXG","m-md-10":"_RbEPp","p-md-10":"_hSl5q","ml-md-0":"_JaAa5","pl-md-0":"_eC-r7","ml-md-1":"_TiFFz","pl-md-1":"_tOXmv","ml-md-2":"_9mF2Z","pl-md-2":"_vwsKB","ml-md-3":"_15YPO","pl-md-3":"_XPkcU","ml-md-4":"_boTLY","pl-md-4":"_SFsKJ","ml-md-5":"_3axKI","pl-md-5":"_D2sbk","ml-md-6":"_e7bnL","pl-md-6":"_NQ2Nm","ml-md-7":"_rBXtE","pl-md-7":"_NeI-O","ml-md-8":"_XwNPD","pl-md-8":"_SbqlX","ml-md-9":"_Y-58E","pl-md-9":"_6cNCb","ml-md-10":"_JX9Cq","pl-md-10":"_uEAJa","mr-md-0":"_Jx5kC","pr-md-0":"_9FxwM","mr-md-1":"_iy6Yx","pr-md-1":"_RTwZ-","mr-md-2":"_Sm2g4","pr-md-2":"_mZS-2","mr-md-3":"_xKF1D","pr-md-3":"_okrlw","mr-md-4":"_bSzPv","pr-md-4":"_lahnF","mr-md-5":"_p5D7E","pr-md-5":"_RYFzr","mr-md-6":"_7DOT6","pr-md-6":"_aOldY","mr-md-7":"_GfYE-","pr-md-7":"_DNhH5","mr-md-8":"_eW2PP","pr-md-8":"_fteCN","mr-md-9":"_dyAiH","pr-md-9":"_xabgi","mr-md-10":"_PHePp","pr-md-10":"_qoP00","mt-md-0":"_05YBn","pt-md-0":"_yrlcd","mt-md-1":"_yFl6Y","pt-md-1":"_6b-mC","mt-md-2":"_G7jGU","pt-md-2":"_6GZzc","mt-md-3":"_ufBby","pt-md-3":"_qbnV7","mt-md-4":"_q7LKH","pt-md-4":"_hJCP8","mt-md-5":"_qtf2d","pt-md-5":"_aRWST","mt-md-6":"_TeL7T","pt-md-6":"_ZNePu","mt-md-7":"_jl4lr","pt-md-7":"_IlTFc","mt-md-8":"_a24kO","pt-md-8":"_-zvRb","mt-md-9":"_WXX3L","pt-md-9":"_2EEJ4","mt-md-10":"_X18TD","pt-md-10":"_MVooa","mb-md-0":"_DHwvN","pb-md-0":"_Uw70J","mb-md-1":"_v4jX-","pb-md-1":"_gJHwB","mb-md-2":"_boWJw","pb-md-2":"_j5kJT","mb-md-3":"_IZI-P","pb-md-3":"_LGchh","mb-md-4":"_R0Ont","pb-md-4":"_HYfpq","mb-md-5":"_ized0","pb-md-5":"_vTIf8","mb-md-6":"_zWpdC","pb-md-6":"_WEEGo","mb-md-7":"_1f-FE","pb-md-7":"_kfQzs","mb-md-8":"_j2X9B","pb-md-8":"_yRenj","mb-md-9":"_vnyNi","pb-md-9":"_JoD-h","mb-md-10":"_M-UM-","pb-md-10":"_L6x5K","mx-md-0":"_Vb8-P","px-md-0":"_4oZZN","mx-md-1":"_x42Ry","px-md-1":"_nR54S","mx-md-2":"_sBxfn","px-md-2":"_316Hu","mx-md-3":"_Hlimc","px-md-3":"_xIOYB","mx-md-4":"_9mXFC","px-md-4":"_-Fr6a","mx-md-5":"_Iv-gL","px-md-5":"_BqRA8","mx-md-6":"_7KKoC","px-md-6":"_32kSW","mx-md-7":"_qDWiW","px-md-7":"_vFnpw","mx-md-8":"_W4giE","px-md-8":"_4xRbP","mx-md-9":"_27uMt","px-md-9":"_7JLvO","mx-md-10":"_WyzX-","px-md-10":"_rzIDq","my-md-0":"_V28a9","py-md-0":"_znJMr","my-md-1":"_-3O4g","py-md-1":"_20sBd","my-md-2":"_O-A1l","py-md-2":"_5QSZG","my-md-3":"_QzjlZ","py-md-3":"_MILKq","my-md-4":"_O6rPK","py-md-4":"_KG0dA","my-md-5":"_0OhYl","py-md-5":"_KvUZf","my-md-6":"_rpwnV","py-md-6":"_yesTR","my-md-7":"_-WMtU","py-md-7":"_Ozuan","my-md-8":"_1gsdT","py-md-8":"_Zaqjb","my-md-9":"_nBoFu","py-md-9":"_ATTX2","my-md-10":"_LmCyF","py-md-10":"_FRV8s","m-xl-0":"_vfL3y","p-xl-0":"_EAyFx","m-xl-1":"_9Ru5u","p-xl-1":"_F2FfD","m-xl-2":"_uZD3X","p-xl-2":"_X9oXS","m-xl-3":"_D4N3Z","p-xl-3":"_zDeYX","m-xl-4":"_yHbfy","p-xl-4":"_6BvXQ","m-xl-5":"_gxlNl","p-xl-5":"_pCCVG","m-xl-6":"_qya4B","p-xl-6":"_QvUyx","m-xl-7":"_eJCt5","p-xl-7":"_p6XPi","m-xl-8":"_0THjs","p-xl-8":"_cC5TI","m-xl-9":"_k0QDj","p-xl-9":"_zwxO-","m-xl-10":"_4W0VS","p-xl-10":"_Xqjzh","ml-xl-0":"_jV-29","pl-xl-0":"_yy22x","ml-xl-1":"_T5fSu","pl-xl-1":"_93-K3","ml-xl-2":"_3zBLT","pl-xl-2":"_zjoAh","ml-xl-3":"_fz6la","pl-xl-3":"_UyWvU","ml-xl-4":"_rWYaL","pl-xl-4":"_9bQv0","ml-xl-5":"_0sArB","pl-xl-5":"_7o4Af","ml-xl-6":"_Y2eGT","pl-xl-6":"_xWqqk","ml-xl-7":"_YKpXT","pl-xl-7":"_g80UK","ml-xl-8":"_4cajU","pl-xl-8":"_h9QHX","ml-xl-9":"_oOpVP","pl-xl-9":"_ZXrhV","ml-xl-10":"_WJTHf","pl-xl-10":"_IZnPI","mr-xl-0":"_TB1mj","pr-xl-0":"_E3W1c","mr-xl-1":"_8EyKO","pr-xl-1":"_eaU7V","mr-xl-2":"_aCAu-","pr-xl-2":"_Fpj5l","mr-xl-3":"_GsiAJ","pr-xl-3":"_w-FUl","mr-xl-4":"_WXA1T","pr-xl-4":"_DbO3B","mr-xl-5":"_RtwaI","pr-xl-5":"_nwxwr","mr-xl-6":"_w9wUn","pr-xl-6":"_RBEVT","mr-xl-7":"_h4yUW","pr-xl-7":"_yzODd","mr-xl-8":"_HGkda","pr-xl-8":"_NR7L2","mr-xl-9":"_DKcGP","pr-xl-9":"_vfynG","mr-xl-10":"_klfNs","pr-xl-10":"_Olvpu","mt-xl-0":"_orHon","pt-xl-0":"_pqwts","mt-xl-1":"_OH3oL","pt-xl-1":"_QKjE8","mt-xl-2":"_8D31l","pt-xl-2":"_1l79D","mt-xl-3":"_kzbfM","pt-xl-3":"_wT--w","mt-xl-4":"_r8VYm","pt-xl-4":"_DgPY3","mt-xl-5":"_LF4aG","pt-xl-5":"_vD44v","mt-xl-6":"_c4BLJ","pt-xl-6":"_ElVvf","mt-xl-7":"_GxjHg","pt-xl-7":"_230T2","mt-xl-8":"_aCStj","pt-xl-8":"_vCtDV","mt-xl-9":"_Bo25T","pt-xl-9":"_kKkav","mt-xl-10":"_koZP7","pt-xl-10":"_dsMYs","mb-xl-0":"_C-FbO","pb-xl-0":"_3Nq0y","mb-xl-1":"_XrrZu","pb-xl-1":"_bV14o","mb-xl-2":"_uMcoW","pb-xl-2":"_sreSu","mb-xl-3":"_LcyMS","pb-xl-3":"_tU2l3","mb-xl-4":"_-OT5O","pb-xl-4":"_9HkKs","mb-xl-5":"_bHipN","pb-xl-5":"_DPjem","mb-xl-6":"_hifEE","pb-xl-6":"_RIEji","mb-xl-7":"_Oa7hP","pb-xl-7":"_vzsdg","mb-xl-8":"_pkI29","pb-xl-8":"_0jC5o","mb-xl-9":"_H4C-y","pb-xl-9":"_E9bOZ","mb-xl-10":"_ZVWPI","pb-xl-10":"_-u5jh","mx-xl-0":"_zXDFY","px-xl-0":"_-1-bs","mx-xl-1":"_Tb7NK","px-xl-1":"_xsfgY","mx-xl-2":"_EIQON","px-xl-2":"_Yzt4Z","mx-xl-3":"_LT9ms","px-xl-3":"_jHgj2","mx-xl-4":"_2SbJZ","px-xl-4":"_V-Y3l","mx-xl-5":"_-G8hg","px-xl-5":"_eycX1","mx-xl-6":"_dDxDv","px-xl-6":"_TgE5t","mx-xl-7":"_9CKTr","px-xl-7":"_I-zZG","mx-xl-8":"_SyFyQ","px-xl-8":"_Hyq-2","mx-xl-9":"_LAJdn","px-xl-9":"_ng4Ed","mx-xl-10":"_lp88j","px-xl-10":"_vmD8P","my-xl-0":"_eMXwe","py-xl-0":"_aETwB","my-xl-1":"_dS2Zm","py-xl-1":"_pHxI3","my-xl-2":"_kPY2w","py-xl-2":"_sPtzJ","my-xl-3":"_g1gY4","py-xl-3":"_OUmMw","my-xl-4":"_mLo8K","py-xl-4":"_wkW-B","my-xl-5":"_6P91L","py-xl-5":"_i3OCk","my-xl-6":"_cqBd2","py-xl-6":"_fZ8e0","my-xl-7":"_saauK","py-xl-7":"_wrgof","my-xl-8":"_5m8Th","py-xl-8":"_tlMWT","my-xl-9":"_HxjEh","py-xl-9":"_l-MtD","my-xl-10":"_dJDVj","py-xl-10":"_uEjIR","background-shine":"_O8uMC","path":"_WiuLg","line":"_fS3dR","skeleton":"_Z4CzX","skeleton-animate":"_-W0Ni","skeleton-dark":"_IoNbr","skeleton-dark-animate":"_7W6h3","skeleton-transparent":"_l3AMk","skeleton-transparent-animate":"_r77sc","semi-transparent":"_ci4Xo","qr-code":"_VZ0dT","fill":"_hFE1l"};
|
|
5535
5567
|
|
|
5536
|
-
|
|
5568
|
+
/**
|
|
5569
|
+
* QrCode component renders a QR code for a provided crypto address.
|
|
5570
|
+
*
|
|
5571
|
+
* @component
|
|
5572
|
+
* @example
|
|
5573
|
+
* const address = "0x123456789abcdef";
|
|
5574
|
+
* const fill = true;
|
|
5575
|
+
* return <QrCode address={address} fill={fill} />;
|
|
5576
|
+
*
|
|
5577
|
+
* @param {Object} props - The props for the component.
|
|
5578
|
+
* @param {string} props.address - The crypto address to generate the QR code for.
|
|
5579
|
+
* @param {boolean} [props.fill=false] - If true, applies additional CSS class to fill the container.
|
|
5580
|
+
*
|
|
5581
|
+
* @returns {JSX.Element} A div containing the generated QR code.
|
|
5582
|
+
*/
|
|
5537
5583
|
|
|
5538
|
-
function _catch$
|
|
5584
|
+
function _catch$c(body, recover) {
|
|
5539
5585
|
try {
|
|
5540
5586
|
var result = body();
|
|
5541
5587
|
} catch (e) {
|
|
@@ -5554,7 +5600,7 @@ var QrCode = function QrCode(_ref) {
|
|
|
5554
5600
|
useEffect(function () {
|
|
5555
5601
|
(function () {
|
|
5556
5602
|
try {
|
|
5557
|
-
return _catch$
|
|
5603
|
+
return _catch$c(function () {
|
|
5558
5604
|
var _temp = function () {
|
|
5559
5605
|
if (address) {
|
|
5560
5606
|
return Promise.resolve(generateQrAndShowInCanvas(address)).then(function (_generateQrAndShowInC) {
|
|
@@ -5581,7 +5627,8 @@ QrCode.propTypes = {
|
|
|
5581
5627
|
fill: PropTypes.bool
|
|
5582
5628
|
};
|
|
5583
5629
|
QrCode.defaultProps = {
|
|
5584
|
-
address: ""
|
|
5630
|
+
address: "",
|
|
5631
|
+
fill: false
|
|
5585
5632
|
};
|
|
5586
5633
|
|
|
5587
5634
|
var s$5 = {"container":"_NaTd2","m-0":"_YHORQ","p-0":"_vFwmg","m-1":"_XJaHq","p-1":"_hIM3t","m-2":"_WgBak","p-2":"_QbcpO","m-3":"_-S6sq","p-3":"_jOOQ0","m-4":"_znEJf","p-4":"_Lg8C3","m-5":"_qp5LK","p-5":"_5czqM","m-6":"_274as","p-6":"_Xl4AT","m-7":"_Zm2L-","p-7":"_apGWT","m-8":"_C94JK","p-8":"_-ZZwv","m-9":"_wCPNe","p-9":"_8AlLB","m-10":"_LkyIb","p-10":"_wmhyI","ml-0":"_X2MXW","pl-0":"_zLOyd","ml-1":"_Bt-i6","pl-1":"_btKpD","ml-2":"_4Bwl5","pl-2":"_pfI2U","ml-3":"_dkGsO","pl-3":"_Bxv71","ml-4":"_UwipE","pl-4":"_earg6","ml-5":"_F5beh","pl-5":"_0UFA4","ml-6":"_8JK7d","pl-6":"_D4Q-L","ml-7":"_xD22L","pl-7":"_x7e5C","ml-8":"_FHYzO","pl-8":"_pA0Gs","ml-9":"_beftM","pl-9":"_lygHM","ml-10":"_hxaQQ","pl-10":"_AQhiw","mr-0":"_FPd0G","pr-0":"_kzAQL","mr-1":"_3huZS","pr-1":"_QXzb1","mr-2":"_Rz58G","pr-2":"_yMW65","mr-3":"_MXmu7","pr-3":"_IDswm","mr-4":"_IcYbX","pr-4":"_x-YXe","mr-5":"_NYlLE","pr-5":"_4l555","mr-6":"_UjOdV","pr-6":"_SE5we","mr-7":"_AlzPK","pr-7":"_hUHaY","mr-8":"_-gsnW","pr-8":"_IP34z","mr-9":"_UmWyx","pr-9":"_MzrNl","mr-10":"_ds0Ix","pr-10":"_AYlq-","mt-0":"_7qyuy","pt-0":"_nIHOM","mt-1":"_6RqW-","pt-1":"_4-OC1","mt-2":"_rcUWP","pt-2":"_fkjUO","mt-3":"_S7R9D","pt-3":"_j5tAQ","mt-4":"_TUqA4","pt-4":"_vVsJ-","mt-5":"_sHshm","pt-5":"_B-zUI","mt-6":"_0cWsK","pt-6":"_9bfIn","mt-7":"_fjL9E","pt-7":"_NTUdY","mt-8":"_HasBT","pt-8":"_mVF0B","mt-9":"_-u5T1","pt-9":"_ExDUQ","mt-10":"_9pUY-","pt-10":"_eiVcd","mb-0":"_03MFB","pb-0":"_-KrHh","mb-1":"_wev0C","pb-1":"_wtVjK","mb-2":"_gprlv","pb-2":"_J2Q09","mb-3":"_RhXyK","pb-3":"_12ip-","mb-4":"_z5dvT","pb-4":"_Go5-i","mb-5":"_-KBHs","pb-5":"_E3y4V","mb-6":"_yaPh3","pb-6":"_tdi0b","mb-7":"_tv-DY","pb-7":"_fm9Cu","mb-8":"_oBOhs","pb-8":"_cplbD","mb-9":"_WLAwt","pb-9":"_Au3aP","mb-10":"_s2hC1","pb-10":"_L1xED","mx-0":"_AoX5Q","px-0":"_bNNCF","mx-1":"_h8MO1","px-1":"_AJV5c","mx-2":"_QS9LF","px-2":"_hjDVm","mx-3":"_s-SQj","px-3":"_NGiEN","mx-4":"_M6wbK","px-4":"_KCPtZ","mx-5":"_inpZ7","px-5":"_Fr1vd","mx-6":"_BZCXr","px-6":"_zX70b","mx-7":"_XS9X0","px-7":"_E-fbe","mx-8":"_1bVOE","px-8":"_q0UF1","mx-9":"_cWIFa","px-9":"_gJSuV","mx-10":"_wwZlY","px-10":"_eFX6M","my-0":"_jYkDW","py-0":"_ypkZR","my-1":"_1O4Zz","py-1":"_2yJ0B","my-2":"_s180c","py-2":"_-TKas","my-3":"_rbbHu","py-3":"_nEJt6","my-4":"_3X4XE","py-4":"_GLyG-","my-5":"_PPFYe","py-5":"_wj3wh","my-6":"_zxO-F","py-6":"_-Gh70","my-7":"_H7Lx-","py-7":"_ri-zp","my-8":"_kSsB4","py-8":"_DVbNR","my-9":"_VBCoh","py-9":"_7B8Mh","my-10":"_Bs8XQ","py-10":"_pwEBN","m-sm-0":"_oHFJU","p-sm-0":"_6Ukh0","m-sm-1":"_Etjc0","p-sm-1":"_pCMmU","m-sm-2":"_ERgH4","p-sm-2":"_gubJN","m-sm-3":"_3j0mZ","p-sm-3":"_h-278","m-sm-4":"_m25O0","p-sm-4":"_yM2Bk","m-sm-5":"_KR2He","p-sm-5":"_Q3d0A","m-sm-6":"_E1VMD","p-sm-6":"_uh277","m-sm-7":"_pDEm8","p-sm-7":"_efVXx","m-sm-8":"_PFrZ3","p-sm-8":"_qZLnl","m-sm-9":"_mvAgG","p-sm-9":"_F6MJe","m-sm-10":"_076H1","p-sm-10":"_zGVoi","ml-sm-0":"_ht3fQ","pl-sm-0":"_OOKlP","ml-sm-1":"_xyrlV","pl-sm-1":"_6N0PC","ml-sm-2":"_h9adY","pl-sm-2":"_QpEtQ","ml-sm-3":"_CD11L","pl-sm-3":"_PBl7w","ml-sm-4":"_Hfd1V","pl-sm-4":"_n-oVT","ml-sm-5":"_JTt3q","pl-sm-5":"_plbYR","ml-sm-6":"_6eXa4","pl-sm-6":"_UBe72","ml-sm-7":"_Uu42M","pl-sm-7":"_yxNHm","ml-sm-8":"_7ohP7","pl-sm-8":"_11foE","ml-sm-9":"_zRuRz","pl-sm-9":"_YisGl","ml-sm-10":"_Nc8nr","pl-sm-10":"_nyiix","mr-sm-0":"_AmWPq","pr-sm-0":"_6fYUi","mr-sm-1":"_mub2q","pr-sm-1":"_Vgj29","mr-sm-2":"_CIMnU","pr-sm-2":"_ot1oR","mr-sm-3":"_JCTye","pr-sm-3":"_vF9S2","mr-sm-4":"_DK3GL","pr-sm-4":"_xdAgD","mr-sm-5":"_WW9Gf","pr-sm-5":"_wVWX0","mr-sm-6":"_ObyBZ","pr-sm-6":"_QhcRY","mr-sm-7":"_LV5L8","pr-sm-7":"_Y5Gy0","mr-sm-8":"_5g6Dc","pr-sm-8":"_2AqT8","mr-sm-9":"_3sCFZ","pr-sm-9":"_1xGS-","mr-sm-10":"_qz1yf","pr-sm-10":"_JPmov","mt-sm-0":"_Th7pa","pt-sm-0":"_ClkMf","mt-sm-1":"_V27PW","pt-sm-1":"_mtTAL","mt-sm-2":"_Q09QK","pt-sm-2":"_1I3Gw","mt-sm-3":"_govQ3","pt-sm-3":"_tYeBV","mt-sm-4":"_EcCmu","pt-sm-4":"_XMDNY","mt-sm-5":"_PDuEt","pt-sm-5":"_6Vkzk","mt-sm-6":"_0YG19","pt-sm-6":"_2Cgli","mt-sm-7":"_-lWQN","pt-sm-7":"_cEzEZ","mt-sm-8":"_nGa33","pt-sm-8":"_-raau","mt-sm-9":"_PMq4L","pt-sm-9":"_w7zEF","mt-sm-10":"_ehNrF","pt-sm-10":"_jmaO2","mb-sm-0":"_RrFqz","pb-sm-0":"_12i4p","mb-sm-1":"_7Ahx0","pb-sm-1":"_flSBK","mb-sm-2":"_NB4sU","pb-sm-2":"_gPzKo","mb-sm-3":"_TV50u","pb-sm-3":"_bSZaB","mb-sm-4":"_eysFY","pb-sm-4":"_FteNR","mb-sm-5":"_EtHbQ","pb-sm-5":"_qTuR8","mb-sm-6":"_GB6FT","pb-sm-6":"_Py5nK","mb-sm-7":"_uIaBf","pb-sm-7":"_D2bHt","mb-sm-8":"_Q-avy","pb-sm-8":"_gsv-o","mb-sm-9":"_UG-gK","pb-sm-9":"_D9sNH","mb-sm-10":"_m2xUH","pb-sm-10":"_iQbrf","mx-sm-0":"_-L1Tf","px-sm-0":"_iKCny","mx-sm-1":"_75NUT","px-sm-1":"_QhF00","mx-sm-2":"_-LVWC","px-sm-2":"_Tvv1b","mx-sm-3":"_khdAw","px-sm-3":"_PZYyJ","mx-sm-4":"_OyZmA","px-sm-4":"_95e4A","mx-sm-5":"_Vnqmh","px-sm-5":"_eTlqy","mx-sm-6":"_XUY2U","px-sm-6":"_3EpGV","mx-sm-7":"_SHfGI","px-sm-7":"_eI7rR","mx-sm-8":"_zIL2L","px-sm-8":"_9saK-","mx-sm-9":"_H1Fzw","px-sm-9":"_kf1Hf","mx-sm-10":"_P8qDH","px-sm-10":"_gio52","my-sm-0":"_chaCt","py-sm-0":"_O7-z-","my-sm-1":"_LrTqG","py-sm-1":"_pHmaj","my-sm-2":"_oU92I","py-sm-2":"_Mnwns","my-sm-3":"_1C5A9","py-sm-3":"_ImF2o","my-sm-4":"_WbO9H","py-sm-4":"_Z1OmB","my-sm-5":"_EYXZu","py-sm-5":"_vYHEp","my-sm-6":"_g3MSP","py-sm-6":"_2NYDD","my-sm-7":"_2joeb","py-sm-7":"_qd50T","my-sm-8":"_VGpWm","py-sm-8":"_cwG11","my-sm-9":"_ekf8e","py-sm-9":"_cK4PR","my-sm-10":"_cc6Y3","py-sm-10":"_NDKAw","m-lg-0":"_iPRPm","p-lg-0":"_TWGN8","m-lg-1":"_Jb7vd","p-lg-1":"_sn9pN","m-lg-2":"_nqEiy","p-lg-2":"_Gy0Hb","m-lg-3":"_BY1ks","p-lg-3":"_8URKR","m-lg-4":"_2-3-j","p-lg-4":"_uGQk4","m-lg-5":"_-XWs9","p-lg-5":"_OnrIk","m-lg-6":"_qrdeX","p-lg-6":"_nMFGQ","m-lg-7":"_BRNYT","p-lg-7":"_3dEch","m-lg-8":"_MBNzK","p-lg-8":"_C-WZp","m-lg-9":"_dLTQ8","p-lg-9":"_w6ixh","m-lg-10":"_2jd3n","p-lg-10":"_2muU8","ml-lg-0":"_lUZMw","pl-lg-0":"_-KzSM","ml-lg-1":"_YMHZ-","pl-lg-1":"_gomUI","ml-lg-2":"_SL4B8","pl-lg-2":"_cJVO2","ml-lg-3":"_q1dRp","pl-lg-3":"_xwxkL","ml-lg-4":"_C0hXq","pl-lg-4":"_ikIn8","ml-lg-5":"_tgvFs","pl-lg-5":"_eHDg5","ml-lg-6":"_lTdC3","pl-lg-6":"_7HFwm","ml-lg-7":"_2faTD","pl-lg-7":"_jOAoH","ml-lg-8":"_deSOn","pl-lg-8":"_z9y5A","ml-lg-9":"_ws2he","pl-lg-9":"_ui5L7","ml-lg-10":"_oJN2I","pl-lg-10":"_6CRTE","mr-lg-0":"_d1x7e","pr-lg-0":"_reYgy","mr-lg-1":"_j4hAO","pr-lg-1":"_5f30G","mr-lg-2":"_liNod","pr-lg-2":"_IUuhb","mr-lg-3":"_V9TWD","pr-lg-3":"_rliGE","mr-lg-4":"_3z6mJ","pr-lg-4":"_Df6xY","mr-lg-5":"_Rd09K","pr-lg-5":"_cGcMj","mr-lg-6":"_Mwrny","pr-lg-6":"_KuKUQ","mr-lg-7":"_HR1SS","pr-lg-7":"_s2dUf","mr-lg-8":"_SAzax","pr-lg-8":"_cEuIZ","mr-lg-9":"_Ze5-9","pr-lg-9":"_JOVUS","mr-lg-10":"_Uwedj","pr-lg-10":"_ROhQj","mt-lg-0":"_Kjz26","pt-lg-0":"_6Z07U","mt-lg-1":"_aFxMX","pt-lg-1":"_KR6SN","mt-lg-2":"_5i7Rc","pt-lg-2":"_u9KBR","mt-lg-3":"_m5LsE","pt-lg-3":"_t6WGi","mt-lg-4":"_-bb51","pt-lg-4":"_cRc-3","mt-lg-5":"_bnTpD","pt-lg-5":"_hPBHM","mt-lg-6":"_bwpJA","pt-lg-6":"_PMDS2","mt-lg-7":"_hoXBi","pt-lg-7":"_8xjM4","mt-lg-8":"_gZ7--","pt-lg-8":"_BA6wE","mt-lg-9":"_21yv5","pt-lg-9":"_aWyCU","mt-lg-10":"_mGr43","pt-lg-10":"_cSkrF","mb-lg-0":"_WjmMC","pb-lg-0":"_Q1gA2","mb-lg-1":"_WkTBs","pb-lg-1":"_fvTua","mb-lg-2":"_vc-w4","pb-lg-2":"_5HHv6","mb-lg-3":"_l-4sg","pb-lg-3":"_g8uEK","mb-lg-4":"_lD2hM","pb-lg-4":"_3G1cG","mb-lg-5":"_OHyTI","pb-lg-5":"_KeAKX","mb-lg-6":"_c260B","pb-lg-6":"_Ndomr","mb-lg-7":"_BXB-e","pb-lg-7":"_dGq5C","mb-lg-8":"_4AUpv","pb-lg-8":"_npllZ","mb-lg-9":"_L9Rak","pb-lg-9":"_jt9k5","mb-lg-10":"_8RT15","pb-lg-10":"_wjycY","mx-lg-0":"_W0Be1","px-lg-0":"_4uVx8","mx-lg-1":"_i2L9f","px-lg-1":"_ZjJsm","mx-lg-2":"_ZcecZ","px-lg-2":"_hqNB-","mx-lg-3":"_jNUQn","px-lg-3":"_sHebC","mx-lg-4":"_YhUDD","px-lg-4":"_-84UO","mx-lg-5":"_Ph5qw","px-lg-5":"_NR3o7","mx-lg-6":"_9jTBk","px-lg-6":"_82ujL","mx-lg-7":"_IPpAN","px-lg-7":"_C-1sM","mx-lg-8":"_ZphvL","px-lg-8":"_HzdlK","mx-lg-9":"_X8kGx","px-lg-9":"_pXV5r","mx-lg-10":"_HzIMd","px-lg-10":"_u2L1o","my-lg-0":"_Gvgjh","py-lg-0":"_OgT1y","my-lg-1":"_u3Qyn","py-lg-1":"_taLyT","my-lg-2":"_Wy-mG","py-lg-2":"_qownY","my-lg-3":"_HI-Uz","py-lg-3":"_Q6C9n","my-lg-4":"_vOnhn","py-lg-4":"_SFYHT","my-lg-5":"_9BjMz","py-lg-5":"_8JklH","my-lg-6":"_EIbP6","py-lg-6":"_nW9wp","my-lg-7":"_zJIRo","py-lg-7":"_hPFAm","my-lg-8":"_fsnJO","py-lg-8":"_iCENv","my-lg-9":"_HnasH","py-lg-9":"_-hbdR","my-lg-10":"_X1Zxr","py-lg-10":"_H17sM","m-md-0":"_Ujtmy","p-md-0":"_49fa6","m-md-1":"_KbnrJ","p-md-1":"_yM5-R","m-md-2":"_-meNJ","p-md-2":"_Y4UvM","m-md-3":"_OwGHV","p-md-3":"_RBR9C","m-md-4":"_i-AVY","p-md-4":"_WwWmC","m-md-5":"_c1Qr0","p-md-5":"_A3U4m","m-md-6":"_GPcUJ","p-md-6":"_71YbI","m-md-7":"_ikQln","p-md-7":"_wvIwY","m-md-8":"_fT38W","p-md-8":"_9Yg2c","m-md-9":"_zBOP3","p-md-9":"_GFy-1","m-md-10":"_tYxAK","p-md-10":"_kjPhi","ml-md-0":"_quQF3","pl-md-0":"_-OzvZ","ml-md-1":"_wMPHV","pl-md-1":"_41XvH","ml-md-2":"_spwuT","pl-md-2":"_24nw7","ml-md-3":"_41odn","pl-md-3":"_yz4Tk","ml-md-4":"_-2vc6","pl-md-4":"_vvnDT","ml-md-5":"_54Ig3","pl-md-5":"_CG-dk","ml-md-6":"_iVeaz","pl-md-6":"_WXTU-","ml-md-7":"_Dh8xC","pl-md-7":"_kq23e","ml-md-8":"_BJ2fl","pl-md-8":"_MG9ww","ml-md-9":"_sQHE-","pl-md-9":"_6QT8u","ml-md-10":"_NyEZe","pl-md-10":"_ekmYg","mr-md-0":"_mTGTW","pr-md-0":"_hLgfO","mr-md-1":"_Rr3ZO","pr-md-1":"_9TkH0","mr-md-2":"_FdTOQ","pr-md-2":"_neJQM","mr-md-3":"_vBv00","pr-md-3":"_eQSPq","mr-md-4":"_yaN3k","pr-md-4":"_fAvoS","mr-md-5":"_IIII7","pr-md-5":"_NgVq0","mr-md-6":"_GpgeG","pr-md-6":"_xEVGa","mr-md-7":"_9gZpZ","pr-md-7":"_-hI7f","mr-md-8":"_U54Sx","pr-md-8":"_dMcIt","mr-md-9":"_znlEn","pr-md-9":"_2BEP4","mr-md-10":"_IJ0sH","pr-md-10":"_94GCu","mt-md-0":"_5Vn-b","pt-md-0":"_8qH0J","mt-md-1":"_81Va8","pt-md-1":"_qO6aN","mt-md-2":"_PHlw6","pt-md-2":"_mjoLe","mt-md-3":"_0l6tS","pt-md-3":"_GqIf0","mt-md-4":"_63JeO","pt-md-4":"_iETbw","mt-md-5":"_MefCn","pt-md-5":"_Jp-Or","mt-md-6":"_sP1nG","pt-md-6":"_x73S0","mt-md-7":"_DwVeG","pt-md-7":"_eCRBo","mt-md-8":"_1BuEh","pt-md-8":"_gLz6T","mt-md-9":"_TUu8p","pt-md-9":"_Od9Jg","mt-md-10":"_9xo0E","pt-md-10":"_3q9Qs","mb-md-0":"_q1N2O","pb-md-0":"_EfBmm","mb-md-1":"_e6vaB","pb-md-1":"_mPlV1","mb-md-2":"_UPkLS","pb-md-2":"_wx2ox","mb-md-3":"_L4Ru9","pb-md-3":"_U2POK","mb-md-4":"_8xBOI","pb-md-4":"_-E8B-","mb-md-5":"_W-iLG","pb-md-5":"_2QLo6","mb-md-6":"_xq6DM","pb-md-6":"_MJQbH","mb-md-7":"_23LK-","pb-md-7":"_Buv8D","mb-md-8":"_cLEvD","pb-md-8":"_wig0r","mb-md-9":"_zye4T","pb-md-9":"_XqA3E","mb-md-10":"_AHFVl","pb-md-10":"_FiJ-d","mx-md-0":"_iPAbb","px-md-0":"_OI0Hm","mx-md-1":"_9G4QU","px-md-1":"_it3Pu","mx-md-2":"_fWVT6","px-md-2":"_wLA22","mx-md-3":"_r3C2F","px-md-3":"_v1Lv8","mx-md-4":"_Voueh","px-md-4":"_b36iz","mx-md-5":"_As2Gw","px-md-5":"_dQbAe","mx-md-6":"_xcEqD","px-md-6":"_MrAbj","mx-md-7":"_eBuFO","px-md-7":"_xNr13","mx-md-8":"_QPZsY","px-md-8":"_8t2Px","mx-md-9":"_BAyIu","px-md-9":"_00pz1","mx-md-10":"_lO-A1","px-md-10":"_53BzA","my-md-0":"_lh08a","py-md-0":"_kBvO0","my-md-1":"_XTRn4","py-md-1":"_MO6dK","my-md-2":"_fHMgx","py-md-2":"_FXTLg","my-md-3":"_ffpT4","py-md-3":"_22-kw","my-md-4":"_FEg-m","py-md-4":"_ypkOx","my-md-5":"_R1AN7","py-md-5":"_DydJq","my-md-6":"_FXG1K","py-md-6":"_E0BJ-","my-md-7":"_x0N4A","py-md-7":"_WjdDu","my-md-8":"_KDLR1","py-md-8":"_y64sO","my-md-9":"_8eDO2","py-md-9":"_qquBK","my-md-10":"_EwNyz","py-md-10":"_N6I0i","m-xl-0":"_8P5t6","p-xl-0":"_ZpbeQ","m-xl-1":"_Dks6J","p-xl-1":"_mE8iF","m-xl-2":"_el9ru","p-xl-2":"_UTl4r","m-xl-3":"_azB2s","p-xl-3":"_gOS9v","m-xl-4":"_Slcp6","p-xl-4":"_lNxoS","m-xl-5":"_J-0LE","p-xl-5":"_iHe8I","m-xl-6":"_yZepR","p-xl-6":"_rbMpb","m-xl-7":"_-WhgU","p-xl-7":"_mjvu4","m-xl-8":"_1GOfJ","p-xl-8":"_sxTqQ","m-xl-9":"_I4D6b","p-xl-9":"_iVvvh","m-xl-10":"_wg39S","p-xl-10":"_GyDPP","ml-xl-0":"_6gsjS","pl-xl-0":"_JmRU5","ml-xl-1":"_v1VpM","pl-xl-1":"_DEQsB","ml-xl-2":"_9L1JA","pl-xl-2":"_ie1jJ","ml-xl-3":"_zpNcl","pl-xl-3":"_0SKlr","ml-xl-4":"_-REYo","pl-xl-4":"_2lS8e","ml-xl-5":"_2Na2F","pl-xl-5":"_-s-Fm","ml-xl-6":"_pJW1z","pl-xl-6":"_CKN-E","ml-xl-7":"_FgJs7","pl-xl-7":"_j0Erz","ml-xl-8":"_J7vMq","pl-xl-8":"_o2JEq","ml-xl-9":"_drfPx","pl-xl-9":"_jyscO","ml-xl-10":"_5tuQV","pl-xl-10":"_QqMj7","mr-xl-0":"_3s4H3","pr-xl-0":"_-g6oD","mr-xl-1":"_irt5W","pr-xl-1":"_cixdv","mr-xl-2":"_-WyU1","pr-xl-2":"_508yO","mr-xl-3":"_hcmRB","pr-xl-3":"_yv-S6","mr-xl-4":"_Azljg","pr-xl-4":"_iSmGO","mr-xl-5":"_ljdF7","pr-xl-5":"_ExPZ3","mr-xl-6":"_JnJB4","pr-xl-6":"_hqr45","mr-xl-7":"_QHl1W","pr-xl-7":"_NNYAu","mr-xl-8":"_Uvzse","pr-xl-8":"_iXiqD","mr-xl-9":"_7uOKO","pr-xl-9":"_kit7Z","mr-xl-10":"_wAqvW","pr-xl-10":"_6PFk0","mt-xl-0":"_sdtH-","pt-xl-0":"_NCcCs","mt-xl-1":"_DQicu","pt-xl-1":"_4ULM-","mt-xl-2":"_YDSc6","pt-xl-2":"_lIAG5","mt-xl-3":"_TfWVv","pt-xl-3":"_iSTeE","mt-xl-4":"_JM-Od","pt-xl-4":"_k5SO2","mt-xl-5":"_FQRS6","pt-xl-5":"_L0fB3","mt-xl-6":"_eX5qy","pt-xl-6":"_y6uWa","mt-xl-7":"_c2Kgp","pt-xl-7":"_NuKFH","mt-xl-8":"_sKUD0","pt-xl-8":"_SrcyS","mt-xl-9":"_zm1YI","pt-xl-9":"_tCb2k","mt-xl-10":"_5V3Ww","pt-xl-10":"_JI4CW","mb-xl-0":"_werGX","pb-xl-0":"_ElhJG","mb-xl-1":"_RvlfX","pb-xl-1":"_ByoQk","mb-xl-2":"_Be3gd","pb-xl-2":"_FoRlm","mb-xl-3":"_1z4eB","pb-xl-3":"_4mmGN","mb-xl-4":"_ktyWD","pb-xl-4":"_NDUC-","mb-xl-5":"_5vEIK","pb-xl-5":"_ZPRwH","mb-xl-6":"_yfnPa","pb-xl-6":"_u52jn","mb-xl-7":"_y1Puu","pb-xl-7":"_Dt-tw","mb-xl-8":"_uX6MD","pb-xl-8":"_EefsF","mb-xl-9":"_GM91N","pb-xl-9":"_6tOpa","mb-xl-10":"_d9w9L","pb-xl-10":"_qMAiq","mx-xl-0":"_r0ha6","px-xl-0":"_arjXu","mx-xl-1":"_lQe5Y","px-xl-1":"_aFAtc","mx-xl-2":"_qGnkl","px-xl-2":"_r2bDr","mx-xl-3":"_AKBiJ","px-xl-3":"_qidn1","mx-xl-4":"_Xndir","px-xl-4":"_mzK8z","mx-xl-5":"_vuKvl","px-xl-5":"_5eob9","mx-xl-6":"_6zjoG","px-xl-6":"_u2376","mx-xl-7":"_NomJg","px-xl-7":"_cpIVH","mx-xl-8":"_DIbHl","px-xl-8":"_sTwkl","mx-xl-9":"_LJhtb","px-xl-9":"_99ZRS","mx-xl-10":"_RyT0w","px-xl-10":"_NXPYf","my-xl-0":"_4mARD","py-xl-0":"_cZCg4","my-xl-1":"_s65h0","py-xl-1":"_h0IMr","my-xl-2":"_xJjZc","py-xl-2":"_ap-Wz","my-xl-3":"_-nrYV","py-xl-3":"_VoZny","my-xl-4":"_t29x5","py-xl-4":"_yt6Uh","my-xl-5":"_1GB5N","py-xl-5":"_Zfpi1","my-xl-6":"_Z9v80","py-xl-6":"_-Ymwb","my-xl-7":"_TPI94","py-xl-7":"_yDb9i","my-xl-8":"_PG7cx","py-xl-8":"_Au4Oz","my-xl-9":"_NGXXu","py-xl-9":"_q-tXb","my-xl-10":"_g63Xq","py-xl-10":"_dVrmW","background-shine":"_9FSCy","path":"_YSBJs","line":"_MGRy0","skeleton":"_uSX6q","skeleton-animate":"_1JImE","skeleton-dark":"_GoVkE","skeleton-dark-animate":"_W4Xm1","skeleton-transparent":"_miCCb","skeleton-transparent-animate":"_8nUtm","semi-transparent":"_TNpj-","first-line-text":"_IGz2I","wrap":"_eKd8P","break":"_mT5i4","full-text":"_PVKxC","shorted":"_wB5qV","horizontal":"_lqJz-","second-line-text":"_hdF64"};
|
|
@@ -6266,7 +6313,7 @@ var s = {"container":"_4QDrB","coin-picker":"_mvuzQ","loading":"_18kIX","item":"
|
|
|
6266
6313
|
var FALLBACK_ASSET_ICON_URL = "https://rabbit.io/asset-icons/fallback.svg";
|
|
6267
6314
|
var DEFAULT_CRYPTO_DECIMAL_COUNT = 8;
|
|
6268
6315
|
|
|
6269
|
-
function _catch$
|
|
6316
|
+
function _catch$b(body, recover) {
|
|
6270
6317
|
try {
|
|
6271
6318
|
var result = body();
|
|
6272
6319
|
} catch (e) {
|
|
@@ -6490,7 +6537,7 @@ var CoinPicker = function CoinPicker(_ref) {
|
|
|
6490
6537
|
var loadCoinsAndSaveToState = function loadCoinsAndSaveToState() {
|
|
6491
6538
|
(function () {
|
|
6492
6539
|
try {
|
|
6493
|
-
var _temp = _catch$
|
|
6540
|
+
var _temp = _catch$b(function () {
|
|
6494
6541
|
return Promise.resolve(loadCoinsAndContent ? loadCoinsAndContent() : defaultLoadCoinsAndContent()).then(function (data) {
|
|
6495
6542
|
setCoins(data.coins);
|
|
6496
6543
|
setFilteredCoins(data.coins);
|
|
@@ -7299,7 +7346,7 @@ var Cache = /*#__PURE__*/function () {
|
|
|
7299
7346
|
return Cache;
|
|
7300
7347
|
}();
|
|
7301
7348
|
|
|
7302
|
-
function _catch$
|
|
7349
|
+
function _catch$a(body, recover) {
|
|
7303
7350
|
try {
|
|
7304
7351
|
var result = body();
|
|
7305
7352
|
} catch (e) {
|
|
@@ -7317,7 +7364,7 @@ function postponeExecution(execution, timeoutMS) {
|
|
|
7317
7364
|
return new Promise(function (resolve, reject) {
|
|
7318
7365
|
setTimeout(function () {
|
|
7319
7366
|
try {
|
|
7320
|
-
var _temp = _catch$
|
|
7367
|
+
var _temp = _catch$a(function () {
|
|
7321
7368
|
return Promise.resolve(execution()).then(function (_execution) {
|
|
7322
7369
|
resolve(_execution);
|
|
7323
7370
|
});
|
|
@@ -7401,7 +7448,7 @@ var AxiosAdapter = /*#__PURE__*/function () {
|
|
|
7401
7448
|
return AxiosAdapter;
|
|
7402
7449
|
}();
|
|
7403
7450
|
|
|
7404
|
-
function _catch$
|
|
7451
|
+
function _catch$9(body, recover) {
|
|
7405
7452
|
try {
|
|
7406
7453
|
var result = body();
|
|
7407
7454
|
} catch (e) {
|
|
@@ -7417,7 +7464,7 @@ var EmailsApi = /*#__PURE__*/function () {
|
|
|
7417
7464
|
EmailsApi.sendEmail = function sendEmail(subject, body) {
|
|
7418
7465
|
try {
|
|
7419
7466
|
var _this = this;
|
|
7420
|
-
var _temp = _catch$
|
|
7467
|
+
var _temp = _catch$9(function () {
|
|
7421
7468
|
var url = window.location.protocol + "//" + window.location.host + "/api/v1/" + _this.serverEndpointEntity;
|
|
7422
7469
|
return Promise.resolve(axios.post(url, {
|
|
7423
7470
|
subject: subject,
|
|
@@ -7835,7 +7882,7 @@ var ExternalServicesStatsCollector = /*#__PURE__*/function () {
|
|
|
7835
7882
|
* improve the reliability of a data retrieval.
|
|
7836
7883
|
*/
|
|
7837
7884
|
|
|
7838
|
-
function _catch$
|
|
7885
|
+
function _catch$8(body, recover) {
|
|
7839
7886
|
try {
|
|
7840
7887
|
var result = body();
|
|
7841
7888
|
} catch (e) {
|
|
@@ -8174,7 +8221,7 @@ var RobustExternalAPICallerService = /*#__PURE__*/function () {
|
|
|
8174
8221
|
var result;
|
|
8175
8222
|
var calculationUuid = concurrentCalculationsMetadataHolder.startCalculation(_this.bio);
|
|
8176
8223
|
return Promise.resolve(_finallyRethrows$1(function () {
|
|
8177
|
-
return _catch$
|
|
8224
|
+
return _catch$8(function () {
|
|
8178
8225
|
function _temp5() {
|
|
8179
8226
|
var _result2, _result3;
|
|
8180
8227
|
if (((_result2 = result) == null ? void 0 : _result2.data) == null) {
|
|
@@ -8202,7 +8249,7 @@ var RobustExternalAPICallerService = /*#__PURE__*/function () {
|
|
|
8202
8249
|
*/
|
|
8203
8250
|
var rpsFactor = result ? result.rpsFactor : RobustExternalAPICallerService.defaultRPSFactor;
|
|
8204
8251
|
result = null;
|
|
8205
|
-
var _temp3 = _catch$
|
|
8252
|
+
var _temp3 = _catch$8(function () {
|
|
8206
8253
|
function _temp2() {
|
|
8207
8254
|
var _result$errors;
|
|
8208
8255
|
if ((_result$errors = result.errors) != null && _result$errors.length) {
|
|
@@ -8226,7 +8273,7 @@ var RobustExternalAPICallerService = /*#__PURE__*/function () {
|
|
|
8226
8273
|
return Promise.resolve(new Promise(function (resolve, reject) {
|
|
8227
8274
|
setTimeout(function () {
|
|
8228
8275
|
try {
|
|
8229
|
-
var _temp6 = _catch$
|
|
8276
|
+
var _temp6 = _catch$8(function () {
|
|
8230
8277
|
return Promise.resolve(_this._performCallAttempt(parametersValues, timeoutMS, cancelToken, rpsFactor, doNotFailForNowData)).then(function (_this$_performCallAtt2) {
|
|
8231
8278
|
resolve(_this$_performCallAtt2);
|
|
8232
8279
|
});
|
|
@@ -8296,7 +8343,7 @@ var RobustExternalAPICallerService = /*#__PURE__*/function () {
|
|
|
8296
8343
|
return;
|
|
8297
8344
|
}
|
|
8298
8345
|
var _temp13 = _finallyRethrows$1(function () {
|
|
8299
|
-
return _catch$
|
|
8346
|
+
return _catch$8(function () {
|
|
8300
8347
|
var _provider$specificHea;
|
|
8301
8348
|
function _temp12() {
|
|
8302
8349
|
if (iterationsData.length) {
|
|
@@ -8628,7 +8675,7 @@ function _for(test, update, body) {
|
|
|
8628
8675
|
}
|
|
8629
8676
|
}
|
|
8630
8677
|
}
|
|
8631
|
-
function _catch$
|
|
8678
|
+
function _catch$7(body, recover) {
|
|
8632
8679
|
try {
|
|
8633
8680
|
var result = body();
|
|
8634
8681
|
} catch (e) {
|
|
@@ -8707,7 +8754,7 @@ var CacheAndConcurrentRequestsResolver = /*#__PURE__*/function () {
|
|
|
8707
8754
|
_proto.getCachedOrWaitForCachedOrAcquireLock = function getCachedOrWaitForCachedOrAcquireLock(cacheId) {
|
|
8708
8755
|
try {
|
|
8709
8756
|
var _this = this;
|
|
8710
|
-
return Promise.resolve(_catch$
|
|
8757
|
+
return Promise.resolve(_catch$7(function () {
|
|
8711
8758
|
function _temp2() {
|
|
8712
8759
|
var _cached, _cached2;
|
|
8713
8760
|
return calculationId ? {
|
|
@@ -8786,7 +8833,7 @@ var CacheAndConcurrentRequestsResolver = /*#__PURE__*/function () {
|
|
|
8786
8833
|
_proto.acquireLock = function acquireLock(cacheId) {
|
|
8787
8834
|
try {
|
|
8788
8835
|
var _this2 = this;
|
|
8789
|
-
return Promise.resolve(_catch$
|
|
8836
|
+
return Promise.resolve(_catch$7(function () {
|
|
8790
8837
|
return Promise.resolve(_this2._requestsManager.acquireLock(cacheId));
|
|
8791
8838
|
}, function (e) {
|
|
8792
8839
|
improveAndRethrow(e, "acquireLock");
|
|
@@ -8956,7 +9003,7 @@ var ManagerOfRequestsToTheSameResource = /*#__PURE__*/function () {
|
|
|
8956
9003
|
try {
|
|
8957
9004
|
var _exit;
|
|
8958
9005
|
var _this3 = this;
|
|
8959
|
-
var _temp3 = _catch$
|
|
9006
|
+
var _temp3 = _catch$7(function () {
|
|
8960
9007
|
var activeCalculationIdForHash = _this3._activeCalculationsIds.get(requestHash);
|
|
8961
9008
|
if (activeCalculationIdForHash == null) {
|
|
8962
9009
|
var id = v4();
|
|
@@ -8990,7 +9037,7 @@ var ManagerOfRequestsToTheSameResource = /*#__PURE__*/function () {
|
|
|
8990
9037
|
_proto2.acquireLock = function acquireLock(requestHash) {
|
|
8991
9038
|
try {
|
|
8992
9039
|
var _this4 = this;
|
|
8993
|
-
return Promise.resolve(_catch$
|
|
9040
|
+
return Promise.resolve(_catch$7(function () {
|
|
8994
9041
|
var _this4$_nextCalculati;
|
|
8995
9042
|
var activeId = _this4._activeCalculationsIds.get(requestHash);
|
|
8996
9043
|
var nextId = v4();
|
|
@@ -9141,7 +9188,7 @@ var ManagerOfRequestsToTheSameResource = /*#__PURE__*/function () {
|
|
|
9141
9188
|
* TODO: [tests, critical] Massively used logic
|
|
9142
9189
|
*/
|
|
9143
9190
|
|
|
9144
|
-
function _catch$
|
|
9191
|
+
function _catch$6(body, recover) {
|
|
9145
9192
|
try {
|
|
9146
9193
|
var result = body();
|
|
9147
9194
|
} catch (e) {
|
|
@@ -9238,7 +9285,7 @@ var CachedRobustExternalApiCallerService = /*#__PURE__*/function () {
|
|
|
9238
9285
|
var cacheId;
|
|
9239
9286
|
var result;
|
|
9240
9287
|
return Promise.resolve(_finallyRethrows(function () {
|
|
9241
|
-
return _catch$
|
|
9288
|
+
return _catch$6(function () {
|
|
9242
9289
|
cacheId = _this._calculateCacheId(parametersValues, customHashFunctionForParams);
|
|
9243
9290
|
return Promise.resolve(_this._cahceAndRequestsResolver.getCachedOrWaitForCachedOrAcquireLock(cacheId)).then(function (_this$_cahceAndReques) {
|
|
9244
9291
|
var _result2, _result4;
|
|
@@ -9307,7 +9354,7 @@ var CachedRobustExternalApiCallerService = /*#__PURE__*/function () {
|
|
|
9307
9354
|
return CachedRobustExternalApiCallerService;
|
|
9308
9355
|
}();
|
|
9309
9356
|
|
|
9310
|
-
function _catch$
|
|
9357
|
+
function _catch$5(body, recover) {
|
|
9311
9358
|
try {
|
|
9312
9359
|
var result = body();
|
|
9313
9360
|
} catch (e) {
|
|
@@ -9391,7 +9438,7 @@ var IpAddressProvider = /*#__PURE__*/function () {
|
|
|
9391
9438
|
IpAddressProvider.getClientIpAddress = function getClientIpAddress() {
|
|
9392
9439
|
try {
|
|
9393
9440
|
var _this = this;
|
|
9394
|
-
return Promise.resolve(_catch$
|
|
9441
|
+
return Promise.resolve(_catch$5(function () {
|
|
9395
9442
|
return Promise.resolve(_this.externalIPAddressAPICaller.callExternalAPICached([], 7000));
|
|
9396
9443
|
}, function (e) {
|
|
9397
9444
|
improveAndRethrow(e, "getClientIpAddress");
|
|
@@ -9571,15 +9618,44 @@ function BaseSwapCreationInfo(fromCoin, toCoin, fromAmountCoins, toAmountCoins,
|
|
|
9571
9618
|
this.isRefundAddressRequired = isRefundAddressRequired;
|
|
9572
9619
|
};
|
|
9573
9620
|
|
|
9621
|
+
// TODO: [refactoring, moderate] extract structure of _supportedCoins into model class
|
|
9622
|
+
|
|
9623
|
+
function _catch$4(body, recover) {
|
|
9624
|
+
try {
|
|
9625
|
+
var result = body();
|
|
9626
|
+
} catch (e) {
|
|
9627
|
+
return recover(e);
|
|
9628
|
+
}
|
|
9629
|
+
if (result && result.then) {
|
|
9630
|
+
return result.then(void 0, recover);
|
|
9631
|
+
}
|
|
9632
|
+
return result;
|
|
9633
|
+
}
|
|
9574
9634
|
var SwapProvider = /*#__PURE__*/function () {
|
|
9575
|
-
function SwapProvider() {
|
|
9635
|
+
function SwapProvider(cache, customCoinBuilder, useRestrictedCoinsSet) {
|
|
9636
|
+
if (customCoinBuilder === void 0) {
|
|
9637
|
+
customCoinBuilder = function customCoinBuilder(coin, network) {
|
|
9638
|
+
return null;
|
|
9639
|
+
};
|
|
9640
|
+
}
|
|
9641
|
+
if (useRestrictedCoinsSet === void 0) {
|
|
9642
|
+
useRestrictedCoinsSet = true;
|
|
9643
|
+
}
|
|
9644
|
+
this._supportedCoins = [];
|
|
9645
|
+
this._maxRateDigits = 20;
|
|
9646
|
+
this.useRestrictedCoinsSet = useRestrictedCoinsSet;
|
|
9647
|
+
this._customCoinBuilder = customCoinBuilder;
|
|
9648
|
+
this._cache = cache;
|
|
9649
|
+
this.isAggregator = false;
|
|
9650
|
+
}
|
|
9576
9651
|
var _proto = SwapProvider.prototype;
|
|
9577
9652
|
/**
|
|
9578
9653
|
* @return {Promise<void>}
|
|
9579
9654
|
*/
|
|
9580
9655
|
_proto.initialize = function initialize() {
|
|
9581
9656
|
try {
|
|
9582
|
-
|
|
9657
|
+
var _this = this;
|
|
9658
|
+
return Promise.resolve(_this._fetchSupportedCurrenciesIfNeeded()).then(function () {});
|
|
9583
9659
|
} catch (e) {
|
|
9584
9660
|
return Promise.reject(e);
|
|
9585
9661
|
}
|
|
@@ -9592,15 +9668,68 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9592
9668
|
throw new Error("Not implemented in base");
|
|
9593
9669
|
}
|
|
9594
9670
|
|
|
9671
|
+
/**
|
|
9672
|
+
* This method sort internal list putting popular (as provider thinks) coins to the top.
|
|
9673
|
+
* This is just for users of this API if they don't care about the sorting - we just improve a list a bit this way.
|
|
9674
|
+
* @private
|
|
9675
|
+
*/;
|
|
9676
|
+
_proto._putPopularCoinsFirst = function _putPopularCoinsFirst() {
|
|
9677
|
+
this._supportedCoins.sort(function (i1, i2) {
|
|
9678
|
+
if (i1.isPopular !== i2.isPopular) return i2.isPopular - i1.isPopular;
|
|
9679
|
+
return i1.coin.ticker.localeCompare(i2.coin.ticker);
|
|
9680
|
+
});
|
|
9681
|
+
}
|
|
9682
|
+
|
|
9683
|
+
/**
|
|
9684
|
+
* Should fill _supportedCoins with array of coins.
|
|
9685
|
+
* Coin construction rules:
|
|
9686
|
+
* 1. ticker should be CODEPROTOCOL_CODE e.g. USDTERC20
|
|
9687
|
+
* 2. name should not contain (PROTOCOL_CODE) or just PROTOCOL_CODe
|
|
9688
|
+
* 3. protocol should be null for coins major for their blockchains like BTC, ETH
|
|
9689
|
+
* 4. isPopular should be a number
|
|
9690
|
+
*
|
|
9691
|
+
* @return {Promise<void>}
|
|
9692
|
+
* @private
|
|
9693
|
+
*/;
|
|
9694
|
+
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
9695
|
+
try {
|
|
9696
|
+
throw new Error("Not implemented in base - _fetchSupportedCurrenciesIfNeeded");
|
|
9697
|
+
} catch (e) {
|
|
9698
|
+
return Promise.reject(e);
|
|
9699
|
+
}
|
|
9700
|
+
}
|
|
9595
9701
|
/**
|
|
9596
9702
|
* Retrieves all currencies supported by this swap provider.
|
|
9597
9703
|
* Returns one of SwapProvider.COMMON_ERRORS in case of processable fail.
|
|
9598
9704
|
*
|
|
9599
9705
|
* @return {Promise<({ result: true, coins: Coin[] }|{ result: false, reason: string })>}
|
|
9600
|
-
|
|
9706
|
+
*/
|
|
9707
|
+
;
|
|
9601
9708
|
_proto.getAllSupportedCurrencies = function getAllSupportedCurrencies() {
|
|
9602
9709
|
try {
|
|
9603
|
-
|
|
9710
|
+
var _this2 = this;
|
|
9711
|
+
var loggerSource = "getAllSupportedCurrencies";
|
|
9712
|
+
return Promise.resolve(_catch$4(function () {
|
|
9713
|
+
return Promise.resolve(_this2._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9714
|
+
var _this2$_supportedCoin;
|
|
9715
|
+
Logger.log("We have " + ((_this2$_supportedCoin = _this2._supportedCoins) == null ? void 0 : _this2$_supportedCoin.length) + " supported coins returning", loggerSource);
|
|
9716
|
+
return {
|
|
9717
|
+
result: true,
|
|
9718
|
+
coins: _this2._supportedCoins.map(function (item) {
|
|
9719
|
+
return item.coin;
|
|
9720
|
+
})
|
|
9721
|
+
};
|
|
9722
|
+
});
|
|
9723
|
+
}, function (e) {
|
|
9724
|
+
var _e$response;
|
|
9725
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
9726
|
+
return {
|
|
9727
|
+
result: false,
|
|
9728
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9729
|
+
};
|
|
9730
|
+
}
|
|
9731
|
+
improveAndRethrow(e, loggerSource);
|
|
9732
|
+
}));
|
|
9604
9733
|
} catch (e) {
|
|
9605
9734
|
return Promise.reject(e);
|
|
9606
9735
|
}
|
|
@@ -9614,7 +9743,31 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9614
9743
|
;
|
|
9615
9744
|
_proto.getDepositCurrencies = function getDepositCurrencies() {
|
|
9616
9745
|
try {
|
|
9617
|
-
|
|
9746
|
+
var _this3 = this;
|
|
9747
|
+
var loggerSource = "getDepositCurrencies";
|
|
9748
|
+
return Promise.resolve(_catch$4(function () {
|
|
9749
|
+
return Promise.resolve(_this3._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9750
|
+
var _this3$_supportedCoin;
|
|
9751
|
+
Logger.log("We have " + ((_this3$_supportedCoin = _this3._supportedCoins) == null ? void 0 : _this3$_supportedCoin.length) + " supported coins, getting depositable", loggerSource);
|
|
9752
|
+
return {
|
|
9753
|
+
result: true,
|
|
9754
|
+
coins: _this3._supportedCoins.filter(function (item) {
|
|
9755
|
+
return item.deposit;
|
|
9756
|
+
}).map(function (item) {
|
|
9757
|
+
return item.coin;
|
|
9758
|
+
})
|
|
9759
|
+
};
|
|
9760
|
+
});
|
|
9761
|
+
}, function (e) {
|
|
9762
|
+
var _e$response2;
|
|
9763
|
+
if ((e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status) === 429) {
|
|
9764
|
+
return {
|
|
9765
|
+
result: false,
|
|
9766
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9767
|
+
};
|
|
9768
|
+
}
|
|
9769
|
+
improveAndRethrow(e, loggerSource);
|
|
9770
|
+
}));
|
|
9618
9771
|
} catch (e) {
|
|
9619
9772
|
return Promise.reject(e);
|
|
9620
9773
|
}
|
|
@@ -9628,8 +9781,36 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9628
9781
|
*/
|
|
9629
9782
|
;
|
|
9630
9783
|
_proto.getWithdrawalCurrencies = function getWithdrawalCurrencies(exceptCurrency) {
|
|
9784
|
+
if (exceptCurrency === void 0) {
|
|
9785
|
+
exceptCurrency = null;
|
|
9786
|
+
}
|
|
9631
9787
|
try {
|
|
9632
|
-
|
|
9788
|
+
var _this4 = this;
|
|
9789
|
+
var loggerSource = "getWithdrawalCurrencies";
|
|
9790
|
+
return Promise.resolve(_catch$4(function () {
|
|
9791
|
+
return Promise.resolve(_this4._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9792
|
+
var _this4$_supportedCoin;
|
|
9793
|
+
Logger.log("We have " + ((_this4$_supportedCoin = _this4._supportedCoins) == null ? void 0 : _this4$_supportedCoin.length) + " supported coins, getting withdrawable", loggerSource);
|
|
9794
|
+
return {
|
|
9795
|
+
result: true,
|
|
9796
|
+
coins: _this4._supportedCoins.filter(function (item) {
|
|
9797
|
+
var _item$coin, _exceptCurrency;
|
|
9798
|
+
return item.withdrawal && (!exceptCurrency || ((_item$coin = item.coin) == null ? void 0 : _item$coin.ticker) !== ((_exceptCurrency = exceptCurrency) == null ? void 0 : _exceptCurrency.ticker));
|
|
9799
|
+
}).map(function (item) {
|
|
9800
|
+
return item.coin;
|
|
9801
|
+
})
|
|
9802
|
+
};
|
|
9803
|
+
});
|
|
9804
|
+
}, function (e) {
|
|
9805
|
+
var _e$response3;
|
|
9806
|
+
if ((e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.status) === 429) {
|
|
9807
|
+
return {
|
|
9808
|
+
result: false,
|
|
9809
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9810
|
+
};
|
|
9811
|
+
}
|
|
9812
|
+
improveAndRethrow(e, loggerSource);
|
|
9813
|
+
}));
|
|
9633
9814
|
} catch (e) {
|
|
9634
9815
|
return Promise.reject(e);
|
|
9635
9816
|
}
|
|
@@ -9637,12 +9818,28 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9637
9818
|
/**
|
|
9638
9819
|
* Retrieves URL for coin icon or fallback if not found.
|
|
9639
9820
|
*
|
|
9640
|
-
* @param
|
|
9821
|
+
* @param coinOrTicker {Coin|string} coin or rabbit-format of coin ticker
|
|
9641
9822
|
* @return {string}
|
|
9642
9823
|
*/
|
|
9643
9824
|
;
|
|
9644
|
-
_proto.getIconUrl = function getIconUrl(
|
|
9645
|
-
|
|
9825
|
+
_proto.getIconUrl = function getIconUrl(coinOrTicker) {
|
|
9826
|
+
var loggerSource = "getIconUrl";
|
|
9827
|
+
try {
|
|
9828
|
+
var _this$_supportedCoins2, _this$_supportedCoins3;
|
|
9829
|
+
var coin = coinOrTicker;
|
|
9830
|
+
if (!(coinOrTicker instanceof Coin)) {
|
|
9831
|
+
var _this$_supportedCoins;
|
|
9832
|
+
coin = (_this$_supportedCoins = this._supportedCoins.find(function (i) {
|
|
9833
|
+
return i.coin.ticker === coinOrTicker;
|
|
9834
|
+
})) == null ? void 0 : _this$_supportedCoins.coin;
|
|
9835
|
+
}
|
|
9836
|
+
return (_this$_supportedCoins2 = (_this$_supportedCoins3 = this._supportedCoins.find(function (item) {
|
|
9837
|
+
var _item$coin2, _coin;
|
|
9838
|
+
return ((_item$coin2 = item.coin) == null ? void 0 : _item$coin2.ticker) === ((_coin = coin) == null ? void 0 : _coin.ticker);
|
|
9839
|
+
})) == null ? void 0 : _this$_supportedCoins3.iconURL) != null ? _this$_supportedCoins2 : FALLBACK_ASSET_ICON_URL;
|
|
9840
|
+
} catch (e) {
|
|
9841
|
+
improveAndRethrow(e, loggerSource);
|
|
9842
|
+
}
|
|
9646
9843
|
}
|
|
9647
9844
|
|
|
9648
9845
|
/**
|
|
@@ -9653,7 +9850,49 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9653
9850
|
*/;
|
|
9654
9851
|
_proto.getCoinToUSDTRate = function getCoinToUSDTRate(coin) {
|
|
9655
9852
|
try {
|
|
9656
|
-
|
|
9853
|
+
var _this5 = this;
|
|
9854
|
+
var loggerSource = "getCoinToUSDTRate";
|
|
9855
|
+
return Promise.resolve(_catch$4(function () {
|
|
9856
|
+
return coin ? Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9857
|
+
var _this5$_supportedCoin;
|
|
9858
|
+
// Using USDT TRC20 as usually fee in this network is smaller than ERC20 and this network is widely used for USDT
|
|
9859
|
+
var usdtTrc20 = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
|
|
9860
|
+
return i.coin.ticker === "USDTTRC20";
|
|
9861
|
+
})) == null ? void 0 : _this5$_supportedCoin.coin;
|
|
9862
|
+
if (!usdtTrc20) {
|
|
9863
|
+
return {
|
|
9864
|
+
result: false
|
|
9865
|
+
};
|
|
9866
|
+
}
|
|
9867
|
+
var cached = _this5._cache.get("swapspace_usdt_rate_" + coin.ticker);
|
|
9868
|
+
if (cached != null) {
|
|
9869
|
+
return {
|
|
9870
|
+
result: true,
|
|
9871
|
+
rate: cached
|
|
9872
|
+
};
|
|
9873
|
+
}
|
|
9874
|
+
Logger.log("Loading USDT->coin rate as not found in cache:", coin == null ? void 0 : coin.ticker);
|
|
9875
|
+
return Promise.resolve(_this5.getSwapInfo(usdtTrc20, coin, "5000", false)).then(function (result) {
|
|
9876
|
+
if (!result.result) {
|
|
9877
|
+
return {
|
|
9878
|
+
result: false
|
|
9879
|
+
};
|
|
9880
|
+
}
|
|
9881
|
+
|
|
9882
|
+
// This calculation is not precise as we cannot recognize the actual fee and network fee. Just approximate.
|
|
9883
|
+
var standardSwapspaceFeeMultiplier = 1.004; // fee is usually 0.4%
|
|
9884
|
+
var rate = BigNumber(1).div(BigNumber(result.rate).times(standardSwapspaceFeeMultiplier)).toString();
|
|
9885
|
+
_this5._cache.put("swap_usdt_rate_" + coin.ticker, rate, 15 * 60000 // 15 minutes
|
|
9886
|
+
);
|
|
9887
|
+
return {
|
|
9888
|
+
result: true,
|
|
9889
|
+
rate: rate
|
|
9890
|
+
};
|
|
9891
|
+
});
|
|
9892
|
+
}) : null;
|
|
9893
|
+
}, function (e) {
|
|
9894
|
+
improveAndRethrow(e, loggerSource);
|
|
9895
|
+
}));
|
|
9657
9896
|
} catch (e) {
|
|
9658
9897
|
return Promise.reject(e);
|
|
9659
9898
|
}
|
|
@@ -9670,6 +9909,7 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9670
9909
|
* @param [fixed=false] {boolean|null} null means fixed or float doesn't matter
|
|
9671
9910
|
* @param [fromCoinToUsdRate=null] pass if you want to increase the min amount returned
|
|
9672
9911
|
* by provider with some fixed "insurance" amount to cover min amount fluctuations.
|
|
9912
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount. False means the amount is the sending amount.
|
|
9673
9913
|
* @return {Promise<({
|
|
9674
9914
|
* result: false,
|
|
9675
9915
|
* reason: string,
|
|
@@ -9689,7 +9929,7 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9689
9929
|
* })>}
|
|
9690
9930
|
*/
|
|
9691
9931
|
;
|
|
9692
|
-
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate) {
|
|
9932
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
9693
9933
|
try {
|
|
9694
9934
|
throw new Error("Not implemented in base");
|
|
9695
9935
|
} catch (e) {
|
|
@@ -9709,6 +9949,7 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9709
9949
|
* @param fixed {boolean}
|
|
9710
9950
|
* @param [toCurrencyExtraId=""] {string} optional extra ID
|
|
9711
9951
|
* @param [refundExtraId=""] {string} optional extra ID for refund address
|
|
9952
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount. False means the amount is the sending amount.
|
|
9712
9953
|
* @return {Promise<({
|
|
9713
9954
|
* result: true,
|
|
9714
9955
|
* swapId: string,
|
|
@@ -9728,7 +9969,7 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9728
9969
|
* })>}
|
|
9729
9970
|
*/
|
|
9730
9971
|
;
|
|
9731
|
-
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId) {
|
|
9972
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
9732
9973
|
try {
|
|
9733
9974
|
throw new Error("Not implemented in base");
|
|
9734
9975
|
} catch (e) {
|
|
@@ -9756,7 +9997,15 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9756
9997
|
*/
|
|
9757
9998
|
;
|
|
9758
9999
|
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker) {
|
|
9759
|
-
|
|
10000
|
+
try {
|
|
10001
|
+
var _item$coin3;
|
|
10002
|
+
var item = this._supportedCoins.find(function (i) {
|
|
10003
|
+
return i.coin.ticker === ticker;
|
|
10004
|
+
});
|
|
10005
|
+
return (_item$coin3 = item == null ? void 0 : item.coin) != null ? _item$coin3 : null;
|
|
10006
|
+
} catch (e) {
|
|
10007
|
+
improveAndRethrow(e, "getCoinByTickerIfPresent");
|
|
10008
|
+
}
|
|
9760
10009
|
}
|
|
9761
10010
|
|
|
9762
10011
|
/**
|
|
@@ -9765,16 +10014,67 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9765
10014
|
* @return {boolean}
|
|
9766
10015
|
*/;
|
|
9767
10016
|
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
9768
|
-
|
|
9769
|
-
|
|
9770
|
-
|
|
9771
|
-
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
|
|
10017
|
+
try {
|
|
10018
|
+
var assetData = this._supportedCoins.find(function (i) {
|
|
10019
|
+
var _i$coin;
|
|
10020
|
+
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10021
|
+
});
|
|
10022
|
+
if (assetData) {
|
|
10023
|
+
var corrected = assetData.validationRegexp.trim();
|
|
10024
|
+
corrected = corrected[0] === "/" ? corrected.slice(1) : corrected;
|
|
10025
|
+
corrected = corrected[corrected.length - 1] === "/" ? corrected.slice(0, corrected.length - 1) : corrected;
|
|
10026
|
+
return address.match(corrected) != null;
|
|
10027
|
+
}
|
|
10028
|
+
} catch (e) {
|
|
10029
|
+
Logger.logError(e, "isAddressValidForAsset");
|
|
10030
|
+
}
|
|
10031
|
+
return false;
|
|
10032
|
+
}
|
|
10033
|
+
|
|
10034
|
+
/**
|
|
10035
|
+
* @param asset {Coin}
|
|
10036
|
+
* @return {string|null}
|
|
10037
|
+
*/;
|
|
10038
|
+
_proto.getExtraIdNameIfPresent = function getExtraIdNameIfPresent(asset) {
|
|
10039
|
+
try {
|
|
10040
|
+
var assetData = this._supportedCoins.find(function (i) {
|
|
10041
|
+
var _i$coin2;
|
|
10042
|
+
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10043
|
+
});
|
|
10044
|
+
if (assetData != null && assetData.hasExtraId) {
|
|
10045
|
+
if ((assetData == null ? void 0 : assetData.extraIdName) == null || (assetData == null ? void 0 : assetData.extraIdName) === "") {
|
|
10046
|
+
// We return some default name if the extraIdName is empty
|
|
10047
|
+
return "ID";
|
|
10048
|
+
}
|
|
10049
|
+
return assetData == null ? void 0 : assetData.extraIdName;
|
|
10050
|
+
}
|
|
10051
|
+
return null;
|
|
10052
|
+
} catch (e) {
|
|
10053
|
+
improveAndRethrow(e, "getExtraIdNameIfPresent");
|
|
10054
|
+
}
|
|
10055
|
+
};
|
|
10056
|
+
_proto.removeProtocolNameFromCoinName = function removeProtocolNameFromCoinName(coinName, tickerPrintable, protocolName) {
|
|
10057
|
+
if (coinName) {
|
|
10058
|
+
var originalName = coinName;
|
|
10059
|
+
if (tickerPrintable) {
|
|
10060
|
+
coinName = coinName.replaceAll(new RegExp("\\(" + tickerPrintable + "\\)", "gi"), "");
|
|
10061
|
+
}
|
|
10062
|
+
if (protocolName) {
|
|
10063
|
+
coinName = coinName.replaceAll(new RegExp("\\(" + protocolName + "\\)", "gi"), "").replaceAll(new RegExp("(?<!on) " + protocolName + "$", "gi"), "").replaceAll(new RegExp("^" + protocolName + " ", "gi"), "").replaceAll(new RegExp("(?<!on) " + protocolName + " ", "gi"), " ");
|
|
10064
|
+
}
|
|
10065
|
+
coinName = coinName.replaceAll(/ +/g, " ").trim();
|
|
10066
|
+
var defaultNames = ["token", "network", "protocol", "coin", "mainnet", "chain", "project", "cash", "finance", "wrapped", "blockchain", "network"];
|
|
10067
|
+
var lowerCoinName = coinName.toLowerCase();
|
|
10068
|
+
var isBecameDefaultName = defaultNames.find(function (defName) {
|
|
10069
|
+
return lowerCoinName === defName || lowerCoinName === "the " + defName;
|
|
10070
|
+
});
|
|
10071
|
+
if (coinName === "" || isBecameDefaultName) {
|
|
10072
|
+
// Rolling back to original name if our processing leads in empty name or one of the default words
|
|
10073
|
+
coinName = originalName;
|
|
10074
|
+
}
|
|
10075
|
+
}
|
|
10076
|
+
return coinName;
|
|
10077
|
+
};
|
|
9778
10078
|
return SwapProvider;
|
|
9779
10079
|
}();
|
|
9780
10080
|
SwapProvider.COMMON_ERRORS = {
|
|
@@ -9792,22 +10092,16 @@ SwapProvider.CREATION_FAIL_REASONS = {
|
|
|
9792
10092
|
};
|
|
9793
10093
|
SwapProvider.SWAP_STATUSES = {
|
|
9794
10094
|
WAITING_FOR_PAYMENT: "waiting_for_payment",
|
|
9795
|
-
// public +
|
|
9796
10095
|
CONFIRMING: "confirming",
|
|
9797
10096
|
PAYMENT_RECEIVED: "payment_received",
|
|
9798
|
-
// public +
|
|
9799
10097
|
EXCHANGING: "exchanging",
|
|
9800
|
-
// session full // public +
|
|
9801
10098
|
COMPLETED: "completed",
|
|
9802
|
-
// session full // public +
|
|
9803
10099
|
REFUNDED: "refunded",
|
|
9804
|
-
// session full // public +
|
|
9805
10100
|
EXPIRED: "expired",
|
|
9806
|
-
|
|
9807
|
-
FAILED: "failed" // public +
|
|
10101
|
+
FAILED: "failed"
|
|
9808
10102
|
};
|
|
9809
10103
|
|
|
9810
|
-
function _catch$
|
|
10104
|
+
function _catch$3(body, recover) {
|
|
9811
10105
|
try {
|
|
9812
10106
|
var result = body();
|
|
9813
10107
|
} catch (e) {
|
|
@@ -9831,14 +10125,10 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
9831
10125
|
if (useRestrictedCoinsSet === void 0) {
|
|
9832
10126
|
useRestrictedCoinsSet = true;
|
|
9833
10127
|
}
|
|
9834
|
-
_this = _SwapProvider.call(this) || this;
|
|
9835
|
-
_this._supportedCoins = [];
|
|
10128
|
+
_this = _SwapProvider.call(this, cache, customCoinBuilder, useRestrictedCoinsSet) || this;
|
|
9836
10129
|
_this._partners = [];
|
|
9837
|
-
_this._URL =
|
|
9838
|
-
_this.
|
|
9839
|
-
_this.useRestrictedCoinsSet = useRestrictedCoinsSet;
|
|
9840
|
-
_this._customCoinBuilder = customCoinBuilder;
|
|
9841
|
-
_this._cache = cache;
|
|
10130
|
+
_this._URL = apiKeysProxyUrl + "/swapspace";
|
|
10131
|
+
_this.isAggregator = true;
|
|
9842
10132
|
return _this;
|
|
9843
10133
|
}
|
|
9844
10134
|
var _proto = SwapspaceSwapProvider.prototype;
|
|
@@ -9847,144 +10137,21 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
9847
10137
|
* (and even a bit smaller value) for better consistency */
|
|
9848
10138
|
return 110000;
|
|
9849
10139
|
};
|
|
9850
|
-
_proto.getDepositCurrencies = function getDepositCurrencies() {
|
|
9851
|
-
try {
|
|
9852
|
-
var _this2 = this;
|
|
9853
|
-
var loggerSource = "getDepositCurrencies";
|
|
9854
|
-
return Promise.resolve(_catch$2(function () {
|
|
9855
|
-
return Promise.resolve(_this2._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9856
|
-
var _this2$_supportedCoin;
|
|
9857
|
-
Logger.log("We have " + ((_this2$_supportedCoin = _this2._supportedCoins) == null ? void 0 : _this2$_supportedCoin.length) + " supported coins, getting depositable", loggerSource);
|
|
9858
|
-
return {
|
|
9859
|
-
result: true,
|
|
9860
|
-
coins: _this2._supportedCoins.filter(function (item) {
|
|
9861
|
-
return item.deposit;
|
|
9862
|
-
}).map(function (item) {
|
|
9863
|
-
return item.coin;
|
|
9864
|
-
})
|
|
9865
|
-
};
|
|
9866
|
-
});
|
|
9867
|
-
}, function (e) {
|
|
9868
|
-
var _e$response;
|
|
9869
|
-
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
9870
|
-
return {
|
|
9871
|
-
result: false,
|
|
9872
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9873
|
-
};
|
|
9874
|
-
}
|
|
9875
|
-
improveAndRethrow(e, loggerSource);
|
|
9876
|
-
}));
|
|
9877
|
-
} catch (e) {
|
|
9878
|
-
return Promise.reject(e);
|
|
9879
|
-
}
|
|
9880
|
-
};
|
|
9881
|
-
_proto.getAllSupportedCurrencies = function getAllSupportedCurrencies() {
|
|
9882
|
-
try {
|
|
9883
|
-
var _this3 = this;
|
|
9884
|
-
var loggerSource = "getAllSupportedCurrencies";
|
|
9885
|
-
return Promise.resolve(_catch$2(function () {
|
|
9886
|
-
return Promise.resolve(_this3._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9887
|
-
var _this3$_supportedCoin;
|
|
9888
|
-
Logger.log("We have " + ((_this3$_supportedCoin = _this3._supportedCoins) == null ? void 0 : _this3$_supportedCoin.length) + " supported coins returning", loggerSource);
|
|
9889
|
-
return {
|
|
9890
|
-
result: true,
|
|
9891
|
-
coins: _this3._supportedCoins.map(function (item) {
|
|
9892
|
-
return item.coin;
|
|
9893
|
-
})
|
|
9894
|
-
};
|
|
9895
|
-
});
|
|
9896
|
-
}, function (e) {
|
|
9897
|
-
var _e$response2;
|
|
9898
|
-
if ((e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status) === 429) {
|
|
9899
|
-
return {
|
|
9900
|
-
result: false,
|
|
9901
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9902
|
-
};
|
|
9903
|
-
}
|
|
9904
|
-
improveAndRethrow(e, loggerSource);
|
|
9905
|
-
}));
|
|
9906
|
-
} catch (e) {
|
|
9907
|
-
return Promise.reject(e);
|
|
9908
|
-
}
|
|
9909
|
-
};
|
|
9910
|
-
_proto.getWithdrawalCurrencies = function getWithdrawalCurrencies(exceptCurrency) {
|
|
9911
|
-
if (exceptCurrency === void 0) {
|
|
9912
|
-
exceptCurrency = null;
|
|
9913
|
-
}
|
|
9914
|
-
try {
|
|
9915
|
-
var _this4 = this;
|
|
9916
|
-
var loggerSource = "getWithdrawalCurrencies";
|
|
9917
|
-
return Promise.resolve(_catch$2(function () {
|
|
9918
|
-
return Promise.resolve(_this4._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9919
|
-
var _this4$_supportedCoin;
|
|
9920
|
-
Logger.log("We have " + ((_this4$_supportedCoin = _this4._supportedCoins) == null ? void 0 : _this4$_supportedCoin.length) + " supported coins, getting withdrawable", loggerSource);
|
|
9921
|
-
return {
|
|
9922
|
-
result: true,
|
|
9923
|
-
coins: _this4._supportedCoins.filter(function (item) {
|
|
9924
|
-
var _item$coin, _exceptCurrency;
|
|
9925
|
-
return item.withdrawal && (!exceptCurrency || ((_item$coin = item.coin) == null ? void 0 : _item$coin.ticker) !== ((_exceptCurrency = exceptCurrency) == null ? void 0 : _exceptCurrency.ticker));
|
|
9926
|
-
}).map(function (item) {
|
|
9927
|
-
return item.coin;
|
|
9928
|
-
})
|
|
9929
|
-
};
|
|
9930
|
-
});
|
|
9931
|
-
}, function (e) {
|
|
9932
|
-
var _e$response3;
|
|
9933
|
-
if ((e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.status) === 429) {
|
|
9934
|
-
return {
|
|
9935
|
-
result: false,
|
|
9936
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9937
|
-
};
|
|
9938
|
-
}
|
|
9939
|
-
improveAndRethrow(e, loggerSource);
|
|
9940
|
-
}));
|
|
9941
|
-
} catch (e) {
|
|
9942
|
-
return Promise.reject(e);
|
|
9943
|
-
}
|
|
9944
|
-
};
|
|
9945
|
-
_proto.initialize = function initialize() {
|
|
9946
|
-
try {
|
|
9947
|
-
var _this5 = this;
|
|
9948
|
-
return Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {});
|
|
9949
|
-
} catch (e) {
|
|
9950
|
-
return Promise.reject(e);
|
|
9951
|
-
}
|
|
9952
|
-
};
|
|
9953
|
-
_proto.getIconUrl = function getIconUrl(coinOrTicker) {
|
|
9954
|
-
var loggerSource = "getIconUrl";
|
|
9955
|
-
try {
|
|
9956
|
-
var _this$_supportedCoins2, _this$_supportedCoins3;
|
|
9957
|
-
var coin = coinOrTicker;
|
|
9958
|
-
if (!(coinOrTicker instanceof Coin)) {
|
|
9959
|
-
var _this$_supportedCoins;
|
|
9960
|
-
coin = (_this$_supportedCoins = this._supportedCoins.find(function (i) {
|
|
9961
|
-
return i.coin.ticker === coinOrTicker;
|
|
9962
|
-
})) == null ? void 0 : _this$_supportedCoins.coin;
|
|
9963
|
-
}
|
|
9964
|
-
return (_this$_supportedCoins2 = (_this$_supportedCoins3 = this._supportedCoins.find(function (item) {
|
|
9965
|
-
var _item$coin2, _coin;
|
|
9966
|
-
return ((_item$coin2 = item.coin) == null ? void 0 : _item$coin2.ticker) === ((_coin = coin) == null ? void 0 : _coin.ticker);
|
|
9967
|
-
})) == null ? void 0 : _this$_supportedCoins3.iconURL) != null ? _this$_supportedCoins2 : FALLBACK_ASSET_ICON_URL;
|
|
9968
|
-
} catch (e) {
|
|
9969
|
-
improveAndRethrow(e, loggerSource);
|
|
9970
|
-
}
|
|
9971
|
-
};
|
|
9972
10140
|
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
9973
10141
|
try {
|
|
9974
|
-
var
|
|
10142
|
+
var _this2 = this;
|
|
9975
10143
|
var loggerSource = "_fetchSupportedCurrenciesIfNeeded";
|
|
9976
|
-
return Promise.resolve(_catch$
|
|
9977
|
-
var _temp = function (
|
|
9978
|
-
if (!((
|
|
9979
|
-
return Promise.resolve(axios.get(
|
|
10144
|
+
return Promise.resolve(_catch$3(function () {
|
|
10145
|
+
var _temp = function (_this2$_supportedCoin) {
|
|
10146
|
+
if (!((_this2$_supportedCoin = _this2._supportedCoins) != null && _this2$_supportedCoin.length)) {
|
|
10147
|
+
return Promise.resolve(axios.get(_this2._URL + "/api/v2/currencies")).then(function (rawResponse) {
|
|
9980
10148
|
var _rawResponse$data, _rawResponse$data2;
|
|
9981
10149
|
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data = rawResponse.data) == null ? void 0 : _rawResponse$data.length), loggerSource);
|
|
9982
10150
|
var allowedCoins = (_rawResponse$data2 = rawResponse == null ? void 0 : rawResponse.data) != null ? _rawResponse$data2 : [];
|
|
9983
10151
|
Logger.log("Allowed cnt " + allowedCoins.length, loggerSource);
|
|
9984
|
-
|
|
9985
|
-
var coin =
|
|
9986
|
-
if (!coin && !
|
|
9987
|
-
var _item$name;
|
|
10152
|
+
_this2._supportedCoins = allowedCoins.map(function (item) {
|
|
10153
|
+
var coin = _this2._customCoinBuilder(item.code, item.network);
|
|
10154
|
+
if (!coin && !_this2.useRestrictedCoinsSet) {
|
|
9988
10155
|
/** Building coin object for coin that isn't supported OOB in Rabbit.
|
|
9989
10156
|
* We are doing this way to be able to use extended coins set for swaps.
|
|
9990
10157
|
* These temporary built coins are only for in-swap use, and we omit some usual
|
|
@@ -9998,11 +10165,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
9998
10165
|
/** Removing ticker and protocol name from coin name as we usually use them explicitly
|
|
9999
10166
|
* from coin object rather than counting on having it in the coin name itself.
|
|
10000
10167
|
* This processing is needed due to poor quality of swapspace coins names. */
|
|
10001
|
-
var name = (
|
|
10002
|
-
if (name === "") {
|
|
10003
|
-
// Rolling back to original name if our processing leads in empty name
|
|
10004
|
-
name = item.name;
|
|
10005
|
-
}
|
|
10168
|
+
var name = _this2.removeProtocolNameFromCoinName(item.name, code, network);
|
|
10006
10169
|
var ticker = "" + code + (code === network ? "" : network);
|
|
10007
10170
|
var defaultDecimalPlacesForCoinNotSupportedOOB = 8;
|
|
10008
10171
|
var defaultMinConfirmationsForCoinNotSupportedOOB = 1;
|
|
@@ -10018,16 +10181,17 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10018
10181
|
network: item.network,
|
|
10019
10182
|
hasExtraId: item.hasExtraId,
|
|
10020
10183
|
extraIdName: item.extraIdName,
|
|
10021
|
-
isPopular:
|
|
10184
|
+
isPopular: item.popular ? 1 : 0,
|
|
10022
10185
|
iconURL: item.icon ? "https://storage.swapspace.co" + item.icon : FALLBACK_ASSET_ICON_URL,
|
|
10023
10186
|
deposit: (_item$deposit = item.deposit) != null ? _item$deposit : false,
|
|
10024
10187
|
withdrawal: (_item$withdrawal = item.withdrawal) != null ? _item$withdrawal : false,
|
|
10025
|
-
validationRegexp: (_item$validationRegex = item.validationRegexp) != null ? _item$validationRegex : null
|
|
10188
|
+
validationRegexp: (_item$validationRegex = item.validationRegexp) != null ? _item$validationRegex : null,
|
|
10189
|
+
isAvailable: true
|
|
10026
10190
|
};
|
|
10027
10191
|
}
|
|
10028
10192
|
return [];
|
|
10029
10193
|
}).flat();
|
|
10030
|
-
|
|
10194
|
+
_this2._putPopularCoinsFirst();
|
|
10031
10195
|
});
|
|
10032
10196
|
}
|
|
10033
10197
|
}();
|
|
@@ -10041,15 +10205,15 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10041
10205
|
};
|
|
10042
10206
|
_proto._fetchPartnersListIfNeeded = function _fetchPartnersListIfNeeded() {
|
|
10043
10207
|
try {
|
|
10044
|
-
var
|
|
10208
|
+
var _this3 = this;
|
|
10045
10209
|
var loggerSource = "_fetchPartnersListIfNeeded";
|
|
10046
|
-
return Promise.resolve(_catch$
|
|
10047
|
-
var _temp2 = function (
|
|
10048
|
-
if (((
|
|
10049
|
-
return Promise.resolve(axios.get(
|
|
10210
|
+
return Promise.resolve(_catch$3(function () {
|
|
10211
|
+
var _temp2 = function (_this3$_partners) {
|
|
10212
|
+
if (((_this3$_partners = _this3._partners) == null ? void 0 : _this3$_partners.length) === 0) {
|
|
10213
|
+
return Promise.resolve(axios.get(_this3._URL + "/api/v2/partners")).then(function (rawResponse) {
|
|
10050
10214
|
var _rawResponse$data3;
|
|
10051
10215
|
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data3 = rawResponse.data) == null ? void 0 : _rawResponse$data3.length) + " partners", loggerSource);
|
|
10052
|
-
|
|
10216
|
+
_this3._partners = Array.isArray(rawResponse == null ? void 0 : rawResponse.data) ? rawResponse == null ? void 0 : rawResponse.data : [];
|
|
10053
10217
|
});
|
|
10054
10218
|
}
|
|
10055
10219
|
}();
|
|
@@ -10060,99 +10224,30 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10060
10224
|
} catch (e) {
|
|
10061
10225
|
return Promise.reject(e);
|
|
10062
10226
|
}
|
|
10063
|
-
}
|
|
10064
|
-
/**
|
|
10065
|
-
* This method sort internal list putting popular (as swapspace thinks) coins to the top.
|
|
10066
|
-
* This is just for users of this API if they don't care about the sorting - we just improve a list a bit this way.
|
|
10067
|
-
* @private
|
|
10068
|
-
*/
|
|
10069
|
-
;
|
|
10070
|
-
_proto._putPopularCoinsFirst = function _putPopularCoinsFirst() {
|
|
10071
|
-
this._supportedCoins.sort(function (i1, i2) {
|
|
10072
|
-
if (i1.isPopular && !i2.isPopular) return -1;
|
|
10073
|
-
if (i2.isPopular && !i1.isPopular) return 1;
|
|
10074
|
-
return i1.coin.ticker > i2.coin.ticker ? 1 : i1.coin.ticker < i2.coin.ticker ? -1 : 0;
|
|
10075
|
-
});
|
|
10076
|
-
};
|
|
10077
|
-
_proto.getCoinToUSDTRate = function getCoinToUSDTRate(coin) {
|
|
10078
|
-
try {
|
|
10079
|
-
var _this8 = this;
|
|
10080
|
-
var loggerSource = "getCoinToUSDTRate";
|
|
10081
|
-
return Promise.resolve(_catch$2(function () {
|
|
10082
|
-
return coin ? Promise.resolve(_this8._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
10083
|
-
var _this8$_supportedCoin;
|
|
10084
|
-
// Using USDT TRC20 as usually fee in this network is smaller than ERC20 and this network is widely used for USDT
|
|
10085
|
-
var usdtTrc20 = (_this8$_supportedCoin = _this8._supportedCoins.find(function (i) {
|
|
10086
|
-
return i.coin.ticker === "USDTTRC20";
|
|
10087
|
-
})) == null ? void 0 : _this8$_supportedCoin.coin;
|
|
10088
|
-
if (!usdtTrc20) {
|
|
10089
|
-
return {
|
|
10090
|
-
result: false
|
|
10091
|
-
};
|
|
10092
|
-
}
|
|
10093
|
-
var cached = _this8._cache.get("swapspace_usdt_rate_" + coin.ticker);
|
|
10094
|
-
if (cached != null) {
|
|
10095
|
-
return {
|
|
10096
|
-
result: true,
|
|
10097
|
-
rate: cached
|
|
10098
|
-
};
|
|
10099
|
-
}
|
|
10100
|
-
Logger.log("Loading USDT->coin rate as not found in cache:", coin == null ? void 0 : coin.ticker);
|
|
10101
|
-
return Promise.resolve(_this8.getSwapInfo(usdtTrc20, coin, "5000", false)).then(function (result) {
|
|
10102
|
-
if (!result.result) {
|
|
10103
|
-
return {
|
|
10104
|
-
result: false
|
|
10105
|
-
};
|
|
10106
|
-
}
|
|
10107
|
-
|
|
10108
|
-
// This calculation is not precise as we cannot recognize the actual fee and network fee. Just approximate.
|
|
10109
|
-
var standardSwapspaceFeeMultiplier = 1.004; // fee is usually 0.4%
|
|
10110
|
-
var rate = BigNumber(1).div(BigNumber(result.rate).times(standardSwapspaceFeeMultiplier)).toString();
|
|
10111
|
-
_this8._cache.put("swapspace_usdt_rate_" + coin.ticker, rate, 15 * 60000 // 15 minutes
|
|
10112
|
-
);
|
|
10113
|
-
return {
|
|
10114
|
-
result: true,
|
|
10115
|
-
rate: rate
|
|
10116
|
-
};
|
|
10117
|
-
});
|
|
10118
|
-
}) : null;
|
|
10119
|
-
}, function (e) {
|
|
10120
|
-
improveAndRethrow(e, loggerSource);
|
|
10121
|
-
}));
|
|
10122
|
-
} catch (e) {
|
|
10123
|
-
return Promise.reject(e);
|
|
10124
|
-
}
|
|
10125
10227
|
};
|
|
10126
|
-
_proto.
|
|
10127
|
-
try {
|
|
10128
|
-
var _item$coin3;
|
|
10129
|
-
var item = this._supportedCoins.find(function (i) {
|
|
10130
|
-
return i.coin.ticker === ticker;
|
|
10131
|
-
});
|
|
10132
|
-
return (_item$coin3 = item == null ? void 0 : item.coin) != null ? _item$coin3 : null;
|
|
10133
|
-
} catch (e) {
|
|
10134
|
-
improveAndRethrow(e, "getCoinByTickerIfPresent");
|
|
10135
|
-
}
|
|
10136
|
-
};
|
|
10137
|
-
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate) {
|
|
10228
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
10138
10229
|
if (fixed === void 0) {
|
|
10139
10230
|
fixed = false;
|
|
10140
10231
|
}
|
|
10141
10232
|
if (fromCoinToUsdRate === void 0) {
|
|
10142
10233
|
fromCoinToUsdRate = null;
|
|
10143
10234
|
}
|
|
10235
|
+
if (amountIsToReceive === void 0) {
|
|
10236
|
+
amountIsToReceive = false;
|
|
10237
|
+
}
|
|
10144
10238
|
try {
|
|
10145
|
-
var
|
|
10239
|
+
var _this4 = this;
|
|
10146
10240
|
var loggerSource = "getSwapInfo";
|
|
10147
|
-
return Promise.resolve(_catch$
|
|
10241
|
+
return Promise.resolve(_catch$3(function () {
|
|
10242
|
+
if (amountIsToReceive) throw new Error("Swapspace doesn't support exchanging to get the exact receiving amount");
|
|
10148
10243
|
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amountCoins !== "string" || BigNumber(amountCoins).lt("0") || fixed !== null && typeof fixed !== "boolean") {
|
|
10149
10244
|
throw new Error("Wrong input params: " + amountCoins + " " + fromCoin.ticker + " -> " + toCoin.ticker + ", " + (fromCoin instanceof Coin) + ", " + (toCoin instanceof Coin) + ", " + typeof fixed + " " + fixed);
|
|
10150
10245
|
}
|
|
10151
|
-
var fromCoinSwapspaceDetails =
|
|
10246
|
+
var fromCoinSwapspaceDetails = _this4._supportedCoins.find(function (i) {
|
|
10152
10247
|
var _i$coin;
|
|
10153
10248
|
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
10154
10249
|
});
|
|
10155
|
-
var toCoinSwapspaceDetails =
|
|
10250
|
+
var toCoinSwapspaceDetails = _this4._supportedCoins.find(function (i) {
|
|
10156
10251
|
var _i$coin2;
|
|
10157
10252
|
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
10158
10253
|
});
|
|
@@ -10162,11 +10257,11 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10162
10257
|
return !fromCoinSwapspaceDetails.deposit || !toCoinSwapspaceDetails.withdrawal ? {
|
|
10163
10258
|
result: false,
|
|
10164
10259
|
reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
|
|
10165
|
-
} : Promise.resolve(axios.get(
|
|
10260
|
+
} : 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")).then(function (response) {
|
|
10166
10261
|
var _response$data, _exchangesSupportingT;
|
|
10167
10262
|
var _exit;
|
|
10168
|
-
function _temp4(
|
|
10169
|
-
if (_exit) return
|
|
10263
|
+
function _temp4(_result2) {
|
|
10264
|
+
if (_exit) return _result2;
|
|
10170
10265
|
var result = {
|
|
10171
10266
|
result: false,
|
|
10172
10267
|
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,
|
|
@@ -10260,9 +10355,9 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10260
10355
|
}
|
|
10261
10356
|
}
|
|
10262
10357
|
var rate = bestOpt.toAmount && bestOpt.fromAmount ? BigNumber(bestOpt.toAmount).div(bestOpt.fromAmount) : null;
|
|
10263
|
-
return Promise.resolve(
|
|
10358
|
+
return Promise.resolve(_this4._fetchPartnersListIfNeeded()).then(function () {
|
|
10264
10359
|
var _bestOpt$duration;
|
|
10265
|
-
var partner =
|
|
10360
|
+
var partner = _this4._partners.find(function (p) {
|
|
10266
10361
|
var _bestOpt$partner;
|
|
10267
10362
|
return (bestOpt == null || (_bestOpt$partner = bestOpt.partner) == null ? void 0 : _bestOpt$partner.toLowerCase()) === p.path.toLowerCase();
|
|
10268
10363
|
});
|
|
@@ -10273,7 +10368,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10273
10368
|
max: max,
|
|
10274
10369
|
smallestMin: smallestMin,
|
|
10275
10370
|
greatestMax: greatestMax,
|
|
10276
|
-
rate: rate != null ? AmountUtils.trim(rate,
|
|
10371
|
+
rate: rate != null ? AmountUtils.trim(rate, _this4._maxRateDigits) : null,
|
|
10277
10372
|
durationMinutesRange: (_bestOpt$duration = bestOpt.duration) != null ? _bestOpt$duration : null,
|
|
10278
10373
|
fixed: bestOpt.fixed,
|
|
10279
10374
|
rawSwapData: bestOpt,
|
|
@@ -10287,8 +10382,8 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10287
10382
|
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
10288
10383
|
});
|
|
10289
10384
|
}, function (e) {
|
|
10290
|
-
var _e$
|
|
10291
|
-
if ((e == null || (_e$
|
|
10385
|
+
var _e$response;
|
|
10386
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
10292
10387
|
return {
|
|
10293
10388
|
result: false,
|
|
10294
10389
|
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
@@ -10301,18 +10396,22 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10301
10396
|
return Promise.reject(e);
|
|
10302
10397
|
}
|
|
10303
10398
|
};
|
|
10304
|
-
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId) {
|
|
10399
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
10305
10400
|
if (toCurrencyExtraId === void 0) {
|
|
10306
10401
|
toCurrencyExtraId = "";
|
|
10307
10402
|
}
|
|
10308
10403
|
if (refundExtraId === void 0) {
|
|
10309
10404
|
refundExtraId = "";
|
|
10310
10405
|
}
|
|
10406
|
+
if (amountIsToReceive === void 0) {
|
|
10407
|
+
amountIsToReceive = false;
|
|
10408
|
+
}
|
|
10311
10409
|
try {
|
|
10312
|
-
var
|
|
10410
|
+
var _this5 = this;
|
|
10313
10411
|
var loggerSource = "createSwap";
|
|
10314
10412
|
var partner = rawSwapData == null ? void 0 : rawSwapData.partner;
|
|
10315
|
-
return Promise.resolve(_catch$
|
|
10413
|
+
return Promise.resolve(_catch$3(function () {
|
|
10414
|
+
if (amountIsToReceive) throw new Error("Swapspace doesn't support exchanging to get the exact receiving amount");
|
|
10316
10415
|
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || typeof refundAddress !== "string" || typeof clientIpAddress != "string" || typeof fixed != "boolean" || clientIpAddress.length === 0) {
|
|
10317
10416
|
throw new Error("Invalid input: " + fromCoin + " " + toCoin + " " + amount + " " + toAddress + " " + refundAddress + " " + (clientIpAddress == null ? void 0 : clientIpAddress.length) + " " + fixed);
|
|
10318
10417
|
}
|
|
@@ -10320,12 +10419,12 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10320
10419
|
) {
|
|
10321
10420
|
throw new Error("Invalid raw swap data: " + safeStringify(rawSwapData));
|
|
10322
10421
|
}
|
|
10323
|
-
var
|
|
10422
|
+
var _this5$_supportedCoin = _this5._supportedCoins.reduce(function (prev, coinData) {
|
|
10324
10423
|
return [coinData.coin.ticker === fromCoin.ticker ? coinData.hasExtraId : prev[0], coinData.coin.ticker === toCoin.ticker ? coinData.hasExtraId : prev[1]];
|
|
10325
10424
|
}, [false, false]),
|
|
10326
|
-
fromCurrencyHasExtraId =
|
|
10327
|
-
toCurrencyHasExtraId =
|
|
10328
|
-
return Promise.resolve(
|
|
10425
|
+
fromCurrencyHasExtraId = _this5$_supportedCoin[0],
|
|
10426
|
+
toCurrencyHasExtraId = _this5$_supportedCoin[1];
|
|
10427
|
+
return Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
10329
10428
|
var _toCurrencyExtraId, _refundExtraId;
|
|
10330
10429
|
var requestData = {
|
|
10331
10430
|
partner: partner,
|
|
@@ -10344,7 +10443,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10344
10443
|
refund: refundAddress
|
|
10345
10444
|
};
|
|
10346
10445
|
Logger.log("Sending create request: " + safeStringify(requestData), loggerSource);
|
|
10347
|
-
return Promise.resolve(axios.post(
|
|
10446
|
+
return Promise.resolve(axios.post(_this5._URL + "/api/v2/exchange", requestData)).then(function (response) {
|
|
10348
10447
|
var result = response.data;
|
|
10349
10448
|
Logger.log("Creation result " + safeStringify(result), loggerSource);
|
|
10350
10449
|
if (result != null && result.id) {
|
|
@@ -10369,7 +10468,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10369
10468
|
toAmount: AmountUtils.trim(result == null || (_result$to4 = result.to) == null ? void 0 : _result$to4.amount, toCoin.digits),
|
|
10370
10469
|
toAddress: result == null || (_result$to5 = result.to) == null ? void 0 : _result$to5.address,
|
|
10371
10470
|
fromCurrencyExtraId: (_result$from$extraId = result == null || (_result$from6 = result.from) == null ? void 0 : _result$from6.extraId) != null ? _result$from$extraId : "",
|
|
10372
|
-
rate: AmountUtils.trim(rate,
|
|
10471
|
+
rate: AmountUtils.trim(rate, _this5._maxRateDigits),
|
|
10373
10472
|
fixed: result.fixed
|
|
10374
10473
|
};
|
|
10375
10474
|
}
|
|
@@ -10379,7 +10478,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10379
10478
|
});
|
|
10380
10479
|
});
|
|
10381
10480
|
}, function (e) {
|
|
10382
|
-
var _e$
|
|
10481
|
+
var _e$response2, _e$response3;
|
|
10383
10482
|
Logger.logError(e, loggerSource, "Failed to create swap. Error is: " + safeStringify(e));
|
|
10384
10483
|
var composeFailResult = function composeFailResult(reason) {
|
|
10385
10484
|
return {
|
|
@@ -10388,8 +10487,8 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10388
10487
|
partner: partner
|
|
10389
10488
|
};
|
|
10390
10489
|
};
|
|
10391
|
-
var status = e == null || (_e$
|
|
10392
|
-
var data = e == null || (_e$
|
|
10490
|
+
var status = e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status;
|
|
10491
|
+
var data = e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.data;
|
|
10393
10492
|
if (status === 429) {
|
|
10394
10493
|
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
10395
10494
|
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
@@ -10438,9 +10537,9 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10438
10537
|
};
|
|
10439
10538
|
_proto.getExistingSwapsDetailsAndStatus = function getExistingSwapsDetailsAndStatus(swapIds) {
|
|
10440
10539
|
try {
|
|
10441
|
-
var
|
|
10540
|
+
var _this6 = this;
|
|
10442
10541
|
var loggerSource = "getExistingSwapsDetailsAndStatus";
|
|
10443
|
-
return Promise.resolve(_catch$
|
|
10542
|
+
return Promise.resolve(_catch$3(function () {
|
|
10444
10543
|
if (swapIds.find(function (id) {
|
|
10445
10544
|
return typeof id !== "string";
|
|
10446
10545
|
})) {
|
|
@@ -10448,8 +10547,8 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10448
10547
|
}
|
|
10449
10548
|
var getNotFailingOn404 = function getNotFailingOn404(swapId) {
|
|
10450
10549
|
try {
|
|
10451
|
-
return Promise.resolve(_catch$
|
|
10452
|
-
return Promise.resolve(axios.get(
|
|
10550
|
+
return Promise.resolve(_catch$3(function () {
|
|
10551
|
+
return Promise.resolve(axios.get(_this6._URL + "/api/v2/exchange/" + swapId));
|
|
10453
10552
|
}, function (error) {
|
|
10454
10553
|
var _error$response;
|
|
10455
10554
|
if ((error == null || (_error$response = error.response) == null ? void 0 : _error$response.status) === 404) return [];
|
|
@@ -10469,13 +10568,13 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10469
10568
|
var swaps = wo404.map(function (r) {
|
|
10470
10569
|
return r.data;
|
|
10471
10570
|
}).map(function (swap, index) {
|
|
10472
|
-
var
|
|
10473
|
-
var fromCoin = (
|
|
10571
|
+
var _this6$_supportedCoin, _this6$_supportedCoin2, _swap$from$extraId, _swap$to$extraId, _swap$refundExtraId;
|
|
10572
|
+
var fromCoin = (_this6$_supportedCoin = _this6._supportedCoins.find(function (i) {
|
|
10474
10573
|
return i.code === swap.from.code && i.network === swap.from.network;
|
|
10475
|
-
})) == null ? void 0 :
|
|
10476
|
-
var toCoin = (
|
|
10574
|
+
})) == null ? void 0 : _this6$_supportedCoin.coin;
|
|
10575
|
+
var toCoin = (_this6$_supportedCoin2 = _this6._supportedCoins.find(function (i) {
|
|
10477
10576
|
return i.code === swap.to.code && i.network === swap.to.network;
|
|
10478
|
-
})) == null ? void 0 :
|
|
10577
|
+
})) == null ? void 0 : _this6$_supportedCoin2.coin;
|
|
10479
10578
|
if (!fromCoin || !toCoin) {
|
|
10480
10579
|
return []; // We skip swaps with not supported coins for now
|
|
10481
10580
|
}
|
|
@@ -10484,10 +10583,10 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10484
10583
|
};
|
|
10485
10584
|
var expiresAt = toUtcTimestamp(swap.timestamps.expiresAt);
|
|
10486
10585
|
var isExpiredByTime = expiresAt < Date.now();
|
|
10487
|
-
var status =
|
|
10586
|
+
var status = _this6._mapSwapspaceStatusToRabbitStatus(swap.status, isExpiredByTime);
|
|
10488
10587
|
var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
|
|
10489
10588
|
var addressToSendCoinsToSwapspace = swap.from.address;
|
|
10490
|
-
return new ExistingSwap(swapIds[index], status, toUtcTimestamp(swap.timestamps.createdAt), expiresAt, swap.confirmations, AmountUtils.trim(swap.rate,
|
|
10589
|
+
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, swap.blockExplorerTransactionUrl.to, 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);
|
|
10491
10590
|
}).flat();
|
|
10492
10591
|
Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
|
|
10493
10592
|
return {
|
|
@@ -10496,7 +10595,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10496
10595
|
};
|
|
10497
10596
|
});
|
|
10498
10597
|
}, function (e) {
|
|
10499
|
-
var _e$
|
|
10598
|
+
var _e$response4, _e$response5;
|
|
10500
10599
|
Logger.logError(e, loggerSource, "Failed to get swap details. Error is: " + safeStringify(e));
|
|
10501
10600
|
var composeFailResult = function composeFailResult(reason) {
|
|
10502
10601
|
return {
|
|
@@ -10504,8 +10603,8 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10504
10603
|
reason: reason
|
|
10505
10604
|
};
|
|
10506
10605
|
};
|
|
10507
|
-
var status = e == null || (_e$
|
|
10508
|
-
var data = e == null || (_e$
|
|
10606
|
+
var status = e == null || (_e$response4 = e.response) == null ? void 0 : _e$response4.status;
|
|
10607
|
+
var data = e == null || (_e$response5 = e.response) == null ? void 0 : _e$response5.data;
|
|
10509
10608
|
if (status === 429) {
|
|
10510
10609
|
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
10511
10610
|
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
@@ -10516,45 +10615,10 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10516
10615
|
return Promise.reject(e);
|
|
10517
10616
|
}
|
|
10518
10617
|
};
|
|
10519
|
-
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
10520
|
-
try {
|
|
10521
|
-
var assetData = this._supportedCoins.find(function (i) {
|
|
10522
|
-
var _i$coin3;
|
|
10523
|
-
return ((_i$coin3 = i.coin) == null ? void 0 : _i$coin3.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10524
|
-
});
|
|
10525
|
-
if (assetData) {
|
|
10526
|
-
var corrected = assetData.validationRegexp.trim();
|
|
10527
|
-
corrected = corrected[0] === "/" ? corrected.slice(1) : corrected;
|
|
10528
|
-
corrected = corrected[corrected.length - 1] === "/" ? corrected.slice(0, corrected.length - 1) : corrected;
|
|
10529
|
-
return address.match(corrected) != null;
|
|
10530
|
-
}
|
|
10531
|
-
} catch (e) {
|
|
10532
|
-
Logger.logError(e, "isAddressValidForAsset");
|
|
10533
|
-
}
|
|
10534
|
-
return false;
|
|
10535
|
-
};
|
|
10536
|
-
_proto.getExtraIdNameIfPresent = function getExtraIdNameIfPresent(asset) {
|
|
10537
|
-
try {
|
|
10538
|
-
var assetData = this._supportedCoins.find(function (i) {
|
|
10539
|
-
var _i$coin4;
|
|
10540
|
-
return ((_i$coin4 = i.coin) == null ? void 0 : _i$coin4.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10541
|
-
});
|
|
10542
|
-
if (assetData != null && assetData.hasExtraId) {
|
|
10543
|
-
if ((assetData == null ? void 0 : assetData.extraIdName) == null || (assetData == null ? void 0 : assetData.extraIdName) === "") {
|
|
10544
|
-
// We return some default name if the extraIdName is empty
|
|
10545
|
-
return "ID";
|
|
10546
|
-
}
|
|
10547
|
-
return assetData == null ? void 0 : assetData.extraIdName;
|
|
10548
|
-
}
|
|
10549
|
-
return null;
|
|
10550
|
-
} catch (e) {
|
|
10551
|
-
improveAndRethrow(e, "getExtraIdNameIfPresent");
|
|
10552
|
-
}
|
|
10553
|
-
};
|
|
10554
10618
|
return SwapspaceSwapProvider;
|
|
10555
10619
|
}(SwapProvider);
|
|
10556
10620
|
|
|
10557
|
-
function _catch$
|
|
10621
|
+
function _catch$2(body, recover) {
|
|
10558
10622
|
try {
|
|
10559
10623
|
var result = body();
|
|
10560
10624
|
} catch (e) {
|
|
@@ -10751,134 +10815,590 @@ var SwapUtils = /*#__PURE__*/function () {
|
|
|
10751
10815
|
if (coinToCurrentFiatRate === void 0) {
|
|
10752
10816
|
coinToCurrentFiatRate = null;
|
|
10753
10817
|
}
|
|
10754
|
-
if (fiatCurrencyDecimals === void 0) {
|
|
10755
|
-
fiatCurrencyDecimals = null;
|
|
10818
|
+
if (fiatCurrencyDecimals === void 0) {
|
|
10819
|
+
fiatCurrencyDecimals = null;
|
|
10820
|
+
}
|
|
10821
|
+
try {
|
|
10822
|
+
var loggerSource = "getInitialSwapData";
|
|
10823
|
+
return Promise.resolve(_catch$2(function () {
|
|
10824
|
+
/* We use some amount here that should fit at least some of the limits of the swap providers.
|
|
10825
|
+
* So we are going to get some rate to be used as the default for the on-flight calculations before we get
|
|
10826
|
+
* the exact rate (that should be retrieved by getSwapCreationInfo method) for a specific amount.
|
|
10827
|
+
*/
|
|
10828
|
+
var defaultAmountUsd = BigNumber("300");
|
|
10829
|
+
return Promise.resolve(swapProvider.getCoinToUSDTRate(fromCoin)).then(function (coinUsdRate) {
|
|
10830
|
+
var coinAmountForDefaultUsdAmount = AmountUtils.trim(coinUsdRate.result ? defaultAmountUsd.div(coinUsdRate == null ? void 0 : coinUsdRate.rate) : defaultAmountUsd, fromCoin.digits);
|
|
10831
|
+
Logger.log("Init: " + coinAmountForDefaultUsdAmount + " " + fromCoin.ticker + "->" + toCoin.ticker, loggerSource);
|
|
10832
|
+
return Promise.resolve(swapProvider.getSwapInfo(fromCoin, toCoin, coinAmountForDefaultUsdAmount)).then(function (details) {
|
|
10833
|
+
var _coinToCurrentFiatRat, _fiatCurrencyDecimals;
|
|
10834
|
+
if (!details) {
|
|
10835
|
+
throw new Error("The details are empty: " + safeStringify(details));
|
|
10836
|
+
}
|
|
10837
|
+
if (!details.result) {
|
|
10838
|
+
Logger.log("Failed with reason: " + details.reason + ". " + fromCoin.ticker + "->" + toCoin.ticker, loggerSource);
|
|
10839
|
+
if ((details == null ? void 0 : details.reason) === SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED || (details == null ? void 0 : details.reason) === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
10840
|
+
return {
|
|
10841
|
+
result: false,
|
|
10842
|
+
reason: details.reason
|
|
10843
|
+
};
|
|
10844
|
+
} else {
|
|
10845
|
+
throw new Error("Unhandled error case: " + (details == null ? void 0 : details.reason));
|
|
10846
|
+
}
|
|
10847
|
+
}
|
|
10848
|
+
var fiatMin = null;
|
|
10849
|
+
var fiatMax = null;
|
|
10850
|
+
var fiatRate = (_coinToCurrentFiatRat = coinToCurrentFiatRate) != null ? _coinToCurrentFiatRat : coinUsdRate == null ? void 0 : coinUsdRate.rate;
|
|
10851
|
+
var fiatDecimals = (_fiatCurrencyDecimals = fiatCurrencyDecimals) != null ? _fiatCurrencyDecimals : FiatCurrenciesService.getCurrencyDecimalCountByCode("USD");
|
|
10852
|
+
if (fiatRate != null) {
|
|
10853
|
+
fiatMin = BigNumber(details == null ? void 0 : details.smallestMin).times(fiatRate).toFixed(fiatDecimals);
|
|
10854
|
+
fiatMax = BigNumber(details == null ? void 0 : details.greatestMax).times(fiatRate).toFixed(fiatDecimals);
|
|
10855
|
+
}
|
|
10856
|
+
var result = {
|
|
10857
|
+
result: true,
|
|
10858
|
+
min: details == null ? void 0 : details.smallestMin,
|
|
10859
|
+
fiatMin: fiatMin,
|
|
10860
|
+
max: details == null ? void 0 : details.greatestMax,
|
|
10861
|
+
fiatMax: fiatMax,
|
|
10862
|
+
rate: AmountUtils.trim(details.rate, 30)
|
|
10863
|
+
};
|
|
10864
|
+
Logger.log("Returning: " + safeStringify(result), loggerSource);
|
|
10865
|
+
return result;
|
|
10866
|
+
});
|
|
10867
|
+
});
|
|
10868
|
+
}, function (e) {
|
|
10869
|
+
Logger.logError(e, loggerSource, "Failed to init swap: " + safeStringify(e));
|
|
10870
|
+
improveAndRethrow(e, loggerSource);
|
|
10871
|
+
}));
|
|
10872
|
+
} catch (e) {
|
|
10873
|
+
return Promise.reject(e);
|
|
10874
|
+
}
|
|
10875
|
+
};
|
|
10876
|
+
SwapUtils.safeHandleRequestsLimitExceeding = function safeHandleRequestsLimitExceeding() {
|
|
10877
|
+
(function () {
|
|
10878
|
+
try {
|
|
10879
|
+
var _temp = _catch$2(function () {
|
|
10880
|
+
return Promise.resolve(EmailsApi.sendEmail("AUTOMATIC EMAIL - SWAPSPACE REQUESTS LIMIT EXCEEDED", "Requests limit exceeded. Urgently ask swaps provider support for limit increasing")).then(function () {});
|
|
10881
|
+
}, function (e) {
|
|
10882
|
+
Logger.log("Failed to handle limit exceeding " + safeStringify(e), "_safeHandleRequestsLimitExceeding");
|
|
10883
|
+
});
|
|
10884
|
+
return _temp && _temp.then ? _temp.then(function () {}) : void 0;
|
|
10885
|
+
} catch (e) {
|
|
10886
|
+
Promise.reject(e);
|
|
10887
|
+
}
|
|
10888
|
+
})();
|
|
10889
|
+
}
|
|
10890
|
+
|
|
10891
|
+
/**
|
|
10892
|
+
* If some swap is not found by id then there is no item in return list.
|
|
10893
|
+
*
|
|
10894
|
+
* @param swapProviders {SwapProvider[]} - Array of swap providers
|
|
10895
|
+
* @param swapIds {string[]} - Array of swap IDs
|
|
10896
|
+
* @return {Promise<{
|
|
10897
|
+
* result: true,
|
|
10898
|
+
* swaps: ExistingSwapWithFiatData[]
|
|
10899
|
+
* }|{
|
|
10900
|
+
* result: false,
|
|
10901
|
+
* reason: string
|
|
10902
|
+
* }>}
|
|
10903
|
+
*/;
|
|
10904
|
+
SwapUtils.getExistingSwapsDetailsWithFiatAmounts = function getExistingSwapsDetailsWithFiatAmounts(swapProviders, swapIds) {
|
|
10905
|
+
try {
|
|
10906
|
+
return Promise.resolve(_catch$2(function () {
|
|
10907
|
+
var _interrupt;
|
|
10908
|
+
function _temp8() {
|
|
10909
|
+
if (swapIds.length > 0 && allSwaps.length === 0 && failResults.length > 0) {
|
|
10910
|
+
var failReasons = failResults.map(function (r) {
|
|
10911
|
+
return r.reason;
|
|
10912
|
+
});
|
|
10913
|
+
return {
|
|
10914
|
+
result: false,
|
|
10915
|
+
reason: failReasons.find(function (r) {
|
|
10916
|
+
return r !== SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED;
|
|
10917
|
+
}) ? failReasons.join("\n") : SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
10918
|
+
};
|
|
10919
|
+
}
|
|
10920
|
+
return {
|
|
10921
|
+
result: true,
|
|
10922
|
+
swaps: allSwaps
|
|
10923
|
+
};
|
|
10924
|
+
}
|
|
10925
|
+
var allSwaps = [];
|
|
10926
|
+
var remainingSwapIds = new Set(swapIds);
|
|
10927
|
+
var failResults = [];
|
|
10928
|
+
var _temp7 = _forOf(swapProviders, function (provider) {
|
|
10929
|
+
return Promise.resolve(provider.getExistingSwapsDetailsAndStatus([].concat(remainingSwapIds))).then(function (result) {
|
|
10930
|
+
var _temp6 = function () {
|
|
10931
|
+
if (result.result) {
|
|
10932
|
+
var _temp5 = function _temp5() {
|
|
10933
|
+
allSwaps = allSwaps.concat(_extendedSwaps);
|
|
10934
|
+
|
|
10935
|
+
// Stop if we have retrieved all swaps
|
|
10936
|
+
if (allSwaps.length >= swapIds.length) {
|
|
10937
|
+
_interrupt = 1;
|
|
10938
|
+
}
|
|
10939
|
+
};
|
|
10940
|
+
var _extendedSwaps = [];
|
|
10941
|
+
var _temp4 = _forOf(result.swaps, function (swap) {
|
|
10942
|
+
function _temp3() {
|
|
10943
|
+
remainingSwapIds["delete"](swap.id);
|
|
10944
|
+
}
|
|
10945
|
+
var _temp2 = function () {
|
|
10946
|
+
if (swap.status === SwapProvider.SWAP_STATUSES.REFUNDED) {
|
|
10947
|
+
return Promise.resolve(provider.getCoinToUSDTRate(swap.fromCoin)).then(function (rate) {
|
|
10948
|
+
_extendedSwaps.push(ExistingSwapWithFiatData.fromExistingSwap(swap, (rate == null ? void 0 : rate.rate) != null ? BigNumber(swap.fromAmount).times(rate.rate).toNumber() : null, (rate == null ? void 0 : rate.rate) != null ? BigNumber(swap.toAmount).times(rate.rate).toNumber() : null, "USD", FiatCurrenciesService.getCurrencyDecimalCountByCode("USD")));
|
|
10949
|
+
});
|
|
10950
|
+
} else {
|
|
10951
|
+
return Promise.resolve(Promise.all([provider.getCoinToUSDTRate(swap.fromCoin), provider.getCoinToUSDTRate(swap.toCoin)])).then(function (_ref) {
|
|
10952
|
+
var fromCoinFiatRate = _ref[0],
|
|
10953
|
+
toCoinFiatRate = _ref[1];
|
|
10954
|
+
_extendedSwaps.push(ExistingSwapWithFiatData.fromExistingSwap(swap, (fromCoinFiatRate == null ? void 0 : fromCoinFiatRate.rate) != null ? BigNumber(swap.fromAmount).times(fromCoinFiatRate.rate).toNumber() : null, (toCoinFiatRate == null ? void 0 : toCoinFiatRate.rate) != null ? BigNumber(swap.toAmount).times(toCoinFiatRate.rate).toNumber() : null, "USD", FiatCurrenciesService.getCurrencyDecimalCountByCode("USD")));
|
|
10955
|
+
});
|
|
10956
|
+
}
|
|
10957
|
+
}();
|
|
10958
|
+
return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
|
|
10959
|
+
});
|
|
10960
|
+
return _temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4);
|
|
10961
|
+
} else {
|
|
10962
|
+
failResults.push(result);
|
|
10963
|
+
}
|
|
10964
|
+
}();
|
|
10965
|
+
if (_temp6 && _temp6.then) return _temp6.then(function () {});
|
|
10966
|
+
});
|
|
10967
|
+
}, function () {
|
|
10968
|
+
return _interrupt;
|
|
10969
|
+
});
|
|
10970
|
+
return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
|
|
10971
|
+
}, function (e) {
|
|
10972
|
+
improveAndRethrow(e, "getExistingSwapsDetailsWithFiatAmounts");
|
|
10973
|
+
}));
|
|
10974
|
+
} catch (e) {
|
|
10975
|
+
return Promise.reject(e);
|
|
10976
|
+
}
|
|
10977
|
+
};
|
|
10978
|
+
return SwapUtils;
|
|
10979
|
+
}();
|
|
10980
|
+
|
|
10981
|
+
function _catch$1(body, recover) {
|
|
10982
|
+
try {
|
|
10983
|
+
var result = body();
|
|
10984
|
+
} catch (e) {
|
|
10985
|
+
return recover(e);
|
|
10986
|
+
}
|
|
10987
|
+
if (result && result.then) {
|
|
10988
|
+
return result.then(void 0, recover);
|
|
10989
|
+
}
|
|
10990
|
+
return result;
|
|
10991
|
+
}
|
|
10992
|
+
var LetsExchangeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
10993
|
+
_inheritsLoose(LetsExchangeSwapProvider, _SwapProvider);
|
|
10994
|
+
function LetsExchangeSwapProvider(apiKeysProxyUrl, cache, customCoinBuilder, useRestrictedCoinsSet) {
|
|
10995
|
+
var _this;
|
|
10996
|
+
if (customCoinBuilder === void 0) {
|
|
10997
|
+
customCoinBuilder = function customCoinBuilder(coin, network) {
|
|
10998
|
+
return null;
|
|
10999
|
+
};
|
|
11000
|
+
}
|
|
11001
|
+
if (useRestrictedCoinsSet === void 0) {
|
|
11002
|
+
useRestrictedCoinsSet = true;
|
|
11003
|
+
}
|
|
11004
|
+
_this = _SwapProvider.call(this, cache, customCoinBuilder, useRestrictedCoinsSet) || this;
|
|
11005
|
+
_this._partners = [];
|
|
11006
|
+
_this._URL = apiKeysProxyUrl + "/letsexchange";
|
|
11007
|
+
_this.isAggregator = false;
|
|
11008
|
+
_this.COINS_EXPIRATION_TIME_MS = 5 * 60 * 1000;
|
|
11009
|
+
_this.coinsLastUpdateTimestamp = null;
|
|
11010
|
+
return _this;
|
|
11011
|
+
}
|
|
11012
|
+
var _proto = LetsExchangeSwapProvider.prototype;
|
|
11013
|
+
_proto.getSwapCreationInfoTtlMs = function getSwapCreationInfoTtlMs() {
|
|
11014
|
+
return 110000;
|
|
11015
|
+
};
|
|
11016
|
+
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
11017
|
+
try {
|
|
11018
|
+
var _this2 = this;
|
|
11019
|
+
var loggerSource = "_fetchSupportedCurrenciesIfNeeded";
|
|
11020
|
+
return Promise.resolve(_catch$1(function () {
|
|
11021
|
+
var _temp = function (_this2$_supportedCoin) {
|
|
11022
|
+
if (!((_this2$_supportedCoin = _this2._supportedCoins) != null && _this2$_supportedCoin.length) || !_this2.coinsLastUpdateTimestamp || _this2.coinsLastUpdateTimestamp + _this2.COINS_EXPIRATION_TIME_MS < Date.now()) {
|
|
11023
|
+
return Promise.resolve(axios.get(_this2._URL + "/v2/coins")).then(function (rawResponse) {
|
|
11024
|
+
var _rawResponse$data, _rawResponse$data2;
|
|
11025
|
+
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data = rawResponse.data) == null ? void 0 : _rawResponse$data.length), loggerSource);
|
|
11026
|
+
var allowedCoins = (_rawResponse$data2 = rawResponse == null ? void 0 : rawResponse.data) != null ? _rawResponse$data2 : [];
|
|
11027
|
+
Logger.log("Allowed cnt " + allowedCoins.length, loggerSource);
|
|
11028
|
+
_this2._supportedCoins = allowedCoins.map(function (item) {
|
|
11029
|
+
var code = item.code.toUpperCase();
|
|
11030
|
+
if (!Array.isArray(item.networks)) return [];
|
|
11031
|
+
return item.networks.map(function (networkDetails) {
|
|
11032
|
+
var network = networkDetails.code.toUpperCase();
|
|
11033
|
+
var coin = _this2._customCoinBuilder(code, network);
|
|
11034
|
+
if (!coin && !_this2.useRestrictedCoinsSet) {
|
|
11035
|
+
var name = _this2.removeProtocolNameFromCoinName(item.name, code, network);
|
|
11036
|
+
var ticker = "" + code + (code === network ? "" : network);
|
|
11037
|
+
var defaultDecimalPlacesForCoinNotSupportedOOB = DEFAULT_CRYPTO_DECIMAL_COUNT;
|
|
11038
|
+
var defaultMinConfirmationsForCoinNotSupportedOOB = 1;
|
|
11039
|
+
coin = new Coin(name, ticker, code, defaultDecimalPlacesForCoinNotSupportedOOB, null, "", null, null, defaultMinConfirmationsForCoinNotSupportedOOB, null, [], 60000, null, code !== network ? new Protocol(network) : null, item.contract_address || null, false);
|
|
11040
|
+
}
|
|
11041
|
+
if (coin) {
|
|
11042
|
+
var _networkDetails$extra, _networkDetails$valid;
|
|
11043
|
+
return {
|
|
11044
|
+
coin: coin,
|
|
11045
|
+
code: item.code,
|
|
11046
|
+
network: networkDetails.code,
|
|
11047
|
+
hasExtraId: !!networkDetails.has_extra,
|
|
11048
|
+
extraIdName: (_networkDetails$extra = networkDetails.extra_name) != null ? _networkDetails$extra : null,
|
|
11049
|
+
isPopular: item.rating || 0,
|
|
11050
|
+
iconURL: item.icon ? item.icon : FALLBACK_ASSET_ICON_URL,
|
|
11051
|
+
deposit: true,
|
|
11052
|
+
// Letsexchange provide no such details
|
|
11053
|
+
withdrawal: true,
|
|
11054
|
+
// Letsexchange provide no such details
|
|
11055
|
+
validationRegexp: (_networkDetails$valid = networkDetails.validation_address_regex) != null ? _networkDetails$valid : null,
|
|
11056
|
+
isAvailable: (typeof item.is_active !== "number" || item.is_active === 1) && (typeof item.disabled !== "number" || item.disabled === 0) && (typeof networkDetails.is_active !== "number" || networkDetails.is_active === 1)
|
|
11057
|
+
};
|
|
11058
|
+
}
|
|
11059
|
+
return [];
|
|
11060
|
+
});
|
|
11061
|
+
}).flat();
|
|
11062
|
+
_this2.coinsLastUpdateTimestamp = Date.now();
|
|
11063
|
+
_this2._putPopularCoinsFirst();
|
|
11064
|
+
});
|
|
11065
|
+
}
|
|
11066
|
+
}();
|
|
11067
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
|
11068
|
+
}, function (e) {
|
|
11069
|
+
improveAndRethrow(e, loggerSource);
|
|
11070
|
+
}));
|
|
11071
|
+
} catch (e) {
|
|
11072
|
+
return Promise.reject(e);
|
|
11073
|
+
}
|
|
11074
|
+
};
|
|
11075
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
11076
|
+
if (fixed === void 0) {
|
|
11077
|
+
fixed = false;
|
|
11078
|
+
}
|
|
11079
|
+
if (amountIsToReceive === void 0) {
|
|
11080
|
+
amountIsToReceive = false;
|
|
11081
|
+
}
|
|
11082
|
+
try {
|
|
11083
|
+
var _this3 = this;
|
|
11084
|
+
var loggerSource = "getSwapInfo";
|
|
11085
|
+
return Promise.resolve(_catch$1(function () {
|
|
11086
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amountCoins !== "string" || BigNumber(amountCoins).lt("0") || fixed !== null && typeof fixed !== "boolean" || amountIsToReceive && !fixed) {
|
|
11087
|
+
throw new Error("Wrong input params: " + amountCoins + " " + fromCoin.ticker + " -> " + toCoin.ticker + ", " + (fromCoin instanceof Coin) + ", " + (toCoin instanceof Coin) + ", " + typeof fixed + " " + fixed + ", " + amountIsToReceive);
|
|
11088
|
+
}
|
|
11089
|
+
var fromCoinDetails = _this3._supportedCoins.find(function (i) {
|
|
11090
|
+
var _i$coin;
|
|
11091
|
+
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
11092
|
+
});
|
|
11093
|
+
var toCoinDetails = _this3._supportedCoins.find(function (i) {
|
|
11094
|
+
var _i$coin2;
|
|
11095
|
+
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
11096
|
+
});
|
|
11097
|
+
if (!fromCoinDetails || !toCoinDetails) {
|
|
11098
|
+
throw new Error("Failed to find coin details for: " + fromCoin.ticker + " -> " + toCoin.ticker);
|
|
11099
|
+
}
|
|
11100
|
+
if (!fromCoinDetails.deposit || !fromCoinDetails.isAvailable || !toCoinDetails.withdrawal || !toCoinDetails.isAvailable) {
|
|
11101
|
+
return {
|
|
11102
|
+
result: false,
|
|
11103
|
+
reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
|
|
11104
|
+
};
|
|
11105
|
+
}
|
|
11106
|
+
var pathAndQuery = "/v1/info" + (amountIsToReceive ? "-revert" : "?float=" + !fixed);
|
|
11107
|
+
return Promise.resolve(axios.post("" + _this3._URL + pathAndQuery, {
|
|
11108
|
+
from: fromCoinDetails.code,
|
|
11109
|
+
to: toCoinDetails.code,
|
|
11110
|
+
network_from: fromCoinDetails.network,
|
|
11111
|
+
network_to: toCoinDetails.network,
|
|
11112
|
+
amount: amountCoins,
|
|
11113
|
+
affiliate_id: LetsExchangeSwapProvider.AFFILIATE_ID
|
|
11114
|
+
})).then(function (response) {
|
|
11115
|
+
Logger.log("Retrieved " + (response == null ? void 0 : response.data), loggerSource);
|
|
11116
|
+
var data = response.data;
|
|
11117
|
+
|
|
11118
|
+
// TODO: [dev] add SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING - request alternative rate. task_id=
|
|
11119
|
+
|
|
11120
|
+
// TODO: [feature, low] implement extra coins to fit min/max if there are frequent errors due to min/max exceeding
|
|
11121
|
+
// let extraCoinsToFitMinMax = "0";
|
|
11122
|
+
// if (typeof fromCoinToUsdRate === "string" && BigNumber(fromCoinToUsdRate).gt("0")) {
|
|
11123
|
+
// const extraUsdToFitMinMax = BigNumber("1"); // We correct the limits as the exact limit can fluctuate and cause failed swap creation
|
|
11124
|
+
// extraCoinsToFitMinMax = AmountUtils.trim(extraUsdToFitMinMax.div(fromCoinToUsdRate), fromCoin.digits);
|
|
11125
|
+
// }
|
|
11126
|
+
var min = null;
|
|
11127
|
+
if (data != null && data.min_amount) {
|
|
11128
|
+
min = AmountUtils.trim(data == null ? void 0 : data.min_amount, amountIsToReceive ? toCoin.digits : fromCoin.digits);
|
|
11129
|
+
}
|
|
11130
|
+
var max = null;
|
|
11131
|
+
if (data != null && data.max_amount) {
|
|
11132
|
+
max = AmountUtils.trim(data == null ? void 0 : data.max_amount, amountIsToReceive ? toCoin.digits : fromCoin.digits);
|
|
11133
|
+
}
|
|
11134
|
+
if (data.success === false && data.error) {
|
|
11135
|
+
// TODO: [dev] waiting for response from letsexchange about their not-documented responses
|
|
11136
|
+
// {
|
|
11137
|
+
// "success": false,
|
|
11138
|
+
// "error": "Internal error"
|
|
11139
|
+
// }
|
|
11140
|
+
throw new Error("Failed to estimate swap letsexchange");
|
|
11141
|
+
}
|
|
11142
|
+
if (BigNumber(data.rate).eq("0") || BigNumber(data.amount).eq("0")) {
|
|
11143
|
+
// TODO actualize according to letsexchage clarification - decide, can we count on min/max abcense? task_id=76512110797f4eab8b37f1bb789825cb
|
|
11144
|
+
// amount: "0", rate: "0", rate_id: ""
|
|
11145
|
+
var reason = SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED;
|
|
11146
|
+
if (min && BigNumber(amountCoins).lt(min)) {
|
|
11147
|
+
reason = SwapProvider.NO_SWAPS_REASONS.TOO_LOW;
|
|
11148
|
+
} else if (max && BigNumber(amountCoins).gt(max)) {
|
|
11149
|
+
reason = SwapProvider.NO_SWAPS_REASONS.TOO_HIGH;
|
|
11150
|
+
} else if (!amountIsToReceive) {
|
|
11151
|
+
// If we are not requesting receiving amount (it cannot be floating-rate)
|
|
11152
|
+
// todo [feature, moderate] request alternative rate. task_id=31884db5392f49738c20a86115c90e1f
|
|
11153
|
+
// const alternativeRate = 1;
|
|
11154
|
+
// const alternativeRateAvailable = alternativeRate;
|
|
11155
|
+
// if (alternativeRateAvailable) {
|
|
11156
|
+
// reason = fixed
|
|
11157
|
+
// ? SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING
|
|
11158
|
+
// : SwapProvider.NO_SWAPS_REASONS.NO_FLOATING_BUT_HAVE_FIXED;
|
|
11159
|
+
// }
|
|
11160
|
+
}
|
|
11161
|
+
return {
|
|
11162
|
+
result: false,
|
|
11163
|
+
reason: reason,
|
|
11164
|
+
smallestMin: min,
|
|
11165
|
+
greatestMax: max
|
|
11166
|
+
};
|
|
11167
|
+
}
|
|
11168
|
+
var rate = amountIsToReceive ? BigNumber(amountCoins).div(data.amount) : BigNumber(data.amount).div(amountCoins);
|
|
11169
|
+
return {
|
|
11170
|
+
result: true,
|
|
11171
|
+
min: min,
|
|
11172
|
+
max: max,
|
|
11173
|
+
smallestMin: min,
|
|
11174
|
+
greatestMax: max,
|
|
11175
|
+
rate: AmountUtils.trim(rate, _this3._maxRateDigits),
|
|
11176
|
+
durationMinutesRange: null,
|
|
11177
|
+
fixed: fixed,
|
|
11178
|
+
rawSwapData: data,
|
|
11179
|
+
isRefundAddressRequired: false
|
|
11180
|
+
};
|
|
11181
|
+
});
|
|
11182
|
+
}, function (e) {
|
|
11183
|
+
var _e$response;
|
|
11184
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
11185
|
+
return {
|
|
11186
|
+
result: false,
|
|
11187
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
11188
|
+
};
|
|
11189
|
+
}
|
|
11190
|
+
Logger.log("Internal error when getting swap options " + safeStringify(e), loggerSource);
|
|
11191
|
+
improveAndRethrow(e, loggerSource);
|
|
11192
|
+
}));
|
|
11193
|
+
} catch (e) {
|
|
11194
|
+
return Promise.reject(e);
|
|
11195
|
+
}
|
|
11196
|
+
};
|
|
11197
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
11198
|
+
if (toCurrencyExtraId === void 0) {
|
|
11199
|
+
toCurrencyExtraId = "";
|
|
11200
|
+
}
|
|
11201
|
+
if (refundExtraId === void 0) {
|
|
11202
|
+
refundExtraId = "";
|
|
11203
|
+
}
|
|
11204
|
+
if (amountIsToReceive === void 0) {
|
|
11205
|
+
amountIsToReceive = false;
|
|
10756
11206
|
}
|
|
10757
11207
|
try {
|
|
10758
|
-
var
|
|
11208
|
+
var _this4 = this;
|
|
11209
|
+
var loggerSource = "createSwap";
|
|
10759
11210
|
return Promise.resolve(_catch$1(function () {
|
|
10760
|
-
|
|
10761
|
-
|
|
10762
|
-
|
|
10763
|
-
|
|
10764
|
-
|
|
10765
|
-
|
|
10766
|
-
|
|
10767
|
-
|
|
10768
|
-
return
|
|
10769
|
-
|
|
10770
|
-
|
|
10771
|
-
|
|
10772
|
-
|
|
10773
|
-
|
|
10774
|
-
|
|
10775
|
-
|
|
10776
|
-
|
|
10777
|
-
|
|
10778
|
-
|
|
10779
|
-
|
|
10780
|
-
|
|
10781
|
-
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10792
|
-
|
|
11211
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || typeof refundAddress !== "string" || typeof clientIpAddress != "string" || typeof fixed != "boolean") {
|
|
11212
|
+
throw new Error("Invalid input: " + fromCoin + " " + toCoin + " " + amount + " " + toAddress + " " + refundAddress + " " + fixed);
|
|
11213
|
+
}
|
|
11214
|
+
if (typeof rawSwapData !== "object" || fixed && !rawSwapData.rate_id) {
|
|
11215
|
+
throw new Error("Invalid raw swap data: " + safeStringify(rawSwapData));
|
|
11216
|
+
}
|
|
11217
|
+
var fromCoinDetails = _this4._supportedCoins.find(function (i) {
|
|
11218
|
+
var _i$coin3;
|
|
11219
|
+
return ((_i$coin3 = i.coin) == null ? void 0 : _i$coin3.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
11220
|
+
});
|
|
11221
|
+
var toCoinDetails = _this4._supportedCoins.find(function (i) {
|
|
11222
|
+
var _i$coin4;
|
|
11223
|
+
return ((_i$coin4 = i.coin) == null ? void 0 : _i$coin4.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
11224
|
+
});
|
|
11225
|
+
if (!fromCoinDetails || !toCoinDetails) {
|
|
11226
|
+
throw new Error("Failed to find coin details for: " + fromCoin.ticker + " -> " + toCoin.ticker);
|
|
11227
|
+
}
|
|
11228
|
+
var requestBody = {
|
|
11229
|
+
coin_from: fromCoinDetails.code,
|
|
11230
|
+
network_from: fromCoinDetails.network,
|
|
11231
|
+
coin_to: toCoinDetails.code,
|
|
11232
|
+
network_to: toCoinDetails.network,
|
|
11233
|
+
withdrawal: toAddress,
|
|
11234
|
+
withdrawal_extra_id: toCurrencyExtraId,
|
|
11235
|
+
"return": refundAddress,
|
|
11236
|
+
return_extra_id: refundExtraId,
|
|
11237
|
+
affiliate_id: LetsExchangeSwapProvider.AFFILIATE_ID
|
|
11238
|
+
};
|
|
11239
|
+
if (amountIsToReceive) {
|
|
11240
|
+
requestBody.withdrawal_amount = amount;
|
|
11241
|
+
} else {
|
|
11242
|
+
requestBody.deposit_amount = amount;
|
|
11243
|
+
}
|
|
11244
|
+
if (fixed) {
|
|
11245
|
+
requestBody.rate_id = rawSwapData.rate_id;
|
|
11246
|
+
}
|
|
11247
|
+
return Promise.resolve(axios.post(_this4._URL + "/v1/transaction" + (amountIsToReceive ? "-revert" : "?float=" + !fixed), requestBody)).then(function (response) {
|
|
11248
|
+
var result = response.data;
|
|
11249
|
+
Logger.log("Creation result " + safeStringify(result), loggerSource);
|
|
11250
|
+
if (result != null && result.transaction_id) {
|
|
11251
|
+
var _result$rate, _result$deposit_extra;
|
|
11252
|
+
var rate = BigNumber((_result$rate = result.rate) != null ? _result$rate : 0).isZero() ? BigNumber(result.withdrawal_amount).div(result.deposit_amount) : BigNumber(result.rate);
|
|
11253
|
+
return {
|
|
10793
11254
|
result: true,
|
|
10794
|
-
|
|
10795
|
-
|
|
10796
|
-
|
|
10797
|
-
|
|
10798
|
-
|
|
11255
|
+
swapId: result.transaction_id,
|
|
11256
|
+
fromCoin: fromCoin,
|
|
11257
|
+
fromAmount: AmountUtils.trim(result.deposit_amount, fromCoin.digits),
|
|
11258
|
+
fromAddress: result.deposit,
|
|
11259
|
+
toCoin: toCoin,
|
|
11260
|
+
toAmount: AmountUtils.trim(result.withdrawal_amount, toCoin.digits),
|
|
11261
|
+
toAddress: result.withdrawal,
|
|
11262
|
+
fromCurrencyExtraId: (_result$deposit_extra = result.deposit_extra_id) != null ? _result$deposit_extra : "",
|
|
11263
|
+
rate: AmountUtils.trim(rate, _this4._maxRateDigits),
|
|
11264
|
+
fixed: !result.is_float
|
|
10799
11265
|
};
|
|
10800
|
-
|
|
10801
|
-
|
|
10802
|
-
|
|
11266
|
+
}
|
|
11267
|
+
var errorMessage = "Swap creation succeeded but the response is wrong: " + safeStringify(response);
|
|
11268
|
+
Logger.log(errorMessage, loggerSource);
|
|
11269
|
+
throw new Error(errorMessage);
|
|
10803
11270
|
});
|
|
10804
11271
|
}, function (e) {
|
|
10805
|
-
|
|
11272
|
+
var _e$response2, _e$response3;
|
|
11273
|
+
Logger.logError(e, loggerSource, "Failed to create swap. Error is: " + safeStringify(e));
|
|
11274
|
+
var composeFailResult = function composeFailResult(reason) {
|
|
11275
|
+
return {
|
|
11276
|
+
result: false,
|
|
11277
|
+
reason: reason
|
|
11278
|
+
};
|
|
11279
|
+
};
|
|
11280
|
+
var status = e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status;
|
|
11281
|
+
var data = e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.data;
|
|
11282
|
+
if (status === 429) {
|
|
11283
|
+
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
11284
|
+
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
11285
|
+
}
|
|
11286
|
+
// TODO: [feature, low] add custom errors handling - waiting for response from letsexchange. task_id=00d2e435f6df4fb99af912135bd9ee27
|
|
11287
|
+
// 422 - missing params
|
|
11288
|
+
Logger.log("Internal error for swap: " + safeStringify(e), loggerSource);
|
|
10806
11289
|
improveAndRethrow(e, loggerSource);
|
|
10807
11290
|
}));
|
|
10808
11291
|
} catch (e) {
|
|
10809
11292
|
return Promise.reject(e);
|
|
10810
11293
|
}
|
|
10811
11294
|
};
|
|
10812
|
-
|
|
10813
|
-
(function () {
|
|
10814
|
-
try {
|
|
10815
|
-
var _temp = _catch$1(function () {
|
|
10816
|
-
return Promise.resolve(EmailsApi.sendEmail("AUTOMATIC EMAIL - SWAPSPACE REQUESTS LIMIT EXCEEDED", "Requests limit exceeded. Urgently ask swaps provider support for limit increasing")).then(function () {});
|
|
10817
|
-
}, function (e) {
|
|
10818
|
-
Logger.log("Failed to handle limit exceeding " + safeStringify(e), "_safeHandleRequestsLimitExceeding");
|
|
10819
|
-
});
|
|
10820
|
-
return _temp && _temp.then ? _temp.then(function () {}) : void 0;
|
|
10821
|
-
} catch (e) {
|
|
10822
|
-
Promise.reject(e);
|
|
10823
|
-
}
|
|
10824
|
-
})();
|
|
10825
|
-
}
|
|
10826
|
-
|
|
10827
|
-
/**
|
|
10828
|
-
* If some swap is not found by id then there is no item in return list.
|
|
10829
|
-
*
|
|
10830
|
-
* @param swapProvider {SwapProvider}
|
|
10831
|
-
* @param swapIds {string[]}
|
|
10832
|
-
* @return {Promise<{
|
|
10833
|
-
* result: true,
|
|
10834
|
-
* swaps: ExistingSwapWithFiatData[]
|
|
10835
|
-
* }|{
|
|
10836
|
-
* result: false,
|
|
10837
|
-
* reason: string
|
|
10838
|
-
* }>}
|
|
10839
|
-
*/;
|
|
10840
|
-
SwapUtils.getExistingSwapsDetailsWithFiatAmounts = function getExistingSwapsDetailsWithFiatAmounts(swapProvider, swapIds) {
|
|
11295
|
+
_proto.getExistingSwapsDetailsAndStatus = function getExistingSwapsDetailsAndStatus(swapIds) {
|
|
10841
11296
|
try {
|
|
11297
|
+
var _this5 = this;
|
|
11298
|
+
var loggerSource = "getExistingSwapsDetailsAndStatus";
|
|
10842
11299
|
return Promise.resolve(_catch$1(function () {
|
|
10843
|
-
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
|
|
10847
|
-
|
|
10848
|
-
|
|
10849
|
-
|
|
10850
|
-
|
|
10851
|
-
|
|
10852
|
-
|
|
10853
|
-
|
|
10854
|
-
|
|
10855
|
-
|
|
10856
|
-
|
|
10857
|
-
|
|
10858
|
-
|
|
10859
|
-
|
|
10860
|
-
_extendedSwaps.push(ExistingSwapWithFiatData.fromExistingSwap(swap, (fromCoinFiatRate == null ? void 0 : fromCoinFiatRate.rate) != null ? BigNumber(swap.fromAmount).times(fromCoinFiatRate.rate).toNumber() : null, (toConFiatRate == null ? void 0 : toConFiatRate.rate) != null ? BigNumber(swap.toAmount).times(toConFiatRate.rate).toNumber() : null, "USD", FiatCurrenciesService.getCurrencyDecimalCountByCode("USD")));
|
|
10861
|
-
});
|
|
10862
|
-
}
|
|
10863
|
-
}();
|
|
10864
|
-
if (_temp2 && _temp2.then) return _temp2.then(function () {});
|
|
10865
|
-
});
|
|
10866
|
-
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
11300
|
+
if (swapIds.find(function (id) {
|
|
11301
|
+
return typeof id !== "string";
|
|
11302
|
+
})) {
|
|
11303
|
+
throw new Error("Swap id is not string: " + safeStringify(swapIds));
|
|
11304
|
+
}
|
|
11305
|
+
return Promise.resolve(axios.get(_this5._URL + "/v1/transactions-list?ids[]=" + swapIds.join("&ids[]="))).then(function (response) {
|
|
11306
|
+
Logger.log("All swaps RAW: " + safeStringify(response.data), loggerSource);
|
|
11307
|
+
var swaps = response.data.map(function (swap, index) {
|
|
11308
|
+
var _this5$_supportedCoin, _this5$_supportedCoin2, _swap$deposit_extra_i, _swap$withdrawal_extr, _swap$return_extra_id;
|
|
11309
|
+
var fromCoin = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
|
|
11310
|
+
return i.code === swap.coin_from && i.network === swap.coin_from_network;
|
|
11311
|
+
})) == null ? void 0 : _this5$_supportedCoin.coin;
|
|
11312
|
+
var toCoin = (_this5$_supportedCoin2 = _this5._supportedCoins.find(function (i) {
|
|
11313
|
+
return i.code === swap.coin_to && i.network === swap.coin_to_network;
|
|
11314
|
+
})) == null ? void 0 : _this5$_supportedCoin2.coin;
|
|
11315
|
+
if (!fromCoin || !toCoin) {
|
|
11316
|
+
return []; // We skip swaps with not supported coins for now
|
|
10867
11317
|
}
|
|
10868
|
-
|
|
10869
|
-
|
|
10870
|
-
|
|
10871
|
-
|
|
11318
|
+
var toUtcTimestamp = function toUtcTimestamp(timeStr) {
|
|
11319
|
+
return Date.parse(timeStr.match(/.+[Zz]$/) ? timeStr : timeStr + "Z");
|
|
11320
|
+
};
|
|
11321
|
+
var expiresAt = swap.expired_at ? swap.expired_at * 1000 : null;
|
|
11322
|
+
var createdAt = swap.created_at ? toUtcTimestamp("" + swap.created_at) : null;
|
|
11323
|
+
var isExpiredByTime = expiresAt && expiresAt < Date.now();
|
|
11324
|
+
var status = _this5._mapLetsExchangeStatusToRabbitStatus(swap.status, isExpiredByTime);
|
|
11325
|
+
var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
|
|
11326
|
+
return new ExistingSwap(swapIds[index], status, createdAt, expiresAt, swap.confirmations, AmountUtils.trim(swap.rate, _this5._maxRateDigits), swap.is_float != null ? !swap.is_float : false, swap["return"], swap.deposit, fromCoin, AmountUtils.trim(swap.deposit_amount, fromCoin.digits), swap.hash_in, swap.hash_in ? "" + swap.coin_from_explorer_url + swap.hash_in : null, toCoin, AmountUtils.trim(swap.withdrawal_amount, toDigits), swap.hash_out, swap.hash_out ? "" + swap.coin_to_explorer_url + swap.hash_out : null, swap.withdrawal, "letsexchange", (_swap$deposit_extra_i = swap.deposit_extra_id) != null ? _swap$deposit_extra_i : null, (_swap$withdrawal_extr = swap.withdrawal_extra_id) != null ? _swap$withdrawal_extr : null, (_swap$return_extra_id = swap.return_extra_id) != null ? _swap$return_extra_id : null);
|
|
11327
|
+
}).flat();
|
|
11328
|
+
Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
|
|
11329
|
+
return {
|
|
11330
|
+
result: true,
|
|
11331
|
+
swaps: swaps
|
|
11332
|
+
};
|
|
10872
11333
|
});
|
|
10873
11334
|
}, function (e) {
|
|
10874
|
-
|
|
11335
|
+
var _e$response4, _e$response5;
|
|
11336
|
+
Logger.logError(e, loggerSource, "Failed to get swap details. Error is: " + safeStringify(e));
|
|
11337
|
+
var composeFailResult = function composeFailResult(reason) {
|
|
11338
|
+
return {
|
|
11339
|
+
result: false,
|
|
11340
|
+
reason: reason
|
|
11341
|
+
};
|
|
11342
|
+
};
|
|
11343
|
+
var status = e == null || (_e$response4 = e.response) == null ? void 0 : _e$response4.status;
|
|
11344
|
+
var data = e == null || (_e$response5 = e.response) == null ? void 0 : _e$response5.data;
|
|
11345
|
+
if (status === 429) {
|
|
11346
|
+
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
11347
|
+
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
11348
|
+
}
|
|
11349
|
+
improveAndRethrow(e, loggerSource);
|
|
10875
11350
|
}));
|
|
10876
11351
|
} catch (e) {
|
|
10877
11352
|
return Promise.reject(e);
|
|
10878
11353
|
}
|
|
11354
|
+
} // TODO: [dev] Serg, please check this during the review to make sure I did no mistakes in statuses mapping.
|
|
11355
|
+
// I will remove these comments after the review. https://api.letsexchange.io/doc
|
|
11356
|
+
// wait The exchange has just been created and it’s waiting for coins to reach the deposit wallet
|
|
11357
|
+
// confirmation The transaction appears in mempool and now it is waiting for necessary network confirmations to start.
|
|
11358
|
+
// confirmed The user’s payment is confirmed, the exchange process is about to start.
|
|
11359
|
+
// exchanging The exchange process is running.
|
|
11360
|
+
// sending Funds are being sent to the recipient`s address.
|
|
11361
|
+
// sending_confirmation The outgoing transaction is waiting for network confirmations.
|
|
11362
|
+
// success The exchange is completed and the funds are successfully sent to the recipient’s address.
|
|
11363
|
+
// aml_check_failed The deposit was marked as risky by AML check service.
|
|
11364
|
+
// overdue The deposit receiving time for this transaction has expired.
|
|
11365
|
+
// error The transaction has failed. In most cases, the amount that was sent differs from the amount that was specified when creating the transaction.
|
|
11366
|
+
// refund The exchange failed and the coins were refunded to the user's wallet.
|
|
11367
|
+
;
|
|
11368
|
+
_proto._mapLetsExchangeStatusToRabbitStatus = function _mapLetsExchangeStatusToRabbitStatus(status, isExpiredByTime) {
|
|
11369
|
+
switch (status) {
|
|
11370
|
+
case "wait":
|
|
11371
|
+
if (isExpiredByTime) {
|
|
11372
|
+
return SwapProvider.SWAP_STATUSES.EXPIRED;
|
|
11373
|
+
}
|
|
11374
|
+
return SwapProvider.SWAP_STATUSES.WAITING_FOR_PAYMENT;
|
|
11375
|
+
case "confirmation":
|
|
11376
|
+
return SwapProvider.SWAP_STATUSES.CONFIRMING;
|
|
11377
|
+
case "confirmed":
|
|
11378
|
+
return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;
|
|
11379
|
+
case "exchanging":
|
|
11380
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11381
|
+
case "sending":
|
|
11382
|
+
return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;
|
|
11383
|
+
case "sending_confirmation":
|
|
11384
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11385
|
+
case "success":
|
|
11386
|
+
return SwapProvider.SWAP_STATUSES.COMPLETED;
|
|
11387
|
+
case "refund":
|
|
11388
|
+
return SwapProvider.SWAP_STATUSES.REFUNDED;
|
|
11389
|
+
case "overdue":
|
|
11390
|
+
return SwapProvider.SWAP_STATUSES.EXPIRED;
|
|
11391
|
+
case "aml_check_failed":
|
|
11392
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11393
|
+
case "error":
|
|
11394
|
+
return SwapProvider.SWAP_STATUSES.FAILED;
|
|
11395
|
+
default:
|
|
11396
|
+
throw new Error("Unknown LetsExchange status: " + status);
|
|
11397
|
+
}
|
|
10879
11398
|
};
|
|
10880
|
-
return
|
|
10881
|
-
}();
|
|
11399
|
+
return LetsExchangeSwapProvider;
|
|
11400
|
+
}(SwapProvider);
|
|
11401
|
+
LetsExchangeSwapProvider.AFFILIATE_ID = "0zbj9hf7xg7jgdgv";
|
|
10882
11402
|
|
|
10883
11403
|
function _catch(body, recover) {
|
|
10884
11404
|
try {
|
|
@@ -10896,13 +11416,16 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10896
11416
|
this._swapProvider = new SwapspaceSwapProvider(apiKeysProxyUrl, cache, function () {
|
|
10897
11417
|
return null;
|
|
10898
11418
|
}, false);
|
|
11419
|
+
this._fixedSwapProvider = new LetsExchangeSwapProvider(apiKeysProxyUrl, cache, function () {
|
|
11420
|
+
return null;
|
|
11421
|
+
}, false);
|
|
10899
11422
|
}
|
|
10900
11423
|
var _proto = PublicSwapService.prototype;
|
|
10901
11424
|
_proto.initialize = function initialize() {
|
|
10902
11425
|
try {
|
|
10903
11426
|
var _this = this;
|
|
10904
11427
|
var _temp = _catch(function () {
|
|
10905
|
-
return Promise.resolve(_this._swapProvider.initialize()).then(function () {});
|
|
11428
|
+
return Promise.resolve(Promise.all([_this._swapProvider.initialize(), _this._fixedSwapProvider.initialize()])).then(function () {});
|
|
10906
11429
|
}, function (e) {
|
|
10907
11430
|
Logger.logError(e, "PublicSwapService.initialize");
|
|
10908
11431
|
});
|
|
@@ -10910,39 +11433,61 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10910
11433
|
} catch (e) {
|
|
10911
11434
|
return Promise.reject(e);
|
|
10912
11435
|
}
|
|
10913
|
-
}
|
|
11436
|
+
}
|
|
11437
|
+
/**
|
|
11438
|
+
* Gets all currencies across all partners. Useful for sitemap or supported currencies count/list.
|
|
11439
|
+
*
|
|
11440
|
+
* @return {Promise<{result: boolean, coins: Coin[]}|{result: boolean, reason: string}>}
|
|
11441
|
+
*/
|
|
11442
|
+
;
|
|
10914
11443
|
_proto.getAllSupportedCurrenciesListForPublicSwap = function getAllSupportedCurrenciesListForPublicSwap() {
|
|
10915
11444
|
try {
|
|
10916
11445
|
var _this2 = this;
|
|
10917
11446
|
var loggerSource = "getAllSupportedCurrenciesListForPublicSwap";
|
|
10918
11447
|
return Promise.resolve(_catch(function () {
|
|
10919
|
-
return Promise.resolve(_this2.
|
|
10920
|
-
|
|
10921
|
-
|
|
10922
|
-
|
|
11448
|
+
return Promise.resolve(_this2.initialize()).then(function () {
|
|
11449
|
+
return Promise.resolve(Promise.all([_this2._fixedSwapProvider.getAllSupportedCurrencies(), _this2._swapProvider.getAllSupportedCurrencies()])).then(function (result) {
|
|
11450
|
+
var _result$0$coins, _result$1$coins, _result$coins;
|
|
11451
|
+
var allCoins = [].concat((_result$0$coins = result[0].coins) != null ? _result$0$coins : []);
|
|
11452
|
+
((_result$1$coins = result[1].coins) != null ? _result$1$coins : []).forEach(function (c) {
|
|
11453
|
+
if (!allCoins.find(function (existingCoin) {
|
|
11454
|
+
return existingCoin.ticker === c.ticker;
|
|
11455
|
+
})) {
|
|
11456
|
+
allCoins.push(c);
|
|
11457
|
+
}
|
|
11458
|
+
});
|
|
11459
|
+
if (result[0].reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED || result[1].reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
11460
|
+
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
11461
|
+
// TODO: [dev] improve this during the whitebit integration. task_id=20e7e41211b540d081bf98f392a34b2c
|
|
11462
|
+
// return {
|
|
11463
|
+
// result: false,
|
|
11464
|
+
// reason: PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED,
|
|
11465
|
+
// };
|
|
11466
|
+
} else if (result[0].reason || result[1].reason) {
|
|
11467
|
+
console.log("Failed to get all supported coins", result[0].reason, result[1].reason);
|
|
11468
|
+
}
|
|
11469
|
+
Logger.log("Retrieved " + (result == null || (_result$coins = result.coins) == null ? void 0 : _result$coins.length) + " supported currencies for swap", loggerSource);
|
|
10923
11470
|
return {
|
|
10924
|
-
result:
|
|
10925
|
-
|
|
11471
|
+
result: true,
|
|
11472
|
+
coins: allCoins
|
|
10926
11473
|
};
|
|
10927
|
-
}
|
|
10928
|
-
Logger.log("Retrieved " + (result == null || (_result$coins = result.coins) == null ? void 0 : _result$coins.length) + " supported currencies for swap", loggerSource);
|
|
10929
|
-
return {
|
|
10930
|
-
result: true,
|
|
10931
|
-
coins: result.coins
|
|
10932
|
-
};
|
|
11474
|
+
});
|
|
10933
11475
|
});
|
|
10934
11476
|
}, function (e) {
|
|
10935
|
-
improveAndRethrow(e, "
|
|
11477
|
+
improveAndRethrow(e, "getAllSupportedCurrenciesListForPublicSwap");
|
|
10936
11478
|
}));
|
|
10937
11479
|
} catch (e) {
|
|
10938
11480
|
return Promise.reject(e);
|
|
10939
11481
|
}
|
|
10940
11482
|
};
|
|
10941
|
-
_proto.getDepositCurrenciesListForPublicSwap = function getDepositCurrenciesListForPublicSwap() {
|
|
11483
|
+
_proto.getDepositCurrenciesListForPublicSwap = function getDepositCurrenciesListForPublicSwap(fixed) {
|
|
11484
|
+
if (fixed === void 0) {
|
|
11485
|
+
fixed = false;
|
|
11486
|
+
}
|
|
10942
11487
|
try {
|
|
10943
11488
|
var _this3 = this;
|
|
10944
11489
|
return Promise.resolve(_catch(function () {
|
|
10945
|
-
return Promise.resolve(_this3._getCurrenciesListForPublicSwap(false));
|
|
11490
|
+
return Promise.resolve(_this3._getCurrenciesListForPublicSwap(false, fixed));
|
|
10946
11491
|
}, function (e) {
|
|
10947
11492
|
improveAndRethrow(e, "getDepositCurrenciesListForPublicSwap");
|
|
10948
11493
|
}));
|
|
@@ -10950,11 +11495,14 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10950
11495
|
return Promise.reject(e);
|
|
10951
11496
|
}
|
|
10952
11497
|
};
|
|
10953
|
-
_proto.getWithdrawCurrenciesListForPublicSwap = function getWithdrawCurrenciesListForPublicSwap() {
|
|
11498
|
+
_proto.getWithdrawCurrenciesListForPublicSwap = function getWithdrawCurrenciesListForPublicSwap(fixed) {
|
|
11499
|
+
if (fixed === void 0) {
|
|
11500
|
+
fixed = false;
|
|
11501
|
+
}
|
|
10954
11502
|
try {
|
|
10955
11503
|
var _this4 = this;
|
|
10956
11504
|
return Promise.resolve(_catch(function () {
|
|
10957
|
-
return Promise.resolve(_this4._getCurrenciesListForPublicSwap(true));
|
|
11505
|
+
return Promise.resolve(_this4._getCurrenciesListForPublicSwap(true, fixed));
|
|
10958
11506
|
}, function (e) {
|
|
10959
11507
|
improveAndRethrow(e, "getWithdrawCurrenciesListForPublicSwap");
|
|
10960
11508
|
}));
|
|
@@ -10962,15 +11510,19 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10962
11510
|
return Promise.reject(e);
|
|
10963
11511
|
}
|
|
10964
11512
|
};
|
|
10965
|
-
_proto._getCurrenciesListForPublicSwap = function _getCurrenciesListForPublicSwap(withdraw) {
|
|
11513
|
+
_proto._getCurrenciesListForPublicSwap = function _getCurrenciesListForPublicSwap(withdraw, fixed) {
|
|
10966
11514
|
if (withdraw === void 0) {
|
|
10967
11515
|
withdraw = false;
|
|
10968
11516
|
}
|
|
11517
|
+
if (fixed === void 0) {
|
|
11518
|
+
fixed = false;
|
|
11519
|
+
}
|
|
10969
11520
|
try {
|
|
10970
11521
|
var _this5 = this;
|
|
10971
11522
|
var loggerSource = "getCurrenciesListForPublicSwap";
|
|
10972
11523
|
return Promise.resolve(_catch(function () {
|
|
10973
|
-
|
|
11524
|
+
var provider = fixed ? _this5._fixedSwapProvider : _this5._swapProvider;
|
|
11525
|
+
return Promise.resolve(withdraw ? provider.getWithdrawalCurrencies() : provider.getDepositCurrencies()).then(function (result) {
|
|
10974
11526
|
var _result$coins2;
|
|
10975
11527
|
if (result.reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
10976
11528
|
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
@@ -10995,6 +11547,9 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10995
11547
|
/**
|
|
10996
11548
|
* Retrieves initial data for swapping two coins.
|
|
10997
11549
|
*
|
|
11550
|
+
* Always FLOATING rate, FIXED is not supported - if you want to change it the default rate - all
|
|
11551
|
+
* the swaps code logic should be verified to align with this change.
|
|
11552
|
+
*
|
|
10998
11553
|
* @param fromCoin {Coin}
|
|
10999
11554
|
* @param toCoin {Coin}
|
|
11000
11555
|
* @return {Promise<{
|
|
@@ -11047,6 +11602,8 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11047
11602
|
* @param fromAmountCoins {string}
|
|
11048
11603
|
* @param [fixed=false] {boolean|null} null means fixed or float doesn't matter
|
|
11049
11604
|
* @param [withoutFiat=false] {boolean} pass true if you don't need the fiat equivalent - this will diminish requests count
|
|
11605
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount.
|
|
11606
|
+
* False means the amount is the sending amount.
|
|
11050
11607
|
* @return {Promise<{
|
|
11051
11608
|
* result: false,
|
|
11052
11609
|
* reason: string,
|
|
@@ -11061,21 +11618,24 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11061
11618
|
* }>}
|
|
11062
11619
|
*/
|
|
11063
11620
|
;
|
|
11064
|
-
_proto.getPublicSwapDetails = function getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins, fixed, withoutFiat) {
|
|
11621
|
+
_proto.getPublicSwapDetails = function getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins, fixed, withoutFiat, amountIsToReceive) {
|
|
11065
11622
|
if (fixed === void 0) {
|
|
11066
11623
|
fixed = false;
|
|
11067
11624
|
}
|
|
11068
11625
|
if (withoutFiat === void 0) {
|
|
11069
11626
|
withoutFiat = false;
|
|
11070
11627
|
}
|
|
11628
|
+
if (amountIsToReceive === void 0) {
|
|
11629
|
+
amountIsToReceive = false;
|
|
11630
|
+
}
|
|
11071
11631
|
try {
|
|
11072
11632
|
var _this7 = this;
|
|
11073
11633
|
var loggerSource = "getPublicSwapDetails";
|
|
11074
11634
|
return Promise.resolve(_catch(function () {
|
|
11075
|
-
function _temp2(
|
|
11076
|
-
var
|
|
11077
|
-
var coinUsdtRate = withoutFiat ?
|
|
11078
|
-
return Promise.resolve(_this7._swapProvider.getSwapInfo(fromCoin, toCoin, fromAmountCoins, fixed, coinUsdtRate)).then(function (details) {
|
|
11635
|
+
function _temp2(_getCoinToUSDTRate) {
|
|
11636
|
+
var _getCoinToUSDTRate$ra;
|
|
11637
|
+
var coinUsdtRate = withoutFiat ? _getCoinToUSDTRate : (_getCoinToUSDTRate$ra = _getCoinToUSDTRate == null ? void 0 : _getCoinToUSDTRate.rate) != null ? _getCoinToUSDTRate$ra : null;
|
|
11638
|
+
return Promise.resolve((fixed ? _this7._fixedSwapProvider : _this7._swapProvider).getSwapInfo(fromCoin, toCoin, fromAmountCoins, fixed, coinUsdtRate, amountIsToReceive)).then(function (details) {
|
|
11079
11639
|
var _result$swapCreationI, _result$swapCreationI2;
|
|
11080
11640
|
// eslint-disable-next-line no-console
|
|
11081
11641
|
console.log("getSwapInfo result: ", details);
|
|
@@ -11136,7 +11696,10 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11136
11696
|
return result;
|
|
11137
11697
|
});
|
|
11138
11698
|
}
|
|
11139
|
-
|
|
11699
|
+
if (amountIsToReceive && !fixed) {
|
|
11700
|
+
throw new Error("Estimating allowed only for fixed rate.");
|
|
11701
|
+
}
|
|
11702
|
+
return withoutFiat ? _temp2(null) : Promise.resolve((fixed ? _this7._fixedSwapProvider : _this7._swapProvider).getCoinToUSDTRate(fromCoin)).then(_temp2);
|
|
11140
11703
|
}, function (e) {
|
|
11141
11704
|
improveAndRethrow(e, loggerSource);
|
|
11142
11705
|
}));
|
|
@@ -11149,13 +11712,15 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11149
11712
|
*
|
|
11150
11713
|
* @param fromCoin {Coin}
|
|
11151
11714
|
* @param toCoin {Coin}
|
|
11152
|
-
* @param
|
|
11715
|
+
* @param amount {string}
|
|
11153
11716
|
* @param swapCreationInfo {BaseSwapCreationInfo}
|
|
11154
11717
|
* @param toAddress {string}
|
|
11155
11718
|
* @param refundAddress {string}
|
|
11156
11719
|
* @param clientIp {string}
|
|
11157
11720
|
* @param [toCurrencyExtraId] {string}
|
|
11158
11721
|
* @param [refundExtraId] {string}
|
|
11722
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount.
|
|
11723
|
+
* False means the amount is the sending amount.
|
|
11159
11724
|
* @return {Promise<{
|
|
11160
11725
|
* result: true,
|
|
11161
11726
|
* fiatCurrencyCode: string,
|
|
@@ -11178,20 +11743,23 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11178
11743
|
* }>}
|
|
11179
11744
|
*/
|
|
11180
11745
|
;
|
|
11181
|
-
_proto.createPublicSwap = function createPublicSwap(fromCoin, toCoin,
|
|
11746
|
+
_proto.createPublicSwap = function createPublicSwap(fromCoin, toCoin, amount, swapCreationInfo, toAddress, refundAddress, clientIp, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
11747
|
+
if (amountIsToReceive === void 0) {
|
|
11748
|
+
amountIsToReceive = false;
|
|
11749
|
+
}
|
|
11182
11750
|
try {
|
|
11183
11751
|
var _this8 = this;
|
|
11184
11752
|
var loggerSource = "createPublicSwap";
|
|
11185
11753
|
return Promise.resolve(_catch(function () {
|
|
11186
11754
|
var _swapCreationInfo$fro, _swapCreationInfo$toC;
|
|
11187
|
-
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof
|
|
11188
|
-
throw new Error("Wrong input: " + fromCoin.ticker + " " + toCoin.ticker + " " +
|
|
11755
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || swapCreationInfo.isRefundAddressRequired && (typeof refundAddress !== "string" || refundAddress.length === 0) || !(swapCreationInfo instanceof BaseSwapCreationInfo)) {
|
|
11756
|
+
throw new Error("Wrong input: " + fromCoin.ticker + " " + toCoin.ticker + " " + amount + " " + swapCreationInfo);
|
|
11189
11757
|
}
|
|
11190
|
-
Logger.log("Start: " +
|
|
11758
|
+
Logger.log("Start: " + amount + " " + fromCoin.ticker + " -> " + toCoin.ticker + ". Details: " + safeStringify(_extends({}, swapCreationInfo, {
|
|
11191
11759
|
fromCoin: swapCreationInfo == null || (_swapCreationInfo$fro = swapCreationInfo.fromCoin) == null ? void 0 : _swapCreationInfo$fro.ticker,
|
|
11192
11760
|
toCoin: swapCreationInfo == null || (_swapCreationInfo$toC = swapCreationInfo.toCoin) == null ? void 0 : _swapCreationInfo$toC.ticker
|
|
11193
11761
|
})), loggerSource);
|
|
11194
|
-
return Promise.resolve(_this8._swapProvider.createSwap(fromCoin, toCoin,
|
|
11762
|
+
return Promise.resolve((swapCreationInfo.fixed ? _this8._fixedSwapProvider : _this8._swapProvider).createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, swapCreationInfo.rawSwapData, clientIp, swapCreationInfo.fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive)).then(function (result) {
|
|
11195
11763
|
var _exit;
|
|
11196
11764
|
function _temp6(_result8) {
|
|
11197
11765
|
if (_exit) return _result8;
|
|
@@ -11221,7 +11789,7 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11221
11789
|
if (result.result && result != null && result.swapId) {
|
|
11222
11790
|
var _temp4 = function _temp4() {
|
|
11223
11791
|
var _result$fromCurrencyE;
|
|
11224
|
-
// TODO: feature, cirtical] add GA event. task_id=
|
|
11792
|
+
// TODO: feature, cirtical] add GA event. task_id=091004f1b6b748b29ddece6a130df904
|
|
11225
11793
|
EventBusInstance.dispatch(PublicSwapService.PUBLIC_SWAP_CREATED_EVENT, null, fromCoin.ticker, toCoin.ticker, _fromAmountFiat);
|
|
11226
11794
|
var toReturn = {
|
|
11227
11795
|
result: true,
|
|
@@ -11301,7 +11869,7 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11301
11869
|
var _this9 = this;
|
|
11302
11870
|
var loggerSource = "getPublicExistingSwapDetailsAndStatus";
|
|
11303
11871
|
return Promise.resolve(_catch(function () {
|
|
11304
|
-
return Promise.resolve(SwapUtils.getExistingSwapsDetailsWithFiatAmounts(_this9._swapProvider, swapIds)).then(function (result) {
|
|
11872
|
+
return Promise.resolve(SwapUtils.getExistingSwapsDetailsWithFiatAmounts([_this9._swapProvider, _this9._fixedSwapProvider], swapIds)).then(function (result) {
|
|
11305
11873
|
if (!(result != null && result.result)) {
|
|
11306
11874
|
if (result.reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
11307
11875
|
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
@@ -11396,18 +11964,24 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11396
11964
|
|
|
11397
11965
|
/**
|
|
11398
11966
|
* @param coinOrTicker {Coin|string}
|
|
11967
|
+
* @param [isFixed=true] {boolean} rate type
|
|
11399
11968
|
* @return {string} icon URL (ready to use)
|
|
11400
11969
|
*/;
|
|
11401
|
-
_proto.getAssetIconUrl = function getAssetIconUrl(coinOrTicker) {
|
|
11402
|
-
|
|
11970
|
+
_proto.getAssetIconUrl = function getAssetIconUrl(coinOrTicker, isFixed) {
|
|
11971
|
+
// TODO: [feature, high] improve this logic - currently hacked to show better icons from fixed provider. task_id=3b6b8c2a9df04a86aaff2e070424b64f
|
|
11972
|
+
return this._fixedSwapProvider.getIconUrl(coinOrTicker);
|
|
11403
11973
|
}
|
|
11404
11974
|
|
|
11405
11975
|
/**
|
|
11406
11976
|
* @param ticker {string}
|
|
11977
|
+
* @param [fixed=false] {boolean}
|
|
11407
11978
|
* @return {Coin|null}
|
|
11408
11979
|
*/;
|
|
11409
|
-
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker) {
|
|
11410
|
-
|
|
11980
|
+
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker, fixed) {
|
|
11981
|
+
if (fixed === void 0) {
|
|
11982
|
+
fixed = false;
|
|
11983
|
+
}
|
|
11984
|
+
return !fixed ? this._swapProvider.getCoinByTickerIfPresent(ticker) : this._fixedSwapProvider.getCoinByTickerIfPresent(ticker);
|
|
11411
11985
|
}
|
|
11412
11986
|
|
|
11413
11987
|
/**
|
|
@@ -11420,8 +11994,18 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11420
11994
|
var _this11 = this;
|
|
11421
11995
|
return Promise.resolve(_catch(function () {
|
|
11422
11996
|
return Promise.resolve(_this11._swapProvider.getCoinToUSDTRate(asset)).then(function (result) {
|
|
11423
|
-
|
|
11424
|
-
|
|
11997
|
+
function _temp10() {
|
|
11998
|
+
var _result$rate, _result13;
|
|
11999
|
+
return (_result$rate = (_result13 = result) == null ? void 0 : _result13.rate) != null ? _result$rate : null;
|
|
12000
|
+
}
|
|
12001
|
+
var _temp9 = function (_result14) {
|
|
12002
|
+
if (((_result14 = result) == null ? void 0 : _result14.rate) == null) {
|
|
12003
|
+
return Promise.resolve(_this11._fixedSwapProvider.getCoinToUSDTRate(asset)).then(function (_this11$_fixedSwapPro) {
|
|
12004
|
+
result = _this11$_fixedSwapPro;
|
|
12005
|
+
});
|
|
12006
|
+
}
|
|
12007
|
+
}();
|
|
12008
|
+
return _temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9);
|
|
11425
12009
|
});
|
|
11426
12010
|
}, function (e) {
|
|
11427
12011
|
improveAndRethrow(e, "getAssetToUsdtRate");
|
|
@@ -11433,12 +12017,16 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11433
12017
|
/**
|
|
11434
12018
|
* @param asset {Coin}
|
|
11435
12019
|
* @param address {string}
|
|
12020
|
+
* @param [fixed=false] {boolean}
|
|
11436
12021
|
* @return {boolean}
|
|
11437
12022
|
*/
|
|
11438
12023
|
;
|
|
11439
|
-
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
12024
|
+
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address, fixed) {
|
|
12025
|
+
if (fixed === void 0) {
|
|
12026
|
+
fixed = false;
|
|
12027
|
+
}
|
|
11440
12028
|
try {
|
|
11441
|
-
return this._swapProvider.isAddressValidForAsset(asset, address);
|
|
12029
|
+
return !fixed ? this._swapProvider.isAddressValidForAsset(asset, address) : this._fixedSwapProvider.isAddressValidForAsset(asset, address);
|
|
11442
12030
|
} catch (e) {
|
|
11443
12031
|
improveAndRethrow(e, "isAddressValidForAsset");
|
|
11444
12032
|
}
|
|
@@ -11448,20 +12036,24 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11448
12036
|
* Retrieves token by contract address.
|
|
11449
12037
|
*
|
|
11450
12038
|
* @param addressString {string}
|
|
12039
|
+
* @param [fixed=false] {boolean}
|
|
11451
12040
|
* @return {Promise<Coin|null>}
|
|
11452
12041
|
*/;
|
|
11453
|
-
_proto.getTokenByContractAddress = function getTokenByContractAddress(addressString) {
|
|
12042
|
+
_proto.getTokenByContractAddress = function getTokenByContractAddress(addressString, fixed) {
|
|
12043
|
+
if (fixed === void 0) {
|
|
12044
|
+
fixed = false;
|
|
12045
|
+
}
|
|
11454
12046
|
try {
|
|
11455
12047
|
var _exit3;
|
|
11456
12048
|
var _this12 = this;
|
|
11457
|
-
var
|
|
12049
|
+
var _temp12 = _catch(function () {
|
|
11458
12050
|
if (!addressString) {
|
|
11459
|
-
var
|
|
12051
|
+
var _temp11 = null;
|
|
11460
12052
|
_exit3 = 1;
|
|
11461
|
-
return
|
|
12053
|
+
return _temp11;
|
|
11462
12054
|
}
|
|
11463
12055
|
var addressLowerCase = addressString.toLowerCase();
|
|
11464
|
-
return Promise.resolve(_this12._swapProvider.getAllSupportedCurrencies()).then(function (allCoins) {
|
|
12056
|
+
return Promise.resolve((fixed ? _this12._fixedSwapProvider : _this12._swapProvider).getAllSupportedCurrencies()).then(function (allCoins) {
|
|
11465
12057
|
if (allCoins.result) {
|
|
11466
12058
|
var _allCoins$coins$find = allCoins.coins.find(function (coin) {
|
|
11467
12059
|
return coin.tokenAddress && coin.tokenAddress.toLowerCase() === addressLowerCase;
|
|
@@ -11473,21 +12065,25 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11473
12065
|
}, function (e) {
|
|
11474
12066
|
Logger.logError(e, "getTokenByContractAddress");
|
|
11475
12067
|
});
|
|
11476
|
-
return Promise.resolve(
|
|
11477
|
-
return _exit3 ?
|
|
11478
|
-
}) : _exit3 ?
|
|
12068
|
+
return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(function (_result15) {
|
|
12069
|
+
return _exit3 ? _result15 : null;
|
|
12070
|
+
}) : _exit3 ? _temp12 : null);
|
|
11479
12071
|
} catch (e) {
|
|
11480
12072
|
return Promise.reject(e);
|
|
11481
12073
|
}
|
|
11482
12074
|
}
|
|
11483
12075
|
/**
|
|
11484
12076
|
* @param asset {Coin}
|
|
12077
|
+
* @param [fixed=false] {boolean}
|
|
11485
12078
|
* @return {string|null}
|
|
11486
12079
|
*/
|
|
11487
12080
|
;
|
|
11488
|
-
_proto.getExtraIdNameIfPresentForAsset = function getExtraIdNameIfPresentForAsset(asset) {
|
|
12081
|
+
_proto.getExtraIdNameIfPresentForAsset = function getExtraIdNameIfPresentForAsset(asset, fixed) {
|
|
12082
|
+
if (fixed === void 0) {
|
|
12083
|
+
fixed = false;
|
|
12084
|
+
}
|
|
11489
12085
|
try {
|
|
11490
|
-
return this._swapProvider.getExtraIdNameIfPresent(asset);
|
|
12086
|
+
return (fixed ? this._fixedSwapProvider : this._swapProvider).getExtraIdNameIfPresent(asset);
|
|
11491
12087
|
} catch (e) {
|
|
11492
12088
|
improveAndRethrow(e, "getExtraIdNameIfPresentForAsset");
|
|
11493
12089
|
}
|