@rabbitio/ui-kit 1.0.0-beta.72 → 1.0.0-beta.73
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 +6428 -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 +129 -36
- 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 +1156 -571
- 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 +775 -328
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +1156 -571
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1156 -571
- 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 +61 -30
- 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.cjs
CHANGED
|
@@ -1655,7 +1655,7 @@ var Logger = /*#__PURE__*/function () {
|
|
|
1655
1655
|
return Logger;
|
|
1656
1656
|
}();
|
|
1657
1657
|
|
|
1658
|
-
function _catch$
|
|
1658
|
+
function _catch$f(body, recover) {
|
|
1659
1659
|
try {
|
|
1660
1660
|
var result = body();
|
|
1661
1661
|
} catch (e) {
|
|
@@ -1671,7 +1671,7 @@ function useCallHandlingErrors() {
|
|
|
1671
1671
|
setState = _useState[1];
|
|
1672
1672
|
return React.useCallback(function (functionToBeCalled, event) {
|
|
1673
1673
|
try {
|
|
1674
|
-
var _temp = _catch$
|
|
1674
|
+
var _temp = _catch$f(function () {
|
|
1675
1675
|
return Promise.resolve(functionToBeCalled(event)).then(function () {});
|
|
1676
1676
|
}, function (error) {
|
|
1677
1677
|
Logger.logError(error, (functionToBeCalled == null ? void 0 : functionToBeCalled.name) || "errorBoundaryTrigger", "Caught by ErrorBoundary");
|
|
@@ -4609,6 +4609,15 @@ function useIsHydrated() {
|
|
|
4609
4609
|
* @return {string|null}
|
|
4610
4610
|
*/
|
|
4611
4611
|
|
|
4612
|
+
/**
|
|
4613
|
+
* Callback to handle isFixed flag change.
|
|
4614
|
+
*
|
|
4615
|
+
* @function
|
|
4616
|
+
* @name onIsFixedChange
|
|
4617
|
+
* @param {boolean} isFixedNewValue - new value
|
|
4618
|
+
* @return {void}
|
|
4619
|
+
*/
|
|
4620
|
+
|
|
4612
4621
|
/**
|
|
4613
4622
|
* Function validating addresses.
|
|
4614
4623
|
* By default, will treat any addresses as valid.
|
|
@@ -4618,6 +4627,7 @@ function useIsHydrated() {
|
|
|
4618
4627
|
* @name validateAddressByTicker
|
|
4619
4628
|
* @param {string} ticker - Ticker symbol of the asset.
|
|
4620
4629
|
* @param {string} address - Address to be validated
|
|
4630
|
+
* @param {boolean} isFixed - Is swap rate mode = fixed
|
|
4621
4631
|
* @return {Promise<boolean>}
|
|
4622
4632
|
*/
|
|
4623
4633
|
|
|
@@ -4665,16 +4675,18 @@ function useIsHydrated() {
|
|
|
4665
4675
|
* @param {boolean} [props.formHasFiat] - Indicates if the form supports fiat currency.
|
|
4666
4676
|
* @param {string|null} [props.termsOfUseUrl] - Terms of use URL, shown only if both terms & privacy policy passed.
|
|
4667
4677
|
* @param {string|null} [props.privacyPolicyUrl] - Privacy policy of use URL, shown only if both terms & privacy policy passed.
|
|
4678
|
+
* @param {string} props.recipientAddressExtraIdName - Extra ID name for the recipient address.
|
|
4679
|
+
* @param {string} props.refundAddressExtraIdName - Extra ID name for the refund address.
|
|
4668
4680
|
* @param {object} [props.translations] - Object containing translations, default English texts will be used if omitted.
|
|
4669
4681
|
* @param {string} props.swapSeparatorIconSrc - Source URL for the swap separator icon.
|
|
4670
4682
|
* @param {boolean} props.swapButtonAlwaysActive - Setting that allows the form state to proceed to the next step regardless of validity.
|
|
4671
|
-
* @param {getExtraIdNameByTicker} props.getExtraIdNameByTicker - Function returning extraId name for asset
|
|
4672
4683
|
* @param {validateAddressByTicker} [props.validateAddressByTicker] - Function validating address
|
|
4684
|
+
* @param {onIsFixedChange} [props.onIsFixedChange] - callback for changed isFixed
|
|
4673
4685
|
* @return {JSX.Element} Rendered SwapForm component.
|
|
4674
4686
|
* @constructor
|
|
4675
4687
|
*/
|
|
4676
4688
|
|
|
4677
|
-
function _catch$
|
|
4689
|
+
function _catch$e(body, recover) {
|
|
4678
4690
|
try {
|
|
4679
4691
|
var result = body();
|
|
4680
4692
|
} catch (e) {
|
|
@@ -4686,7 +4698,7 @@ function _catch$c(body, recover) {
|
|
|
4686
4698
|
return result;
|
|
4687
4699
|
}
|
|
4688
4700
|
var SwapForm = function SwapForm(_ref) {
|
|
4689
|
-
var _isFixedRate$current2, _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5
|
|
4701
|
+
var _isFixedRate$current2, _isFixedRate$current3, _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5;
|
|
4690
4702
|
var sendingAssetTicker = _ref.sendingAssetTicker,
|
|
4691
4703
|
receivingAssetTicker = _ref.receivingAssetTicker,
|
|
4692
4704
|
_ref$sendingAssetDeci = _ref.sendingAssetDecimalCount,
|
|
@@ -4729,7 +4741,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4729
4741
|
_ref$formHasBalance = _ref.formHasBalance,
|
|
4730
4742
|
formHasBalance = _ref$formHasBalance === void 0 ? false : _ref$formHasBalance,
|
|
4731
4743
|
_ref$retrieveSwapDeta = _ref.retrieveSwapDetails,
|
|
4732
|
-
retrieveSwapDetails = _ref$retrieveSwapDeta === void 0 ? function (sendingAssetTicker, receivingAssetTicker, amount, isSwapAll) {
|
|
4744
|
+
retrieveSwapDetails = _ref$retrieveSwapDeta === void 0 ? function (sendingAssetTicker, receivingAssetTicker, amount, isSwapAll, editedLastInput) {
|
|
4733
4745
|
return Promise.resolve();
|
|
4734
4746
|
} : _ref$retrieveSwapDeta,
|
|
4735
4747
|
_ref$retrieveInitialS = _ref.retrieveInitialSwapData,
|
|
@@ -4756,17 +4768,17 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4756
4768
|
termsOfUseUrl = _ref$termsOfUseUrl === void 0 ? null : _ref$termsOfUseUrl,
|
|
4757
4769
|
_ref$privacyPolicyUrl = _ref.privacyPolicyUrl,
|
|
4758
4770
|
privacyPolicyUrl = _ref$privacyPolicyUrl === void 0 ? null : _ref$privacyPolicyUrl,
|
|
4759
|
-
_ref$getExtraIdNameBy = _ref.getExtraIdNameByTicker,
|
|
4760
|
-
getExtraIdNameByTicker = _ref$getExtraIdNameBy === void 0 ? function (ticker) {
|
|
4761
|
-
return null;
|
|
4762
|
-
} : _ref$getExtraIdNameBy,
|
|
4763
4771
|
_ref$validateAddressB = _ref.validateAddressByTicker,
|
|
4764
|
-
validateAddressByTicker = _ref$validateAddressB === void 0 ? function (
|
|
4772
|
+
validateAddressByTicker = _ref$validateAddressB === void 0 ? function () {
|
|
4765
4773
|
return false;
|
|
4766
4774
|
} : _ref$validateAddressB,
|
|
4767
4775
|
swapSeparatorIconSrc = _ref.swapSeparatorIconSrc,
|
|
4768
4776
|
_ref$swapButtonAlways = _ref.swapButtonAlwaysActive,
|
|
4769
4777
|
swapButtonAlwaysActive = _ref$swapButtonAlways === void 0 ? false : _ref$swapButtonAlways,
|
|
4778
|
+
_ref$onIsFixedChange = _ref.onIsFixedChange,
|
|
4779
|
+
onIsFixedChange = _ref$onIsFixedChange === void 0 ? function () {} : _ref$onIsFixedChange,
|
|
4780
|
+
recipientAddressExtraIdName = _ref.recipientAddressExtraIdName,
|
|
4781
|
+
refundAddressExtraIdName = _ref.refundAddressExtraIdName,
|
|
4770
4782
|
_ref$translations = _ref.translations,
|
|
4771
4783
|
translations = _ref$translations === void 0 ? {
|
|
4772
4784
|
swapAllButtonTitles: {
|
|
@@ -4797,7 +4809,9 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4797
4809
|
addressTitle: "Recepient address",
|
|
4798
4810
|
refundAddressTitle: "Refund address",
|
|
4799
4811
|
extraIdPlaceholder: "(optional)",
|
|
4812
|
+
refundAddressExtraIdTitle: "Refund extra ID (MEMO):",
|
|
4800
4813
|
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.",
|
|
4814
|
+
receivingAddressExtraIdTitle: "Destination extra ID (MEMO):",
|
|
4801
4815
|
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."
|
|
4802
4816
|
},
|
|
4803
4817
|
rateSelector: {
|
|
@@ -4808,8 +4822,6 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4808
4822
|
} : _ref$translations;
|
|
4809
4823
|
var DETAIL_REFRESH_INTERVAL_MS = 1.5 * 60000;
|
|
4810
4824
|
var IS_FIXED_BY_DEFAULT = false;
|
|
4811
|
-
|
|
4812
|
-
// Updating the states below will insert the new value into the send or receive input field
|
|
4813
4825
|
var _useState = React.useState(preservedAmount != null ? preservedAmount : null),
|
|
4814
4826
|
updateSendInputTo = _useState[0],
|
|
4815
4827
|
setUpdateSendInputTo = _useState[1];
|
|
@@ -4849,8 +4861,6 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4849
4861
|
var _useState10 = React.useState(false),
|
|
4850
4862
|
readyToSwap = _useState10[0],
|
|
4851
4863
|
setReadyToSwap = _useState10[1]; // Basically a param that enables/disables the "Next" button
|
|
4852
|
-
// TODO: [refactoring, moderate] instead of handling preservedAmount at a lot of cases below, just
|
|
4853
|
-
// write single useEffect setting sendAssetAmount to the=is passed value and simplify the logic below. task_id=6453251e49b04c5e88a3cc771479ffb5
|
|
4854
4864
|
var _useState11 = React.useState(preservedAmount == null || String(preservedAmount) === "0"),
|
|
4855
4865
|
isAmountZero = _useState11[0],
|
|
4856
4866
|
setIsAmountZero = _useState11[1];
|
|
@@ -4860,21 +4870,24 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4860
4870
|
var _useReferredState5 = useReferredState(null),
|
|
4861
4871
|
isFixedRate = _useReferredState5[0],
|
|
4862
4872
|
setIsFixedRate = _useReferredState5[1];
|
|
4863
|
-
var _useState12 = React.useState(
|
|
4864
|
-
|
|
4865
|
-
|
|
4866
|
-
var _useState13 = React.useState(),
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
var _useState14 = React.useState(
|
|
4870
|
-
|
|
4871
|
-
|
|
4873
|
+
var _useState12 = React.useState(false),
|
|
4874
|
+
isLastEditedReceiving = _useState12[0],
|
|
4875
|
+
setIsLastEditedReceiving = _useState12[1];
|
|
4876
|
+
var _useState13 = React.useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
|
|
4877
|
+
confirmButtonTo = _useState13[0],
|
|
4878
|
+
setConfirmButtonTo = _useState13[1];
|
|
4879
|
+
var _useState14 = React.useState(),
|
|
4880
|
+
transactionFee = _useState14[0],
|
|
4881
|
+
setTransactionFee = _useState14[1];
|
|
4882
|
+
var _useState15 = React.useState(true),
|
|
4883
|
+
balanceValid = _useState15[0],
|
|
4884
|
+
setBalanceValid = _useState15[1]; // Whether the amount is less than total balance
|
|
4872
4885
|
var _useReferredState6 = useReferredState(null),
|
|
4873
4886
|
isSwapAll = _useReferredState6[0],
|
|
4874
4887
|
setIsSwapAll = _useReferredState6[1];
|
|
4875
|
-
var
|
|
4876
|
-
swapAllButtonLoaderReSetter =
|
|
4877
|
-
setSwapAllButtonLoaderReSetter =
|
|
4888
|
+
var _useState16 = React.useState([]),
|
|
4889
|
+
swapAllButtonLoaderReSetter = _useState16[0],
|
|
4890
|
+
setSwapAllButtonLoaderReSetter = _useState16[1];
|
|
4878
4891
|
var _useReferredState7 = useReferredState(null),
|
|
4879
4892
|
dataUpdateTimeoutId = _useReferredState7[0],
|
|
4880
4893
|
setDataUpdateTimeoutId = _useReferredState7[1];
|
|
@@ -4890,9 +4903,9 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4890
4903
|
var _useReferredState11 = useReferredState(false),
|
|
4891
4904
|
isRecipientAddressValid = _useReferredState11[0],
|
|
4892
4905
|
setIsRecipientAddressValid = _useReferredState11[1];
|
|
4893
|
-
var
|
|
4894
|
-
isRefundAddressRequired =
|
|
4895
|
-
setIsRefundAddressRequired =
|
|
4906
|
+
var _useState17 = React.useState(false),
|
|
4907
|
+
isRefundAddressRequired = _useState17[0],
|
|
4908
|
+
setIsRefundAddressRequired = _useState17[1];
|
|
4896
4909
|
var _useReferredState12 = useReferredState(""),
|
|
4897
4910
|
refundAddress = _useReferredState12[0],
|
|
4898
4911
|
setRefundAddress = _useReferredState12[1];
|
|
@@ -4907,9 +4920,8 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4907
4920
|
var recalculationDelayOnTyping = 1000;
|
|
4908
4921
|
var isAddressFieldEnabled = !formHasBalance;
|
|
4909
4922
|
var displayRateSelector = !formHasBalance;
|
|
4910
|
-
var recipientAddressExtraIdName = getExtraIdNameByTicker(receivingAssetTicker);
|
|
4911
|
-
var refundAddressExtraIdName = getExtraIdNameByTicker(sendingAssetTicker);
|
|
4912
4923
|
var handleSendAssetAmountChange = function handleSendAssetAmountChange(amount) {
|
|
4924
|
+
setIsLastEditedReceiving(false);
|
|
4913
4925
|
if (amount != null && amount !== "") {
|
|
4914
4926
|
setUpdateReceiveInputTo(AmountUtils.trim(bignumber_js.BigNumber(amount).times(swapRate), receivingAssetDecimalCount));
|
|
4915
4927
|
} else {
|
|
@@ -4918,6 +4930,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
4918
4930
|
setSendAssetAmount(amount);
|
|
4919
4931
|
};
|
|
4920
4932
|
var handleReceiveAssetAmountChange = function handleReceiveAssetAmountChange(amount) {
|
|
4933
|
+
setIsLastEditedReceiving(true);
|
|
4921
4934
|
var sendAssetAmount = "";
|
|
4922
4935
|
if (amount != null && amount !== "") {
|
|
4923
4936
|
sendAssetAmount = AmountUtils.trim(bignumber_js.BigNumber(amount).div(swapRate), sendingAssetDecimalCount);
|
|
@@ -5018,7 +5031,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5018
5031
|
}
|
|
5019
5032
|
(function () {
|
|
5020
5033
|
try {
|
|
5021
|
-
return _catch$
|
|
5034
|
+
return _catch$e(function () {
|
|
5022
5035
|
var _minimalAmount$curren4, _maximumAmount$curren3, _isFixedRate$current;
|
|
5023
5036
|
var dataMemento = {
|
|
5024
5037
|
rate: swapRate,
|
|
@@ -5036,7 +5049,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5036
5049
|
setIsSameCoins(false);
|
|
5037
5050
|
setIsPairSupported(true);
|
|
5038
5051
|
setIsSwapCalculated(false);
|
|
5039
|
-
return Promise.resolve(retrieveSwapDetails(sendingAssetTicker, receivingAssetTicker, amount, isSwapAll.current, (_isFixedRate$current = isFixedRate.current) != null ? _isFixedRate$current : IS_FIXED_BY_DEFAULT)).then(function (response) {
|
|
5052
|
+
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) {
|
|
5040
5053
|
if (!isSwapAll.current && String(amount) !== String(isForPreserved && sendAssetAmount.current == null ? preservedAmount : sendAssetAmount.current)) {
|
|
5041
5054
|
// Means amount changed and we no more need to do this exact calculation
|
|
5042
5055
|
return;
|
|
@@ -5084,7 +5097,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5084
5097
|
}
|
|
5085
5098
|
(function () {
|
|
5086
5099
|
try {
|
|
5087
|
-
return _catch$
|
|
5100
|
+
return _catch$e(function () {
|
|
5088
5101
|
setIsLoading(true);
|
|
5089
5102
|
setMinimalAmount(null);
|
|
5090
5103
|
setMaximumAmount(null);
|
|
@@ -5134,6 +5147,10 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5134
5147
|
}
|
|
5135
5148
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5136
5149
|
}, [isSwapAll.current]);
|
|
5150
|
+
React.useEffect(function () {
|
|
5151
|
+
onIsFixedChange(isFixedRate.current);
|
|
5152
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5153
|
+
}, [isFixedRate.current]);
|
|
5137
5154
|
React.useEffect(function () {
|
|
5138
5155
|
setConfirmButtonTo(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, sendAssetAmount.current || preservedAmount || null));
|
|
5139
5156
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -5182,7 +5199,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5182
5199
|
};
|
|
5183
5200
|
if (!receivingAssetTicker) return;
|
|
5184
5201
|
var _temp = recipientAddress.current === "";
|
|
5185
|
-
return _temp ? _temp2(false) : Promise.resolve(validateAddressByTicker(receivingAssetTicker, recipientAddress.current)).then(_temp2);
|
|
5202
|
+
return _temp ? _temp2(false) : Promise.resolve(validateAddressByTicker(receivingAssetTicker, recipientAddress.current, isFixedRate.current)).then(_temp2);
|
|
5186
5203
|
} catch (e) {
|
|
5187
5204
|
Promise.reject(e);
|
|
5188
5205
|
}
|
|
@@ -5197,7 +5214,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5197
5214
|
};
|
|
5198
5215
|
if (!sendingAssetTicker || !isRefundAddressRequired) return;
|
|
5199
5216
|
var _temp3 = refundAddress.current === "";
|
|
5200
|
-
return _temp3 ? _temp4(false) : Promise.resolve(validateAddressByTicker(sendingAssetTicker, refundAddress.current)).then(_temp4);
|
|
5217
|
+
return _temp3 ? _temp4(false) : Promise.resolve(validateAddressByTicker(sendingAssetTicker, refundAddress.current, isFixedRate.current)).then(_temp4);
|
|
5201
5218
|
} catch (e) {
|
|
5202
5219
|
Promise.reject(e);
|
|
5203
5220
|
}
|
|
@@ -5222,8 +5239,6 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5222
5239
|
};
|
|
5223
5240
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5224
5241
|
}, [readyToSwap]);
|
|
5225
|
-
|
|
5226
|
-
// TODO: [refactoring, critical] this code looks like a hack related to task_id=6e328d39063142b7b9fa01d497e616da
|
|
5227
5242
|
React.useEffect(function () {
|
|
5228
5243
|
if (triggerDataUpdateResetting) {
|
|
5229
5244
|
clearTimeout(dataUpdateTimeoutId.current);
|
|
@@ -5233,8 +5248,6 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5233
5248
|
}
|
|
5234
5249
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5235
5250
|
}, [triggerDataUpdateResetting]);
|
|
5236
|
-
|
|
5237
|
-
// Resets the passed "set value to" param to null, so it can be used multiple times with any value
|
|
5238
5251
|
React.useEffect(function () {
|
|
5239
5252
|
if (!!updateSendInputTo) setUpdateSendInputTo(null);
|
|
5240
5253
|
if (!!updateReceiveInputTo) setUpdateReceiveInputTo(null);
|
|
@@ -5253,8 +5266,6 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5253
5266
|
}
|
|
5254
5267
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5255
5268
|
}, [isLoading.current, swapAllButtonLoaderReSetter]);
|
|
5256
|
-
|
|
5257
|
-
// Handlers upon changing the asset amount
|
|
5258
5269
|
React.useEffect(function () {
|
|
5259
5270
|
setConfirmButtonTo(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, sendAssetAmount.current));
|
|
5260
5271
|
if (sendAssetAmount.current == null) return;
|
|
@@ -5274,7 +5285,13 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5274
5285
|
linkText: !formHasBalance ? "" : isSwapAll.current ? translations.swapAllButtonTitles.cancel : translations.swapAllButtonTitles.enable,
|
|
5275
5286
|
linkButtonLoader: true,
|
|
5276
5287
|
isLinkButtonDisabled: isLoading.current || sendingAssetTicker === receivingAssetTicker || bignumber_js.BigNumber(sendingAssetBalance == null ? void 0 : sendingAssetBalance.assetAmount).eq(0)
|
|
5277
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5288
|
+
}, displayRateSelector ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5289
|
+
className: s$9["swap-form-rate-selector"]
|
|
5290
|
+
}, /*#__PURE__*/React__default["default"].createElement(RateSelector, {
|
|
5291
|
+
isFixed: (_isFixedRate$current2 = isFixedRate.current) != null ? _isFixedRate$current2 : IS_FIXED_BY_DEFAULT,
|
|
5292
|
+
setIsFixed: handleRateModeChanged,
|
|
5293
|
+
translations: translations.rateSelector
|
|
5294
|
+
})) : "", /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5278
5295
|
className: s$9["swap-form-inputs"]
|
|
5279
5296
|
}, /*#__PURE__*/React__default["default"].createElement(AmountInput, {
|
|
5280
5297
|
ticker: sendingAssetTicker,
|
|
@@ -5322,7 +5339,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5322
5339
|
assetIconProtocolSrc: receivingAssetProtocolIconSrc,
|
|
5323
5340
|
fallbackAssetIconSrc: fallBackAssetIconSrc,
|
|
5324
5341
|
disabled: isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null,
|
|
5325
|
-
locked: !formHasBalance,
|
|
5342
|
+
locked: !formHasBalance && !isFixedRate.current,
|
|
5326
5343
|
handleCoinAmountChange: handleReceiveAssetAmountChange,
|
|
5327
5344
|
handleChangeAssetClick: handleChangeReceivingAssetClick,
|
|
5328
5345
|
updateAssetInputTo: updateReceiveInputTo,
|
|
@@ -5342,7 +5359,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5342
5359
|
className: s$9["swap-form-information-field"]
|
|
5343
5360
|
}, /*#__PURE__*/React__default["default"].createElement("p", null, !isPairSupported ? translations.informationBlock.pairNotAvailable : transactionFee && minimalAmountValid ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.transactionFee, /*#__PURE__*/React__default["default"].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__default["default"].createElement("span", {
|
|
5344
5361
|
className: s$9["semi-transparent"]
|
|
5345
|
-
}, " ~ " + AmountUtils.fiat(transactionFee == null ? void 0 : transactionFee.fiat, fiatCurrencyCode)) : "") : !isLoading.current && (isSwapCalculated || !minimalAmount.current && swapRate) ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.swapRate, /*#__PURE__*/React__default["default"].createElement("span", null, AmountUtils.composeRateText(sendingAssetTickerPrintable, receivingAssetTickerPrintable, swapRate, receivingAssetDecimalCount, (_isFixedRate$
|
|
5362
|
+
}, " ~ " + AmountUtils.fiat(transactionFee == null ? void 0 : transactionFee.fiat, fiatCurrencyCode)) : "") : !isLoading.current && (isSwapCalculated || !minimalAmount.current && swapRate) ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.swapRate, /*#__PURE__*/React__default["default"].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__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.maximumAmount, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
5346
5363
|
className: s$9["interactable"] + " " + s$9["red"],
|
|
5347
5364
|
onClick: isLoading.current ? function () {} : function (e) {
|
|
5348
5365
|
return callHandlingErrors(handleMaximumAmountClick, e);
|
|
@@ -5369,7 +5386,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5369
5386
|
adaptiveHeight: true,
|
|
5370
5387
|
errorEncountered: recipientAddress.current !== "" && !isRecipientAddressValid.current
|
|
5371
5388
|
})), isHydrated && recipientAddressExtraIdName ? /*#__PURE__*/React__default["default"].createElement(TitleBox, {
|
|
5372
|
-
title:
|
|
5389
|
+
title: translations.addressFields.receivingAddressExtraIdTitle,
|
|
5373
5390
|
titleNoticeText: translations.addressFields.receivingAddressExtraIdNotice,
|
|
5374
5391
|
titleNoticePosition: TOOLTIP_POSITIONS.TOP_LEFT
|
|
5375
5392
|
}, /*#__PURE__*/React__default["default"].createElement(Textarea, {
|
|
@@ -5391,7 +5408,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5391
5408
|
adaptiveHeight: true,
|
|
5392
5409
|
errorEncountered: refundAddress.current !== "" && !isRefundAddressValid.current
|
|
5393
5410
|
})), refundAddressExtraIdName ? /*#__PURE__*/React__default["default"].createElement(TitleBox, {
|
|
5394
|
-
title:
|
|
5411
|
+
title: translations.addressFields.refundAddressExtraIdTitle,
|
|
5395
5412
|
titleNoticeText: translations.addressFields.refundAddressExtraIdNotice,
|
|
5396
5413
|
titleNoticePosition: TOOLTIP_POSITIONS.TOP_LEFT
|
|
5397
5414
|
}, /*#__PURE__*/React__default["default"].createElement(Textarea, {
|
|
@@ -5402,13 +5419,7 @@ var SwapForm = function SwapForm(_ref) {
|
|
|
5402
5419
|
value: refundAddressExtraId.current,
|
|
5403
5420
|
adaptiveHeight: true,
|
|
5404
5421
|
placeholder: translations.addressFields.extraIdPlaceholder
|
|
5405
|
-
})) : null) : null) : null,
|
|
5406
|
-
className: s$9["swap-form-rate-selector"]
|
|
5407
|
-
}, /*#__PURE__*/React__default["default"].createElement(RateSelector, {
|
|
5408
|
-
isFixed: (_isFixedRate$current3 = isFixedRate.current) != null ? _isFixedRate$current3 : IS_FIXED_BY_DEFAULT,
|
|
5409
|
-
setIsFixed: !isLoading.current ? handleRateModeChanged : function () {},
|
|
5410
|
-
translations: translations.rateSelector
|
|
5411
|
-
})) : "", validationContent ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5422
|
+
})) : null) : null) : null, validationContent ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5412
5423
|
className: s$9["swap-form-validation-text"]
|
|
5413
5424
|
}, /*#__PURE__*/React__default["default"].createElement(Validation, {
|
|
5414
5425
|
text: validationContent
|
|
@@ -5475,7 +5486,12 @@ SwapForm.propTypes = {
|
|
|
5475
5486
|
fiatCurrencyCode: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5476
5487
|
fiatCurrencyDecimals: PropTypes.oneOfType([PropTypes.number, null]),
|
|
5477
5488
|
formHasFiat: PropTypes.bool,
|
|
5489
|
+
termsOfUseUrl: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5490
|
+
privacyPolicyUrl: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5491
|
+
recipientAddressExtraIdName: PropTypes.string,
|
|
5492
|
+
refundAddressExtraIdName: PropTypes.string,
|
|
5478
5493
|
translations: PropTypes.object,
|
|
5494
|
+
validateAddressByTicker: PropTypes.func,
|
|
5479
5495
|
swapSeparatorIconSrc: PropTypes.string.isRequired,
|
|
5480
5496
|
swapButtonAlwaysActive: PropTypes.bool
|
|
5481
5497
|
};
|
|
@@ -5508,6 +5524,11 @@ SwapForm.defaultProps = {
|
|
|
5508
5524
|
fiatCurrencyCode: null,
|
|
5509
5525
|
fiatCurrencyDecimals: null,
|
|
5510
5526
|
formHasFiat: true,
|
|
5527
|
+
termsOfUseUrl: null,
|
|
5528
|
+
privacyPolicyUrl: null,
|
|
5529
|
+
validateAddressByTicker: function validateAddressByTicker(ticker) {
|
|
5530
|
+
return false;
|
|
5531
|
+
},
|
|
5511
5532
|
swapButtonAlwaysActive: false
|
|
5512
5533
|
};
|
|
5513
5534
|
|
|
@@ -5519,7 +5540,7 @@ SwapForm.defaultProps = {
|
|
|
5519
5540
|
* @return {Promise<string>} xml string of generated svg image
|
|
5520
5541
|
*/
|
|
5521
5542
|
|
|
5522
|
-
function _catch$
|
|
5543
|
+
function _catch$d(body, recover) {
|
|
5523
5544
|
try {
|
|
5524
5545
|
var result = body();
|
|
5525
5546
|
} catch (e) {
|
|
@@ -5532,7 +5553,7 @@ function _catch$b(body, recover) {
|
|
|
5532
5553
|
}
|
|
5533
5554
|
var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingString) {
|
|
5534
5555
|
try {
|
|
5535
|
-
return Promise.resolve(_catch$
|
|
5556
|
+
return Promise.resolve(_catch$d(function () {
|
|
5536
5557
|
return Promise.resolve(QRCode__default["default"].toString(encodingString, {
|
|
5537
5558
|
type: "svg"
|
|
5538
5559
|
}));
|
|
@@ -5546,9 +5567,23 @@ var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingStrin
|
|
|
5546
5567
|
|
|
5547
5568
|
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"};
|
|
5548
5569
|
|
|
5549
|
-
|
|
5570
|
+
/**
|
|
5571
|
+
* QrCode component renders a QR code for a provided crypto address.
|
|
5572
|
+
*
|
|
5573
|
+
* @component
|
|
5574
|
+
* @example
|
|
5575
|
+
* const address = "0x123456789abcdef";
|
|
5576
|
+
* const fill = true;
|
|
5577
|
+
* return <QrCode address={address} fill={fill} />;
|
|
5578
|
+
*
|
|
5579
|
+
* @param {Object} props - The props for the component.
|
|
5580
|
+
* @param {string} props.address - The crypto address to generate the QR code for.
|
|
5581
|
+
* @param {boolean} [props.fill=false] - If true, applies additional CSS class to fill the container.
|
|
5582
|
+
*
|
|
5583
|
+
* @returns {JSX.Element} A div containing the generated QR code.
|
|
5584
|
+
*/
|
|
5550
5585
|
|
|
5551
|
-
function _catch$
|
|
5586
|
+
function _catch$c(body, recover) {
|
|
5552
5587
|
try {
|
|
5553
5588
|
var result = body();
|
|
5554
5589
|
} catch (e) {
|
|
@@ -5567,7 +5602,7 @@ var QrCode = function QrCode(_ref) {
|
|
|
5567
5602
|
React.useEffect(function () {
|
|
5568
5603
|
(function () {
|
|
5569
5604
|
try {
|
|
5570
|
-
return _catch$
|
|
5605
|
+
return _catch$c(function () {
|
|
5571
5606
|
var _temp = function () {
|
|
5572
5607
|
if (address) {
|
|
5573
5608
|
return Promise.resolve(generateQrAndShowInCanvas(address)).then(function (_generateQrAndShowInC) {
|
|
@@ -5594,7 +5629,8 @@ QrCode.propTypes = {
|
|
|
5594
5629
|
fill: PropTypes.bool
|
|
5595
5630
|
};
|
|
5596
5631
|
QrCode.defaultProps = {
|
|
5597
|
-
address: ""
|
|
5632
|
+
address: "",
|
|
5633
|
+
fill: false
|
|
5598
5634
|
};
|
|
5599
5635
|
|
|
5600
5636
|
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"};
|
|
@@ -6279,7 +6315,7 @@ var s = {"container":"_4QDrB","coin-picker":"_mvuzQ","loading":"_18kIX","item":"
|
|
|
6279
6315
|
var FALLBACK_ASSET_ICON_URL = "https://rabbit.io/asset-icons/fallback.svg";
|
|
6280
6316
|
var DEFAULT_CRYPTO_DECIMAL_COUNT = 8;
|
|
6281
6317
|
|
|
6282
|
-
function _catch$
|
|
6318
|
+
function _catch$b(body, recover) {
|
|
6283
6319
|
try {
|
|
6284
6320
|
var result = body();
|
|
6285
6321
|
} catch (e) {
|
|
@@ -6503,7 +6539,7 @@ var CoinPicker = function CoinPicker(_ref) {
|
|
|
6503
6539
|
var loadCoinsAndSaveToState = function loadCoinsAndSaveToState() {
|
|
6504
6540
|
(function () {
|
|
6505
6541
|
try {
|
|
6506
|
-
var _temp = _catch$
|
|
6542
|
+
var _temp = _catch$b(function () {
|
|
6507
6543
|
return Promise.resolve(loadCoinsAndContent ? loadCoinsAndContent() : defaultLoadCoinsAndContent()).then(function (data) {
|
|
6508
6544
|
setCoins(data.coins);
|
|
6509
6545
|
setFilteredCoins(data.coins);
|
|
@@ -7312,7 +7348,7 @@ var Cache = /*#__PURE__*/function () {
|
|
|
7312
7348
|
return Cache;
|
|
7313
7349
|
}();
|
|
7314
7350
|
|
|
7315
|
-
function _catch$
|
|
7351
|
+
function _catch$a(body, recover) {
|
|
7316
7352
|
try {
|
|
7317
7353
|
var result = body();
|
|
7318
7354
|
} catch (e) {
|
|
@@ -7330,7 +7366,7 @@ function postponeExecution(execution, timeoutMS) {
|
|
|
7330
7366
|
return new Promise(function (resolve, reject) {
|
|
7331
7367
|
setTimeout(function () {
|
|
7332
7368
|
try {
|
|
7333
|
-
var _temp = _catch$
|
|
7369
|
+
var _temp = _catch$a(function () {
|
|
7334
7370
|
return Promise.resolve(execution()).then(function (_execution) {
|
|
7335
7371
|
resolve(_execution);
|
|
7336
7372
|
});
|
|
@@ -7414,7 +7450,7 @@ var AxiosAdapter = /*#__PURE__*/function () {
|
|
|
7414
7450
|
return AxiosAdapter;
|
|
7415
7451
|
}();
|
|
7416
7452
|
|
|
7417
|
-
function _catch$
|
|
7453
|
+
function _catch$9(body, recover) {
|
|
7418
7454
|
try {
|
|
7419
7455
|
var result = body();
|
|
7420
7456
|
} catch (e) {
|
|
@@ -7430,7 +7466,7 @@ var EmailsApi = /*#__PURE__*/function () {
|
|
|
7430
7466
|
EmailsApi.sendEmail = function sendEmail(subject, body) {
|
|
7431
7467
|
try {
|
|
7432
7468
|
var _this = this;
|
|
7433
|
-
var _temp = _catch$
|
|
7469
|
+
var _temp = _catch$9(function () {
|
|
7434
7470
|
var url = window.location.protocol + "//" + window.location.host + "/api/v1/" + _this.serverEndpointEntity;
|
|
7435
7471
|
return Promise.resolve(axios__default["default"].post(url, {
|
|
7436
7472
|
subject: subject,
|
|
@@ -7848,7 +7884,7 @@ var ExternalServicesStatsCollector = /*#__PURE__*/function () {
|
|
|
7848
7884
|
* improve the reliability of a data retrieval.
|
|
7849
7885
|
*/
|
|
7850
7886
|
|
|
7851
|
-
function _catch$
|
|
7887
|
+
function _catch$8(body, recover) {
|
|
7852
7888
|
try {
|
|
7853
7889
|
var result = body();
|
|
7854
7890
|
} catch (e) {
|
|
@@ -8187,7 +8223,7 @@ var RobustExternalAPICallerService = /*#__PURE__*/function () {
|
|
|
8187
8223
|
var result;
|
|
8188
8224
|
var calculationUuid = concurrentCalculationsMetadataHolder.startCalculation(_this.bio);
|
|
8189
8225
|
return Promise.resolve(_finallyRethrows$1(function () {
|
|
8190
|
-
return _catch$
|
|
8226
|
+
return _catch$8(function () {
|
|
8191
8227
|
function _temp5() {
|
|
8192
8228
|
var _result2, _result3;
|
|
8193
8229
|
if (((_result2 = result) == null ? void 0 : _result2.data) == null) {
|
|
@@ -8215,7 +8251,7 @@ var RobustExternalAPICallerService = /*#__PURE__*/function () {
|
|
|
8215
8251
|
*/
|
|
8216
8252
|
var rpsFactor = result ? result.rpsFactor : RobustExternalAPICallerService.defaultRPSFactor;
|
|
8217
8253
|
result = null;
|
|
8218
|
-
var _temp3 = _catch$
|
|
8254
|
+
var _temp3 = _catch$8(function () {
|
|
8219
8255
|
function _temp2() {
|
|
8220
8256
|
var _result$errors;
|
|
8221
8257
|
if ((_result$errors = result.errors) != null && _result$errors.length) {
|
|
@@ -8239,7 +8275,7 @@ var RobustExternalAPICallerService = /*#__PURE__*/function () {
|
|
|
8239
8275
|
return Promise.resolve(new Promise(function (resolve, reject) {
|
|
8240
8276
|
setTimeout(function () {
|
|
8241
8277
|
try {
|
|
8242
|
-
var _temp6 = _catch$
|
|
8278
|
+
var _temp6 = _catch$8(function () {
|
|
8243
8279
|
return Promise.resolve(_this._performCallAttempt(parametersValues, timeoutMS, cancelToken, rpsFactor, doNotFailForNowData)).then(function (_this$_performCallAtt2) {
|
|
8244
8280
|
resolve(_this$_performCallAtt2);
|
|
8245
8281
|
});
|
|
@@ -8309,7 +8345,7 @@ var RobustExternalAPICallerService = /*#__PURE__*/function () {
|
|
|
8309
8345
|
return;
|
|
8310
8346
|
}
|
|
8311
8347
|
var _temp13 = _finallyRethrows$1(function () {
|
|
8312
|
-
return _catch$
|
|
8348
|
+
return _catch$8(function () {
|
|
8313
8349
|
var _provider$specificHea;
|
|
8314
8350
|
function _temp12() {
|
|
8315
8351
|
if (iterationsData.length) {
|
|
@@ -8641,7 +8677,7 @@ function _for(test, update, body) {
|
|
|
8641
8677
|
}
|
|
8642
8678
|
}
|
|
8643
8679
|
}
|
|
8644
|
-
function _catch$
|
|
8680
|
+
function _catch$7(body, recover) {
|
|
8645
8681
|
try {
|
|
8646
8682
|
var result = body();
|
|
8647
8683
|
} catch (e) {
|
|
@@ -8720,7 +8756,7 @@ var CacheAndConcurrentRequestsResolver = /*#__PURE__*/function () {
|
|
|
8720
8756
|
_proto.getCachedOrWaitForCachedOrAcquireLock = function getCachedOrWaitForCachedOrAcquireLock(cacheId) {
|
|
8721
8757
|
try {
|
|
8722
8758
|
var _this = this;
|
|
8723
|
-
return Promise.resolve(_catch$
|
|
8759
|
+
return Promise.resolve(_catch$7(function () {
|
|
8724
8760
|
function _temp2() {
|
|
8725
8761
|
var _cached, _cached2;
|
|
8726
8762
|
return calculationId ? {
|
|
@@ -8799,7 +8835,7 @@ var CacheAndConcurrentRequestsResolver = /*#__PURE__*/function () {
|
|
|
8799
8835
|
_proto.acquireLock = function acquireLock(cacheId) {
|
|
8800
8836
|
try {
|
|
8801
8837
|
var _this2 = this;
|
|
8802
|
-
return Promise.resolve(_catch$
|
|
8838
|
+
return Promise.resolve(_catch$7(function () {
|
|
8803
8839
|
return Promise.resolve(_this2._requestsManager.acquireLock(cacheId));
|
|
8804
8840
|
}, function (e) {
|
|
8805
8841
|
improveAndRethrow(e, "acquireLock");
|
|
@@ -8969,7 +9005,7 @@ var ManagerOfRequestsToTheSameResource = /*#__PURE__*/function () {
|
|
|
8969
9005
|
try {
|
|
8970
9006
|
var _exit;
|
|
8971
9007
|
var _this3 = this;
|
|
8972
|
-
var _temp3 = _catch$
|
|
9008
|
+
var _temp3 = _catch$7(function () {
|
|
8973
9009
|
var activeCalculationIdForHash = _this3._activeCalculationsIds.get(requestHash);
|
|
8974
9010
|
if (activeCalculationIdForHash == null) {
|
|
8975
9011
|
var id = uuid.v4();
|
|
@@ -9003,7 +9039,7 @@ var ManagerOfRequestsToTheSameResource = /*#__PURE__*/function () {
|
|
|
9003
9039
|
_proto2.acquireLock = function acquireLock(requestHash) {
|
|
9004
9040
|
try {
|
|
9005
9041
|
var _this4 = this;
|
|
9006
|
-
return Promise.resolve(_catch$
|
|
9042
|
+
return Promise.resolve(_catch$7(function () {
|
|
9007
9043
|
var _this4$_nextCalculati;
|
|
9008
9044
|
var activeId = _this4._activeCalculationsIds.get(requestHash);
|
|
9009
9045
|
var nextId = uuid.v4();
|
|
@@ -9154,7 +9190,7 @@ var ManagerOfRequestsToTheSameResource = /*#__PURE__*/function () {
|
|
|
9154
9190
|
* TODO: [tests, critical] Massively used logic
|
|
9155
9191
|
*/
|
|
9156
9192
|
|
|
9157
|
-
function _catch$
|
|
9193
|
+
function _catch$6(body, recover) {
|
|
9158
9194
|
try {
|
|
9159
9195
|
var result = body();
|
|
9160
9196
|
} catch (e) {
|
|
@@ -9251,7 +9287,7 @@ var CachedRobustExternalApiCallerService = /*#__PURE__*/function () {
|
|
|
9251
9287
|
var cacheId;
|
|
9252
9288
|
var result;
|
|
9253
9289
|
return Promise.resolve(_finallyRethrows(function () {
|
|
9254
|
-
return _catch$
|
|
9290
|
+
return _catch$6(function () {
|
|
9255
9291
|
cacheId = _this._calculateCacheId(parametersValues, customHashFunctionForParams);
|
|
9256
9292
|
return Promise.resolve(_this._cahceAndRequestsResolver.getCachedOrWaitForCachedOrAcquireLock(cacheId)).then(function (_this$_cahceAndReques) {
|
|
9257
9293
|
var _result2, _result4;
|
|
@@ -9320,7 +9356,7 @@ var CachedRobustExternalApiCallerService = /*#__PURE__*/function () {
|
|
|
9320
9356
|
return CachedRobustExternalApiCallerService;
|
|
9321
9357
|
}();
|
|
9322
9358
|
|
|
9323
|
-
function _catch$
|
|
9359
|
+
function _catch$5(body, recover) {
|
|
9324
9360
|
try {
|
|
9325
9361
|
var result = body();
|
|
9326
9362
|
} catch (e) {
|
|
@@ -9404,7 +9440,7 @@ var IpAddressProvider = /*#__PURE__*/function () {
|
|
|
9404
9440
|
IpAddressProvider.getClientIpAddress = function getClientIpAddress() {
|
|
9405
9441
|
try {
|
|
9406
9442
|
var _this = this;
|
|
9407
|
-
return Promise.resolve(_catch$
|
|
9443
|
+
return Promise.resolve(_catch$5(function () {
|
|
9408
9444
|
return Promise.resolve(_this.externalIPAddressAPICaller.callExternalAPICached([], 7000));
|
|
9409
9445
|
}, function (e) {
|
|
9410
9446
|
improveAndRethrow(e, "getClientIpAddress");
|
|
@@ -9584,15 +9620,44 @@ function BaseSwapCreationInfo(fromCoin, toCoin, fromAmountCoins, toAmountCoins,
|
|
|
9584
9620
|
this.isRefundAddressRequired = isRefundAddressRequired;
|
|
9585
9621
|
};
|
|
9586
9622
|
|
|
9623
|
+
// TODO: [refactoring, moderate] extract structure of _supportedCoins into model class
|
|
9624
|
+
|
|
9625
|
+
function _catch$4(body, recover) {
|
|
9626
|
+
try {
|
|
9627
|
+
var result = body();
|
|
9628
|
+
} catch (e) {
|
|
9629
|
+
return recover(e);
|
|
9630
|
+
}
|
|
9631
|
+
if (result && result.then) {
|
|
9632
|
+
return result.then(void 0, recover);
|
|
9633
|
+
}
|
|
9634
|
+
return result;
|
|
9635
|
+
}
|
|
9587
9636
|
var SwapProvider = /*#__PURE__*/function () {
|
|
9588
|
-
function SwapProvider() {
|
|
9637
|
+
function SwapProvider(cache, customCoinBuilder, useRestrictedCoinsSet) {
|
|
9638
|
+
if (customCoinBuilder === void 0) {
|
|
9639
|
+
customCoinBuilder = function customCoinBuilder(coin, network) {
|
|
9640
|
+
return null;
|
|
9641
|
+
};
|
|
9642
|
+
}
|
|
9643
|
+
if (useRestrictedCoinsSet === void 0) {
|
|
9644
|
+
useRestrictedCoinsSet = true;
|
|
9645
|
+
}
|
|
9646
|
+
this._supportedCoins = [];
|
|
9647
|
+
this._maxRateDigits = 20;
|
|
9648
|
+
this.useRestrictedCoinsSet = useRestrictedCoinsSet;
|
|
9649
|
+
this._customCoinBuilder = customCoinBuilder;
|
|
9650
|
+
this._cache = cache;
|
|
9651
|
+
this.isAggregator = false;
|
|
9652
|
+
}
|
|
9589
9653
|
var _proto = SwapProvider.prototype;
|
|
9590
9654
|
/**
|
|
9591
9655
|
* @return {Promise<void>}
|
|
9592
9656
|
*/
|
|
9593
9657
|
_proto.initialize = function initialize() {
|
|
9594
9658
|
try {
|
|
9595
|
-
|
|
9659
|
+
var _this = this;
|
|
9660
|
+
return Promise.resolve(_this._fetchSupportedCurrenciesIfNeeded()).then(function () {});
|
|
9596
9661
|
} catch (e) {
|
|
9597
9662
|
return Promise.reject(e);
|
|
9598
9663
|
}
|
|
@@ -9605,15 +9670,68 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9605
9670
|
throw new Error("Not implemented in base");
|
|
9606
9671
|
}
|
|
9607
9672
|
|
|
9673
|
+
/**
|
|
9674
|
+
* This method sort internal list putting popular (as provider thinks) coins to the top.
|
|
9675
|
+
* 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.
|
|
9676
|
+
* @private
|
|
9677
|
+
*/;
|
|
9678
|
+
_proto._putPopularCoinsFirst = function _putPopularCoinsFirst() {
|
|
9679
|
+
this._supportedCoins.sort(function (i1, i2) {
|
|
9680
|
+
if (i1.isPopular !== i2.isPopular) return i2.isPopular - i1.isPopular;
|
|
9681
|
+
return i1.coin.ticker.localeCompare(i2.coin.ticker);
|
|
9682
|
+
});
|
|
9683
|
+
}
|
|
9684
|
+
|
|
9685
|
+
/**
|
|
9686
|
+
* Should fill _supportedCoins with array of coins.
|
|
9687
|
+
* Coin construction rules:
|
|
9688
|
+
* 1. ticker should be CODEPROTOCOL_CODE e.g. USDTERC20
|
|
9689
|
+
* 2. name should not contain (PROTOCOL_CODE) or just PROTOCOL_CODe
|
|
9690
|
+
* 3. protocol should be null for coins major for their blockchains like BTC, ETH
|
|
9691
|
+
* 4. isPopular should be a number
|
|
9692
|
+
*
|
|
9693
|
+
* @return {Promise<void>}
|
|
9694
|
+
* @private
|
|
9695
|
+
*/;
|
|
9696
|
+
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
9697
|
+
try {
|
|
9698
|
+
throw new Error("Not implemented in base - _fetchSupportedCurrenciesIfNeeded");
|
|
9699
|
+
} catch (e) {
|
|
9700
|
+
return Promise.reject(e);
|
|
9701
|
+
}
|
|
9702
|
+
}
|
|
9608
9703
|
/**
|
|
9609
9704
|
* Retrieves all currencies supported by this swap provider.
|
|
9610
9705
|
* Returns one of SwapProvider.COMMON_ERRORS in case of processable fail.
|
|
9611
9706
|
*
|
|
9612
9707
|
* @return {Promise<({ result: true, coins: Coin[] }|{ result: false, reason: string })>}
|
|
9613
|
-
|
|
9708
|
+
*/
|
|
9709
|
+
;
|
|
9614
9710
|
_proto.getAllSupportedCurrencies = function getAllSupportedCurrencies() {
|
|
9615
9711
|
try {
|
|
9616
|
-
|
|
9712
|
+
var _this2 = this;
|
|
9713
|
+
var loggerSource = "getAllSupportedCurrencies";
|
|
9714
|
+
return Promise.resolve(_catch$4(function () {
|
|
9715
|
+
return Promise.resolve(_this2._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9716
|
+
var _this2$_supportedCoin;
|
|
9717
|
+
Logger.log("We have " + ((_this2$_supportedCoin = _this2._supportedCoins) == null ? void 0 : _this2$_supportedCoin.length) + " supported coins returning", loggerSource);
|
|
9718
|
+
return {
|
|
9719
|
+
result: true,
|
|
9720
|
+
coins: _this2._supportedCoins.map(function (item) {
|
|
9721
|
+
return item.coin;
|
|
9722
|
+
})
|
|
9723
|
+
};
|
|
9724
|
+
});
|
|
9725
|
+
}, function (e) {
|
|
9726
|
+
var _e$response;
|
|
9727
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
9728
|
+
return {
|
|
9729
|
+
result: false,
|
|
9730
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9731
|
+
};
|
|
9732
|
+
}
|
|
9733
|
+
improveAndRethrow(e, loggerSource);
|
|
9734
|
+
}));
|
|
9617
9735
|
} catch (e) {
|
|
9618
9736
|
return Promise.reject(e);
|
|
9619
9737
|
}
|
|
@@ -9627,7 +9745,31 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9627
9745
|
;
|
|
9628
9746
|
_proto.getDepositCurrencies = function getDepositCurrencies() {
|
|
9629
9747
|
try {
|
|
9630
|
-
|
|
9748
|
+
var _this3 = this;
|
|
9749
|
+
var loggerSource = "getDepositCurrencies";
|
|
9750
|
+
return Promise.resolve(_catch$4(function () {
|
|
9751
|
+
return Promise.resolve(_this3._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9752
|
+
var _this3$_supportedCoin;
|
|
9753
|
+
Logger.log("We have " + ((_this3$_supportedCoin = _this3._supportedCoins) == null ? void 0 : _this3$_supportedCoin.length) + " supported coins, getting depositable", loggerSource);
|
|
9754
|
+
return {
|
|
9755
|
+
result: true,
|
|
9756
|
+
coins: _this3._supportedCoins.filter(function (item) {
|
|
9757
|
+
return item.deposit;
|
|
9758
|
+
}).map(function (item) {
|
|
9759
|
+
return item.coin;
|
|
9760
|
+
})
|
|
9761
|
+
};
|
|
9762
|
+
});
|
|
9763
|
+
}, function (e) {
|
|
9764
|
+
var _e$response2;
|
|
9765
|
+
if ((e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status) === 429) {
|
|
9766
|
+
return {
|
|
9767
|
+
result: false,
|
|
9768
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9769
|
+
};
|
|
9770
|
+
}
|
|
9771
|
+
improveAndRethrow(e, loggerSource);
|
|
9772
|
+
}));
|
|
9631
9773
|
} catch (e) {
|
|
9632
9774
|
return Promise.reject(e);
|
|
9633
9775
|
}
|
|
@@ -9641,8 +9783,36 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9641
9783
|
*/
|
|
9642
9784
|
;
|
|
9643
9785
|
_proto.getWithdrawalCurrencies = function getWithdrawalCurrencies(exceptCurrency) {
|
|
9786
|
+
if (exceptCurrency === void 0) {
|
|
9787
|
+
exceptCurrency = null;
|
|
9788
|
+
}
|
|
9644
9789
|
try {
|
|
9645
|
-
|
|
9790
|
+
var _this4 = this;
|
|
9791
|
+
var loggerSource = "getWithdrawalCurrencies";
|
|
9792
|
+
return Promise.resolve(_catch$4(function () {
|
|
9793
|
+
return Promise.resolve(_this4._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9794
|
+
var _this4$_supportedCoin;
|
|
9795
|
+
Logger.log("We have " + ((_this4$_supportedCoin = _this4._supportedCoins) == null ? void 0 : _this4$_supportedCoin.length) + " supported coins, getting withdrawable", loggerSource);
|
|
9796
|
+
return {
|
|
9797
|
+
result: true,
|
|
9798
|
+
coins: _this4._supportedCoins.filter(function (item) {
|
|
9799
|
+
var _item$coin, _exceptCurrency;
|
|
9800
|
+
return item.withdrawal && (!exceptCurrency || ((_item$coin = item.coin) == null ? void 0 : _item$coin.ticker) !== ((_exceptCurrency = exceptCurrency) == null ? void 0 : _exceptCurrency.ticker));
|
|
9801
|
+
}).map(function (item) {
|
|
9802
|
+
return item.coin;
|
|
9803
|
+
})
|
|
9804
|
+
};
|
|
9805
|
+
});
|
|
9806
|
+
}, function (e) {
|
|
9807
|
+
var _e$response3;
|
|
9808
|
+
if ((e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.status) === 429) {
|
|
9809
|
+
return {
|
|
9810
|
+
result: false,
|
|
9811
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9812
|
+
};
|
|
9813
|
+
}
|
|
9814
|
+
improveAndRethrow(e, loggerSource);
|
|
9815
|
+
}));
|
|
9646
9816
|
} catch (e) {
|
|
9647
9817
|
return Promise.reject(e);
|
|
9648
9818
|
}
|
|
@@ -9650,12 +9820,28 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9650
9820
|
/**
|
|
9651
9821
|
* Retrieves URL for coin icon or fallback if not found.
|
|
9652
9822
|
*
|
|
9653
|
-
* @param
|
|
9823
|
+
* @param coinOrTicker {Coin|string} coin or rabbit-format of coin ticker
|
|
9654
9824
|
* @return {string}
|
|
9655
9825
|
*/
|
|
9656
9826
|
;
|
|
9657
|
-
_proto.getIconUrl = function getIconUrl(
|
|
9658
|
-
|
|
9827
|
+
_proto.getIconUrl = function getIconUrl(coinOrTicker) {
|
|
9828
|
+
var loggerSource = "getIconUrl";
|
|
9829
|
+
try {
|
|
9830
|
+
var _this$_supportedCoins2, _this$_supportedCoins3;
|
|
9831
|
+
var coin = coinOrTicker;
|
|
9832
|
+
if (!(coinOrTicker instanceof Coin)) {
|
|
9833
|
+
var _this$_supportedCoins;
|
|
9834
|
+
coin = (_this$_supportedCoins = this._supportedCoins.find(function (i) {
|
|
9835
|
+
return i.coin.ticker === coinOrTicker;
|
|
9836
|
+
})) == null ? void 0 : _this$_supportedCoins.coin;
|
|
9837
|
+
}
|
|
9838
|
+
return (_this$_supportedCoins2 = (_this$_supportedCoins3 = this._supportedCoins.find(function (item) {
|
|
9839
|
+
var _item$coin2, _coin;
|
|
9840
|
+
return ((_item$coin2 = item.coin) == null ? void 0 : _item$coin2.ticker) === ((_coin = coin) == null ? void 0 : _coin.ticker);
|
|
9841
|
+
})) == null ? void 0 : _this$_supportedCoins3.iconURL) != null ? _this$_supportedCoins2 : FALLBACK_ASSET_ICON_URL;
|
|
9842
|
+
} catch (e) {
|
|
9843
|
+
improveAndRethrow(e, loggerSource);
|
|
9844
|
+
}
|
|
9659
9845
|
}
|
|
9660
9846
|
|
|
9661
9847
|
/**
|
|
@@ -9666,7 +9852,49 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9666
9852
|
*/;
|
|
9667
9853
|
_proto.getCoinToUSDTRate = function getCoinToUSDTRate(coin) {
|
|
9668
9854
|
try {
|
|
9669
|
-
|
|
9855
|
+
var _this5 = this;
|
|
9856
|
+
var loggerSource = "getCoinToUSDTRate";
|
|
9857
|
+
return Promise.resolve(_catch$4(function () {
|
|
9858
|
+
return coin ? Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9859
|
+
var _this5$_supportedCoin;
|
|
9860
|
+
// Using USDT TRC20 as usually fee in this network is smaller than ERC20 and this network is widely used for USDT
|
|
9861
|
+
var usdtTrc20 = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
|
|
9862
|
+
return i.coin.ticker === "USDTTRC20";
|
|
9863
|
+
})) == null ? void 0 : _this5$_supportedCoin.coin;
|
|
9864
|
+
if (!usdtTrc20) {
|
|
9865
|
+
return {
|
|
9866
|
+
result: false
|
|
9867
|
+
};
|
|
9868
|
+
}
|
|
9869
|
+
var cached = _this5._cache.get("swapspace_usdt_rate_" + coin.ticker);
|
|
9870
|
+
if (cached != null) {
|
|
9871
|
+
return {
|
|
9872
|
+
result: true,
|
|
9873
|
+
rate: cached
|
|
9874
|
+
};
|
|
9875
|
+
}
|
|
9876
|
+
Logger.log("Loading USDT->coin rate as not found in cache:", coin == null ? void 0 : coin.ticker);
|
|
9877
|
+
return Promise.resolve(_this5.getSwapInfo(usdtTrc20, coin, "5000", false)).then(function (result) {
|
|
9878
|
+
if (!result.result) {
|
|
9879
|
+
return {
|
|
9880
|
+
result: false
|
|
9881
|
+
};
|
|
9882
|
+
}
|
|
9883
|
+
|
|
9884
|
+
// This calculation is not precise as we cannot recognize the actual fee and network fee. Just approximate.
|
|
9885
|
+
var standardSwapspaceFeeMultiplier = 1.004; // fee is usually 0.4%
|
|
9886
|
+
var rate = bignumber_js.BigNumber(1).div(bignumber_js.BigNumber(result.rate).times(standardSwapspaceFeeMultiplier)).toString();
|
|
9887
|
+
_this5._cache.put("swap_usdt_rate_" + coin.ticker, rate, 15 * 60000 // 15 minutes
|
|
9888
|
+
);
|
|
9889
|
+
return {
|
|
9890
|
+
result: true,
|
|
9891
|
+
rate: rate
|
|
9892
|
+
};
|
|
9893
|
+
});
|
|
9894
|
+
}) : null;
|
|
9895
|
+
}, function (e) {
|
|
9896
|
+
improveAndRethrow(e, loggerSource);
|
|
9897
|
+
}));
|
|
9670
9898
|
} catch (e) {
|
|
9671
9899
|
return Promise.reject(e);
|
|
9672
9900
|
}
|
|
@@ -9683,6 +9911,7 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9683
9911
|
* @param [fixed=false] {boolean|null} null means fixed or float doesn't matter
|
|
9684
9912
|
* @param [fromCoinToUsdRate=null] pass if you want to increase the min amount returned
|
|
9685
9913
|
* by provider with some fixed "insurance" amount to cover min amount fluctuations.
|
|
9914
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount. False means the amount is the sending amount.
|
|
9686
9915
|
* @return {Promise<({
|
|
9687
9916
|
* result: false,
|
|
9688
9917
|
* reason: string,
|
|
@@ -9702,7 +9931,7 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9702
9931
|
* })>}
|
|
9703
9932
|
*/
|
|
9704
9933
|
;
|
|
9705
|
-
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate) {
|
|
9934
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
9706
9935
|
try {
|
|
9707
9936
|
throw new Error("Not implemented in base");
|
|
9708
9937
|
} catch (e) {
|
|
@@ -9722,6 +9951,7 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9722
9951
|
* @param fixed {boolean}
|
|
9723
9952
|
* @param [toCurrencyExtraId=""] {string} optional extra ID
|
|
9724
9953
|
* @param [refundExtraId=""] {string} optional extra ID for refund address
|
|
9954
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount. False means the amount is the sending amount.
|
|
9725
9955
|
* @return {Promise<({
|
|
9726
9956
|
* result: true,
|
|
9727
9957
|
* swapId: string,
|
|
@@ -9741,7 +9971,7 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9741
9971
|
* })>}
|
|
9742
9972
|
*/
|
|
9743
9973
|
;
|
|
9744
|
-
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId) {
|
|
9974
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
9745
9975
|
try {
|
|
9746
9976
|
throw new Error("Not implemented in base");
|
|
9747
9977
|
} catch (e) {
|
|
@@ -9769,7 +9999,15 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9769
9999
|
*/
|
|
9770
10000
|
;
|
|
9771
10001
|
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker) {
|
|
9772
|
-
|
|
10002
|
+
try {
|
|
10003
|
+
var _item$coin3;
|
|
10004
|
+
var item = this._supportedCoins.find(function (i) {
|
|
10005
|
+
return i.coin.ticker === ticker;
|
|
10006
|
+
});
|
|
10007
|
+
return (_item$coin3 = item == null ? void 0 : item.coin) != null ? _item$coin3 : null;
|
|
10008
|
+
} catch (e) {
|
|
10009
|
+
improveAndRethrow(e, "getCoinByTickerIfPresent");
|
|
10010
|
+
}
|
|
9773
10011
|
}
|
|
9774
10012
|
|
|
9775
10013
|
/**
|
|
@@ -9778,17 +10016,68 @@ var SwapProvider = /*#__PURE__*/function () {
|
|
|
9778
10016
|
* @return {boolean}
|
|
9779
10017
|
*/;
|
|
9780
10018
|
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
9781
|
-
|
|
9782
|
-
|
|
9783
|
-
|
|
9784
|
-
|
|
9785
|
-
|
|
9786
|
-
|
|
9787
|
-
|
|
9788
|
-
|
|
9789
|
-
|
|
9790
|
-
|
|
9791
|
-
|
|
10019
|
+
try {
|
|
10020
|
+
var assetData = this._supportedCoins.find(function (i) {
|
|
10021
|
+
var _i$coin;
|
|
10022
|
+
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10023
|
+
});
|
|
10024
|
+
if (assetData) {
|
|
10025
|
+
var corrected = assetData.validationRegexp.trim();
|
|
10026
|
+
corrected = corrected[0] === "/" ? corrected.slice(1) : corrected;
|
|
10027
|
+
corrected = corrected[corrected.length - 1] === "/" ? corrected.slice(0, corrected.length - 1) : corrected;
|
|
10028
|
+
return address.match(corrected) != null;
|
|
10029
|
+
}
|
|
10030
|
+
} catch (e) {
|
|
10031
|
+
Logger.logError(e, "isAddressValidForAsset");
|
|
10032
|
+
}
|
|
10033
|
+
return false;
|
|
10034
|
+
}
|
|
10035
|
+
|
|
10036
|
+
/**
|
|
10037
|
+
* @param asset {Coin}
|
|
10038
|
+
* @return {string|null}
|
|
10039
|
+
*/;
|
|
10040
|
+
_proto.getExtraIdNameIfPresent = function getExtraIdNameIfPresent(asset) {
|
|
10041
|
+
try {
|
|
10042
|
+
var assetData = this._supportedCoins.find(function (i) {
|
|
10043
|
+
var _i$coin2;
|
|
10044
|
+
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10045
|
+
});
|
|
10046
|
+
if (assetData != null && assetData.hasExtraId) {
|
|
10047
|
+
if ((assetData == null ? void 0 : assetData.extraIdName) == null || (assetData == null ? void 0 : assetData.extraIdName) === "") {
|
|
10048
|
+
// We return some default name if the extraIdName is empty
|
|
10049
|
+
return "ID";
|
|
10050
|
+
}
|
|
10051
|
+
return assetData == null ? void 0 : assetData.extraIdName;
|
|
10052
|
+
}
|
|
10053
|
+
return null;
|
|
10054
|
+
} catch (e) {
|
|
10055
|
+
improveAndRethrow(e, "getExtraIdNameIfPresent");
|
|
10056
|
+
}
|
|
10057
|
+
};
|
|
10058
|
+
_proto.removeProtocolNameFromCoinName = function removeProtocolNameFromCoinName(coinName, tickerPrintable, protocolName) {
|
|
10059
|
+
if (coinName) {
|
|
10060
|
+
var originalName = coinName;
|
|
10061
|
+
if (tickerPrintable) {
|
|
10062
|
+
coinName = coinName.replaceAll(new RegExp("\\(" + tickerPrintable + "\\)", "gi"), "");
|
|
10063
|
+
}
|
|
10064
|
+
if (protocolName) {
|
|
10065
|
+
coinName = coinName.replaceAll(new RegExp("\\(" + protocolName + "\\)", "gi"), "").replaceAll(new RegExp("(?<!on) " + protocolName + "$", "gi"), "").replaceAll(new RegExp("^" + protocolName + " ", "gi"), "").replaceAll(new RegExp("(?<!on) " + protocolName + " ", "gi"), " ");
|
|
10066
|
+
}
|
|
10067
|
+
coinName = coinName.replaceAll(/ +/g, " ").trim();
|
|
10068
|
+
var defaultNames = ["token", "network", "protocol", "coin", "mainnet", "chain", "project", "cash", "finance", "wrapped", "blockchain", "network"];
|
|
10069
|
+
var lowerCoinName = coinName.toLowerCase();
|
|
10070
|
+
var isBecameDefaultName = defaultNames.find(function (defName) {
|
|
10071
|
+
return lowerCoinName === defName || lowerCoinName === "the " + defName;
|
|
10072
|
+
});
|
|
10073
|
+
if (coinName === "" || isBecameDefaultName) {
|
|
10074
|
+
// Rolling back to original name if our processing leads in empty name or one of the default words
|
|
10075
|
+
coinName = originalName;
|
|
10076
|
+
}
|
|
10077
|
+
}
|
|
10078
|
+
return coinName;
|
|
10079
|
+
};
|
|
10080
|
+
return SwapProvider;
|
|
9792
10081
|
}();
|
|
9793
10082
|
SwapProvider.COMMON_ERRORS = {
|
|
9794
10083
|
REQUESTS_LIMIT_EXCEEDED: "requestsLimitExceeded"
|
|
@@ -9805,22 +10094,16 @@ SwapProvider.CREATION_FAIL_REASONS = {
|
|
|
9805
10094
|
};
|
|
9806
10095
|
SwapProvider.SWAP_STATUSES = {
|
|
9807
10096
|
WAITING_FOR_PAYMENT: "waiting_for_payment",
|
|
9808
|
-
// public +
|
|
9809
10097
|
CONFIRMING: "confirming",
|
|
9810
10098
|
PAYMENT_RECEIVED: "payment_received",
|
|
9811
|
-
// public +
|
|
9812
10099
|
EXCHANGING: "exchanging",
|
|
9813
|
-
// session full // public +
|
|
9814
10100
|
COMPLETED: "completed",
|
|
9815
|
-
// session full // public +
|
|
9816
10101
|
REFUNDED: "refunded",
|
|
9817
|
-
// session full // public +
|
|
9818
10102
|
EXPIRED: "expired",
|
|
9819
|
-
|
|
9820
|
-
FAILED: "failed" // public +
|
|
10103
|
+
FAILED: "failed"
|
|
9821
10104
|
};
|
|
9822
10105
|
|
|
9823
|
-
function _catch$
|
|
10106
|
+
function _catch$3(body, recover) {
|
|
9824
10107
|
try {
|
|
9825
10108
|
var result = body();
|
|
9826
10109
|
} catch (e) {
|
|
@@ -9844,14 +10127,10 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
9844
10127
|
if (useRestrictedCoinsSet === void 0) {
|
|
9845
10128
|
useRestrictedCoinsSet = true;
|
|
9846
10129
|
}
|
|
9847
|
-
_this = _SwapProvider.call(this) || this;
|
|
9848
|
-
_this._supportedCoins = [];
|
|
10130
|
+
_this = _SwapProvider.call(this, cache, customCoinBuilder, useRestrictedCoinsSet) || this;
|
|
9849
10131
|
_this._partners = [];
|
|
9850
|
-
_this._URL =
|
|
9851
|
-
_this.
|
|
9852
|
-
_this.useRestrictedCoinsSet = useRestrictedCoinsSet;
|
|
9853
|
-
_this._customCoinBuilder = customCoinBuilder;
|
|
9854
|
-
_this._cache = cache;
|
|
10132
|
+
_this._URL = apiKeysProxyUrl + "/swapspace";
|
|
10133
|
+
_this.isAggregator = true;
|
|
9855
10134
|
return _this;
|
|
9856
10135
|
}
|
|
9857
10136
|
var _proto = SwapspaceSwapProvider.prototype;
|
|
@@ -9860,144 +10139,21 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
9860
10139
|
* (and even a bit smaller value) for better consistency */
|
|
9861
10140
|
return 110000;
|
|
9862
10141
|
};
|
|
9863
|
-
_proto.getDepositCurrencies = function getDepositCurrencies() {
|
|
9864
|
-
try {
|
|
9865
|
-
var _this2 = this;
|
|
9866
|
-
var loggerSource = "getDepositCurrencies";
|
|
9867
|
-
return Promise.resolve(_catch$2(function () {
|
|
9868
|
-
return Promise.resolve(_this2._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9869
|
-
var _this2$_supportedCoin;
|
|
9870
|
-
Logger.log("We have " + ((_this2$_supportedCoin = _this2._supportedCoins) == null ? void 0 : _this2$_supportedCoin.length) + " supported coins, getting depositable", loggerSource);
|
|
9871
|
-
return {
|
|
9872
|
-
result: true,
|
|
9873
|
-
coins: _this2._supportedCoins.filter(function (item) {
|
|
9874
|
-
return item.deposit;
|
|
9875
|
-
}).map(function (item) {
|
|
9876
|
-
return item.coin;
|
|
9877
|
-
})
|
|
9878
|
-
};
|
|
9879
|
-
});
|
|
9880
|
-
}, function (e) {
|
|
9881
|
-
var _e$response;
|
|
9882
|
-
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
9883
|
-
return {
|
|
9884
|
-
result: false,
|
|
9885
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9886
|
-
};
|
|
9887
|
-
}
|
|
9888
|
-
improveAndRethrow(e, loggerSource);
|
|
9889
|
-
}));
|
|
9890
|
-
} catch (e) {
|
|
9891
|
-
return Promise.reject(e);
|
|
9892
|
-
}
|
|
9893
|
-
};
|
|
9894
|
-
_proto.getAllSupportedCurrencies = function getAllSupportedCurrencies() {
|
|
9895
|
-
try {
|
|
9896
|
-
var _this3 = this;
|
|
9897
|
-
var loggerSource = "getAllSupportedCurrencies";
|
|
9898
|
-
return Promise.resolve(_catch$2(function () {
|
|
9899
|
-
return Promise.resolve(_this3._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9900
|
-
var _this3$_supportedCoin;
|
|
9901
|
-
Logger.log("We have " + ((_this3$_supportedCoin = _this3._supportedCoins) == null ? void 0 : _this3$_supportedCoin.length) + " supported coins returning", loggerSource);
|
|
9902
|
-
return {
|
|
9903
|
-
result: true,
|
|
9904
|
-
coins: _this3._supportedCoins.map(function (item) {
|
|
9905
|
-
return item.coin;
|
|
9906
|
-
})
|
|
9907
|
-
};
|
|
9908
|
-
});
|
|
9909
|
-
}, function (e) {
|
|
9910
|
-
var _e$response2;
|
|
9911
|
-
if ((e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status) === 429) {
|
|
9912
|
-
return {
|
|
9913
|
-
result: false,
|
|
9914
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9915
|
-
};
|
|
9916
|
-
}
|
|
9917
|
-
improveAndRethrow(e, loggerSource);
|
|
9918
|
-
}));
|
|
9919
|
-
} catch (e) {
|
|
9920
|
-
return Promise.reject(e);
|
|
9921
|
-
}
|
|
9922
|
-
};
|
|
9923
|
-
_proto.getWithdrawalCurrencies = function getWithdrawalCurrencies(exceptCurrency) {
|
|
9924
|
-
if (exceptCurrency === void 0) {
|
|
9925
|
-
exceptCurrency = null;
|
|
9926
|
-
}
|
|
9927
|
-
try {
|
|
9928
|
-
var _this4 = this;
|
|
9929
|
-
var loggerSource = "getWithdrawalCurrencies";
|
|
9930
|
-
return Promise.resolve(_catch$2(function () {
|
|
9931
|
-
return Promise.resolve(_this4._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9932
|
-
var _this4$_supportedCoin;
|
|
9933
|
-
Logger.log("We have " + ((_this4$_supportedCoin = _this4._supportedCoins) == null ? void 0 : _this4$_supportedCoin.length) + " supported coins, getting withdrawable", loggerSource);
|
|
9934
|
-
return {
|
|
9935
|
-
result: true,
|
|
9936
|
-
coins: _this4._supportedCoins.filter(function (item) {
|
|
9937
|
-
var _item$coin, _exceptCurrency;
|
|
9938
|
-
return item.withdrawal && (!exceptCurrency || ((_item$coin = item.coin) == null ? void 0 : _item$coin.ticker) !== ((_exceptCurrency = exceptCurrency) == null ? void 0 : _exceptCurrency.ticker));
|
|
9939
|
-
}).map(function (item) {
|
|
9940
|
-
return item.coin;
|
|
9941
|
-
})
|
|
9942
|
-
};
|
|
9943
|
-
});
|
|
9944
|
-
}, function (e) {
|
|
9945
|
-
var _e$response3;
|
|
9946
|
-
if ((e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.status) === 429) {
|
|
9947
|
-
return {
|
|
9948
|
-
result: false,
|
|
9949
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9950
|
-
};
|
|
9951
|
-
}
|
|
9952
|
-
improveAndRethrow(e, loggerSource);
|
|
9953
|
-
}));
|
|
9954
|
-
} catch (e) {
|
|
9955
|
-
return Promise.reject(e);
|
|
9956
|
-
}
|
|
9957
|
-
};
|
|
9958
|
-
_proto.initialize = function initialize() {
|
|
9959
|
-
try {
|
|
9960
|
-
var _this5 = this;
|
|
9961
|
-
return Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {});
|
|
9962
|
-
} catch (e) {
|
|
9963
|
-
return Promise.reject(e);
|
|
9964
|
-
}
|
|
9965
|
-
};
|
|
9966
|
-
_proto.getIconUrl = function getIconUrl(coinOrTicker) {
|
|
9967
|
-
var loggerSource = "getIconUrl";
|
|
9968
|
-
try {
|
|
9969
|
-
var _this$_supportedCoins2, _this$_supportedCoins3;
|
|
9970
|
-
var coin = coinOrTicker;
|
|
9971
|
-
if (!(coinOrTicker instanceof Coin)) {
|
|
9972
|
-
var _this$_supportedCoins;
|
|
9973
|
-
coin = (_this$_supportedCoins = this._supportedCoins.find(function (i) {
|
|
9974
|
-
return i.coin.ticker === coinOrTicker;
|
|
9975
|
-
})) == null ? void 0 : _this$_supportedCoins.coin;
|
|
9976
|
-
}
|
|
9977
|
-
return (_this$_supportedCoins2 = (_this$_supportedCoins3 = this._supportedCoins.find(function (item) {
|
|
9978
|
-
var _item$coin2, _coin;
|
|
9979
|
-
return ((_item$coin2 = item.coin) == null ? void 0 : _item$coin2.ticker) === ((_coin = coin) == null ? void 0 : _coin.ticker);
|
|
9980
|
-
})) == null ? void 0 : _this$_supportedCoins3.iconURL) != null ? _this$_supportedCoins2 : FALLBACK_ASSET_ICON_URL;
|
|
9981
|
-
} catch (e) {
|
|
9982
|
-
improveAndRethrow(e, loggerSource);
|
|
9983
|
-
}
|
|
9984
|
-
};
|
|
9985
10142
|
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
9986
10143
|
try {
|
|
9987
|
-
var
|
|
10144
|
+
var _this2 = this;
|
|
9988
10145
|
var loggerSource = "_fetchSupportedCurrenciesIfNeeded";
|
|
9989
|
-
return Promise.resolve(_catch$
|
|
9990
|
-
var _temp = function (
|
|
9991
|
-
if (!((
|
|
9992
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10146
|
+
return Promise.resolve(_catch$3(function () {
|
|
10147
|
+
var _temp = function (_this2$_supportedCoin) {
|
|
10148
|
+
if (!((_this2$_supportedCoin = _this2._supportedCoins) != null && _this2$_supportedCoin.length)) {
|
|
10149
|
+
return Promise.resolve(axios__default["default"].get(_this2._URL + "/api/v2/currencies")).then(function (rawResponse) {
|
|
9993
10150
|
var _rawResponse$data, _rawResponse$data2;
|
|
9994
10151
|
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data = rawResponse.data) == null ? void 0 : _rawResponse$data.length), loggerSource);
|
|
9995
10152
|
var allowedCoins = (_rawResponse$data2 = rawResponse == null ? void 0 : rawResponse.data) != null ? _rawResponse$data2 : [];
|
|
9996
10153
|
Logger.log("Allowed cnt " + allowedCoins.length, loggerSource);
|
|
9997
|
-
|
|
9998
|
-
var coin =
|
|
9999
|
-
if (!coin && !
|
|
10000
|
-
var _item$name;
|
|
10154
|
+
_this2._supportedCoins = allowedCoins.map(function (item) {
|
|
10155
|
+
var coin = _this2._customCoinBuilder(item.code, item.network);
|
|
10156
|
+
if (!coin && !_this2.useRestrictedCoinsSet) {
|
|
10001
10157
|
/** Building coin object for coin that isn't supported OOB in Rabbit.
|
|
10002
10158
|
* We are doing this way to be able to use extended coins set for swaps.
|
|
10003
10159
|
* These temporary built coins are only for in-swap use, and we omit some usual
|
|
@@ -10011,11 +10167,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10011
10167
|
/** Removing ticker and protocol name from coin name as we usually use them explicitly
|
|
10012
10168
|
* from coin object rather than counting on having it in the coin name itself.
|
|
10013
10169
|
* This processing is needed due to poor quality of swapspace coins names. */
|
|
10014
|
-
var name = (
|
|
10015
|
-
if (name === "") {
|
|
10016
|
-
// Rolling back to original name if our processing leads in empty name
|
|
10017
|
-
name = item.name;
|
|
10018
|
-
}
|
|
10170
|
+
var name = _this2.removeProtocolNameFromCoinName(item.name, code, network);
|
|
10019
10171
|
var ticker = "" + code + (code === network ? "" : network);
|
|
10020
10172
|
var defaultDecimalPlacesForCoinNotSupportedOOB = 8;
|
|
10021
10173
|
var defaultMinConfirmationsForCoinNotSupportedOOB = 1;
|
|
@@ -10031,16 +10183,17 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10031
10183
|
network: item.network,
|
|
10032
10184
|
hasExtraId: item.hasExtraId,
|
|
10033
10185
|
extraIdName: item.extraIdName,
|
|
10034
|
-
isPopular:
|
|
10186
|
+
isPopular: item.popular ? 1 : 0,
|
|
10035
10187
|
iconURL: item.icon ? "https://storage.swapspace.co" + item.icon : FALLBACK_ASSET_ICON_URL,
|
|
10036
10188
|
deposit: (_item$deposit = item.deposit) != null ? _item$deposit : false,
|
|
10037
10189
|
withdrawal: (_item$withdrawal = item.withdrawal) != null ? _item$withdrawal : false,
|
|
10038
|
-
validationRegexp: (_item$validationRegex = item.validationRegexp) != null ? _item$validationRegex : null
|
|
10190
|
+
validationRegexp: (_item$validationRegex = item.validationRegexp) != null ? _item$validationRegex : null,
|
|
10191
|
+
isAvailable: true
|
|
10039
10192
|
};
|
|
10040
10193
|
}
|
|
10041
10194
|
return [];
|
|
10042
10195
|
}).flat();
|
|
10043
|
-
|
|
10196
|
+
_this2._putPopularCoinsFirst();
|
|
10044
10197
|
});
|
|
10045
10198
|
}
|
|
10046
10199
|
}();
|
|
@@ -10054,15 +10207,15 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10054
10207
|
};
|
|
10055
10208
|
_proto._fetchPartnersListIfNeeded = function _fetchPartnersListIfNeeded() {
|
|
10056
10209
|
try {
|
|
10057
|
-
var
|
|
10210
|
+
var _this3 = this;
|
|
10058
10211
|
var loggerSource = "_fetchPartnersListIfNeeded";
|
|
10059
|
-
return Promise.resolve(_catch$
|
|
10060
|
-
var _temp2 = function (
|
|
10061
|
-
if (((
|
|
10062
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10212
|
+
return Promise.resolve(_catch$3(function () {
|
|
10213
|
+
var _temp2 = function (_this3$_partners) {
|
|
10214
|
+
if (((_this3$_partners = _this3._partners) == null ? void 0 : _this3$_partners.length) === 0) {
|
|
10215
|
+
return Promise.resolve(axios__default["default"].get(_this3._URL + "/api/v2/partners")).then(function (rawResponse) {
|
|
10063
10216
|
var _rawResponse$data3;
|
|
10064
10217
|
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data3 = rawResponse.data) == null ? void 0 : _rawResponse$data3.length) + " partners", loggerSource);
|
|
10065
|
-
|
|
10218
|
+
_this3._partners = Array.isArray(rawResponse == null ? void 0 : rawResponse.data) ? rawResponse == null ? void 0 : rawResponse.data : [];
|
|
10066
10219
|
});
|
|
10067
10220
|
}
|
|
10068
10221
|
}();
|
|
@@ -10073,99 +10226,30 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10073
10226
|
} catch (e) {
|
|
10074
10227
|
return Promise.reject(e);
|
|
10075
10228
|
}
|
|
10076
|
-
}
|
|
10077
|
-
/**
|
|
10078
|
-
* This method sort internal list putting popular (as swapspace thinks) coins to the top.
|
|
10079
|
-
* 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.
|
|
10080
|
-
* @private
|
|
10081
|
-
*/
|
|
10082
|
-
;
|
|
10083
|
-
_proto._putPopularCoinsFirst = function _putPopularCoinsFirst() {
|
|
10084
|
-
this._supportedCoins.sort(function (i1, i2) {
|
|
10085
|
-
if (i1.isPopular && !i2.isPopular) return -1;
|
|
10086
|
-
if (i2.isPopular && !i1.isPopular) return 1;
|
|
10087
|
-
return i1.coin.ticker > i2.coin.ticker ? 1 : i1.coin.ticker < i2.coin.ticker ? -1 : 0;
|
|
10088
|
-
});
|
|
10089
|
-
};
|
|
10090
|
-
_proto.getCoinToUSDTRate = function getCoinToUSDTRate(coin) {
|
|
10091
|
-
try {
|
|
10092
|
-
var _this8 = this;
|
|
10093
|
-
var loggerSource = "getCoinToUSDTRate";
|
|
10094
|
-
return Promise.resolve(_catch$2(function () {
|
|
10095
|
-
return coin ? Promise.resolve(_this8._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
10096
|
-
var _this8$_supportedCoin;
|
|
10097
|
-
// Using USDT TRC20 as usually fee in this network is smaller than ERC20 and this network is widely used for USDT
|
|
10098
|
-
var usdtTrc20 = (_this8$_supportedCoin = _this8._supportedCoins.find(function (i) {
|
|
10099
|
-
return i.coin.ticker === "USDTTRC20";
|
|
10100
|
-
})) == null ? void 0 : _this8$_supportedCoin.coin;
|
|
10101
|
-
if (!usdtTrc20) {
|
|
10102
|
-
return {
|
|
10103
|
-
result: false
|
|
10104
|
-
};
|
|
10105
|
-
}
|
|
10106
|
-
var cached = _this8._cache.get("swapspace_usdt_rate_" + coin.ticker);
|
|
10107
|
-
if (cached != null) {
|
|
10108
|
-
return {
|
|
10109
|
-
result: true,
|
|
10110
|
-
rate: cached
|
|
10111
|
-
};
|
|
10112
|
-
}
|
|
10113
|
-
Logger.log("Loading USDT->coin rate as not found in cache:", coin == null ? void 0 : coin.ticker);
|
|
10114
|
-
return Promise.resolve(_this8.getSwapInfo(usdtTrc20, coin, "5000", false)).then(function (result) {
|
|
10115
|
-
if (!result.result) {
|
|
10116
|
-
return {
|
|
10117
|
-
result: false
|
|
10118
|
-
};
|
|
10119
|
-
}
|
|
10120
|
-
|
|
10121
|
-
// This calculation is not precise as we cannot recognize the actual fee and network fee. Just approximate.
|
|
10122
|
-
var standardSwapspaceFeeMultiplier = 1.004; // fee is usually 0.4%
|
|
10123
|
-
var rate = bignumber_js.BigNumber(1).div(bignumber_js.BigNumber(result.rate).times(standardSwapspaceFeeMultiplier)).toString();
|
|
10124
|
-
_this8._cache.put("swapspace_usdt_rate_" + coin.ticker, rate, 15 * 60000 // 15 minutes
|
|
10125
|
-
);
|
|
10126
|
-
return {
|
|
10127
|
-
result: true,
|
|
10128
|
-
rate: rate
|
|
10129
|
-
};
|
|
10130
|
-
});
|
|
10131
|
-
}) : null;
|
|
10132
|
-
}, function (e) {
|
|
10133
|
-
improveAndRethrow(e, loggerSource);
|
|
10134
|
-
}));
|
|
10135
|
-
} catch (e) {
|
|
10136
|
-
return Promise.reject(e);
|
|
10137
|
-
}
|
|
10138
10229
|
};
|
|
10139
|
-
_proto.
|
|
10140
|
-
try {
|
|
10141
|
-
var _item$coin3;
|
|
10142
|
-
var item = this._supportedCoins.find(function (i) {
|
|
10143
|
-
return i.coin.ticker === ticker;
|
|
10144
|
-
});
|
|
10145
|
-
return (_item$coin3 = item == null ? void 0 : item.coin) != null ? _item$coin3 : null;
|
|
10146
|
-
} catch (e) {
|
|
10147
|
-
improveAndRethrow(e, "getCoinByTickerIfPresent");
|
|
10148
|
-
}
|
|
10149
|
-
};
|
|
10150
|
-
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate) {
|
|
10230
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
10151
10231
|
if (fixed === void 0) {
|
|
10152
10232
|
fixed = false;
|
|
10153
10233
|
}
|
|
10154
10234
|
if (fromCoinToUsdRate === void 0) {
|
|
10155
10235
|
fromCoinToUsdRate = null;
|
|
10156
10236
|
}
|
|
10237
|
+
if (amountIsToReceive === void 0) {
|
|
10238
|
+
amountIsToReceive = false;
|
|
10239
|
+
}
|
|
10157
10240
|
try {
|
|
10158
|
-
var
|
|
10241
|
+
var _this4 = this;
|
|
10159
10242
|
var loggerSource = "getSwapInfo";
|
|
10160
|
-
return Promise.resolve(_catch$
|
|
10243
|
+
return Promise.resolve(_catch$3(function () {
|
|
10244
|
+
if (amountIsToReceive) throw new Error("Swapspace doesn't support exchanging to get the exact receiving amount");
|
|
10161
10245
|
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amountCoins !== "string" || bignumber_js.BigNumber(amountCoins).lt("0") || fixed !== null && typeof fixed !== "boolean") {
|
|
10162
10246
|
throw new Error("Wrong input params: " + amountCoins + " " + fromCoin.ticker + " -> " + toCoin.ticker + ", " + (fromCoin instanceof Coin) + ", " + (toCoin instanceof Coin) + ", " + typeof fixed + " " + fixed);
|
|
10163
10247
|
}
|
|
10164
|
-
var fromCoinSwapspaceDetails =
|
|
10248
|
+
var fromCoinSwapspaceDetails = _this4._supportedCoins.find(function (i) {
|
|
10165
10249
|
var _i$coin;
|
|
10166
10250
|
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
10167
10251
|
});
|
|
10168
|
-
var toCoinSwapspaceDetails =
|
|
10252
|
+
var toCoinSwapspaceDetails = _this4._supportedCoins.find(function (i) {
|
|
10169
10253
|
var _i$coin2;
|
|
10170
10254
|
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
10171
10255
|
});
|
|
@@ -10175,11 +10259,11 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10175
10259
|
return !fromCoinSwapspaceDetails.deposit || !toCoinSwapspaceDetails.withdrawal ? {
|
|
10176
10260
|
result: false,
|
|
10177
10261
|
reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
|
|
10178
|
-
} : Promise.resolve(axios__default["default"].get(
|
|
10262
|
+
} : Promise.resolve(axios__default["default"].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) {
|
|
10179
10263
|
var _response$data, _exchangesSupportingT;
|
|
10180
10264
|
var _exit;
|
|
10181
|
-
function _temp4(
|
|
10182
|
-
if (_exit) return
|
|
10265
|
+
function _temp4(_result2) {
|
|
10266
|
+
if (_exit) return _result2;
|
|
10183
10267
|
var result = {
|
|
10184
10268
|
result: false,
|
|
10185
10269
|
reason: smallestMin && bignumber_js.BigNumber(amountCoins).lt(smallestMin) ? SwapProvider.NO_SWAPS_REASONS.TOO_LOW : greatestMax && bignumber_js.BigNumber(amountCoins).gt(greatestMax) ? SwapProvider.NO_SWAPS_REASONS.TOO_HIGH : SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED,
|
|
@@ -10273,9 +10357,9 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10273
10357
|
}
|
|
10274
10358
|
}
|
|
10275
10359
|
var rate = bestOpt.toAmount && bestOpt.fromAmount ? bignumber_js.BigNumber(bestOpt.toAmount).div(bestOpt.fromAmount) : null;
|
|
10276
|
-
return Promise.resolve(
|
|
10360
|
+
return Promise.resolve(_this4._fetchPartnersListIfNeeded()).then(function () {
|
|
10277
10361
|
var _bestOpt$duration;
|
|
10278
|
-
var partner =
|
|
10362
|
+
var partner = _this4._partners.find(function (p) {
|
|
10279
10363
|
var _bestOpt$partner;
|
|
10280
10364
|
return (bestOpt == null || (_bestOpt$partner = bestOpt.partner) == null ? void 0 : _bestOpt$partner.toLowerCase()) === p.path.toLowerCase();
|
|
10281
10365
|
});
|
|
@@ -10286,7 +10370,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10286
10370
|
max: max,
|
|
10287
10371
|
smallestMin: smallestMin,
|
|
10288
10372
|
greatestMax: greatestMax,
|
|
10289
|
-
rate: rate != null ? AmountUtils.trim(rate,
|
|
10373
|
+
rate: rate != null ? AmountUtils.trim(rate, _this4._maxRateDigits) : null,
|
|
10290
10374
|
durationMinutesRange: (_bestOpt$duration = bestOpt.duration) != null ? _bestOpt$duration : null,
|
|
10291
10375
|
fixed: bestOpt.fixed,
|
|
10292
10376
|
rawSwapData: bestOpt,
|
|
@@ -10300,8 +10384,8 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10300
10384
|
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
10301
10385
|
});
|
|
10302
10386
|
}, function (e) {
|
|
10303
|
-
var _e$
|
|
10304
|
-
if ((e == null || (_e$
|
|
10387
|
+
var _e$response;
|
|
10388
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
10305
10389
|
return {
|
|
10306
10390
|
result: false,
|
|
10307
10391
|
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
@@ -10314,18 +10398,22 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10314
10398
|
return Promise.reject(e);
|
|
10315
10399
|
}
|
|
10316
10400
|
};
|
|
10317
|
-
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId) {
|
|
10401
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
10318
10402
|
if (toCurrencyExtraId === void 0) {
|
|
10319
10403
|
toCurrencyExtraId = "";
|
|
10320
10404
|
}
|
|
10321
10405
|
if (refundExtraId === void 0) {
|
|
10322
10406
|
refundExtraId = "";
|
|
10323
10407
|
}
|
|
10408
|
+
if (amountIsToReceive === void 0) {
|
|
10409
|
+
amountIsToReceive = false;
|
|
10410
|
+
}
|
|
10324
10411
|
try {
|
|
10325
|
-
var
|
|
10412
|
+
var _this5 = this;
|
|
10326
10413
|
var loggerSource = "createSwap";
|
|
10327
10414
|
var partner = rawSwapData == null ? void 0 : rawSwapData.partner;
|
|
10328
|
-
return Promise.resolve(_catch$
|
|
10415
|
+
return Promise.resolve(_catch$3(function () {
|
|
10416
|
+
if (amountIsToReceive) throw new Error("Swapspace doesn't support exchanging to get the exact receiving amount");
|
|
10329
10417
|
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) {
|
|
10330
10418
|
throw new Error("Invalid input: " + fromCoin + " " + toCoin + " " + amount + " " + toAddress + " " + refundAddress + " " + (clientIpAddress == null ? void 0 : clientIpAddress.length) + " " + fixed);
|
|
10331
10419
|
}
|
|
@@ -10333,12 +10421,12 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10333
10421
|
) {
|
|
10334
10422
|
throw new Error("Invalid raw swap data: " + safeStringify(rawSwapData));
|
|
10335
10423
|
}
|
|
10336
|
-
var
|
|
10424
|
+
var _this5$_supportedCoin = _this5._supportedCoins.reduce(function (prev, coinData) {
|
|
10337
10425
|
return [coinData.coin.ticker === fromCoin.ticker ? coinData.hasExtraId : prev[0], coinData.coin.ticker === toCoin.ticker ? coinData.hasExtraId : prev[1]];
|
|
10338
10426
|
}, [false, false]),
|
|
10339
|
-
fromCurrencyHasExtraId =
|
|
10340
|
-
toCurrencyHasExtraId =
|
|
10341
|
-
return Promise.resolve(
|
|
10427
|
+
fromCurrencyHasExtraId = _this5$_supportedCoin[0],
|
|
10428
|
+
toCurrencyHasExtraId = _this5$_supportedCoin[1];
|
|
10429
|
+
return Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
10342
10430
|
var _toCurrencyExtraId, _refundExtraId;
|
|
10343
10431
|
var requestData = {
|
|
10344
10432
|
partner: partner,
|
|
@@ -10357,7 +10445,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10357
10445
|
refund: refundAddress
|
|
10358
10446
|
};
|
|
10359
10447
|
Logger.log("Sending create request: " + safeStringify(requestData), loggerSource);
|
|
10360
|
-
return Promise.resolve(axios__default["default"].post(
|
|
10448
|
+
return Promise.resolve(axios__default["default"].post(_this5._URL + "/api/v2/exchange", requestData)).then(function (response) {
|
|
10361
10449
|
var result = response.data;
|
|
10362
10450
|
Logger.log("Creation result " + safeStringify(result), loggerSource);
|
|
10363
10451
|
if (result != null && result.id) {
|
|
@@ -10382,7 +10470,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10382
10470
|
toAmount: AmountUtils.trim(result == null || (_result$to4 = result.to) == null ? void 0 : _result$to4.amount, toCoin.digits),
|
|
10383
10471
|
toAddress: result == null || (_result$to5 = result.to) == null ? void 0 : _result$to5.address,
|
|
10384
10472
|
fromCurrencyExtraId: (_result$from$extraId = result == null || (_result$from6 = result.from) == null ? void 0 : _result$from6.extraId) != null ? _result$from$extraId : "",
|
|
10385
|
-
rate: AmountUtils.trim(rate,
|
|
10473
|
+
rate: AmountUtils.trim(rate, _this5._maxRateDigits),
|
|
10386
10474
|
fixed: result.fixed
|
|
10387
10475
|
};
|
|
10388
10476
|
}
|
|
@@ -10392,7 +10480,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10392
10480
|
});
|
|
10393
10481
|
});
|
|
10394
10482
|
}, function (e) {
|
|
10395
|
-
var _e$
|
|
10483
|
+
var _e$response2, _e$response3;
|
|
10396
10484
|
Logger.logError(e, loggerSource, "Failed to create swap. Error is: " + safeStringify(e));
|
|
10397
10485
|
var composeFailResult = function composeFailResult(reason) {
|
|
10398
10486
|
return {
|
|
@@ -10401,8 +10489,8 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10401
10489
|
partner: partner
|
|
10402
10490
|
};
|
|
10403
10491
|
};
|
|
10404
|
-
var status = e == null || (_e$
|
|
10405
|
-
var data = e == null || (_e$
|
|
10492
|
+
var status = e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status;
|
|
10493
|
+
var data = e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.data;
|
|
10406
10494
|
if (status === 429) {
|
|
10407
10495
|
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
10408
10496
|
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
@@ -10451,9 +10539,9 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10451
10539
|
};
|
|
10452
10540
|
_proto.getExistingSwapsDetailsAndStatus = function getExistingSwapsDetailsAndStatus(swapIds) {
|
|
10453
10541
|
try {
|
|
10454
|
-
var
|
|
10542
|
+
var _this6 = this;
|
|
10455
10543
|
var loggerSource = "getExistingSwapsDetailsAndStatus";
|
|
10456
|
-
return Promise.resolve(_catch$
|
|
10544
|
+
return Promise.resolve(_catch$3(function () {
|
|
10457
10545
|
if (swapIds.find(function (id) {
|
|
10458
10546
|
return typeof id !== "string";
|
|
10459
10547
|
})) {
|
|
@@ -10461,8 +10549,8 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10461
10549
|
}
|
|
10462
10550
|
var getNotFailingOn404 = function getNotFailingOn404(swapId) {
|
|
10463
10551
|
try {
|
|
10464
|
-
return Promise.resolve(_catch$
|
|
10465
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10552
|
+
return Promise.resolve(_catch$3(function () {
|
|
10553
|
+
return Promise.resolve(axios__default["default"].get(_this6._URL + "/api/v2/exchange/" + swapId));
|
|
10466
10554
|
}, function (error) {
|
|
10467
10555
|
var _error$response;
|
|
10468
10556
|
if ((error == null || (_error$response = error.response) == null ? void 0 : _error$response.status) === 404) return [];
|
|
@@ -10482,13 +10570,13 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10482
10570
|
var swaps = wo404.map(function (r) {
|
|
10483
10571
|
return r.data;
|
|
10484
10572
|
}).map(function (swap, index) {
|
|
10485
|
-
var
|
|
10486
|
-
var fromCoin = (
|
|
10573
|
+
var _this6$_supportedCoin, _this6$_supportedCoin2, _swap$from$extraId, _swap$to$extraId, _swap$refundExtraId;
|
|
10574
|
+
var fromCoin = (_this6$_supportedCoin = _this6._supportedCoins.find(function (i) {
|
|
10487
10575
|
return i.code === swap.from.code && i.network === swap.from.network;
|
|
10488
|
-
})) == null ? void 0 :
|
|
10489
|
-
var toCoin = (
|
|
10576
|
+
})) == null ? void 0 : _this6$_supportedCoin.coin;
|
|
10577
|
+
var toCoin = (_this6$_supportedCoin2 = _this6._supportedCoins.find(function (i) {
|
|
10490
10578
|
return i.code === swap.to.code && i.network === swap.to.network;
|
|
10491
|
-
})) == null ? void 0 :
|
|
10579
|
+
})) == null ? void 0 : _this6$_supportedCoin2.coin;
|
|
10492
10580
|
if (!fromCoin || !toCoin) {
|
|
10493
10581
|
return []; // We skip swaps with not supported coins for now
|
|
10494
10582
|
}
|
|
@@ -10497,10 +10585,10 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10497
10585
|
};
|
|
10498
10586
|
var expiresAt = toUtcTimestamp(swap.timestamps.expiresAt);
|
|
10499
10587
|
var isExpiredByTime = expiresAt < Date.now();
|
|
10500
|
-
var status =
|
|
10588
|
+
var status = _this6._mapSwapspaceStatusToRabbitStatus(swap.status, isExpiredByTime);
|
|
10501
10589
|
var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
|
|
10502
10590
|
var addressToSendCoinsToSwapspace = swap.from.address;
|
|
10503
|
-
return new ExistingSwap(swapIds[index], status, toUtcTimestamp(swap.timestamps.createdAt), expiresAt, swap.confirmations, AmountUtils.trim(swap.rate,
|
|
10591
|
+
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);
|
|
10504
10592
|
}).flat();
|
|
10505
10593
|
Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
|
|
10506
10594
|
return {
|
|
@@ -10509,7 +10597,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10509
10597
|
};
|
|
10510
10598
|
});
|
|
10511
10599
|
}, function (e) {
|
|
10512
|
-
var _e$
|
|
10600
|
+
var _e$response4, _e$response5;
|
|
10513
10601
|
Logger.logError(e, loggerSource, "Failed to get swap details. Error is: " + safeStringify(e));
|
|
10514
10602
|
var composeFailResult = function composeFailResult(reason) {
|
|
10515
10603
|
return {
|
|
@@ -10517,8 +10605,8 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10517
10605
|
reason: reason
|
|
10518
10606
|
};
|
|
10519
10607
|
};
|
|
10520
|
-
var status = e == null || (_e$
|
|
10521
|
-
var data = e == null || (_e$
|
|
10608
|
+
var status = e == null || (_e$response4 = e.response) == null ? void 0 : _e$response4.status;
|
|
10609
|
+
var data = e == null || (_e$response5 = e.response) == null ? void 0 : _e$response5.data;
|
|
10522
10610
|
if (status === 429) {
|
|
10523
10611
|
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
10524
10612
|
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
@@ -10529,45 +10617,10 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
|
10529
10617
|
return Promise.reject(e);
|
|
10530
10618
|
}
|
|
10531
10619
|
};
|
|
10532
|
-
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
10533
|
-
try {
|
|
10534
|
-
var assetData = this._supportedCoins.find(function (i) {
|
|
10535
|
-
var _i$coin3;
|
|
10536
|
-
return ((_i$coin3 = i.coin) == null ? void 0 : _i$coin3.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10537
|
-
});
|
|
10538
|
-
if (assetData) {
|
|
10539
|
-
var corrected = assetData.validationRegexp.trim();
|
|
10540
|
-
corrected = corrected[0] === "/" ? corrected.slice(1) : corrected;
|
|
10541
|
-
corrected = corrected[corrected.length - 1] === "/" ? corrected.slice(0, corrected.length - 1) : corrected;
|
|
10542
|
-
return address.match(corrected) != null;
|
|
10543
|
-
}
|
|
10544
|
-
} catch (e) {
|
|
10545
|
-
Logger.logError(e, "isAddressValidForAsset");
|
|
10546
|
-
}
|
|
10547
|
-
return false;
|
|
10548
|
-
};
|
|
10549
|
-
_proto.getExtraIdNameIfPresent = function getExtraIdNameIfPresent(asset) {
|
|
10550
|
-
try {
|
|
10551
|
-
var assetData = this._supportedCoins.find(function (i) {
|
|
10552
|
-
var _i$coin4;
|
|
10553
|
-
return ((_i$coin4 = i.coin) == null ? void 0 : _i$coin4.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10554
|
-
});
|
|
10555
|
-
if (assetData != null && assetData.hasExtraId) {
|
|
10556
|
-
if ((assetData == null ? void 0 : assetData.extraIdName) == null || (assetData == null ? void 0 : assetData.extraIdName) === "") {
|
|
10557
|
-
// We return some default name if the extraIdName is empty
|
|
10558
|
-
return "ID";
|
|
10559
|
-
}
|
|
10560
|
-
return assetData == null ? void 0 : assetData.extraIdName;
|
|
10561
|
-
}
|
|
10562
|
-
return null;
|
|
10563
|
-
} catch (e) {
|
|
10564
|
-
improveAndRethrow(e, "getExtraIdNameIfPresent");
|
|
10565
|
-
}
|
|
10566
|
-
};
|
|
10567
10620
|
return SwapspaceSwapProvider;
|
|
10568
10621
|
}(SwapProvider);
|
|
10569
10622
|
|
|
10570
|
-
function _catch$
|
|
10623
|
+
function _catch$2(body, recover) {
|
|
10571
10624
|
try {
|
|
10572
10625
|
var result = body();
|
|
10573
10626
|
} catch (e) {
|
|
@@ -10764,134 +10817,590 @@ var SwapUtils = /*#__PURE__*/function () {
|
|
|
10764
10817
|
if (coinToCurrentFiatRate === void 0) {
|
|
10765
10818
|
coinToCurrentFiatRate = null;
|
|
10766
10819
|
}
|
|
10767
|
-
if (fiatCurrencyDecimals === void 0) {
|
|
10768
|
-
fiatCurrencyDecimals = null;
|
|
10820
|
+
if (fiatCurrencyDecimals === void 0) {
|
|
10821
|
+
fiatCurrencyDecimals = null;
|
|
10822
|
+
}
|
|
10823
|
+
try {
|
|
10824
|
+
var loggerSource = "getInitialSwapData";
|
|
10825
|
+
return Promise.resolve(_catch$2(function () {
|
|
10826
|
+
/* We use some amount here that should fit at least some of the limits of the swap providers.
|
|
10827
|
+
* So we are going to get some rate to be used as the default for the on-flight calculations before we get
|
|
10828
|
+
* the exact rate (that should be retrieved by getSwapCreationInfo method) for a specific amount.
|
|
10829
|
+
*/
|
|
10830
|
+
var defaultAmountUsd = bignumber_js.BigNumber("300");
|
|
10831
|
+
return Promise.resolve(swapProvider.getCoinToUSDTRate(fromCoin)).then(function (coinUsdRate) {
|
|
10832
|
+
var coinAmountForDefaultUsdAmount = AmountUtils.trim(coinUsdRate.result ? defaultAmountUsd.div(coinUsdRate == null ? void 0 : coinUsdRate.rate) : defaultAmountUsd, fromCoin.digits);
|
|
10833
|
+
Logger.log("Init: " + coinAmountForDefaultUsdAmount + " " + fromCoin.ticker + "->" + toCoin.ticker, loggerSource);
|
|
10834
|
+
return Promise.resolve(swapProvider.getSwapInfo(fromCoin, toCoin, coinAmountForDefaultUsdAmount)).then(function (details) {
|
|
10835
|
+
var _coinToCurrentFiatRat, _fiatCurrencyDecimals;
|
|
10836
|
+
if (!details) {
|
|
10837
|
+
throw new Error("The details are empty: " + safeStringify(details));
|
|
10838
|
+
}
|
|
10839
|
+
if (!details.result) {
|
|
10840
|
+
Logger.log("Failed with reason: " + details.reason + ". " + fromCoin.ticker + "->" + toCoin.ticker, loggerSource);
|
|
10841
|
+
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) {
|
|
10842
|
+
return {
|
|
10843
|
+
result: false,
|
|
10844
|
+
reason: details.reason
|
|
10845
|
+
};
|
|
10846
|
+
} else {
|
|
10847
|
+
throw new Error("Unhandled error case: " + (details == null ? void 0 : details.reason));
|
|
10848
|
+
}
|
|
10849
|
+
}
|
|
10850
|
+
var fiatMin = null;
|
|
10851
|
+
var fiatMax = null;
|
|
10852
|
+
var fiatRate = (_coinToCurrentFiatRat = coinToCurrentFiatRate) != null ? _coinToCurrentFiatRat : coinUsdRate == null ? void 0 : coinUsdRate.rate;
|
|
10853
|
+
var fiatDecimals = (_fiatCurrencyDecimals = fiatCurrencyDecimals) != null ? _fiatCurrencyDecimals : FiatCurrenciesService.getCurrencyDecimalCountByCode("USD");
|
|
10854
|
+
if (fiatRate != null) {
|
|
10855
|
+
fiatMin = bignumber_js.BigNumber(details == null ? void 0 : details.smallestMin).times(fiatRate).toFixed(fiatDecimals);
|
|
10856
|
+
fiatMax = bignumber_js.BigNumber(details == null ? void 0 : details.greatestMax).times(fiatRate).toFixed(fiatDecimals);
|
|
10857
|
+
}
|
|
10858
|
+
var result = {
|
|
10859
|
+
result: true,
|
|
10860
|
+
min: details == null ? void 0 : details.smallestMin,
|
|
10861
|
+
fiatMin: fiatMin,
|
|
10862
|
+
max: details == null ? void 0 : details.greatestMax,
|
|
10863
|
+
fiatMax: fiatMax,
|
|
10864
|
+
rate: AmountUtils.trim(details.rate, 30)
|
|
10865
|
+
};
|
|
10866
|
+
Logger.log("Returning: " + safeStringify(result), loggerSource);
|
|
10867
|
+
return result;
|
|
10868
|
+
});
|
|
10869
|
+
});
|
|
10870
|
+
}, function (e) {
|
|
10871
|
+
Logger.logError(e, loggerSource, "Failed to init swap: " + safeStringify(e));
|
|
10872
|
+
improveAndRethrow(e, loggerSource);
|
|
10873
|
+
}));
|
|
10874
|
+
} catch (e) {
|
|
10875
|
+
return Promise.reject(e);
|
|
10876
|
+
}
|
|
10877
|
+
};
|
|
10878
|
+
SwapUtils.safeHandleRequestsLimitExceeding = function safeHandleRequestsLimitExceeding() {
|
|
10879
|
+
(function () {
|
|
10880
|
+
try {
|
|
10881
|
+
var _temp = _catch$2(function () {
|
|
10882
|
+
return Promise.resolve(EmailsApi.sendEmail("AUTOMATIC EMAIL - SWAPSPACE REQUESTS LIMIT EXCEEDED", "Requests limit exceeded. Urgently ask swaps provider support for limit increasing")).then(function () {});
|
|
10883
|
+
}, function (e) {
|
|
10884
|
+
Logger.log("Failed to handle limit exceeding " + safeStringify(e), "_safeHandleRequestsLimitExceeding");
|
|
10885
|
+
});
|
|
10886
|
+
return _temp && _temp.then ? _temp.then(function () {}) : void 0;
|
|
10887
|
+
} catch (e) {
|
|
10888
|
+
Promise.reject(e);
|
|
10889
|
+
}
|
|
10890
|
+
})();
|
|
10891
|
+
}
|
|
10892
|
+
|
|
10893
|
+
/**
|
|
10894
|
+
* If some swap is not found by id then there is no item in return list.
|
|
10895
|
+
*
|
|
10896
|
+
* @param swapProviders {SwapProvider[]} - Array of swap providers
|
|
10897
|
+
* @param swapIds {string[]} - Array of swap IDs
|
|
10898
|
+
* @return {Promise<{
|
|
10899
|
+
* result: true,
|
|
10900
|
+
* swaps: ExistingSwapWithFiatData[]
|
|
10901
|
+
* }|{
|
|
10902
|
+
* result: false,
|
|
10903
|
+
* reason: string
|
|
10904
|
+
* }>}
|
|
10905
|
+
*/;
|
|
10906
|
+
SwapUtils.getExistingSwapsDetailsWithFiatAmounts = function getExistingSwapsDetailsWithFiatAmounts(swapProviders, swapIds) {
|
|
10907
|
+
try {
|
|
10908
|
+
return Promise.resolve(_catch$2(function () {
|
|
10909
|
+
var _interrupt;
|
|
10910
|
+
function _temp8() {
|
|
10911
|
+
if (swapIds.length > 0 && allSwaps.length === 0 && failResults.length > 0) {
|
|
10912
|
+
var failReasons = failResults.map(function (r) {
|
|
10913
|
+
return r.reason;
|
|
10914
|
+
});
|
|
10915
|
+
return {
|
|
10916
|
+
result: false,
|
|
10917
|
+
reason: failReasons.find(function (r) {
|
|
10918
|
+
return r !== SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED;
|
|
10919
|
+
}) ? failReasons.join("\n") : SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
10920
|
+
};
|
|
10921
|
+
}
|
|
10922
|
+
return {
|
|
10923
|
+
result: true,
|
|
10924
|
+
swaps: allSwaps
|
|
10925
|
+
};
|
|
10926
|
+
}
|
|
10927
|
+
var allSwaps = [];
|
|
10928
|
+
var remainingSwapIds = new Set(swapIds);
|
|
10929
|
+
var failResults = [];
|
|
10930
|
+
var _temp7 = _forOf(swapProviders, function (provider) {
|
|
10931
|
+
return Promise.resolve(provider.getExistingSwapsDetailsAndStatus([].concat(remainingSwapIds))).then(function (result) {
|
|
10932
|
+
var _temp6 = function () {
|
|
10933
|
+
if (result.result) {
|
|
10934
|
+
var _temp5 = function _temp5() {
|
|
10935
|
+
allSwaps = allSwaps.concat(_extendedSwaps);
|
|
10936
|
+
|
|
10937
|
+
// Stop if we have retrieved all swaps
|
|
10938
|
+
if (allSwaps.length >= swapIds.length) {
|
|
10939
|
+
_interrupt = 1;
|
|
10940
|
+
}
|
|
10941
|
+
};
|
|
10942
|
+
var _extendedSwaps = [];
|
|
10943
|
+
var _temp4 = _forOf(result.swaps, function (swap) {
|
|
10944
|
+
function _temp3() {
|
|
10945
|
+
remainingSwapIds["delete"](swap.id);
|
|
10946
|
+
}
|
|
10947
|
+
var _temp2 = function () {
|
|
10948
|
+
if (swap.status === SwapProvider.SWAP_STATUSES.REFUNDED) {
|
|
10949
|
+
return Promise.resolve(provider.getCoinToUSDTRate(swap.fromCoin)).then(function (rate) {
|
|
10950
|
+
_extendedSwaps.push(ExistingSwapWithFiatData.fromExistingSwap(swap, (rate == null ? void 0 : rate.rate) != null ? bignumber_js.BigNumber(swap.fromAmount).times(rate.rate).toNumber() : null, (rate == null ? void 0 : rate.rate) != null ? bignumber_js.BigNumber(swap.toAmount).times(rate.rate).toNumber() : null, "USD", FiatCurrenciesService.getCurrencyDecimalCountByCode("USD")));
|
|
10951
|
+
});
|
|
10952
|
+
} else {
|
|
10953
|
+
return Promise.resolve(Promise.all([provider.getCoinToUSDTRate(swap.fromCoin), provider.getCoinToUSDTRate(swap.toCoin)])).then(function (_ref) {
|
|
10954
|
+
var fromCoinFiatRate = _ref[0],
|
|
10955
|
+
toCoinFiatRate = _ref[1];
|
|
10956
|
+
_extendedSwaps.push(ExistingSwapWithFiatData.fromExistingSwap(swap, (fromCoinFiatRate == null ? void 0 : fromCoinFiatRate.rate) != null ? bignumber_js.BigNumber(swap.fromAmount).times(fromCoinFiatRate.rate).toNumber() : null, (toCoinFiatRate == null ? void 0 : toCoinFiatRate.rate) != null ? bignumber_js.BigNumber(swap.toAmount).times(toCoinFiatRate.rate).toNumber() : null, "USD", FiatCurrenciesService.getCurrencyDecimalCountByCode("USD")));
|
|
10957
|
+
});
|
|
10958
|
+
}
|
|
10959
|
+
}();
|
|
10960
|
+
return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
|
|
10961
|
+
});
|
|
10962
|
+
return _temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4);
|
|
10963
|
+
} else {
|
|
10964
|
+
failResults.push(result);
|
|
10965
|
+
}
|
|
10966
|
+
}();
|
|
10967
|
+
if (_temp6 && _temp6.then) return _temp6.then(function () {});
|
|
10968
|
+
});
|
|
10969
|
+
}, function () {
|
|
10970
|
+
return _interrupt;
|
|
10971
|
+
});
|
|
10972
|
+
return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
|
|
10973
|
+
}, function (e) {
|
|
10974
|
+
improveAndRethrow(e, "getExistingSwapsDetailsWithFiatAmounts");
|
|
10975
|
+
}));
|
|
10976
|
+
} catch (e) {
|
|
10977
|
+
return Promise.reject(e);
|
|
10978
|
+
}
|
|
10979
|
+
};
|
|
10980
|
+
return SwapUtils;
|
|
10981
|
+
}();
|
|
10982
|
+
|
|
10983
|
+
function _catch$1(body, recover) {
|
|
10984
|
+
try {
|
|
10985
|
+
var result = body();
|
|
10986
|
+
} catch (e) {
|
|
10987
|
+
return recover(e);
|
|
10988
|
+
}
|
|
10989
|
+
if (result && result.then) {
|
|
10990
|
+
return result.then(void 0, recover);
|
|
10991
|
+
}
|
|
10992
|
+
return result;
|
|
10993
|
+
}
|
|
10994
|
+
var LetsExchangeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
10995
|
+
_inheritsLoose(LetsExchangeSwapProvider, _SwapProvider);
|
|
10996
|
+
function LetsExchangeSwapProvider(apiKeysProxyUrl, cache, customCoinBuilder, useRestrictedCoinsSet) {
|
|
10997
|
+
var _this;
|
|
10998
|
+
if (customCoinBuilder === void 0) {
|
|
10999
|
+
customCoinBuilder = function customCoinBuilder(coin, network) {
|
|
11000
|
+
return null;
|
|
11001
|
+
};
|
|
11002
|
+
}
|
|
11003
|
+
if (useRestrictedCoinsSet === void 0) {
|
|
11004
|
+
useRestrictedCoinsSet = true;
|
|
11005
|
+
}
|
|
11006
|
+
_this = _SwapProvider.call(this, cache, customCoinBuilder, useRestrictedCoinsSet) || this;
|
|
11007
|
+
_this._partners = [];
|
|
11008
|
+
_this._URL = apiKeysProxyUrl + "/letsexchange";
|
|
11009
|
+
_this.isAggregator = false;
|
|
11010
|
+
_this.COINS_EXPIRATION_TIME_MS = 5 * 60 * 1000;
|
|
11011
|
+
_this.coinsLastUpdateTimestamp = null;
|
|
11012
|
+
return _this;
|
|
11013
|
+
}
|
|
11014
|
+
var _proto = LetsExchangeSwapProvider.prototype;
|
|
11015
|
+
_proto.getSwapCreationInfoTtlMs = function getSwapCreationInfoTtlMs() {
|
|
11016
|
+
return 110000;
|
|
11017
|
+
};
|
|
11018
|
+
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
11019
|
+
try {
|
|
11020
|
+
var _this2 = this;
|
|
11021
|
+
var loggerSource = "_fetchSupportedCurrenciesIfNeeded";
|
|
11022
|
+
return Promise.resolve(_catch$1(function () {
|
|
11023
|
+
var _temp = function (_this2$_supportedCoin) {
|
|
11024
|
+
if (!((_this2$_supportedCoin = _this2._supportedCoins) != null && _this2$_supportedCoin.length) || !_this2.coinsLastUpdateTimestamp || _this2.coinsLastUpdateTimestamp + _this2.COINS_EXPIRATION_TIME_MS < Date.now()) {
|
|
11025
|
+
return Promise.resolve(axios__default["default"].get(_this2._URL + "/v2/coins")).then(function (rawResponse) {
|
|
11026
|
+
var _rawResponse$data, _rawResponse$data2;
|
|
11027
|
+
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data = rawResponse.data) == null ? void 0 : _rawResponse$data.length), loggerSource);
|
|
11028
|
+
var allowedCoins = (_rawResponse$data2 = rawResponse == null ? void 0 : rawResponse.data) != null ? _rawResponse$data2 : [];
|
|
11029
|
+
Logger.log("Allowed cnt " + allowedCoins.length, loggerSource);
|
|
11030
|
+
_this2._supportedCoins = allowedCoins.map(function (item) {
|
|
11031
|
+
var code = item.code.toUpperCase();
|
|
11032
|
+
if (!Array.isArray(item.networks)) return [];
|
|
11033
|
+
return item.networks.map(function (networkDetails) {
|
|
11034
|
+
var network = networkDetails.code.toUpperCase();
|
|
11035
|
+
var coin = _this2._customCoinBuilder(code, network);
|
|
11036
|
+
if (!coin && !_this2.useRestrictedCoinsSet) {
|
|
11037
|
+
var name = _this2.removeProtocolNameFromCoinName(item.name, code, network);
|
|
11038
|
+
var ticker = "" + code + (code === network ? "" : network);
|
|
11039
|
+
var defaultDecimalPlacesForCoinNotSupportedOOB = DEFAULT_CRYPTO_DECIMAL_COUNT;
|
|
11040
|
+
var defaultMinConfirmationsForCoinNotSupportedOOB = 1;
|
|
11041
|
+
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);
|
|
11042
|
+
}
|
|
11043
|
+
if (coin) {
|
|
11044
|
+
var _networkDetails$extra, _networkDetails$valid;
|
|
11045
|
+
return {
|
|
11046
|
+
coin: coin,
|
|
11047
|
+
code: item.code,
|
|
11048
|
+
network: networkDetails.code,
|
|
11049
|
+
hasExtraId: !!networkDetails.has_extra,
|
|
11050
|
+
extraIdName: (_networkDetails$extra = networkDetails.extra_name) != null ? _networkDetails$extra : null,
|
|
11051
|
+
isPopular: item.rating || 0,
|
|
11052
|
+
iconURL: item.icon ? item.icon : FALLBACK_ASSET_ICON_URL,
|
|
11053
|
+
deposit: true,
|
|
11054
|
+
// Letsexchange provide no such details
|
|
11055
|
+
withdrawal: true,
|
|
11056
|
+
// Letsexchange provide no such details
|
|
11057
|
+
validationRegexp: (_networkDetails$valid = networkDetails.validation_address_regex) != null ? _networkDetails$valid : null,
|
|
11058
|
+
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)
|
|
11059
|
+
};
|
|
11060
|
+
}
|
|
11061
|
+
return [];
|
|
11062
|
+
});
|
|
11063
|
+
}).flat();
|
|
11064
|
+
_this2.coinsLastUpdateTimestamp = Date.now();
|
|
11065
|
+
_this2._putPopularCoinsFirst();
|
|
11066
|
+
});
|
|
11067
|
+
}
|
|
11068
|
+
}();
|
|
11069
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
|
11070
|
+
}, function (e) {
|
|
11071
|
+
improveAndRethrow(e, loggerSource);
|
|
11072
|
+
}));
|
|
11073
|
+
} catch (e) {
|
|
11074
|
+
return Promise.reject(e);
|
|
11075
|
+
}
|
|
11076
|
+
};
|
|
11077
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
11078
|
+
if (fixed === void 0) {
|
|
11079
|
+
fixed = false;
|
|
11080
|
+
}
|
|
11081
|
+
if (amountIsToReceive === void 0) {
|
|
11082
|
+
amountIsToReceive = false;
|
|
11083
|
+
}
|
|
11084
|
+
try {
|
|
11085
|
+
var _this3 = this;
|
|
11086
|
+
var loggerSource = "getSwapInfo";
|
|
11087
|
+
return Promise.resolve(_catch$1(function () {
|
|
11088
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amountCoins !== "string" || bignumber_js.BigNumber(amountCoins).lt("0") || fixed !== null && typeof fixed !== "boolean" || amountIsToReceive && !fixed) {
|
|
11089
|
+
throw new Error("Wrong input params: " + amountCoins + " " + fromCoin.ticker + " -> " + toCoin.ticker + ", " + (fromCoin instanceof Coin) + ", " + (toCoin instanceof Coin) + ", " + typeof fixed + " " + fixed + ", " + amountIsToReceive);
|
|
11090
|
+
}
|
|
11091
|
+
var fromCoinDetails = _this3._supportedCoins.find(function (i) {
|
|
11092
|
+
var _i$coin;
|
|
11093
|
+
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
11094
|
+
});
|
|
11095
|
+
var toCoinDetails = _this3._supportedCoins.find(function (i) {
|
|
11096
|
+
var _i$coin2;
|
|
11097
|
+
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
11098
|
+
});
|
|
11099
|
+
if (!fromCoinDetails || !toCoinDetails) {
|
|
11100
|
+
throw new Error("Failed to find coin details for: " + fromCoin.ticker + " -> " + toCoin.ticker);
|
|
11101
|
+
}
|
|
11102
|
+
if (!fromCoinDetails.deposit || !fromCoinDetails.isAvailable || !toCoinDetails.withdrawal || !toCoinDetails.isAvailable) {
|
|
11103
|
+
return {
|
|
11104
|
+
result: false,
|
|
11105
|
+
reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
|
|
11106
|
+
};
|
|
11107
|
+
}
|
|
11108
|
+
var pathAndQuery = "/v1/info" + (amountIsToReceive ? "-revert" : "?float=" + !fixed);
|
|
11109
|
+
return Promise.resolve(axios__default["default"].post("" + _this3._URL + pathAndQuery, {
|
|
11110
|
+
from: fromCoinDetails.code,
|
|
11111
|
+
to: toCoinDetails.code,
|
|
11112
|
+
network_from: fromCoinDetails.network,
|
|
11113
|
+
network_to: toCoinDetails.network,
|
|
11114
|
+
amount: amountCoins,
|
|
11115
|
+
affiliate_id: LetsExchangeSwapProvider.AFFILIATE_ID
|
|
11116
|
+
})).then(function (response) {
|
|
11117
|
+
Logger.log("Retrieved " + (response == null ? void 0 : response.data), loggerSource);
|
|
11118
|
+
var data = response.data;
|
|
11119
|
+
|
|
11120
|
+
// TODO: [dev] add SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING - request alternative rate. task_id=
|
|
11121
|
+
|
|
11122
|
+
// TODO: [feature, low] implement extra coins to fit min/max if there are frequent errors due to min/max exceeding
|
|
11123
|
+
// let extraCoinsToFitMinMax = "0";
|
|
11124
|
+
// if (typeof fromCoinToUsdRate === "string" && BigNumber(fromCoinToUsdRate).gt("0")) {
|
|
11125
|
+
// const extraUsdToFitMinMax = BigNumber("1"); // We correct the limits as the exact limit can fluctuate and cause failed swap creation
|
|
11126
|
+
// extraCoinsToFitMinMax = AmountUtils.trim(extraUsdToFitMinMax.div(fromCoinToUsdRate), fromCoin.digits);
|
|
11127
|
+
// }
|
|
11128
|
+
var min = null;
|
|
11129
|
+
if (data != null && data.min_amount) {
|
|
11130
|
+
min = AmountUtils.trim(data == null ? void 0 : data.min_amount, amountIsToReceive ? toCoin.digits : fromCoin.digits);
|
|
11131
|
+
}
|
|
11132
|
+
var max = null;
|
|
11133
|
+
if (data != null && data.max_amount) {
|
|
11134
|
+
max = AmountUtils.trim(data == null ? void 0 : data.max_amount, amountIsToReceive ? toCoin.digits : fromCoin.digits);
|
|
11135
|
+
}
|
|
11136
|
+
if (data.success === false && data.error) {
|
|
11137
|
+
// TODO: [dev] waiting for response from letsexchange about their not-documented responses
|
|
11138
|
+
// {
|
|
11139
|
+
// "success": false,
|
|
11140
|
+
// "error": "Internal error"
|
|
11141
|
+
// }
|
|
11142
|
+
throw new Error("Failed to estimate swap letsexchange");
|
|
11143
|
+
}
|
|
11144
|
+
if (bignumber_js.BigNumber(data.rate).eq("0") || bignumber_js.BigNumber(data.amount).eq("0")) {
|
|
11145
|
+
// TODO actualize according to letsexchage clarification - decide, can we count on min/max abcense? task_id=76512110797f4eab8b37f1bb789825cb
|
|
11146
|
+
// amount: "0", rate: "0", rate_id: ""
|
|
11147
|
+
var reason = SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED;
|
|
11148
|
+
if (min && bignumber_js.BigNumber(amountCoins).lt(min)) {
|
|
11149
|
+
reason = SwapProvider.NO_SWAPS_REASONS.TOO_LOW;
|
|
11150
|
+
} else if (max && bignumber_js.BigNumber(amountCoins).gt(max)) {
|
|
11151
|
+
reason = SwapProvider.NO_SWAPS_REASONS.TOO_HIGH;
|
|
11152
|
+
} else if (!amountIsToReceive) {
|
|
11153
|
+
// If we are not requesting receiving amount (it cannot be floating-rate)
|
|
11154
|
+
// todo [feature, moderate] request alternative rate. task_id=31884db5392f49738c20a86115c90e1f
|
|
11155
|
+
// const alternativeRate = 1;
|
|
11156
|
+
// const alternativeRateAvailable = alternativeRate;
|
|
11157
|
+
// if (alternativeRateAvailable) {
|
|
11158
|
+
// reason = fixed
|
|
11159
|
+
// ? SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING
|
|
11160
|
+
// : SwapProvider.NO_SWAPS_REASONS.NO_FLOATING_BUT_HAVE_FIXED;
|
|
11161
|
+
// }
|
|
11162
|
+
}
|
|
11163
|
+
return {
|
|
11164
|
+
result: false,
|
|
11165
|
+
reason: reason,
|
|
11166
|
+
smallestMin: min,
|
|
11167
|
+
greatestMax: max
|
|
11168
|
+
};
|
|
11169
|
+
}
|
|
11170
|
+
var rate = amountIsToReceive ? bignumber_js.BigNumber(amountCoins).div(data.amount) : bignumber_js.BigNumber(data.amount).div(amountCoins);
|
|
11171
|
+
return {
|
|
11172
|
+
result: true,
|
|
11173
|
+
min: min,
|
|
11174
|
+
max: max,
|
|
11175
|
+
smallestMin: min,
|
|
11176
|
+
greatestMax: max,
|
|
11177
|
+
rate: AmountUtils.trim(rate, _this3._maxRateDigits),
|
|
11178
|
+
durationMinutesRange: null,
|
|
11179
|
+
fixed: fixed,
|
|
11180
|
+
rawSwapData: data,
|
|
11181
|
+
isRefundAddressRequired: false
|
|
11182
|
+
};
|
|
11183
|
+
});
|
|
11184
|
+
}, function (e) {
|
|
11185
|
+
var _e$response;
|
|
11186
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
11187
|
+
return {
|
|
11188
|
+
result: false,
|
|
11189
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
11190
|
+
};
|
|
11191
|
+
}
|
|
11192
|
+
Logger.log("Internal error when getting swap options " + safeStringify(e), loggerSource);
|
|
11193
|
+
improveAndRethrow(e, loggerSource);
|
|
11194
|
+
}));
|
|
11195
|
+
} catch (e) {
|
|
11196
|
+
return Promise.reject(e);
|
|
11197
|
+
}
|
|
11198
|
+
};
|
|
11199
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
11200
|
+
if (toCurrencyExtraId === void 0) {
|
|
11201
|
+
toCurrencyExtraId = "";
|
|
11202
|
+
}
|
|
11203
|
+
if (refundExtraId === void 0) {
|
|
11204
|
+
refundExtraId = "";
|
|
11205
|
+
}
|
|
11206
|
+
if (amountIsToReceive === void 0) {
|
|
11207
|
+
amountIsToReceive = false;
|
|
10769
11208
|
}
|
|
10770
11209
|
try {
|
|
10771
|
-
var
|
|
11210
|
+
var _this4 = this;
|
|
11211
|
+
var loggerSource = "createSwap";
|
|
10772
11212
|
return Promise.resolve(_catch$1(function () {
|
|
10773
|
-
|
|
10774
|
-
|
|
10775
|
-
|
|
10776
|
-
|
|
10777
|
-
|
|
10778
|
-
|
|
10779
|
-
|
|
10780
|
-
|
|
10781
|
-
return
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10792
|
-
|
|
10793
|
-
|
|
10794
|
-
|
|
10795
|
-
|
|
10796
|
-
|
|
10797
|
-
|
|
10798
|
-
|
|
10799
|
-
|
|
10800
|
-
|
|
10801
|
-
|
|
10802
|
-
|
|
10803
|
-
|
|
10804
|
-
|
|
10805
|
-
|
|
11213
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || typeof refundAddress !== "string" || typeof clientIpAddress != "string" || typeof fixed != "boolean") {
|
|
11214
|
+
throw new Error("Invalid input: " + fromCoin + " " + toCoin + " " + amount + " " + toAddress + " " + refundAddress + " " + fixed);
|
|
11215
|
+
}
|
|
11216
|
+
if (typeof rawSwapData !== "object" || fixed && !rawSwapData.rate_id) {
|
|
11217
|
+
throw new Error("Invalid raw swap data: " + safeStringify(rawSwapData));
|
|
11218
|
+
}
|
|
11219
|
+
var fromCoinDetails = _this4._supportedCoins.find(function (i) {
|
|
11220
|
+
var _i$coin3;
|
|
11221
|
+
return ((_i$coin3 = i.coin) == null ? void 0 : _i$coin3.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
11222
|
+
});
|
|
11223
|
+
var toCoinDetails = _this4._supportedCoins.find(function (i) {
|
|
11224
|
+
var _i$coin4;
|
|
11225
|
+
return ((_i$coin4 = i.coin) == null ? void 0 : _i$coin4.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
11226
|
+
});
|
|
11227
|
+
if (!fromCoinDetails || !toCoinDetails) {
|
|
11228
|
+
throw new Error("Failed to find coin details for: " + fromCoin.ticker + " -> " + toCoin.ticker);
|
|
11229
|
+
}
|
|
11230
|
+
var requestBody = {
|
|
11231
|
+
coin_from: fromCoinDetails.code,
|
|
11232
|
+
network_from: fromCoinDetails.network,
|
|
11233
|
+
coin_to: toCoinDetails.code,
|
|
11234
|
+
network_to: toCoinDetails.network,
|
|
11235
|
+
withdrawal: toAddress,
|
|
11236
|
+
withdrawal_extra_id: toCurrencyExtraId,
|
|
11237
|
+
"return": refundAddress,
|
|
11238
|
+
return_extra_id: refundExtraId,
|
|
11239
|
+
affiliate_id: LetsExchangeSwapProvider.AFFILIATE_ID
|
|
11240
|
+
};
|
|
11241
|
+
if (amountIsToReceive) {
|
|
11242
|
+
requestBody.withdrawal_amount = amount;
|
|
11243
|
+
} else {
|
|
11244
|
+
requestBody.deposit_amount = amount;
|
|
11245
|
+
}
|
|
11246
|
+
if (fixed) {
|
|
11247
|
+
requestBody.rate_id = rawSwapData.rate_id;
|
|
11248
|
+
}
|
|
11249
|
+
return Promise.resolve(axios__default["default"].post(_this4._URL + "/v1/transaction" + (amountIsToReceive ? "-revert" : "?float=" + !fixed), requestBody)).then(function (response) {
|
|
11250
|
+
var result = response.data;
|
|
11251
|
+
Logger.log("Creation result " + safeStringify(result), loggerSource);
|
|
11252
|
+
if (result != null && result.transaction_id) {
|
|
11253
|
+
var _result$rate, _result$deposit_extra;
|
|
11254
|
+
var rate = bignumber_js.BigNumber((_result$rate = result.rate) != null ? _result$rate : 0).isZero() ? bignumber_js.BigNumber(result.withdrawal_amount).div(result.deposit_amount) : bignumber_js.BigNumber(result.rate);
|
|
11255
|
+
return {
|
|
10806
11256
|
result: true,
|
|
10807
|
-
|
|
10808
|
-
|
|
10809
|
-
|
|
10810
|
-
|
|
10811
|
-
|
|
11257
|
+
swapId: result.transaction_id,
|
|
11258
|
+
fromCoin: fromCoin,
|
|
11259
|
+
fromAmount: AmountUtils.trim(result.deposit_amount, fromCoin.digits),
|
|
11260
|
+
fromAddress: result.deposit,
|
|
11261
|
+
toCoin: toCoin,
|
|
11262
|
+
toAmount: AmountUtils.trim(result.withdrawal_amount, toCoin.digits),
|
|
11263
|
+
toAddress: result.withdrawal,
|
|
11264
|
+
fromCurrencyExtraId: (_result$deposit_extra = result.deposit_extra_id) != null ? _result$deposit_extra : "",
|
|
11265
|
+
rate: AmountUtils.trim(rate, _this4._maxRateDigits),
|
|
11266
|
+
fixed: !result.is_float
|
|
10812
11267
|
};
|
|
10813
|
-
|
|
10814
|
-
|
|
10815
|
-
|
|
11268
|
+
}
|
|
11269
|
+
var errorMessage = "Swap creation succeeded but the response is wrong: " + safeStringify(response);
|
|
11270
|
+
Logger.log(errorMessage, loggerSource);
|
|
11271
|
+
throw new Error(errorMessage);
|
|
10816
11272
|
});
|
|
10817
11273
|
}, function (e) {
|
|
10818
|
-
|
|
11274
|
+
var _e$response2, _e$response3;
|
|
11275
|
+
Logger.logError(e, loggerSource, "Failed to create swap. Error is: " + safeStringify(e));
|
|
11276
|
+
var composeFailResult = function composeFailResult(reason) {
|
|
11277
|
+
return {
|
|
11278
|
+
result: false,
|
|
11279
|
+
reason: reason
|
|
11280
|
+
};
|
|
11281
|
+
};
|
|
11282
|
+
var status = e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status;
|
|
11283
|
+
var data = e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.data;
|
|
11284
|
+
if (status === 429) {
|
|
11285
|
+
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
11286
|
+
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
11287
|
+
}
|
|
11288
|
+
// TODO: [feature, low] add custom errors handling - waiting for response from letsexchange. task_id=00d2e435f6df4fb99af912135bd9ee27
|
|
11289
|
+
// 422 - missing params
|
|
11290
|
+
Logger.log("Internal error for swap: " + safeStringify(e), loggerSource);
|
|
10819
11291
|
improveAndRethrow(e, loggerSource);
|
|
10820
11292
|
}));
|
|
10821
11293
|
} catch (e) {
|
|
10822
11294
|
return Promise.reject(e);
|
|
10823
11295
|
}
|
|
10824
11296
|
};
|
|
10825
|
-
|
|
10826
|
-
(function () {
|
|
10827
|
-
try {
|
|
10828
|
-
var _temp = _catch$1(function () {
|
|
10829
|
-
return Promise.resolve(EmailsApi.sendEmail("AUTOMATIC EMAIL - SWAPSPACE REQUESTS LIMIT EXCEEDED", "Requests limit exceeded. Urgently ask swaps provider support for limit increasing")).then(function () {});
|
|
10830
|
-
}, function (e) {
|
|
10831
|
-
Logger.log("Failed to handle limit exceeding " + safeStringify(e), "_safeHandleRequestsLimitExceeding");
|
|
10832
|
-
});
|
|
10833
|
-
return _temp && _temp.then ? _temp.then(function () {}) : void 0;
|
|
10834
|
-
} catch (e) {
|
|
10835
|
-
Promise.reject(e);
|
|
10836
|
-
}
|
|
10837
|
-
})();
|
|
10838
|
-
}
|
|
10839
|
-
|
|
10840
|
-
/**
|
|
10841
|
-
* If some swap is not found by id then there is no item in return list.
|
|
10842
|
-
*
|
|
10843
|
-
* @param swapProvider {SwapProvider}
|
|
10844
|
-
* @param swapIds {string[]}
|
|
10845
|
-
* @return {Promise<{
|
|
10846
|
-
* result: true,
|
|
10847
|
-
* swaps: ExistingSwapWithFiatData[]
|
|
10848
|
-
* }|{
|
|
10849
|
-
* result: false,
|
|
10850
|
-
* reason: string
|
|
10851
|
-
* }>}
|
|
10852
|
-
*/;
|
|
10853
|
-
SwapUtils.getExistingSwapsDetailsWithFiatAmounts = function getExistingSwapsDetailsWithFiatAmounts(swapProvider, swapIds) {
|
|
11297
|
+
_proto.getExistingSwapsDetailsAndStatus = function getExistingSwapsDetailsAndStatus(swapIds) {
|
|
10854
11298
|
try {
|
|
11299
|
+
var _this5 = this;
|
|
11300
|
+
var loggerSource = "getExistingSwapsDetailsAndStatus";
|
|
10855
11301
|
return Promise.resolve(_catch$1(function () {
|
|
10856
|
-
|
|
10857
|
-
|
|
10858
|
-
|
|
10859
|
-
|
|
10860
|
-
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
|
|
10864
|
-
|
|
10865
|
-
|
|
10866
|
-
|
|
10867
|
-
|
|
10868
|
-
|
|
10869
|
-
|
|
10870
|
-
|
|
10871
|
-
|
|
10872
|
-
|
|
10873
|
-
_extendedSwaps.push(ExistingSwapWithFiatData.fromExistingSwap(swap, (fromCoinFiatRate == null ? void 0 : fromCoinFiatRate.rate) != null ? bignumber_js.BigNumber(swap.fromAmount).times(fromCoinFiatRate.rate).toNumber() : null, (toConFiatRate == null ? void 0 : toConFiatRate.rate) != null ? bignumber_js.BigNumber(swap.toAmount).times(toConFiatRate.rate).toNumber() : null, "USD", FiatCurrenciesService.getCurrencyDecimalCountByCode("USD")));
|
|
10874
|
-
});
|
|
10875
|
-
}
|
|
10876
|
-
}();
|
|
10877
|
-
if (_temp2 && _temp2.then) return _temp2.then(function () {});
|
|
10878
|
-
});
|
|
10879
|
-
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
11302
|
+
if (swapIds.find(function (id) {
|
|
11303
|
+
return typeof id !== "string";
|
|
11304
|
+
})) {
|
|
11305
|
+
throw new Error("Swap id is not string: " + safeStringify(swapIds));
|
|
11306
|
+
}
|
|
11307
|
+
return Promise.resolve(axios__default["default"].get(_this5._URL + "/v1/transactions-list?ids[]=" + swapIds.join("&ids[]="))).then(function (response) {
|
|
11308
|
+
Logger.log("All swaps RAW: " + safeStringify(response.data), loggerSource);
|
|
11309
|
+
var swaps = response.data.map(function (swap, index) {
|
|
11310
|
+
var _this5$_supportedCoin, _this5$_supportedCoin2, _swap$deposit_extra_i, _swap$withdrawal_extr, _swap$return_extra_id;
|
|
11311
|
+
var fromCoin = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
|
|
11312
|
+
return i.code === swap.coin_from && i.network === swap.coin_from_network;
|
|
11313
|
+
})) == null ? void 0 : _this5$_supportedCoin.coin;
|
|
11314
|
+
var toCoin = (_this5$_supportedCoin2 = _this5._supportedCoins.find(function (i) {
|
|
11315
|
+
return i.code === swap.coin_to && i.network === swap.coin_to_network;
|
|
11316
|
+
})) == null ? void 0 : _this5$_supportedCoin2.coin;
|
|
11317
|
+
if (!fromCoin || !toCoin) {
|
|
11318
|
+
return []; // We skip swaps with not supported coins for now
|
|
10880
11319
|
}
|
|
10881
|
-
|
|
10882
|
-
|
|
10883
|
-
|
|
10884
|
-
|
|
11320
|
+
var toUtcTimestamp = function toUtcTimestamp(timeStr) {
|
|
11321
|
+
return Date.parse(timeStr.match(/.+[Zz]$/) ? timeStr : timeStr + "Z");
|
|
11322
|
+
};
|
|
11323
|
+
var expiresAt = swap.expired_at ? swap.expired_at * 1000 : null;
|
|
11324
|
+
var createdAt = swap.created_at ? toUtcTimestamp("" + swap.created_at) : null;
|
|
11325
|
+
var isExpiredByTime = expiresAt && expiresAt < Date.now();
|
|
11326
|
+
var status = _this5._mapLetsExchangeStatusToRabbitStatus(swap.status, isExpiredByTime);
|
|
11327
|
+
var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
|
|
11328
|
+
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);
|
|
11329
|
+
}).flat();
|
|
11330
|
+
Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
|
|
11331
|
+
return {
|
|
11332
|
+
result: true,
|
|
11333
|
+
swaps: swaps
|
|
11334
|
+
};
|
|
10885
11335
|
});
|
|
10886
11336
|
}, function (e) {
|
|
10887
|
-
|
|
11337
|
+
var _e$response4, _e$response5;
|
|
11338
|
+
Logger.logError(e, loggerSource, "Failed to get swap details. Error is: " + safeStringify(e));
|
|
11339
|
+
var composeFailResult = function composeFailResult(reason) {
|
|
11340
|
+
return {
|
|
11341
|
+
result: false,
|
|
11342
|
+
reason: reason
|
|
11343
|
+
};
|
|
11344
|
+
};
|
|
11345
|
+
var status = e == null || (_e$response4 = e.response) == null ? void 0 : _e$response4.status;
|
|
11346
|
+
var data = e == null || (_e$response5 = e.response) == null ? void 0 : _e$response5.data;
|
|
11347
|
+
if (status === 429) {
|
|
11348
|
+
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
11349
|
+
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
11350
|
+
}
|
|
11351
|
+
improveAndRethrow(e, loggerSource);
|
|
10888
11352
|
}));
|
|
10889
11353
|
} catch (e) {
|
|
10890
11354
|
return Promise.reject(e);
|
|
10891
11355
|
}
|
|
11356
|
+
} // TODO: [dev] Serg, please check this during the review to make sure I did no mistakes in statuses mapping.
|
|
11357
|
+
// I will remove these comments after the review. https://api.letsexchange.io/doc
|
|
11358
|
+
// wait The exchange has just been created and it’s waiting for coins to reach the deposit wallet
|
|
11359
|
+
// confirmation The transaction appears in mempool and now it is waiting for necessary network confirmations to start.
|
|
11360
|
+
// confirmed The user’s payment is confirmed, the exchange process is about to start.
|
|
11361
|
+
// exchanging The exchange process is running.
|
|
11362
|
+
// sending Funds are being sent to the recipient`s address.
|
|
11363
|
+
// sending_confirmation The outgoing transaction is waiting for network confirmations.
|
|
11364
|
+
// success The exchange is completed and the funds are successfully sent to the recipient’s address.
|
|
11365
|
+
// aml_check_failed The deposit was marked as risky by AML check service.
|
|
11366
|
+
// overdue The deposit receiving time for this transaction has expired.
|
|
11367
|
+
// error The transaction has failed. In most cases, the amount that was sent differs from the amount that was specified when creating the transaction.
|
|
11368
|
+
// refund The exchange failed and the coins were refunded to the user's wallet.
|
|
11369
|
+
;
|
|
11370
|
+
_proto._mapLetsExchangeStatusToRabbitStatus = function _mapLetsExchangeStatusToRabbitStatus(status, isExpiredByTime) {
|
|
11371
|
+
switch (status) {
|
|
11372
|
+
case "wait":
|
|
11373
|
+
if (isExpiredByTime) {
|
|
11374
|
+
return SwapProvider.SWAP_STATUSES.EXPIRED;
|
|
11375
|
+
}
|
|
11376
|
+
return SwapProvider.SWAP_STATUSES.WAITING_FOR_PAYMENT;
|
|
11377
|
+
case "confirmation":
|
|
11378
|
+
return SwapProvider.SWAP_STATUSES.CONFIRMING;
|
|
11379
|
+
case "confirmed":
|
|
11380
|
+
return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;
|
|
11381
|
+
case "exchanging":
|
|
11382
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11383
|
+
case "sending":
|
|
11384
|
+
return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;
|
|
11385
|
+
case "sending_confirmation":
|
|
11386
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11387
|
+
case "success":
|
|
11388
|
+
return SwapProvider.SWAP_STATUSES.COMPLETED;
|
|
11389
|
+
case "refund":
|
|
11390
|
+
return SwapProvider.SWAP_STATUSES.REFUNDED;
|
|
11391
|
+
case "overdue":
|
|
11392
|
+
return SwapProvider.SWAP_STATUSES.EXPIRED;
|
|
11393
|
+
case "aml_check_failed":
|
|
11394
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11395
|
+
case "error":
|
|
11396
|
+
return SwapProvider.SWAP_STATUSES.FAILED;
|
|
11397
|
+
default:
|
|
11398
|
+
throw new Error("Unknown LetsExchange status: " + status);
|
|
11399
|
+
}
|
|
10892
11400
|
};
|
|
10893
|
-
return
|
|
10894
|
-
}();
|
|
11401
|
+
return LetsExchangeSwapProvider;
|
|
11402
|
+
}(SwapProvider);
|
|
11403
|
+
LetsExchangeSwapProvider.AFFILIATE_ID = "0zbj9hf7xg7jgdgv";
|
|
10895
11404
|
|
|
10896
11405
|
function _catch(body, recover) {
|
|
10897
11406
|
try {
|
|
@@ -10909,13 +11418,16 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10909
11418
|
this._swapProvider = new SwapspaceSwapProvider(apiKeysProxyUrl, cache, function () {
|
|
10910
11419
|
return null;
|
|
10911
11420
|
}, false);
|
|
11421
|
+
this._fixedSwapProvider = new LetsExchangeSwapProvider(apiKeysProxyUrl, cache, function () {
|
|
11422
|
+
return null;
|
|
11423
|
+
}, false);
|
|
10912
11424
|
}
|
|
10913
11425
|
var _proto = PublicSwapService.prototype;
|
|
10914
11426
|
_proto.initialize = function initialize() {
|
|
10915
11427
|
try {
|
|
10916
11428
|
var _this = this;
|
|
10917
11429
|
var _temp = _catch(function () {
|
|
10918
|
-
return Promise.resolve(_this._swapProvider.initialize()).then(function () {});
|
|
11430
|
+
return Promise.resolve(Promise.all([_this._swapProvider.initialize(), _this._fixedSwapProvider.initialize()])).then(function () {});
|
|
10919
11431
|
}, function (e) {
|
|
10920
11432
|
Logger.logError(e, "PublicSwapService.initialize");
|
|
10921
11433
|
});
|
|
@@ -10923,39 +11435,61 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10923
11435
|
} catch (e) {
|
|
10924
11436
|
return Promise.reject(e);
|
|
10925
11437
|
}
|
|
10926
|
-
}
|
|
11438
|
+
}
|
|
11439
|
+
/**
|
|
11440
|
+
* Gets all currencies across all partners. Useful for sitemap or supported currencies count/list.
|
|
11441
|
+
*
|
|
11442
|
+
* @return {Promise<{result: boolean, coins: Coin[]}|{result: boolean, reason: string}>}
|
|
11443
|
+
*/
|
|
11444
|
+
;
|
|
10927
11445
|
_proto.getAllSupportedCurrenciesListForPublicSwap = function getAllSupportedCurrenciesListForPublicSwap() {
|
|
10928
11446
|
try {
|
|
10929
11447
|
var _this2 = this;
|
|
10930
11448
|
var loggerSource = "getAllSupportedCurrenciesListForPublicSwap";
|
|
10931
11449
|
return Promise.resolve(_catch(function () {
|
|
10932
|
-
return Promise.resolve(_this2.
|
|
10933
|
-
|
|
10934
|
-
|
|
10935
|
-
|
|
11450
|
+
return Promise.resolve(_this2.initialize()).then(function () {
|
|
11451
|
+
return Promise.resolve(Promise.all([_this2._fixedSwapProvider.getAllSupportedCurrencies(), _this2._swapProvider.getAllSupportedCurrencies()])).then(function (result) {
|
|
11452
|
+
var _result$0$coins, _result$1$coins, _result$coins;
|
|
11453
|
+
var allCoins = [].concat((_result$0$coins = result[0].coins) != null ? _result$0$coins : []);
|
|
11454
|
+
((_result$1$coins = result[1].coins) != null ? _result$1$coins : []).forEach(function (c) {
|
|
11455
|
+
if (!allCoins.find(function (existingCoin) {
|
|
11456
|
+
return existingCoin.ticker === c.ticker;
|
|
11457
|
+
})) {
|
|
11458
|
+
allCoins.push(c);
|
|
11459
|
+
}
|
|
11460
|
+
});
|
|
11461
|
+
if (result[0].reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED || result[1].reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
11462
|
+
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
11463
|
+
// TODO: [dev] improve this during the whitebit integration. task_id=20e7e41211b540d081bf98f392a34b2c
|
|
11464
|
+
// return {
|
|
11465
|
+
// result: false,
|
|
11466
|
+
// reason: PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED,
|
|
11467
|
+
// };
|
|
11468
|
+
} else if (result[0].reason || result[1].reason) {
|
|
11469
|
+
console.log("Failed to get all supported coins", result[0].reason, result[1].reason);
|
|
11470
|
+
}
|
|
11471
|
+
Logger.log("Retrieved " + (result == null || (_result$coins = result.coins) == null ? void 0 : _result$coins.length) + " supported currencies for swap", loggerSource);
|
|
10936
11472
|
return {
|
|
10937
|
-
result:
|
|
10938
|
-
|
|
11473
|
+
result: true,
|
|
11474
|
+
coins: allCoins
|
|
10939
11475
|
};
|
|
10940
|
-
}
|
|
10941
|
-
Logger.log("Retrieved " + (result == null || (_result$coins = result.coins) == null ? void 0 : _result$coins.length) + " supported currencies for swap", loggerSource);
|
|
10942
|
-
return {
|
|
10943
|
-
result: true,
|
|
10944
|
-
coins: result.coins
|
|
10945
|
-
};
|
|
11476
|
+
});
|
|
10946
11477
|
});
|
|
10947
11478
|
}, function (e) {
|
|
10948
|
-
improveAndRethrow(e, "
|
|
11479
|
+
improveAndRethrow(e, "getAllSupportedCurrenciesListForPublicSwap");
|
|
10949
11480
|
}));
|
|
10950
11481
|
} catch (e) {
|
|
10951
11482
|
return Promise.reject(e);
|
|
10952
11483
|
}
|
|
10953
11484
|
};
|
|
10954
|
-
_proto.getDepositCurrenciesListForPublicSwap = function getDepositCurrenciesListForPublicSwap() {
|
|
11485
|
+
_proto.getDepositCurrenciesListForPublicSwap = function getDepositCurrenciesListForPublicSwap(fixed) {
|
|
11486
|
+
if (fixed === void 0) {
|
|
11487
|
+
fixed = false;
|
|
11488
|
+
}
|
|
10955
11489
|
try {
|
|
10956
11490
|
var _this3 = this;
|
|
10957
11491
|
return Promise.resolve(_catch(function () {
|
|
10958
|
-
return Promise.resolve(_this3._getCurrenciesListForPublicSwap(false));
|
|
11492
|
+
return Promise.resolve(_this3._getCurrenciesListForPublicSwap(false, fixed));
|
|
10959
11493
|
}, function (e) {
|
|
10960
11494
|
improveAndRethrow(e, "getDepositCurrenciesListForPublicSwap");
|
|
10961
11495
|
}));
|
|
@@ -10963,11 +11497,14 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10963
11497
|
return Promise.reject(e);
|
|
10964
11498
|
}
|
|
10965
11499
|
};
|
|
10966
|
-
_proto.getWithdrawCurrenciesListForPublicSwap = function getWithdrawCurrenciesListForPublicSwap() {
|
|
11500
|
+
_proto.getWithdrawCurrenciesListForPublicSwap = function getWithdrawCurrenciesListForPublicSwap(fixed) {
|
|
11501
|
+
if (fixed === void 0) {
|
|
11502
|
+
fixed = false;
|
|
11503
|
+
}
|
|
10967
11504
|
try {
|
|
10968
11505
|
var _this4 = this;
|
|
10969
11506
|
return Promise.resolve(_catch(function () {
|
|
10970
|
-
return Promise.resolve(_this4._getCurrenciesListForPublicSwap(true));
|
|
11507
|
+
return Promise.resolve(_this4._getCurrenciesListForPublicSwap(true, fixed));
|
|
10971
11508
|
}, function (e) {
|
|
10972
11509
|
improveAndRethrow(e, "getWithdrawCurrenciesListForPublicSwap");
|
|
10973
11510
|
}));
|
|
@@ -10975,15 +11512,19 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
10975
11512
|
return Promise.reject(e);
|
|
10976
11513
|
}
|
|
10977
11514
|
};
|
|
10978
|
-
_proto._getCurrenciesListForPublicSwap = function _getCurrenciesListForPublicSwap(withdraw) {
|
|
11515
|
+
_proto._getCurrenciesListForPublicSwap = function _getCurrenciesListForPublicSwap(withdraw, fixed) {
|
|
10979
11516
|
if (withdraw === void 0) {
|
|
10980
11517
|
withdraw = false;
|
|
10981
11518
|
}
|
|
11519
|
+
if (fixed === void 0) {
|
|
11520
|
+
fixed = false;
|
|
11521
|
+
}
|
|
10982
11522
|
try {
|
|
10983
11523
|
var _this5 = this;
|
|
10984
11524
|
var loggerSource = "getCurrenciesListForPublicSwap";
|
|
10985
11525
|
return Promise.resolve(_catch(function () {
|
|
10986
|
-
|
|
11526
|
+
var provider = fixed ? _this5._fixedSwapProvider : _this5._swapProvider;
|
|
11527
|
+
return Promise.resolve(withdraw ? provider.getWithdrawalCurrencies() : provider.getDepositCurrencies()).then(function (result) {
|
|
10987
11528
|
var _result$coins2;
|
|
10988
11529
|
if (result.reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
10989
11530
|
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
@@ -11008,6 +11549,9 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11008
11549
|
/**
|
|
11009
11550
|
* Retrieves initial data for swapping two coins.
|
|
11010
11551
|
*
|
|
11552
|
+
* Always FLOATING rate, FIXED is not supported - if you want to change it the default rate - all
|
|
11553
|
+
* the swaps code logic should be verified to align with this change.
|
|
11554
|
+
*
|
|
11011
11555
|
* @param fromCoin {Coin}
|
|
11012
11556
|
* @param toCoin {Coin}
|
|
11013
11557
|
* @return {Promise<{
|
|
@@ -11060,6 +11604,8 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11060
11604
|
* @param fromAmountCoins {string}
|
|
11061
11605
|
* @param [fixed=false] {boolean|null} null means fixed or float doesn't matter
|
|
11062
11606
|
* @param [withoutFiat=false] {boolean} pass true if you don't need the fiat equivalent - this will diminish requests count
|
|
11607
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount.
|
|
11608
|
+
* False means the amount is the sending amount.
|
|
11063
11609
|
* @return {Promise<{
|
|
11064
11610
|
* result: false,
|
|
11065
11611
|
* reason: string,
|
|
@@ -11074,21 +11620,24 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11074
11620
|
* }>}
|
|
11075
11621
|
*/
|
|
11076
11622
|
;
|
|
11077
|
-
_proto.getPublicSwapDetails = function getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins, fixed, withoutFiat) {
|
|
11623
|
+
_proto.getPublicSwapDetails = function getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins, fixed, withoutFiat, amountIsToReceive) {
|
|
11078
11624
|
if (fixed === void 0) {
|
|
11079
11625
|
fixed = false;
|
|
11080
11626
|
}
|
|
11081
11627
|
if (withoutFiat === void 0) {
|
|
11082
11628
|
withoutFiat = false;
|
|
11083
11629
|
}
|
|
11630
|
+
if (amountIsToReceive === void 0) {
|
|
11631
|
+
amountIsToReceive = false;
|
|
11632
|
+
}
|
|
11084
11633
|
try {
|
|
11085
11634
|
var _this7 = this;
|
|
11086
11635
|
var loggerSource = "getPublicSwapDetails";
|
|
11087
11636
|
return Promise.resolve(_catch(function () {
|
|
11088
|
-
function _temp2(
|
|
11089
|
-
var
|
|
11090
|
-
var coinUsdtRate = withoutFiat ?
|
|
11091
|
-
return Promise.resolve(_this7._swapProvider.getSwapInfo(fromCoin, toCoin, fromAmountCoins, fixed, coinUsdtRate)).then(function (details) {
|
|
11637
|
+
function _temp2(_getCoinToUSDTRate) {
|
|
11638
|
+
var _getCoinToUSDTRate$ra;
|
|
11639
|
+
var coinUsdtRate = withoutFiat ? _getCoinToUSDTRate : (_getCoinToUSDTRate$ra = _getCoinToUSDTRate == null ? void 0 : _getCoinToUSDTRate.rate) != null ? _getCoinToUSDTRate$ra : null;
|
|
11640
|
+
return Promise.resolve((fixed ? _this7._fixedSwapProvider : _this7._swapProvider).getSwapInfo(fromCoin, toCoin, fromAmountCoins, fixed, coinUsdtRate, amountIsToReceive)).then(function (details) {
|
|
11092
11641
|
var _result$swapCreationI, _result$swapCreationI2;
|
|
11093
11642
|
// eslint-disable-next-line no-console
|
|
11094
11643
|
console.log("getSwapInfo result: ", details);
|
|
@@ -11149,7 +11698,10 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11149
11698
|
return result;
|
|
11150
11699
|
});
|
|
11151
11700
|
}
|
|
11152
|
-
|
|
11701
|
+
if (amountIsToReceive && !fixed) {
|
|
11702
|
+
throw new Error("Estimating allowed only for fixed rate.");
|
|
11703
|
+
}
|
|
11704
|
+
return withoutFiat ? _temp2(null) : Promise.resolve((fixed ? _this7._fixedSwapProvider : _this7._swapProvider).getCoinToUSDTRate(fromCoin)).then(_temp2);
|
|
11153
11705
|
}, function (e) {
|
|
11154
11706
|
improveAndRethrow(e, loggerSource);
|
|
11155
11707
|
}));
|
|
@@ -11162,13 +11714,15 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11162
11714
|
*
|
|
11163
11715
|
* @param fromCoin {Coin}
|
|
11164
11716
|
* @param toCoin {Coin}
|
|
11165
|
-
* @param
|
|
11717
|
+
* @param amount {string}
|
|
11166
11718
|
* @param swapCreationInfo {BaseSwapCreationInfo}
|
|
11167
11719
|
* @param toAddress {string}
|
|
11168
11720
|
* @param refundAddress {string}
|
|
11169
11721
|
* @param clientIp {string}
|
|
11170
11722
|
* @param [toCurrencyExtraId] {string}
|
|
11171
11723
|
* @param [refundExtraId] {string}
|
|
11724
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount.
|
|
11725
|
+
* False means the amount is the sending amount.
|
|
11172
11726
|
* @return {Promise<{
|
|
11173
11727
|
* result: true,
|
|
11174
11728
|
* fiatCurrencyCode: string,
|
|
@@ -11191,20 +11745,23 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11191
11745
|
* }>}
|
|
11192
11746
|
*/
|
|
11193
11747
|
;
|
|
11194
|
-
_proto.createPublicSwap = function createPublicSwap(fromCoin, toCoin,
|
|
11748
|
+
_proto.createPublicSwap = function createPublicSwap(fromCoin, toCoin, amount, swapCreationInfo, toAddress, refundAddress, clientIp, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
11749
|
+
if (amountIsToReceive === void 0) {
|
|
11750
|
+
amountIsToReceive = false;
|
|
11751
|
+
}
|
|
11195
11752
|
try {
|
|
11196
11753
|
var _this8 = this;
|
|
11197
11754
|
var loggerSource = "createPublicSwap";
|
|
11198
11755
|
return Promise.resolve(_catch(function () {
|
|
11199
11756
|
var _swapCreationInfo$fro, _swapCreationInfo$toC;
|
|
11200
|
-
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof
|
|
11201
|
-
throw new Error("Wrong input: " + fromCoin.ticker + " " + toCoin.ticker + " " +
|
|
11757
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || swapCreationInfo.isRefundAddressRequired && (typeof refundAddress !== "string" || refundAddress.length === 0) || !(swapCreationInfo instanceof BaseSwapCreationInfo)) {
|
|
11758
|
+
throw new Error("Wrong input: " + fromCoin.ticker + " " + toCoin.ticker + " " + amount + " " + swapCreationInfo);
|
|
11202
11759
|
}
|
|
11203
|
-
Logger.log("Start: " +
|
|
11760
|
+
Logger.log("Start: " + amount + " " + fromCoin.ticker + " -> " + toCoin.ticker + ". Details: " + safeStringify(_extends({}, swapCreationInfo, {
|
|
11204
11761
|
fromCoin: swapCreationInfo == null || (_swapCreationInfo$fro = swapCreationInfo.fromCoin) == null ? void 0 : _swapCreationInfo$fro.ticker,
|
|
11205
11762
|
toCoin: swapCreationInfo == null || (_swapCreationInfo$toC = swapCreationInfo.toCoin) == null ? void 0 : _swapCreationInfo$toC.ticker
|
|
11206
11763
|
})), loggerSource);
|
|
11207
|
-
return Promise.resolve(_this8._swapProvider.createSwap(fromCoin, toCoin,
|
|
11764
|
+
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) {
|
|
11208
11765
|
var _exit;
|
|
11209
11766
|
function _temp6(_result8) {
|
|
11210
11767
|
if (_exit) return _result8;
|
|
@@ -11234,7 +11791,7 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11234
11791
|
if (result.result && result != null && result.swapId) {
|
|
11235
11792
|
var _temp4 = function _temp4() {
|
|
11236
11793
|
var _result$fromCurrencyE;
|
|
11237
|
-
// TODO: feature, cirtical] add GA event. task_id=
|
|
11794
|
+
// TODO: feature, cirtical] add GA event. task_id=091004f1b6b748b29ddece6a130df904
|
|
11238
11795
|
EventBusInstance__default["default"].dispatch(PublicSwapService.PUBLIC_SWAP_CREATED_EVENT, null, fromCoin.ticker, toCoin.ticker, _fromAmountFiat);
|
|
11239
11796
|
var toReturn = {
|
|
11240
11797
|
result: true,
|
|
@@ -11314,7 +11871,7 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11314
11871
|
var _this9 = this;
|
|
11315
11872
|
var loggerSource = "getPublicExistingSwapDetailsAndStatus";
|
|
11316
11873
|
return Promise.resolve(_catch(function () {
|
|
11317
|
-
return Promise.resolve(SwapUtils.getExistingSwapsDetailsWithFiatAmounts(_this9._swapProvider, swapIds)).then(function (result) {
|
|
11874
|
+
return Promise.resolve(SwapUtils.getExistingSwapsDetailsWithFiatAmounts([_this9._swapProvider, _this9._fixedSwapProvider], swapIds)).then(function (result) {
|
|
11318
11875
|
if (!(result != null && result.result)) {
|
|
11319
11876
|
if (result.reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
11320
11877
|
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
@@ -11409,18 +11966,24 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11409
11966
|
|
|
11410
11967
|
/**
|
|
11411
11968
|
* @param coinOrTicker {Coin|string}
|
|
11969
|
+
* @param [isFixed=true] {boolean} rate type
|
|
11412
11970
|
* @return {string} icon URL (ready to use)
|
|
11413
11971
|
*/;
|
|
11414
|
-
_proto.getAssetIconUrl = function getAssetIconUrl(coinOrTicker) {
|
|
11415
|
-
|
|
11972
|
+
_proto.getAssetIconUrl = function getAssetIconUrl(coinOrTicker, isFixed) {
|
|
11973
|
+
// TODO: [feature, high] improve this logic - currently hacked to show better icons from fixed provider. task_id=3b6b8c2a9df04a86aaff2e070424b64f
|
|
11974
|
+
return this._fixedSwapProvider.getIconUrl(coinOrTicker);
|
|
11416
11975
|
}
|
|
11417
11976
|
|
|
11418
11977
|
/**
|
|
11419
11978
|
* @param ticker {string}
|
|
11979
|
+
* @param [fixed=false] {boolean}
|
|
11420
11980
|
* @return {Coin|null}
|
|
11421
11981
|
*/;
|
|
11422
|
-
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker) {
|
|
11423
|
-
|
|
11982
|
+
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker, fixed) {
|
|
11983
|
+
if (fixed === void 0) {
|
|
11984
|
+
fixed = false;
|
|
11985
|
+
}
|
|
11986
|
+
return !fixed ? this._swapProvider.getCoinByTickerIfPresent(ticker) : this._fixedSwapProvider.getCoinByTickerIfPresent(ticker);
|
|
11424
11987
|
}
|
|
11425
11988
|
|
|
11426
11989
|
/**
|
|
@@ -11433,8 +11996,18 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11433
11996
|
var _this11 = this;
|
|
11434
11997
|
return Promise.resolve(_catch(function () {
|
|
11435
11998
|
return Promise.resolve(_this11._swapProvider.getCoinToUSDTRate(asset)).then(function (result) {
|
|
11436
|
-
|
|
11437
|
-
|
|
11999
|
+
function _temp10() {
|
|
12000
|
+
var _result$rate, _result13;
|
|
12001
|
+
return (_result$rate = (_result13 = result) == null ? void 0 : _result13.rate) != null ? _result$rate : null;
|
|
12002
|
+
}
|
|
12003
|
+
var _temp9 = function (_result14) {
|
|
12004
|
+
if (((_result14 = result) == null ? void 0 : _result14.rate) == null) {
|
|
12005
|
+
return Promise.resolve(_this11._fixedSwapProvider.getCoinToUSDTRate(asset)).then(function (_this11$_fixedSwapPro) {
|
|
12006
|
+
result = _this11$_fixedSwapPro;
|
|
12007
|
+
});
|
|
12008
|
+
}
|
|
12009
|
+
}();
|
|
12010
|
+
return _temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9);
|
|
11438
12011
|
});
|
|
11439
12012
|
}, function (e) {
|
|
11440
12013
|
improveAndRethrow(e, "getAssetToUsdtRate");
|
|
@@ -11446,12 +12019,16 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11446
12019
|
/**
|
|
11447
12020
|
* @param asset {Coin}
|
|
11448
12021
|
* @param address {string}
|
|
12022
|
+
* @param [fixed=false] {boolean}
|
|
11449
12023
|
* @return {boolean}
|
|
11450
12024
|
*/
|
|
11451
12025
|
;
|
|
11452
|
-
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
12026
|
+
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address, fixed) {
|
|
12027
|
+
if (fixed === void 0) {
|
|
12028
|
+
fixed = false;
|
|
12029
|
+
}
|
|
11453
12030
|
try {
|
|
11454
|
-
return this._swapProvider.isAddressValidForAsset(asset, address);
|
|
12031
|
+
return !fixed ? this._swapProvider.isAddressValidForAsset(asset, address) : this._fixedSwapProvider.isAddressValidForAsset(asset, address);
|
|
11455
12032
|
} catch (e) {
|
|
11456
12033
|
improveAndRethrow(e, "isAddressValidForAsset");
|
|
11457
12034
|
}
|
|
@@ -11461,20 +12038,24 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11461
12038
|
* Retrieves token by contract address.
|
|
11462
12039
|
*
|
|
11463
12040
|
* @param addressString {string}
|
|
12041
|
+
* @param [fixed=false] {boolean}
|
|
11464
12042
|
* @return {Promise<Coin|null>}
|
|
11465
12043
|
*/;
|
|
11466
|
-
_proto.getTokenByContractAddress = function getTokenByContractAddress(addressString) {
|
|
12044
|
+
_proto.getTokenByContractAddress = function getTokenByContractAddress(addressString, fixed) {
|
|
12045
|
+
if (fixed === void 0) {
|
|
12046
|
+
fixed = false;
|
|
12047
|
+
}
|
|
11467
12048
|
try {
|
|
11468
12049
|
var _exit3;
|
|
11469
12050
|
var _this12 = this;
|
|
11470
|
-
var
|
|
12051
|
+
var _temp12 = _catch(function () {
|
|
11471
12052
|
if (!addressString) {
|
|
11472
|
-
var
|
|
12053
|
+
var _temp11 = null;
|
|
11473
12054
|
_exit3 = 1;
|
|
11474
|
-
return
|
|
12055
|
+
return _temp11;
|
|
11475
12056
|
}
|
|
11476
12057
|
var addressLowerCase = addressString.toLowerCase();
|
|
11477
|
-
return Promise.resolve(_this12._swapProvider.getAllSupportedCurrencies()).then(function (allCoins) {
|
|
12058
|
+
return Promise.resolve((fixed ? _this12._fixedSwapProvider : _this12._swapProvider).getAllSupportedCurrencies()).then(function (allCoins) {
|
|
11478
12059
|
if (allCoins.result) {
|
|
11479
12060
|
var _allCoins$coins$find = allCoins.coins.find(function (coin) {
|
|
11480
12061
|
return coin.tokenAddress && coin.tokenAddress.toLowerCase() === addressLowerCase;
|
|
@@ -11486,21 +12067,25 @@ var PublicSwapService = /*#__PURE__*/function () {
|
|
|
11486
12067
|
}, function (e) {
|
|
11487
12068
|
Logger.logError(e, "getTokenByContractAddress");
|
|
11488
12069
|
});
|
|
11489
|
-
return Promise.resolve(
|
|
11490
|
-
return _exit3 ?
|
|
11491
|
-
}) : _exit3 ?
|
|
12070
|
+
return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(function (_result15) {
|
|
12071
|
+
return _exit3 ? _result15 : null;
|
|
12072
|
+
}) : _exit3 ? _temp12 : null);
|
|
11492
12073
|
} catch (e) {
|
|
11493
12074
|
return Promise.reject(e);
|
|
11494
12075
|
}
|
|
11495
12076
|
}
|
|
11496
12077
|
/**
|
|
11497
12078
|
* @param asset {Coin}
|
|
12079
|
+
* @param [fixed=false] {boolean}
|
|
11498
12080
|
* @return {string|null}
|
|
11499
12081
|
*/
|
|
11500
12082
|
;
|
|
11501
|
-
_proto.getExtraIdNameIfPresentForAsset = function getExtraIdNameIfPresentForAsset(asset) {
|
|
12083
|
+
_proto.getExtraIdNameIfPresentForAsset = function getExtraIdNameIfPresentForAsset(asset, fixed) {
|
|
12084
|
+
if (fixed === void 0) {
|
|
12085
|
+
fixed = false;
|
|
12086
|
+
}
|
|
11502
12087
|
try {
|
|
11503
|
-
return this._swapProvider.getExtraIdNameIfPresent(asset);
|
|
12088
|
+
return (fixed ? this._fixedSwapProvider : this._swapProvider).getExtraIdNameIfPresent(asset);
|
|
11504
12089
|
} catch (e) {
|
|
11505
12090
|
improveAndRethrow(e, "getExtraIdNameIfPresentForAsset");
|
|
11506
12091
|
}
|