@rabbitio/ui-kit 1.0.0-beta.72 → 1.0.0-beta.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/clover.xml +6441 -1864
- package/coverage/coverage-final.json +157 -95
- package/coverage/index.html +339 -84
- package/coverage/{rabbit-ui-kit → ui-kit}/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/index.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/axiosAdapter.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/qrUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/amountUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/errorUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/apiGroups.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/ipAddressProviders.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/fiatCurrenciesService.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/globalConstants.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/blockchain.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/coin.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/protocol.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/cache.js.html +8 -8
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/emailAPI.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/logger.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/logsStorage.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/postponeExecution.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/safeStringify.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/index.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cacheAndConcurrentRequestsResolver.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cachedRobustExternalApiCallerService.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cancelProcessing.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/concurrentCalculationsMetadataHolder.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/externalApiProvider.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/externalServicesStatsCollector.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/robustExternalAPICallerService.js.html +3 -3
- package/coverage/ui-kit/src/swaps-lib/external-apis/index.html +146 -0
- package/coverage/ui-kit/src/swaps-lib/external-apis/letsExchangeSwapProvider.js.html +1456 -0
- package/coverage/ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +1390 -0
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +45 -585
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/baseSwapCreationInfo.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwap.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwapWithFiatData.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/publicSwapService.js.html +233 -50
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/index.html +13 -13
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/swapUtils.js.html +121 -46
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowTosca.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowWhite.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/darkRectangle.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/determinedError.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/failedValidationIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/infoIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/noticeQuestionIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/successfulValidationIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/walletIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetIcon/AssetIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetIcon/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetSelection/AssetSelection.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetSelection/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/BackgroundTitle/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/InformationMessage/InformationMessage.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/InformationMessage/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Input/Input.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Input/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/LoadingDots/LoadingDots.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/LoadingDots/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/NoticeIcon/NoticeIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/NoticeIcon/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/QrCode/QrCode.jsx.html +52 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/QrCode/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/RateSelector/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/SupportChat/SupportChat.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/SupportChat/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Textarea/Textarea.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Textarea/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TitleBox/TitleBox.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TitleBox/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Tooltip/Tooltip.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Tooltip/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TwoLinesOfText/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Validation/Validation.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Validation/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Button/Button.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Button/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Close/Close.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Close/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/LinkButton/LinkButton.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/LinkButton/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/AmountInput/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/CoinPicker/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/LineWithIconLink/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/CoinPickerDialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/Dialog.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx.html +171 -39
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/SwapForm/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useCallHandlingErrors.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useIsHydrated.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useReferredState.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/inputValueProviders.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/textUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/uiUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/urlQueryUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/BackgroundTitle.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LinesOfText.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LoadingDots.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/QrCode.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/RateSelector.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/Validation.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Button.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Close.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/LinkButton.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/LineWithIconLink.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/TitledLineWithIconLink.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/Dialog.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/exampleContent.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/index.html +3 -3
- package/coverage/ui-kit/storybook-static/124.c2d01e5e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/138.56b7edc4.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/312.6f62bbd9.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/341.57a15f57.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/370.73bb343e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/595.2e40d981.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/607.3ea32459.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/609.8c79ec77.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/666.09fdc1d7.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/797.c87cdf19.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/822.4bc0ebce.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/833.08e3ebb6.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/862.bf6bfe62.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/87.0a1bfeb1.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/893.4b09f929.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/996.846a677b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-BackgroundTitle-stories.1a5386a1.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-LinesOfText-stories.7043a48b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-LoadingDots-stories.091245c7.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-QrCode-stories.e10363b6.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-RateSelector-stories.af208e9a.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-Validation-stories.d561b311.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-Button-stories.e8e6b930.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-Close-stories.0a902a7c.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-LinkButton-stories.ca93ab6b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/index.html +596 -0
- package/coverage/ui-kit/storybook-static/main.41f410f2.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/molecules-LineWithIconLink-stories.9721a18c.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/molecules-TitledLineWithIconLink-stories.1383fe3f.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-Dialog-stories.4e6da717.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-DialogButtons-DialogButtons-stories.6f45ae6e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-DialogStep-DialogStep-stories.74896048.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/addon-backgrounds/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/addon-backgrounds/dist/preview.js.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/components/dist/formatter-SWP5E3XI.mjs.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/components/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/buffer/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/buffer/index.js.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/markdown-to-jsx/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/markdown-to-jsx/dist/index.modern.js.html +118 -0
- package/coverage/ui-kit/storybook-static/runtime~main.ad918f38.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/sb-addons/actions-9/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/actions-9/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-backgrounds-2/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-backgrounds-2/manager-bundle.js.html +121 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-controls-1/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.html +274 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-measure-4/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-measure-4/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-outline-5/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-outline-5/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-toolbars-3/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-toolbars-3/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/interactions-7/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/interactions-7/manager-bundle.js.html +121 -0
- package/coverage/ui-kit/storybook-static/sb-addons/links-0/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/links-0/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/onboarding-6/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/onboarding-6/manager-bundle.js.html +1588 -0
- package/coverage/ui-kit/storybook-static/sb-addons/viewport-8/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/viewport-8/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-manager/WithTooltip-V3YHNWJZ-LVYLGZW2.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-2IXBUOFS.js.html +106 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-INSKDKQB.js.html +1129 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-NGTUFCUO.js.html +112 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-UUEAOBSN.js.html +1303 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-ZEU7PDD3.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/formatter-SWP5E3XI-7BGIK6BL.js.html +553 -0
- package/coverage/ui-kit/storybook-static/sb-manager/globals-module-info.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/globals.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/index.html +281 -0
- package/coverage/ui-kit/storybook-static/sb-manager/index.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/runtime.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/syntaxhighlighter-V7JZZA35-DXZCI2WR.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-preview/globals.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-preview/index.html +131 -0
- package/coverage/ui-kit/storybook-static/sb-preview/runtime.js.html +421 -0
- package/coverage/ui-kit/storybook-static/templates-DeterminedErrorDialogStep-stories.3cc14214.iframe.bundle.js.html +85 -0
- package/dist/index.cjs +1201 -605
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +786 -330
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +1201 -605
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1201 -605
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/swaps-lib/external-apis/letsExchangeSwapProvider.js +457 -0
- package/src/swaps-lib/external-apis/swapProvider.js +246 -20
- package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +20 -200
- package/src/swaps-lib/services/publicSwapService.js +105 -44
- package/src/swaps-lib/test/external-apis/swapProvider/removeProtocolNameFromCoinName.test.js +142 -0
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +2 -2
- package/src/swaps-lib/utils/swapUtils.js +63 -38
- package/src/ui-kit/components/atoms/QrCode/QrCode.jsx +16 -1
- package/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx +77 -33
- package/src/ui-kit/components/organisms/SwapForm/swap-form.module.scss +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/index.html +0 -131
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +0 -712
package/dist/index.umd.js
CHANGED
|
@@ -1645,7 +1645,7 @@
|
|
|
1645
1645
|
return Logger;
|
|
1646
1646
|
}();
|
|
1647
1647
|
|
|
1648
|
-
function _catch$
|
|
1648
|
+
function _catch$f(body, recover) {
|
|
1649
1649
|
try {
|
|
1650
1650
|
var result = body();
|
|
1651
1651
|
} catch (e) {
|
|
@@ -1661,7 +1661,7 @@
|
|
|
1661
1661
|
setState = _useState[1];
|
|
1662
1662
|
return React.useCallback(function (functionToBeCalled, event) {
|
|
1663
1663
|
try {
|
|
1664
|
-
var _temp = _catch$
|
|
1664
|
+
var _temp = _catch$f(function () {
|
|
1665
1665
|
return Promise.resolve(functionToBeCalled(event)).then(function () {});
|
|
1666
1666
|
}, function (error) {
|
|
1667
1667
|
Logger.logError(error, (functionToBeCalled == null ? void 0 : functionToBeCalled.name) || "errorBoundaryTrigger", "Caught by ErrorBoundary");
|
|
@@ -4599,6 +4599,15 @@
|
|
|
4599
4599
|
* @return {string|null}
|
|
4600
4600
|
*/
|
|
4601
4601
|
|
|
4602
|
+
/**
|
|
4603
|
+
* Callback to handle isFixed flag change.
|
|
4604
|
+
*
|
|
4605
|
+
* @function
|
|
4606
|
+
* @name onIsFixedChange
|
|
4607
|
+
* @param {boolean} isFixedNewValue - new value
|
|
4608
|
+
* @return {void}
|
|
4609
|
+
*/
|
|
4610
|
+
|
|
4602
4611
|
/**
|
|
4603
4612
|
* Function validating addresses.
|
|
4604
4613
|
* By default, will treat any addresses as valid.
|
|
@@ -4608,6 +4617,7 @@
|
|
|
4608
4617
|
* @name validateAddressByTicker
|
|
4609
4618
|
* @param {string} ticker - Ticker symbol of the asset.
|
|
4610
4619
|
* @param {string} address - Address to be validated
|
|
4620
|
+
* @param {boolean} isFixed - Is swap rate mode = fixed
|
|
4611
4621
|
* @return {Promise<boolean>}
|
|
4612
4622
|
*/
|
|
4613
4623
|
|
|
@@ -4655,16 +4665,18 @@
|
|
|
4655
4665
|
* @param {boolean} [props.formHasFiat] - Indicates if the form supports fiat currency.
|
|
4656
4666
|
* @param {string|null} [props.termsOfUseUrl] - Terms of use URL, shown only if both terms & privacy policy passed.
|
|
4657
4667
|
* @param {string|null} [props.privacyPolicyUrl] - Privacy policy of use URL, shown only if both terms & privacy policy passed.
|
|
4668
|
+
* @param {string} props.recipientAddressExtraIdName - Extra ID name for the recipient address.
|
|
4669
|
+
* @param {string} props.refundAddressExtraIdName - Extra ID name for the refund address.
|
|
4658
4670
|
* @param {object} [props.translations] - Object containing translations, default English texts will be used if omitted.
|
|
4659
4671
|
* @param {string} props.swapSeparatorIconSrc - Source URL for the swap separator icon.
|
|
4660
4672
|
* @param {boolean} props.swapButtonAlwaysActive - Setting that allows the form state to proceed to the next step regardless of validity.
|
|
4661
|
-
* @param {getExtraIdNameByTicker} props.getExtraIdNameByTicker - Function returning extraId name for asset
|
|
4662
4673
|
* @param {validateAddressByTicker} [props.validateAddressByTicker] - Function validating address
|
|
4674
|
+
* @param {onIsFixedChange} [props.onIsFixedChange] - callback for changed isFixed
|
|
4663
4675
|
* @return {JSX.Element} Rendered SwapForm component.
|
|
4664
4676
|
* @constructor
|
|
4665
4677
|
*/
|
|
4666
4678
|
|
|
4667
|
-
function _catch$
|
|
4679
|
+
function _catch$e(body, recover) {
|
|
4668
4680
|
try {
|
|
4669
4681
|
var result = body();
|
|
4670
4682
|
} catch (e) {
|
|
@@ -4676,7 +4688,7 @@
|
|
|
4676
4688
|
return result;
|
|
4677
4689
|
}
|
|
4678
4690
|
var SwapForm = function SwapForm(_ref) {
|
|
4679
|
-
var _isFixedRate$current2, _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5
|
|
4691
|
+
var _isFixedRate$current2, _isFixedRate$current3, _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5;
|
|
4680
4692
|
var sendingAssetTicker = _ref.sendingAssetTicker,
|
|
4681
4693
|
receivingAssetTicker = _ref.receivingAssetTicker,
|
|
4682
4694
|
_ref$sendingAssetDeci = _ref.sendingAssetDecimalCount,
|
|
@@ -4719,7 +4731,7 @@
|
|
|
4719
4731
|
_ref$formHasBalance = _ref.formHasBalance,
|
|
4720
4732
|
formHasBalance = _ref$formHasBalance === void 0 ? false : _ref$formHasBalance,
|
|
4721
4733
|
_ref$retrieveSwapDeta = _ref.retrieveSwapDetails,
|
|
4722
|
-
retrieveSwapDetails = _ref$retrieveSwapDeta === void 0 ? function (sendingAssetTicker, receivingAssetTicker, amount, isSwapAll) {
|
|
4734
|
+
retrieveSwapDetails = _ref$retrieveSwapDeta === void 0 ? function (sendingAssetTicker, receivingAssetTicker, amount, isSwapAll, editedLastInput) {
|
|
4723
4735
|
return Promise.resolve();
|
|
4724
4736
|
} : _ref$retrieveSwapDeta,
|
|
4725
4737
|
_ref$retrieveInitialS = _ref.retrieveInitialSwapData,
|
|
@@ -4746,17 +4758,17 @@
|
|
|
4746
4758
|
termsOfUseUrl = _ref$termsOfUseUrl === void 0 ? null : _ref$termsOfUseUrl,
|
|
4747
4759
|
_ref$privacyPolicyUrl = _ref.privacyPolicyUrl,
|
|
4748
4760
|
privacyPolicyUrl = _ref$privacyPolicyUrl === void 0 ? null : _ref$privacyPolicyUrl,
|
|
4749
|
-
_ref$getExtraIdNameBy = _ref.getExtraIdNameByTicker,
|
|
4750
|
-
getExtraIdNameByTicker = _ref$getExtraIdNameBy === void 0 ? function (ticker) {
|
|
4751
|
-
return null;
|
|
4752
|
-
} : _ref$getExtraIdNameBy,
|
|
4753
4761
|
_ref$validateAddressB = _ref.validateAddressByTicker,
|
|
4754
|
-
validateAddressByTicker = _ref$validateAddressB === void 0 ? function (
|
|
4762
|
+
validateAddressByTicker = _ref$validateAddressB === void 0 ? function () {
|
|
4755
4763
|
return false;
|
|
4756
4764
|
} : _ref$validateAddressB,
|
|
4757
4765
|
swapSeparatorIconSrc = _ref.swapSeparatorIconSrc,
|
|
4758
4766
|
_ref$swapButtonAlways = _ref.swapButtonAlwaysActive,
|
|
4759
4767
|
swapButtonAlwaysActive = _ref$swapButtonAlways === void 0 ? false : _ref$swapButtonAlways,
|
|
4768
|
+
_ref$onIsFixedChange = _ref.onIsFixedChange,
|
|
4769
|
+
onIsFixedChange = _ref$onIsFixedChange === void 0 ? function () {} : _ref$onIsFixedChange,
|
|
4770
|
+
recipientAddressExtraIdName = _ref.recipientAddressExtraIdName,
|
|
4771
|
+
refundAddressExtraIdName = _ref.refundAddressExtraIdName,
|
|
4760
4772
|
_ref$translations = _ref.translations,
|
|
4761
4773
|
translations = _ref$translations === void 0 ? {
|
|
4762
4774
|
swapAllButtonTitles: {
|
|
@@ -4787,7 +4799,9 @@
|
|
|
4787
4799
|
addressTitle: "Recepient address",
|
|
4788
4800
|
refundAddressTitle: "Refund address",
|
|
4789
4801
|
extraIdPlaceholder: "(optional)",
|
|
4802
|
+
refundAddressExtraIdTitle: "Refund extra ID (MEMO):",
|
|
4790
4803
|
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.",
|
|
4804
|
+
receivingAddressExtraIdTitle: "Destination extra ID (MEMO):",
|
|
4791
4805
|
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."
|
|
4792
4806
|
},
|
|
4793
4807
|
rateSelector: {
|
|
@@ -4809,15 +4823,18 @@
|
|
|
4809
4823
|
var _useReferredState = useReferredState(preservedAmount == null || preservedAmount === "" ? null : preservedAmount),
|
|
4810
4824
|
sendAssetAmount = _useReferredState[0],
|
|
4811
4825
|
setSendAssetAmount = _useReferredState[1];
|
|
4826
|
+
var _useReferredState2 = useReferredState(null),
|
|
4827
|
+
receiveAssetAmount = _useReferredState2[0],
|
|
4828
|
+
setReceiveAssetAmount = _useReferredState2[1];
|
|
4812
4829
|
var _useState3 = React.useState(),
|
|
4813
4830
|
swapRate = _useState3[0],
|
|
4814
4831
|
setSwapRate = _useState3[1];
|
|
4815
|
-
var _useReferredState2 = useReferredState(null),
|
|
4816
|
-
minimalAmount = _useReferredState2[0],
|
|
4817
|
-
setMinimalAmount = _useReferredState2[1];
|
|
4818
4832
|
var _useReferredState3 = useReferredState(null),
|
|
4819
|
-
|
|
4820
|
-
|
|
4833
|
+
minimalAmount = _useReferredState3[0],
|
|
4834
|
+
setMinimalAmount = _useReferredState3[1];
|
|
4835
|
+
var _useReferredState4 = useReferredState(null),
|
|
4836
|
+
maximumAmount = _useReferredState4[0],
|
|
4837
|
+
setMaximumAmount = _useReferredState4[1];
|
|
4821
4838
|
var _useState4 = React.useState(),
|
|
4822
4839
|
validationContent = _useState4[0],
|
|
4823
4840
|
setValidationContent = _useState4[1];
|
|
@@ -4844,70 +4861,76 @@
|
|
|
4844
4861
|
var _useState11 = React.useState(preservedAmount == null || String(preservedAmount) === "0"),
|
|
4845
4862
|
isAmountZero = _useState11[0],
|
|
4846
4863
|
setIsAmountZero = _useState11[1];
|
|
4847
|
-
var
|
|
4848
|
-
isLoading =
|
|
4849
|
-
setIsLoading =
|
|
4850
|
-
var _useReferredState5 = useReferredState(null),
|
|
4851
|
-
isFixedRate = _useReferredState5[0],
|
|
4852
|
-
setIsFixedRate = _useReferredState5[1];
|
|
4853
|
-
var _useState12 = React.useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
|
|
4854
|
-
confirmButtonTo = _useState12[0],
|
|
4855
|
-
setConfirmButtonTo = _useState12[1];
|
|
4856
|
-
var _useState13 = React.useState(),
|
|
4857
|
-
transactionFee = _useState13[0],
|
|
4858
|
-
setTransactionFee = _useState13[1];
|
|
4859
|
-
var _useState14 = React.useState(true),
|
|
4860
|
-
balanceValid = _useState14[0],
|
|
4861
|
-
setBalanceValid = _useState14[1]; // Whether the amount is less than total balance
|
|
4864
|
+
var _useReferredState5 = useReferredState(false),
|
|
4865
|
+
isLoading = _useReferredState5[0],
|
|
4866
|
+
setIsLoading = _useReferredState5[1]; // Whether the form is in the progress of loading some data (new rates, for example)
|
|
4862
4867
|
var _useReferredState6 = useReferredState(null),
|
|
4863
|
-
|
|
4864
|
-
|
|
4865
|
-
var
|
|
4866
|
-
|
|
4867
|
-
|
|
4868
|
+
isFixedRate = _useReferredState6[0],
|
|
4869
|
+
setIsFixedRate = _useReferredState6[1];
|
|
4870
|
+
var _useState12 = React.useState(false),
|
|
4871
|
+
isLastEditedReceiving = _useState12[0],
|
|
4872
|
+
setIsLastEditedReceiving = _useState12[1];
|
|
4873
|
+
var _useState13 = React.useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
|
|
4874
|
+
confirmButtonTo = _useState13[0],
|
|
4875
|
+
setConfirmButtonTo = _useState13[1];
|
|
4876
|
+
var _useState14 = React.useState(),
|
|
4877
|
+
transactionFee = _useState14[0],
|
|
4878
|
+
setTransactionFee = _useState14[1];
|
|
4879
|
+
var _useState15 = React.useState(true),
|
|
4880
|
+
balanceValid = _useState15[0],
|
|
4881
|
+
setBalanceValid = _useState15[1]; // Whether the amount is less than total balance
|
|
4868
4882
|
var _useReferredState7 = useReferredState(null),
|
|
4869
|
-
|
|
4870
|
-
|
|
4883
|
+
isSwapAll = _useReferredState7[0],
|
|
4884
|
+
setIsSwapAll = _useReferredState7[1];
|
|
4885
|
+
var _useState16 = React.useState([]),
|
|
4886
|
+
swapAllButtonLoaderReSetter = _useState16[0],
|
|
4887
|
+
setSwapAllButtonLoaderReSetter = _useState16[1];
|
|
4871
4888
|
var _useReferredState8 = useReferredState(null),
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
var _useReferredState9 = useReferredState(
|
|
4875
|
-
|
|
4876
|
-
|
|
4889
|
+
dataUpdateTimeoutId = _useReferredState8[0],
|
|
4890
|
+
setDataUpdateTimeoutId = _useReferredState8[1];
|
|
4891
|
+
var _useReferredState9 = useReferredState(null),
|
|
4892
|
+
idleDataUpdateTimeoutId = _useReferredState9[0],
|
|
4893
|
+
setIdleDataUpdateTimeoutId = _useReferredState9[1];
|
|
4877
4894
|
var _useReferredState10 = useReferredState(""),
|
|
4878
|
-
|
|
4879
|
-
|
|
4880
|
-
var _useReferredState11 = useReferredState(
|
|
4881
|
-
|
|
4882
|
-
|
|
4883
|
-
var
|
|
4884
|
-
|
|
4885
|
-
|
|
4886
|
-
var
|
|
4887
|
-
|
|
4888
|
-
|
|
4895
|
+
recipientAddress = _useReferredState10[0],
|
|
4896
|
+
setRecipientAddress = _useReferredState10[1];
|
|
4897
|
+
var _useReferredState11 = useReferredState(""),
|
|
4898
|
+
recipientAddressExtraId = _useReferredState11[0],
|
|
4899
|
+
setRecipientAddressExtraId = _useReferredState11[1];
|
|
4900
|
+
var _useReferredState12 = useReferredState(false),
|
|
4901
|
+
isRecipientAddressValid = _useReferredState12[0],
|
|
4902
|
+
setIsRecipientAddressValid = _useReferredState12[1];
|
|
4903
|
+
var _useState17 = React.useState(false),
|
|
4904
|
+
isRefundAddressRequired = _useState17[0],
|
|
4905
|
+
setIsRefundAddressRequired = _useState17[1];
|
|
4889
4906
|
var _useReferredState13 = useReferredState(""),
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
var _useReferredState14 = useReferredState(
|
|
4893
|
-
|
|
4894
|
-
|
|
4907
|
+
refundAddress = _useReferredState13[0],
|
|
4908
|
+
setRefundAddress = _useReferredState13[1];
|
|
4909
|
+
var _useReferredState14 = useReferredState(""),
|
|
4910
|
+
refundAddressExtraId = _useReferredState14[0],
|
|
4911
|
+
setRefundAddressExtraId = _useReferredState14[1];
|
|
4912
|
+
var _useReferredState15 = useReferredState(false),
|
|
4913
|
+
isRefundAddressValid = _useReferredState15[0],
|
|
4914
|
+
setIsRefundAddressValid = _useReferredState15[1];
|
|
4895
4915
|
var callHandlingErrors = useCallHandlingErrors();
|
|
4896
4916
|
var isHydrated = useIsHydrated();
|
|
4897
4917
|
var recalculationDelayOnTyping = 1000;
|
|
4898
4918
|
var isAddressFieldEnabled = !formHasBalance;
|
|
4899
4919
|
var displayRateSelector = !formHasBalance;
|
|
4900
|
-
var recipientAddressExtraIdName = getExtraIdNameByTicker(receivingAssetTicker);
|
|
4901
|
-
var refundAddressExtraIdName = getExtraIdNameByTicker(sendingAssetTicker);
|
|
4902
4920
|
var handleSendAssetAmountChange = function handleSendAssetAmountChange(amount) {
|
|
4921
|
+
setIsLastEditedReceiving(false);
|
|
4922
|
+
var receiveAmount = AmountUtils.trim(bignumber_js.BigNumber(amount).times(swapRate), receivingAssetDecimalCount);
|
|
4903
4923
|
if (amount != null && amount !== "") {
|
|
4904
|
-
|
|
4924
|
+
setReceiveAssetAmount(receiveAmount);
|
|
4925
|
+
setUpdateReceiveInputTo(receiveAmount);
|
|
4905
4926
|
} else {
|
|
4906
4927
|
setUpdateReceiveInputTo("");
|
|
4907
4928
|
}
|
|
4908
4929
|
setSendAssetAmount(amount);
|
|
4909
4930
|
};
|
|
4910
4931
|
var handleReceiveAssetAmountChange = function handleReceiveAssetAmountChange(amount) {
|
|
4932
|
+
setReceiveAssetAmount(amount);
|
|
4933
|
+
setIsLastEditedReceiving(true);
|
|
4911
4934
|
var sendAssetAmount = "";
|
|
4912
4935
|
if (amount != null && amount !== "") {
|
|
4913
4936
|
sendAssetAmount = AmountUtils.trim(bignumber_js.BigNumber(amount).div(swapRate), sendingAssetDecimalCount);
|
|
@@ -5008,7 +5031,7 @@
|
|
|
5008
5031
|
}
|
|
5009
5032
|
(function () {
|
|
5010
5033
|
try {
|
|
5011
|
-
return _catch$
|
|
5034
|
+
return _catch$e(function () {
|
|
5012
5035
|
var _minimalAmount$curren4, _maximumAmount$curren3, _isFixedRate$current;
|
|
5013
5036
|
var dataMemento = {
|
|
5014
5037
|
rate: swapRate,
|
|
@@ -5026,7 +5049,7 @@
|
|
|
5026
5049
|
setIsSameCoins(false);
|
|
5027
5050
|
setIsPairSupported(true);
|
|
5028
5051
|
setIsSwapCalculated(false);
|
|
5029
|
-
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) {
|
|
5030
5053
|
if (!isSwapAll.current && String(amount) !== String(isForPreserved && sendAssetAmount.current == null ? preservedAmount : sendAssetAmount.current)) {
|
|
5031
5054
|
// Means amount changed and we no more need to do this exact calculation
|
|
5032
5055
|
return;
|
|
@@ -5074,7 +5097,7 @@
|
|
|
5074
5097
|
}
|
|
5075
5098
|
(function () {
|
|
5076
5099
|
try {
|
|
5077
|
-
return _catch$
|
|
5100
|
+
return _catch$e(function () {
|
|
5078
5101
|
setIsLoading(true);
|
|
5079
5102
|
setMinimalAmount(null);
|
|
5080
5103
|
setMaximumAmount(null);
|
|
@@ -5114,7 +5137,7 @@
|
|
|
5114
5137
|
};
|
|
5115
5138
|
var handleRateModeChanged = function handleRateModeChanged(isFixed) {
|
|
5116
5139
|
setIsFixedRate(isFixed);
|
|
5117
|
-
requestDataRefresh(sendAssetAmount.current, true);
|
|
5140
|
+
requestDataRefresh(isLastEditedReceiving ? receiveAssetAmount.current : sendAssetAmount.current, true);
|
|
5118
5141
|
};
|
|
5119
5142
|
React.useEffect(function () {
|
|
5120
5143
|
if (isSwapAll.current === true) {
|
|
@@ -5124,6 +5147,10 @@
|
|
|
5124
5147
|
}
|
|
5125
5148
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5126
5149
|
}, [isSwapAll.current]);
|
|
5150
|
+
React.useEffect(function () {
|
|
5151
|
+
onIsFixedChange(isFixedRate.current);
|
|
5152
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5153
|
+
}, [isFixedRate.current]);
|
|
5127
5154
|
React.useEffect(function () {
|
|
5128
5155
|
setConfirmButtonTo(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, sendAssetAmount.current || preservedAmount || null));
|
|
5129
5156
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -5133,7 +5160,7 @@
|
|
|
5133
5160
|
var isCurrentAmountNotZero = sendAssetAmount.current && !bignumber_js.BigNumber("0").eq(sendAssetAmount.current);
|
|
5134
5161
|
var isPreservedAmountNotZero = preservedAmount && !bignumber_js.BigNumber("0").eq(preservedAmount);
|
|
5135
5162
|
if (isCurrentAmountNotZero) {
|
|
5136
|
-
loadFullEstimation(sendAssetAmount.current);
|
|
5163
|
+
loadFullEstimation(isLastEditedReceiving ? receiveAssetAmount.current : sendAssetAmount.current);
|
|
5137
5164
|
} else if (isPreservedAmountNotZero) {
|
|
5138
5165
|
loadFullEstimation(preservedAmount, true);
|
|
5139
5166
|
} else {
|
|
@@ -5172,7 +5199,7 @@
|
|
|
5172
5199
|
};
|
|
5173
5200
|
if (!receivingAssetTicker) return;
|
|
5174
5201
|
var _temp = recipientAddress.current === "";
|
|
5175
|
-
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);
|
|
5176
5203
|
} catch (e) {
|
|
5177
5204
|
Promise.reject(e);
|
|
5178
5205
|
}
|
|
@@ -5187,7 +5214,7 @@
|
|
|
5187
5214
|
};
|
|
5188
5215
|
if (!sendingAssetTicker || !isRefundAddressRequired) return;
|
|
5189
5216
|
var _temp3 = refundAddress.current === "";
|
|
5190
|
-
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);
|
|
5191
5218
|
} catch (e) {
|
|
5192
5219
|
Promise.reject(e);
|
|
5193
5220
|
}
|
|
@@ -5200,7 +5227,7 @@
|
|
|
5200
5227
|
if (readyToSwap) {
|
|
5201
5228
|
timeoutId = setTimeout(function () {
|
|
5202
5229
|
var _sendAssetAmount$curr;
|
|
5203
|
-
return requestDataRefresh((_sendAssetAmount$curr = sendAssetAmount.current) != null ? _sendAssetAmount$curr : preservedAmount, true);
|
|
5230
|
+
return requestDataRefresh(isLastEditedReceiving ? receiveAssetAmount.current : (_sendAssetAmount$curr = sendAssetAmount.current) != null ? _sendAssetAmount$curr : preservedAmount, true);
|
|
5204
5231
|
}, DETAIL_REFRESH_INTERVAL_MS);
|
|
5205
5232
|
setIdleDataUpdateTimeoutId(timeoutId);
|
|
5206
5233
|
} else {
|
|
@@ -5212,8 +5239,6 @@
|
|
|
5212
5239
|
};
|
|
5213
5240
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5214
5241
|
}, [readyToSwap]);
|
|
5215
|
-
|
|
5216
|
-
// TODO: [refactoring, critical] this code looks like a hack related to task_id=6e328d39063142b7b9fa01d497e616da
|
|
5217
5242
|
React.useEffect(function () {
|
|
5218
5243
|
if (triggerDataUpdateResetting) {
|
|
5219
5244
|
clearTimeout(dataUpdateTimeoutId.current);
|
|
@@ -5223,8 +5248,6 @@
|
|
|
5223
5248
|
}
|
|
5224
5249
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5225
5250
|
}, [triggerDataUpdateResetting]);
|
|
5226
|
-
|
|
5227
|
-
// Resets the passed "set value to" param to null, so it can be used multiple times with any value
|
|
5228
5251
|
React.useEffect(function () {
|
|
5229
5252
|
if (!!updateSendInputTo) setUpdateSendInputTo(null);
|
|
5230
5253
|
if (!!updateReceiveInputTo) setUpdateReceiveInputTo(null);
|
|
@@ -5243,13 +5266,12 @@
|
|
|
5243
5266
|
}
|
|
5244
5267
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5245
5268
|
}, [isLoading.current, swapAllButtonLoaderReSetter]);
|
|
5246
|
-
|
|
5247
|
-
// Handlers upon changing the asset amount
|
|
5248
5269
|
React.useEffect(function () {
|
|
5249
5270
|
setConfirmButtonTo(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, sendAssetAmount.current));
|
|
5250
5271
|
if (sendAssetAmount.current == null) return;
|
|
5251
5272
|
var processingAmount = sendAssetAmount.current === "" ? "0" : sendAssetAmount.current;
|
|
5252
|
-
|
|
5273
|
+
var processingReceivingAmount = receiveAssetAmount.current === "" ? "0" : receiveAssetAmount.current;
|
|
5274
|
+
requestDataRefresh(isLastEditedReceiving ? processingReceivingAmount : processingAmount);
|
|
5253
5275
|
processMinMaxAmounts(processingAmount);
|
|
5254
5276
|
setIsAmountZero(bignumber_js.BigNumber("0").eq(processingAmount));
|
|
5255
5277
|
setIsSwapCalculated(false);
|
|
@@ -5264,7 +5286,13 @@
|
|
|
5264
5286
|
linkText: !formHasBalance ? "" : isSwapAll.current ? translations.swapAllButtonTitles.cancel : translations.swapAllButtonTitles.enable,
|
|
5265
5287
|
linkButtonLoader: true,
|
|
5266
5288
|
isLinkButtonDisabled: isLoading.current || sendingAssetTicker === receivingAssetTicker || bignumber_js.BigNumber(sendingAssetBalance == null ? void 0 : sendingAssetBalance.assetAmount).eq(0)
|
|
5267
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5289
|
+
}, displayRateSelector ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5290
|
+
className: s$9["swap-form-rate-selector"]
|
|
5291
|
+
}, /*#__PURE__*/React__default["default"].createElement(RateSelector, {
|
|
5292
|
+
isFixed: (_isFixedRate$current2 = isFixedRate.current) != null ? _isFixedRate$current2 : IS_FIXED_BY_DEFAULT,
|
|
5293
|
+
setIsFixed: handleRateModeChanged,
|
|
5294
|
+
translations: translations.rateSelector
|
|
5295
|
+
})) : "", /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5268
5296
|
className: s$9["swap-form-inputs"]
|
|
5269
5297
|
}, /*#__PURE__*/React__default["default"].createElement(AmountInput, {
|
|
5270
5298
|
ticker: sendingAssetTicker,
|
|
@@ -5312,7 +5340,7 @@
|
|
|
5312
5340
|
assetIconProtocolSrc: receivingAssetProtocolIconSrc,
|
|
5313
5341
|
fallbackAssetIconSrc: fallBackAssetIconSrc,
|
|
5314
5342
|
disabled: isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null,
|
|
5315
|
-
locked: !formHasBalance,
|
|
5343
|
+
locked: !formHasBalance && !isFixedRate.current,
|
|
5316
5344
|
handleCoinAmountChange: handleReceiveAssetAmountChange,
|
|
5317
5345
|
handleChangeAssetClick: handleChangeReceivingAssetClick,
|
|
5318
5346
|
updateAssetInputTo: updateReceiveInputTo,
|
|
@@ -5332,7 +5360,7 @@
|
|
|
5332
5360
|
className: s$9["swap-form-information-field"]
|
|
5333
5361
|
}, /*#__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", {
|
|
5334
5362
|
className: s$9["semi-transparent"]
|
|
5335
|
-
}, " ~ " + 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$
|
|
5363
|
+
}, " ~ " + 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", {
|
|
5336
5364
|
className: s$9["interactable"] + " " + s$9["red"],
|
|
5337
5365
|
onClick: isLoading.current ? function () {} : function (e) {
|
|
5338
5366
|
return callHandlingErrors(handleMaximumAmountClick, e);
|
|
@@ -5359,7 +5387,7 @@
|
|
|
5359
5387
|
adaptiveHeight: true,
|
|
5360
5388
|
errorEncountered: recipientAddress.current !== "" && !isRecipientAddressValid.current
|
|
5361
5389
|
})), isHydrated && recipientAddressExtraIdName ? /*#__PURE__*/React__default["default"].createElement(TitleBox, {
|
|
5362
|
-
title:
|
|
5390
|
+
title: translations.addressFields.receivingAddressExtraIdTitle,
|
|
5363
5391
|
titleNoticeText: translations.addressFields.receivingAddressExtraIdNotice,
|
|
5364
5392
|
titleNoticePosition: TOOLTIP_POSITIONS.TOP_LEFT
|
|
5365
5393
|
}, /*#__PURE__*/React__default["default"].createElement(Textarea, {
|
|
@@ -5381,7 +5409,7 @@
|
|
|
5381
5409
|
adaptiveHeight: true,
|
|
5382
5410
|
errorEncountered: refundAddress.current !== "" && !isRefundAddressValid.current
|
|
5383
5411
|
})), refundAddressExtraIdName ? /*#__PURE__*/React__default["default"].createElement(TitleBox, {
|
|
5384
|
-
title:
|
|
5412
|
+
title: translations.addressFields.refundAddressExtraIdTitle,
|
|
5385
5413
|
titleNoticeText: translations.addressFields.refundAddressExtraIdNotice,
|
|
5386
5414
|
titleNoticePosition: TOOLTIP_POSITIONS.TOP_LEFT
|
|
5387
5415
|
}, /*#__PURE__*/React__default["default"].createElement(Textarea, {
|
|
@@ -5392,13 +5420,7 @@
|
|
|
5392
5420
|
value: refundAddressExtraId.current,
|
|
5393
5421
|
adaptiveHeight: true,
|
|
5394
5422
|
placeholder: translations.addressFields.extraIdPlaceholder
|
|
5395
|
-
})) : null) : null) : null,
|
|
5396
|
-
className: s$9["swap-form-rate-selector"]
|
|
5397
|
-
}, /*#__PURE__*/React__default["default"].createElement(RateSelector, {
|
|
5398
|
-
isFixed: (_isFixedRate$current3 = isFixedRate.current) != null ? _isFixedRate$current3 : IS_FIXED_BY_DEFAULT,
|
|
5399
|
-
setIsFixed: !isLoading.current ? handleRateModeChanged : function () {},
|
|
5400
|
-
translations: translations.rateSelector
|
|
5401
|
-
})) : "", validationContent ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5423
|
+
})) : null) : null) : null, validationContent ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5402
5424
|
className: s$9["swap-form-validation-text"]
|
|
5403
5425
|
}, /*#__PURE__*/React__default["default"].createElement(Validation, {
|
|
5404
5426
|
text: validationContent
|
|
@@ -5419,7 +5441,7 @@
|
|
|
5419
5441
|
mode: "primary",
|
|
5420
5442
|
content: translations.confirmButtonText,
|
|
5421
5443
|
onClick: function onClick(resetButtonLoader) {
|
|
5422
|
-
return handleConfirmButtonClick(resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins, recipientAddress.current, recipientAddressExtraId.current, refundAddress.current, refundAddressExtraId.current);
|
|
5444
|
+
return handleConfirmButtonClick(resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins, recipientAddress.current, recipientAddressExtraId.current, refundAddress.current, refundAddressExtraId.current, isLastEditedReceiving);
|
|
5423
5445
|
},
|
|
5424
5446
|
fullWidthOnMobiles: true,
|
|
5425
5447
|
isDisabled: !readyToSwap,
|
|
@@ -5465,7 +5487,12 @@
|
|
|
5465
5487
|
fiatCurrencyCode: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5466
5488
|
fiatCurrencyDecimals: PropTypes.oneOfType([PropTypes.number, null]),
|
|
5467
5489
|
formHasFiat: PropTypes.bool,
|
|
5490
|
+
termsOfUseUrl: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5491
|
+
privacyPolicyUrl: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5492
|
+
recipientAddressExtraIdName: PropTypes.string,
|
|
5493
|
+
refundAddressExtraIdName: PropTypes.string,
|
|
5468
5494
|
translations: PropTypes.object,
|
|
5495
|
+
validateAddressByTicker: PropTypes.func,
|
|
5469
5496
|
swapSeparatorIconSrc: PropTypes.string.isRequired,
|
|
5470
5497
|
swapButtonAlwaysActive: PropTypes.bool
|
|
5471
5498
|
};
|
|
@@ -5498,6 +5525,11 @@
|
|
|
5498
5525
|
fiatCurrencyCode: null,
|
|
5499
5526
|
fiatCurrencyDecimals: null,
|
|
5500
5527
|
formHasFiat: true,
|
|
5528
|
+
termsOfUseUrl: null,
|
|
5529
|
+
privacyPolicyUrl: null,
|
|
5530
|
+
validateAddressByTicker: function validateAddressByTicker(ticker) {
|
|
5531
|
+
return false;
|
|
5532
|
+
},
|
|
5501
5533
|
swapButtonAlwaysActive: false
|
|
5502
5534
|
};
|
|
5503
5535
|
|
|
@@ -5509,7 +5541,7 @@
|
|
|
5509
5541
|
* @return {Promise<string>} xml string of generated svg image
|
|
5510
5542
|
*/
|
|
5511
5543
|
|
|
5512
|
-
function _catch$
|
|
5544
|
+
function _catch$d(body, recover) {
|
|
5513
5545
|
try {
|
|
5514
5546
|
var result = body();
|
|
5515
5547
|
} catch (e) {
|
|
@@ -5522,7 +5554,7 @@
|
|
|
5522
5554
|
}
|
|
5523
5555
|
var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingString) {
|
|
5524
5556
|
try {
|
|
5525
|
-
return Promise.resolve(_catch$
|
|
5557
|
+
return Promise.resolve(_catch$d(function () {
|
|
5526
5558
|
return Promise.resolve(QRCode__default["default"].toString(encodingString, {
|
|
5527
5559
|
type: "svg"
|
|
5528
5560
|
}));
|
|
@@ -5536,9 +5568,23 @@
|
|
|
5536
5568
|
|
|
5537
5569
|
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"};
|
|
5538
5570
|
|
|
5539
|
-
|
|
5571
|
+
/**
|
|
5572
|
+
* QrCode component renders a QR code for a provided crypto address.
|
|
5573
|
+
*
|
|
5574
|
+
* @component
|
|
5575
|
+
* @example
|
|
5576
|
+
* const address = "0x123456789abcdef";
|
|
5577
|
+
* const fill = true;
|
|
5578
|
+
* return <QrCode address={address} fill={fill} />;
|
|
5579
|
+
*
|
|
5580
|
+
* @param {Object} props - The props for the component.
|
|
5581
|
+
* @param {string} props.address - The crypto address to generate the QR code for.
|
|
5582
|
+
* @param {boolean} [props.fill=false] - If true, applies additional CSS class to fill the container.
|
|
5583
|
+
*
|
|
5584
|
+
* @returns {JSX.Element} A div containing the generated QR code.
|
|
5585
|
+
*/
|
|
5540
5586
|
|
|
5541
|
-
function _catch$
|
|
5587
|
+
function _catch$c(body, recover) {
|
|
5542
5588
|
try {
|
|
5543
5589
|
var result = body();
|
|
5544
5590
|
} catch (e) {
|
|
@@ -5557,7 +5603,7 @@
|
|
|
5557
5603
|
React.useEffect(function () {
|
|
5558
5604
|
(function () {
|
|
5559
5605
|
try {
|
|
5560
|
-
return _catch$
|
|
5606
|
+
return _catch$c(function () {
|
|
5561
5607
|
var _temp = function () {
|
|
5562
5608
|
if (address) {
|
|
5563
5609
|
return Promise.resolve(generateQrAndShowInCanvas(address)).then(function (_generateQrAndShowInC) {
|
|
@@ -5584,7 +5630,8 @@
|
|
|
5584
5630
|
fill: PropTypes.bool
|
|
5585
5631
|
};
|
|
5586
5632
|
QrCode.defaultProps = {
|
|
5587
|
-
address: ""
|
|
5633
|
+
address: "",
|
|
5634
|
+
fill: false
|
|
5588
5635
|
};
|
|
5589
5636
|
|
|
5590
5637
|
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"};
|
|
@@ -6269,7 +6316,7 @@
|
|
|
6269
6316
|
var FALLBACK_ASSET_ICON_URL = "https://rabbit.io/asset-icons/fallback.svg";
|
|
6270
6317
|
var DEFAULT_CRYPTO_DECIMAL_COUNT = 8;
|
|
6271
6318
|
|
|
6272
|
-
function _catch$
|
|
6319
|
+
function _catch$b(body, recover) {
|
|
6273
6320
|
try {
|
|
6274
6321
|
var result = body();
|
|
6275
6322
|
} catch (e) {
|
|
@@ -6493,7 +6540,7 @@
|
|
|
6493
6540
|
var loadCoinsAndSaveToState = function loadCoinsAndSaveToState() {
|
|
6494
6541
|
(function () {
|
|
6495
6542
|
try {
|
|
6496
|
-
var _temp = _catch$
|
|
6543
|
+
var _temp = _catch$b(function () {
|
|
6497
6544
|
return Promise.resolve(loadCoinsAndContent ? loadCoinsAndContent() : defaultLoadCoinsAndContent()).then(function (data) {
|
|
6498
6545
|
setCoins(data.coins);
|
|
6499
6546
|
setFilteredCoins(data.coins);
|
|
@@ -7302,7 +7349,7 @@
|
|
|
7302
7349
|
return Cache;
|
|
7303
7350
|
}();
|
|
7304
7351
|
|
|
7305
|
-
function _catch$
|
|
7352
|
+
function _catch$a(body, recover) {
|
|
7306
7353
|
try {
|
|
7307
7354
|
var result = body();
|
|
7308
7355
|
} catch (e) {
|
|
@@ -7320,7 +7367,7 @@
|
|
|
7320
7367
|
return new Promise(function (resolve, reject) {
|
|
7321
7368
|
setTimeout(function () {
|
|
7322
7369
|
try {
|
|
7323
|
-
var _temp = _catch$
|
|
7370
|
+
var _temp = _catch$a(function () {
|
|
7324
7371
|
return Promise.resolve(execution()).then(function (_execution) {
|
|
7325
7372
|
resolve(_execution);
|
|
7326
7373
|
});
|
|
@@ -7404,7 +7451,7 @@
|
|
|
7404
7451
|
return AxiosAdapter;
|
|
7405
7452
|
}();
|
|
7406
7453
|
|
|
7407
|
-
function _catch$
|
|
7454
|
+
function _catch$9(body, recover) {
|
|
7408
7455
|
try {
|
|
7409
7456
|
var result = body();
|
|
7410
7457
|
} catch (e) {
|
|
@@ -7420,7 +7467,7 @@
|
|
|
7420
7467
|
EmailsApi.sendEmail = function sendEmail(subject, body) {
|
|
7421
7468
|
try {
|
|
7422
7469
|
var _this = this;
|
|
7423
|
-
var _temp = _catch$
|
|
7470
|
+
var _temp = _catch$9(function () {
|
|
7424
7471
|
var url = window.location.protocol + "//" + window.location.host + "/api/v1/" + _this.serverEndpointEntity;
|
|
7425
7472
|
return Promise.resolve(axios__default["default"].post(url, {
|
|
7426
7473
|
subject: subject,
|
|
@@ -7838,7 +7885,7 @@
|
|
|
7838
7885
|
* improve the reliability of a data retrieval.
|
|
7839
7886
|
*/
|
|
7840
7887
|
|
|
7841
|
-
function _catch$
|
|
7888
|
+
function _catch$8(body, recover) {
|
|
7842
7889
|
try {
|
|
7843
7890
|
var result = body();
|
|
7844
7891
|
} catch (e) {
|
|
@@ -8177,7 +8224,7 @@
|
|
|
8177
8224
|
var result;
|
|
8178
8225
|
var calculationUuid = concurrentCalculationsMetadataHolder.startCalculation(_this.bio);
|
|
8179
8226
|
return Promise.resolve(_finallyRethrows$1(function () {
|
|
8180
|
-
return _catch$
|
|
8227
|
+
return _catch$8(function () {
|
|
8181
8228
|
function _temp5() {
|
|
8182
8229
|
var _result2, _result3;
|
|
8183
8230
|
if (((_result2 = result) == null ? void 0 : _result2.data) == null) {
|
|
@@ -8205,7 +8252,7 @@
|
|
|
8205
8252
|
*/
|
|
8206
8253
|
var rpsFactor = result ? result.rpsFactor : RobustExternalAPICallerService.defaultRPSFactor;
|
|
8207
8254
|
result = null;
|
|
8208
|
-
var _temp3 = _catch$
|
|
8255
|
+
var _temp3 = _catch$8(function () {
|
|
8209
8256
|
function _temp2() {
|
|
8210
8257
|
var _result$errors;
|
|
8211
8258
|
if ((_result$errors = result.errors) != null && _result$errors.length) {
|
|
@@ -8229,7 +8276,7 @@
|
|
|
8229
8276
|
return Promise.resolve(new Promise(function (resolve, reject) {
|
|
8230
8277
|
setTimeout(function () {
|
|
8231
8278
|
try {
|
|
8232
|
-
var _temp6 = _catch$
|
|
8279
|
+
var _temp6 = _catch$8(function () {
|
|
8233
8280
|
return Promise.resolve(_this._performCallAttempt(parametersValues, timeoutMS, cancelToken, rpsFactor, doNotFailForNowData)).then(function (_this$_performCallAtt2) {
|
|
8234
8281
|
resolve(_this$_performCallAtt2);
|
|
8235
8282
|
});
|
|
@@ -8299,7 +8346,7 @@
|
|
|
8299
8346
|
return;
|
|
8300
8347
|
}
|
|
8301
8348
|
var _temp13 = _finallyRethrows$1(function () {
|
|
8302
|
-
return _catch$
|
|
8349
|
+
return _catch$8(function () {
|
|
8303
8350
|
var _provider$specificHea;
|
|
8304
8351
|
function _temp12() {
|
|
8305
8352
|
if (iterationsData.length) {
|
|
@@ -8631,7 +8678,7 @@
|
|
|
8631
8678
|
}
|
|
8632
8679
|
}
|
|
8633
8680
|
}
|
|
8634
|
-
function _catch$
|
|
8681
|
+
function _catch$7(body, recover) {
|
|
8635
8682
|
try {
|
|
8636
8683
|
var result = body();
|
|
8637
8684
|
} catch (e) {
|
|
@@ -8710,7 +8757,7 @@
|
|
|
8710
8757
|
_proto.getCachedOrWaitForCachedOrAcquireLock = function getCachedOrWaitForCachedOrAcquireLock(cacheId) {
|
|
8711
8758
|
try {
|
|
8712
8759
|
var _this = this;
|
|
8713
|
-
return Promise.resolve(_catch$
|
|
8760
|
+
return Promise.resolve(_catch$7(function () {
|
|
8714
8761
|
function _temp2() {
|
|
8715
8762
|
var _cached, _cached2;
|
|
8716
8763
|
return calculationId ? {
|
|
@@ -8789,7 +8836,7 @@
|
|
|
8789
8836
|
_proto.acquireLock = function acquireLock(cacheId) {
|
|
8790
8837
|
try {
|
|
8791
8838
|
var _this2 = this;
|
|
8792
|
-
return Promise.resolve(_catch$
|
|
8839
|
+
return Promise.resolve(_catch$7(function () {
|
|
8793
8840
|
return Promise.resolve(_this2._requestsManager.acquireLock(cacheId));
|
|
8794
8841
|
}, function (e) {
|
|
8795
8842
|
improveAndRethrow(e, "acquireLock");
|
|
@@ -8959,7 +9006,7 @@
|
|
|
8959
9006
|
try {
|
|
8960
9007
|
var _exit;
|
|
8961
9008
|
var _this3 = this;
|
|
8962
|
-
var _temp3 = _catch$
|
|
9009
|
+
var _temp3 = _catch$7(function () {
|
|
8963
9010
|
var activeCalculationIdForHash = _this3._activeCalculationsIds.get(requestHash);
|
|
8964
9011
|
if (activeCalculationIdForHash == null) {
|
|
8965
9012
|
var id = uuid.v4();
|
|
@@ -8993,7 +9040,7 @@
|
|
|
8993
9040
|
_proto2.acquireLock = function acquireLock(requestHash) {
|
|
8994
9041
|
try {
|
|
8995
9042
|
var _this4 = this;
|
|
8996
|
-
return Promise.resolve(_catch$
|
|
9043
|
+
return Promise.resolve(_catch$7(function () {
|
|
8997
9044
|
var _this4$_nextCalculati;
|
|
8998
9045
|
var activeId = _this4._activeCalculationsIds.get(requestHash);
|
|
8999
9046
|
var nextId = uuid.v4();
|
|
@@ -9144,7 +9191,7 @@
|
|
|
9144
9191
|
* TODO: [tests, critical] Massively used logic
|
|
9145
9192
|
*/
|
|
9146
9193
|
|
|
9147
|
-
function _catch$
|
|
9194
|
+
function _catch$6(body, recover) {
|
|
9148
9195
|
try {
|
|
9149
9196
|
var result = body();
|
|
9150
9197
|
} catch (e) {
|
|
@@ -9241,7 +9288,7 @@
|
|
|
9241
9288
|
var cacheId;
|
|
9242
9289
|
var result;
|
|
9243
9290
|
return Promise.resolve(_finallyRethrows(function () {
|
|
9244
|
-
return _catch$
|
|
9291
|
+
return _catch$6(function () {
|
|
9245
9292
|
cacheId = _this._calculateCacheId(parametersValues, customHashFunctionForParams);
|
|
9246
9293
|
return Promise.resolve(_this._cahceAndRequestsResolver.getCachedOrWaitForCachedOrAcquireLock(cacheId)).then(function (_this$_cahceAndReques) {
|
|
9247
9294
|
var _result2, _result4;
|
|
@@ -9310,7 +9357,7 @@
|
|
|
9310
9357
|
return CachedRobustExternalApiCallerService;
|
|
9311
9358
|
}();
|
|
9312
9359
|
|
|
9313
|
-
function _catch$
|
|
9360
|
+
function _catch$5(body, recover) {
|
|
9314
9361
|
try {
|
|
9315
9362
|
var result = body();
|
|
9316
9363
|
} catch (e) {
|
|
@@ -9394,7 +9441,7 @@
|
|
|
9394
9441
|
IpAddressProvider.getClientIpAddress = function getClientIpAddress() {
|
|
9395
9442
|
try {
|
|
9396
9443
|
var _this = this;
|
|
9397
|
-
return Promise.resolve(_catch$
|
|
9444
|
+
return Promise.resolve(_catch$5(function () {
|
|
9398
9445
|
return Promise.resolve(_this.externalIPAddressAPICaller.callExternalAPICached([], 7000));
|
|
9399
9446
|
}, function (e) {
|
|
9400
9447
|
improveAndRethrow(e, "getClientIpAddress");
|
|
@@ -9574,15 +9621,44 @@
|
|
|
9574
9621
|
this.isRefundAddressRequired = isRefundAddressRequired;
|
|
9575
9622
|
};
|
|
9576
9623
|
|
|
9624
|
+
// TODO: [refactoring, moderate] extract structure of _supportedCoins into model class
|
|
9625
|
+
|
|
9626
|
+
function _catch$4(body, recover) {
|
|
9627
|
+
try {
|
|
9628
|
+
var result = body();
|
|
9629
|
+
} catch (e) {
|
|
9630
|
+
return recover(e);
|
|
9631
|
+
}
|
|
9632
|
+
if (result && result.then) {
|
|
9633
|
+
return result.then(void 0, recover);
|
|
9634
|
+
}
|
|
9635
|
+
return result;
|
|
9636
|
+
}
|
|
9577
9637
|
var SwapProvider = /*#__PURE__*/function () {
|
|
9578
|
-
function SwapProvider() {
|
|
9638
|
+
function SwapProvider(cache, customCoinBuilder, useRestrictedCoinsSet) {
|
|
9639
|
+
if (customCoinBuilder === void 0) {
|
|
9640
|
+
customCoinBuilder = function customCoinBuilder(coin, network) {
|
|
9641
|
+
return null;
|
|
9642
|
+
};
|
|
9643
|
+
}
|
|
9644
|
+
if (useRestrictedCoinsSet === void 0) {
|
|
9645
|
+
useRestrictedCoinsSet = true;
|
|
9646
|
+
}
|
|
9647
|
+
this._supportedCoins = [];
|
|
9648
|
+
this._maxRateDigits = 20;
|
|
9649
|
+
this.useRestrictedCoinsSet = useRestrictedCoinsSet;
|
|
9650
|
+
this._customCoinBuilder = customCoinBuilder;
|
|
9651
|
+
this._cache = cache;
|
|
9652
|
+
this.isAggregator = false;
|
|
9653
|
+
}
|
|
9579
9654
|
var _proto = SwapProvider.prototype;
|
|
9580
9655
|
/**
|
|
9581
9656
|
* @return {Promise<void>}
|
|
9582
9657
|
*/
|
|
9583
9658
|
_proto.initialize = function initialize() {
|
|
9584
9659
|
try {
|
|
9585
|
-
|
|
9660
|
+
var _this = this;
|
|
9661
|
+
return Promise.resolve(_this._fetchSupportedCurrenciesIfNeeded()).then(function () {});
|
|
9586
9662
|
} catch (e) {
|
|
9587
9663
|
return Promise.reject(e);
|
|
9588
9664
|
}
|
|
@@ -9595,15 +9671,68 @@
|
|
|
9595
9671
|
throw new Error("Not implemented in base");
|
|
9596
9672
|
}
|
|
9597
9673
|
|
|
9674
|
+
/**
|
|
9675
|
+
* This method sort internal list putting popular (as provider thinks) coins to the top.
|
|
9676
|
+
* 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.
|
|
9677
|
+
* @private
|
|
9678
|
+
*/;
|
|
9679
|
+
_proto._putPopularCoinsFirst = function _putPopularCoinsFirst() {
|
|
9680
|
+
this._supportedCoins.sort(function (i1, i2) {
|
|
9681
|
+
if (i1.isPopular !== i2.isPopular) return i2.isPopular - i1.isPopular;
|
|
9682
|
+
return i1.coin.ticker.localeCompare(i2.coin.ticker);
|
|
9683
|
+
});
|
|
9684
|
+
}
|
|
9685
|
+
|
|
9686
|
+
/**
|
|
9687
|
+
* Should fill _supportedCoins with array of coins.
|
|
9688
|
+
* Coin construction rules:
|
|
9689
|
+
* 1. ticker should be CODEPROTOCOL_CODE e.g. USDTERC20
|
|
9690
|
+
* 2. name should not contain (PROTOCOL_CODE) or just PROTOCOL_CODe
|
|
9691
|
+
* 3. protocol should be null for coins major for their blockchains like BTC, ETH
|
|
9692
|
+
* 4. isPopular should be a number
|
|
9693
|
+
*
|
|
9694
|
+
* @return {Promise<void>}
|
|
9695
|
+
* @private
|
|
9696
|
+
*/;
|
|
9697
|
+
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
9698
|
+
try {
|
|
9699
|
+
throw new Error("Not implemented in base - _fetchSupportedCurrenciesIfNeeded");
|
|
9700
|
+
} catch (e) {
|
|
9701
|
+
return Promise.reject(e);
|
|
9702
|
+
}
|
|
9703
|
+
}
|
|
9598
9704
|
/**
|
|
9599
9705
|
* Retrieves all currencies supported by this swap provider.
|
|
9600
9706
|
* Returns one of SwapProvider.COMMON_ERRORS in case of processable fail.
|
|
9601
9707
|
*
|
|
9602
9708
|
* @return {Promise<({ result: true, coins: Coin[] }|{ result: false, reason: string })>}
|
|
9603
|
-
|
|
9709
|
+
*/
|
|
9710
|
+
;
|
|
9604
9711
|
_proto.getAllSupportedCurrencies = function getAllSupportedCurrencies() {
|
|
9605
9712
|
try {
|
|
9606
|
-
|
|
9713
|
+
var _this2 = this;
|
|
9714
|
+
var loggerSource = "getAllSupportedCurrencies";
|
|
9715
|
+
return Promise.resolve(_catch$4(function () {
|
|
9716
|
+
return Promise.resolve(_this2._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9717
|
+
var _this2$_supportedCoin;
|
|
9718
|
+
Logger.log("We have " + ((_this2$_supportedCoin = _this2._supportedCoins) == null ? void 0 : _this2$_supportedCoin.length) + " supported coins returning", loggerSource);
|
|
9719
|
+
return {
|
|
9720
|
+
result: true,
|
|
9721
|
+
coins: _this2._supportedCoins.map(function (item) {
|
|
9722
|
+
return item.coin;
|
|
9723
|
+
})
|
|
9724
|
+
};
|
|
9725
|
+
});
|
|
9726
|
+
}, function (e) {
|
|
9727
|
+
var _e$response;
|
|
9728
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
9729
|
+
return {
|
|
9730
|
+
result: false,
|
|
9731
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9732
|
+
};
|
|
9733
|
+
}
|
|
9734
|
+
improveAndRethrow(e, loggerSource);
|
|
9735
|
+
}));
|
|
9607
9736
|
} catch (e) {
|
|
9608
9737
|
return Promise.reject(e);
|
|
9609
9738
|
}
|
|
@@ -9617,7 +9746,31 @@
|
|
|
9617
9746
|
;
|
|
9618
9747
|
_proto.getDepositCurrencies = function getDepositCurrencies() {
|
|
9619
9748
|
try {
|
|
9620
|
-
|
|
9749
|
+
var _this3 = this;
|
|
9750
|
+
var loggerSource = "getDepositCurrencies";
|
|
9751
|
+
return Promise.resolve(_catch$4(function () {
|
|
9752
|
+
return Promise.resolve(_this3._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9753
|
+
var _this3$_supportedCoin;
|
|
9754
|
+
Logger.log("We have " + ((_this3$_supportedCoin = _this3._supportedCoins) == null ? void 0 : _this3$_supportedCoin.length) + " supported coins, getting depositable", loggerSource);
|
|
9755
|
+
return {
|
|
9756
|
+
result: true,
|
|
9757
|
+
coins: _this3._supportedCoins.filter(function (item) {
|
|
9758
|
+
return item.deposit;
|
|
9759
|
+
}).map(function (item) {
|
|
9760
|
+
return item.coin;
|
|
9761
|
+
})
|
|
9762
|
+
};
|
|
9763
|
+
});
|
|
9764
|
+
}, function (e) {
|
|
9765
|
+
var _e$response2;
|
|
9766
|
+
if ((e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status) === 429) {
|
|
9767
|
+
return {
|
|
9768
|
+
result: false,
|
|
9769
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9770
|
+
};
|
|
9771
|
+
}
|
|
9772
|
+
improveAndRethrow(e, loggerSource);
|
|
9773
|
+
}));
|
|
9621
9774
|
} catch (e) {
|
|
9622
9775
|
return Promise.reject(e);
|
|
9623
9776
|
}
|
|
@@ -9631,8 +9784,36 @@
|
|
|
9631
9784
|
*/
|
|
9632
9785
|
;
|
|
9633
9786
|
_proto.getWithdrawalCurrencies = function getWithdrawalCurrencies(exceptCurrency) {
|
|
9787
|
+
if (exceptCurrency === void 0) {
|
|
9788
|
+
exceptCurrency = null;
|
|
9789
|
+
}
|
|
9634
9790
|
try {
|
|
9635
|
-
|
|
9791
|
+
var _this4 = this;
|
|
9792
|
+
var loggerSource = "getWithdrawalCurrencies";
|
|
9793
|
+
return Promise.resolve(_catch$4(function () {
|
|
9794
|
+
return Promise.resolve(_this4._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9795
|
+
var _this4$_supportedCoin;
|
|
9796
|
+
Logger.log("We have " + ((_this4$_supportedCoin = _this4._supportedCoins) == null ? void 0 : _this4$_supportedCoin.length) + " supported coins, getting withdrawable", loggerSource);
|
|
9797
|
+
return {
|
|
9798
|
+
result: true,
|
|
9799
|
+
coins: _this4._supportedCoins.filter(function (item) {
|
|
9800
|
+
var _item$coin, _exceptCurrency;
|
|
9801
|
+
return item.withdrawal && (!exceptCurrency || ((_item$coin = item.coin) == null ? void 0 : _item$coin.ticker) !== ((_exceptCurrency = exceptCurrency) == null ? void 0 : _exceptCurrency.ticker));
|
|
9802
|
+
}).map(function (item) {
|
|
9803
|
+
return item.coin;
|
|
9804
|
+
})
|
|
9805
|
+
};
|
|
9806
|
+
});
|
|
9807
|
+
}, function (e) {
|
|
9808
|
+
var _e$response3;
|
|
9809
|
+
if ((e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.status) === 429) {
|
|
9810
|
+
return {
|
|
9811
|
+
result: false,
|
|
9812
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9813
|
+
};
|
|
9814
|
+
}
|
|
9815
|
+
improveAndRethrow(e, loggerSource);
|
|
9816
|
+
}));
|
|
9636
9817
|
} catch (e) {
|
|
9637
9818
|
return Promise.reject(e);
|
|
9638
9819
|
}
|
|
@@ -9640,12 +9821,28 @@
|
|
|
9640
9821
|
/**
|
|
9641
9822
|
* Retrieves URL for coin icon or fallback if not found.
|
|
9642
9823
|
*
|
|
9643
|
-
* @param
|
|
9824
|
+
* @param coinOrTicker {Coin|string} coin or rabbit-format of coin ticker
|
|
9644
9825
|
* @return {string}
|
|
9645
9826
|
*/
|
|
9646
9827
|
;
|
|
9647
|
-
_proto.getIconUrl = function getIconUrl(
|
|
9648
|
-
|
|
9828
|
+
_proto.getIconUrl = function getIconUrl(coinOrTicker) {
|
|
9829
|
+
var loggerSource = "getIconUrl";
|
|
9830
|
+
try {
|
|
9831
|
+
var _this$_supportedCoins2, _this$_supportedCoins3;
|
|
9832
|
+
var coin = coinOrTicker;
|
|
9833
|
+
if (!(coinOrTicker instanceof Coin)) {
|
|
9834
|
+
var _this$_supportedCoins;
|
|
9835
|
+
coin = (_this$_supportedCoins = this._supportedCoins.find(function (i) {
|
|
9836
|
+
return i.coin.ticker === coinOrTicker;
|
|
9837
|
+
})) == null ? void 0 : _this$_supportedCoins.coin;
|
|
9838
|
+
}
|
|
9839
|
+
return (_this$_supportedCoins2 = (_this$_supportedCoins3 = this._supportedCoins.find(function (item) {
|
|
9840
|
+
var _item$coin2, _coin;
|
|
9841
|
+
return ((_item$coin2 = item.coin) == null ? void 0 : _item$coin2.ticker) === ((_coin = coin) == null ? void 0 : _coin.ticker);
|
|
9842
|
+
})) == null ? void 0 : _this$_supportedCoins3.iconURL) != null ? _this$_supportedCoins2 : FALLBACK_ASSET_ICON_URL;
|
|
9843
|
+
} catch (e) {
|
|
9844
|
+
improveAndRethrow(e, loggerSource);
|
|
9845
|
+
}
|
|
9649
9846
|
}
|
|
9650
9847
|
|
|
9651
9848
|
/**
|
|
@@ -9656,7 +9853,49 @@
|
|
|
9656
9853
|
*/;
|
|
9657
9854
|
_proto.getCoinToUSDTRate = function getCoinToUSDTRate(coin) {
|
|
9658
9855
|
try {
|
|
9659
|
-
|
|
9856
|
+
var _this5 = this;
|
|
9857
|
+
var loggerSource = "getCoinToUSDTRate";
|
|
9858
|
+
return Promise.resolve(_catch$4(function () {
|
|
9859
|
+
return coin ? Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9860
|
+
var _this5$_supportedCoin;
|
|
9861
|
+
// Using USDT TRC20 as usually fee in this network is smaller than ERC20 and this network is widely used for USDT
|
|
9862
|
+
var usdtTrc20 = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
|
|
9863
|
+
return i.coin.ticker === "USDTTRC20";
|
|
9864
|
+
})) == null ? void 0 : _this5$_supportedCoin.coin;
|
|
9865
|
+
if (!usdtTrc20) {
|
|
9866
|
+
return {
|
|
9867
|
+
result: false
|
|
9868
|
+
};
|
|
9869
|
+
}
|
|
9870
|
+
var cached = _this5._cache.get("swapspace_usdt_rate_" + coin.ticker);
|
|
9871
|
+
if (cached != null) {
|
|
9872
|
+
return {
|
|
9873
|
+
result: true,
|
|
9874
|
+
rate: cached
|
|
9875
|
+
};
|
|
9876
|
+
}
|
|
9877
|
+
Logger.log("Loading USDT->coin rate as not found in cache:", coin == null ? void 0 : coin.ticker);
|
|
9878
|
+
return Promise.resolve(_this5.getSwapInfo(usdtTrc20, coin, "5000", false)).then(function (result) {
|
|
9879
|
+
if (!result.result) {
|
|
9880
|
+
return {
|
|
9881
|
+
result: false
|
|
9882
|
+
};
|
|
9883
|
+
}
|
|
9884
|
+
|
|
9885
|
+
// This calculation is not precise as we cannot recognize the actual fee and network fee. Just approximate.
|
|
9886
|
+
var standardSwapspaceFeeMultiplier = 1.004; // fee is usually 0.4%
|
|
9887
|
+
var rate = bignumber_js.BigNumber(1).div(bignumber_js.BigNumber(result.rate).times(standardSwapspaceFeeMultiplier)).toString();
|
|
9888
|
+
_this5._cache.put("swap_usdt_rate_" + coin.ticker, rate, 15 * 60000 // 15 minutes
|
|
9889
|
+
);
|
|
9890
|
+
return {
|
|
9891
|
+
result: true,
|
|
9892
|
+
rate: rate
|
|
9893
|
+
};
|
|
9894
|
+
});
|
|
9895
|
+
}) : null;
|
|
9896
|
+
}, function (e) {
|
|
9897
|
+
improveAndRethrow(e, loggerSource);
|
|
9898
|
+
}));
|
|
9660
9899
|
} catch (e) {
|
|
9661
9900
|
return Promise.reject(e);
|
|
9662
9901
|
}
|
|
@@ -9673,6 +9912,7 @@
|
|
|
9673
9912
|
* @param [fixed=false] {boolean|null} null means fixed or float doesn't matter
|
|
9674
9913
|
* @param [fromCoinToUsdRate=null] pass if you want to increase the min amount returned
|
|
9675
9914
|
* by provider with some fixed "insurance" amount to cover min amount fluctuations.
|
|
9915
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount. False means the amount is the sending amount.
|
|
9676
9916
|
* @return {Promise<({
|
|
9677
9917
|
* result: false,
|
|
9678
9918
|
* reason: string,
|
|
@@ -9692,7 +9932,7 @@
|
|
|
9692
9932
|
* })>}
|
|
9693
9933
|
*/
|
|
9694
9934
|
;
|
|
9695
|
-
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate) {
|
|
9935
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
9696
9936
|
try {
|
|
9697
9937
|
throw new Error("Not implemented in base");
|
|
9698
9938
|
} catch (e) {
|
|
@@ -9712,6 +9952,7 @@
|
|
|
9712
9952
|
* @param fixed {boolean}
|
|
9713
9953
|
* @param [toCurrencyExtraId=""] {string} optional extra ID
|
|
9714
9954
|
* @param [refundExtraId=""] {string} optional extra ID for refund address
|
|
9955
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount. False means the amount is the sending amount.
|
|
9715
9956
|
* @return {Promise<({
|
|
9716
9957
|
* result: true,
|
|
9717
9958
|
* swapId: string,
|
|
@@ -9731,7 +9972,7 @@
|
|
|
9731
9972
|
* })>}
|
|
9732
9973
|
*/
|
|
9733
9974
|
;
|
|
9734
|
-
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId) {
|
|
9975
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
9735
9976
|
try {
|
|
9736
9977
|
throw new Error("Not implemented in base");
|
|
9737
9978
|
} catch (e) {
|
|
@@ -9759,7 +10000,15 @@
|
|
|
9759
10000
|
*/
|
|
9760
10001
|
;
|
|
9761
10002
|
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker) {
|
|
9762
|
-
|
|
10003
|
+
try {
|
|
10004
|
+
var _item$coin3;
|
|
10005
|
+
var item = this._supportedCoins.find(function (i) {
|
|
10006
|
+
return i.coin.ticker === ticker;
|
|
10007
|
+
});
|
|
10008
|
+
return (_item$coin3 = item == null ? void 0 : item.coin) != null ? _item$coin3 : null;
|
|
10009
|
+
} catch (e) {
|
|
10010
|
+
improveAndRethrow(e, "getCoinByTickerIfPresent");
|
|
10011
|
+
}
|
|
9763
10012
|
}
|
|
9764
10013
|
|
|
9765
10014
|
/**
|
|
@@ -9768,16 +10017,67 @@
|
|
|
9768
10017
|
* @return {boolean}
|
|
9769
10018
|
*/;
|
|
9770
10019
|
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
9771
|
-
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
|
|
9778
|
-
|
|
9779
|
-
|
|
9780
|
-
|
|
10020
|
+
try {
|
|
10021
|
+
var assetData = this._supportedCoins.find(function (i) {
|
|
10022
|
+
var _i$coin;
|
|
10023
|
+
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10024
|
+
});
|
|
10025
|
+
if (assetData) {
|
|
10026
|
+
var corrected = assetData.validationRegexp.trim();
|
|
10027
|
+
corrected = corrected[0] === "/" ? corrected.slice(1) : corrected;
|
|
10028
|
+
corrected = corrected[corrected.length - 1] === "/" ? corrected.slice(0, corrected.length - 1) : corrected;
|
|
10029
|
+
return address.match(corrected) != null;
|
|
10030
|
+
}
|
|
10031
|
+
} catch (e) {
|
|
10032
|
+
Logger.logError(e, "isAddressValidForAsset");
|
|
10033
|
+
}
|
|
10034
|
+
return false;
|
|
10035
|
+
}
|
|
10036
|
+
|
|
10037
|
+
/**
|
|
10038
|
+
* @param asset {Coin}
|
|
10039
|
+
* @return {string|null}
|
|
10040
|
+
*/;
|
|
10041
|
+
_proto.getExtraIdNameIfPresent = function getExtraIdNameIfPresent(asset) {
|
|
10042
|
+
try {
|
|
10043
|
+
var assetData = this._supportedCoins.find(function (i) {
|
|
10044
|
+
var _i$coin2;
|
|
10045
|
+
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10046
|
+
});
|
|
10047
|
+
if (assetData != null && assetData.hasExtraId) {
|
|
10048
|
+
if ((assetData == null ? void 0 : assetData.extraIdName) == null || (assetData == null ? void 0 : assetData.extraIdName) === "") {
|
|
10049
|
+
// We return some default name if the extraIdName is empty
|
|
10050
|
+
return "ID";
|
|
10051
|
+
}
|
|
10052
|
+
return assetData == null ? void 0 : assetData.extraIdName;
|
|
10053
|
+
}
|
|
10054
|
+
return null;
|
|
10055
|
+
} catch (e) {
|
|
10056
|
+
improveAndRethrow(e, "getExtraIdNameIfPresent");
|
|
10057
|
+
}
|
|
10058
|
+
};
|
|
10059
|
+
_proto.removeProtocolNameFromCoinName = function removeProtocolNameFromCoinName(coinName, tickerPrintable, protocolName) {
|
|
10060
|
+
if (coinName) {
|
|
10061
|
+
var originalName = coinName;
|
|
10062
|
+
if (tickerPrintable) {
|
|
10063
|
+
coinName = coinName.replaceAll(new RegExp("\\(" + tickerPrintable + "\\)", "gi"), "");
|
|
10064
|
+
}
|
|
10065
|
+
if (protocolName) {
|
|
10066
|
+
coinName = coinName.replaceAll(new RegExp("\\(" + protocolName + "\\)", "gi"), "").replaceAll(new RegExp("(?<!on) " + protocolName + "$", "gi"), "").replaceAll(new RegExp("^" + protocolName + " ", "gi"), "").replaceAll(new RegExp("(?<!on) " + protocolName + " ", "gi"), " ");
|
|
10067
|
+
}
|
|
10068
|
+
coinName = coinName.replaceAll(/ +/g, " ").trim();
|
|
10069
|
+
var defaultNames = ["token", "network", "protocol", "coin", "mainnet", "chain", "project", "cash", "finance", "wrapped", "blockchain", "network"];
|
|
10070
|
+
var lowerCoinName = coinName.toLowerCase();
|
|
10071
|
+
var isBecameDefaultName = defaultNames.find(function (defName) {
|
|
10072
|
+
return lowerCoinName === defName || lowerCoinName === "the " + defName;
|
|
10073
|
+
});
|
|
10074
|
+
if (coinName === "" || isBecameDefaultName) {
|
|
10075
|
+
// Rolling back to original name if our processing leads in empty name or one of the default words
|
|
10076
|
+
coinName = originalName;
|
|
10077
|
+
}
|
|
10078
|
+
}
|
|
10079
|
+
return coinName;
|
|
10080
|
+
};
|
|
9781
10081
|
return SwapProvider;
|
|
9782
10082
|
}();
|
|
9783
10083
|
SwapProvider.COMMON_ERRORS = {
|
|
@@ -9795,22 +10095,16 @@
|
|
|
9795
10095
|
};
|
|
9796
10096
|
SwapProvider.SWAP_STATUSES = {
|
|
9797
10097
|
WAITING_FOR_PAYMENT: "waiting_for_payment",
|
|
9798
|
-
// public +
|
|
9799
10098
|
CONFIRMING: "confirming",
|
|
9800
10099
|
PAYMENT_RECEIVED: "payment_received",
|
|
9801
|
-
// public +
|
|
9802
10100
|
EXCHANGING: "exchanging",
|
|
9803
|
-
// session full // public +
|
|
9804
10101
|
COMPLETED: "completed",
|
|
9805
|
-
// session full // public +
|
|
9806
10102
|
REFUNDED: "refunded",
|
|
9807
|
-
// session full // public +
|
|
9808
10103
|
EXPIRED: "expired",
|
|
9809
|
-
|
|
9810
|
-
FAILED: "failed" // public +
|
|
10104
|
+
FAILED: "failed"
|
|
9811
10105
|
};
|
|
9812
10106
|
|
|
9813
|
-
function _catch$
|
|
10107
|
+
function _catch$3(body, recover) {
|
|
9814
10108
|
try {
|
|
9815
10109
|
var result = body();
|
|
9816
10110
|
} catch (e) {
|
|
@@ -9834,14 +10128,10 @@
|
|
|
9834
10128
|
if (useRestrictedCoinsSet === void 0) {
|
|
9835
10129
|
useRestrictedCoinsSet = true;
|
|
9836
10130
|
}
|
|
9837
|
-
_this = _SwapProvider.call(this) || this;
|
|
9838
|
-
_this._supportedCoins = [];
|
|
10131
|
+
_this = _SwapProvider.call(this, cache, customCoinBuilder, useRestrictedCoinsSet) || this;
|
|
9839
10132
|
_this._partners = [];
|
|
9840
|
-
_this._URL =
|
|
9841
|
-
_this.
|
|
9842
|
-
_this.useRestrictedCoinsSet = useRestrictedCoinsSet;
|
|
9843
|
-
_this._customCoinBuilder = customCoinBuilder;
|
|
9844
|
-
_this._cache = cache;
|
|
10133
|
+
_this._URL = apiKeysProxyUrl + "/swapspace";
|
|
10134
|
+
_this.isAggregator = true;
|
|
9845
10135
|
return _this;
|
|
9846
10136
|
}
|
|
9847
10137
|
var _proto = SwapspaceSwapProvider.prototype;
|
|
@@ -9850,144 +10140,21 @@
|
|
|
9850
10140
|
* (and even a bit smaller value) for better consistency */
|
|
9851
10141
|
return 110000;
|
|
9852
10142
|
};
|
|
9853
|
-
_proto.getDepositCurrencies = function getDepositCurrencies() {
|
|
9854
|
-
try {
|
|
9855
|
-
var _this2 = this;
|
|
9856
|
-
var loggerSource = "getDepositCurrencies";
|
|
9857
|
-
return Promise.resolve(_catch$2(function () {
|
|
9858
|
-
return Promise.resolve(_this2._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9859
|
-
var _this2$_supportedCoin;
|
|
9860
|
-
Logger.log("We have " + ((_this2$_supportedCoin = _this2._supportedCoins) == null ? void 0 : _this2$_supportedCoin.length) + " supported coins, getting depositable", loggerSource);
|
|
9861
|
-
return {
|
|
9862
|
-
result: true,
|
|
9863
|
-
coins: _this2._supportedCoins.filter(function (item) {
|
|
9864
|
-
return item.deposit;
|
|
9865
|
-
}).map(function (item) {
|
|
9866
|
-
return item.coin;
|
|
9867
|
-
})
|
|
9868
|
-
};
|
|
9869
|
-
});
|
|
9870
|
-
}, function (e) {
|
|
9871
|
-
var _e$response;
|
|
9872
|
-
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
9873
|
-
return {
|
|
9874
|
-
result: false,
|
|
9875
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9876
|
-
};
|
|
9877
|
-
}
|
|
9878
|
-
improveAndRethrow(e, loggerSource);
|
|
9879
|
-
}));
|
|
9880
|
-
} catch (e) {
|
|
9881
|
-
return Promise.reject(e);
|
|
9882
|
-
}
|
|
9883
|
-
};
|
|
9884
|
-
_proto.getAllSupportedCurrencies = function getAllSupportedCurrencies() {
|
|
9885
|
-
try {
|
|
9886
|
-
var _this3 = this;
|
|
9887
|
-
var loggerSource = "getAllSupportedCurrencies";
|
|
9888
|
-
return Promise.resolve(_catch$2(function () {
|
|
9889
|
-
return Promise.resolve(_this3._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9890
|
-
var _this3$_supportedCoin;
|
|
9891
|
-
Logger.log("We have " + ((_this3$_supportedCoin = _this3._supportedCoins) == null ? void 0 : _this3$_supportedCoin.length) + " supported coins returning", loggerSource);
|
|
9892
|
-
return {
|
|
9893
|
-
result: true,
|
|
9894
|
-
coins: _this3._supportedCoins.map(function (item) {
|
|
9895
|
-
return item.coin;
|
|
9896
|
-
})
|
|
9897
|
-
};
|
|
9898
|
-
});
|
|
9899
|
-
}, function (e) {
|
|
9900
|
-
var _e$response2;
|
|
9901
|
-
if ((e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status) === 429) {
|
|
9902
|
-
return {
|
|
9903
|
-
result: false,
|
|
9904
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9905
|
-
};
|
|
9906
|
-
}
|
|
9907
|
-
improveAndRethrow(e, loggerSource);
|
|
9908
|
-
}));
|
|
9909
|
-
} catch (e) {
|
|
9910
|
-
return Promise.reject(e);
|
|
9911
|
-
}
|
|
9912
|
-
};
|
|
9913
|
-
_proto.getWithdrawalCurrencies = function getWithdrawalCurrencies(exceptCurrency) {
|
|
9914
|
-
if (exceptCurrency === void 0) {
|
|
9915
|
-
exceptCurrency = null;
|
|
9916
|
-
}
|
|
9917
|
-
try {
|
|
9918
|
-
var _this4 = this;
|
|
9919
|
-
var loggerSource = "getWithdrawalCurrencies";
|
|
9920
|
-
return Promise.resolve(_catch$2(function () {
|
|
9921
|
-
return Promise.resolve(_this4._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9922
|
-
var _this4$_supportedCoin;
|
|
9923
|
-
Logger.log("We have " + ((_this4$_supportedCoin = _this4._supportedCoins) == null ? void 0 : _this4$_supportedCoin.length) + " supported coins, getting withdrawable", loggerSource);
|
|
9924
|
-
return {
|
|
9925
|
-
result: true,
|
|
9926
|
-
coins: _this4._supportedCoins.filter(function (item) {
|
|
9927
|
-
var _item$coin, _exceptCurrency;
|
|
9928
|
-
return item.withdrawal && (!exceptCurrency || ((_item$coin = item.coin) == null ? void 0 : _item$coin.ticker) !== ((_exceptCurrency = exceptCurrency) == null ? void 0 : _exceptCurrency.ticker));
|
|
9929
|
-
}).map(function (item) {
|
|
9930
|
-
return item.coin;
|
|
9931
|
-
})
|
|
9932
|
-
};
|
|
9933
|
-
});
|
|
9934
|
-
}, function (e) {
|
|
9935
|
-
var _e$response3;
|
|
9936
|
-
if ((e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.status) === 429) {
|
|
9937
|
-
return {
|
|
9938
|
-
result: false,
|
|
9939
|
-
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9940
|
-
};
|
|
9941
|
-
}
|
|
9942
|
-
improveAndRethrow(e, loggerSource);
|
|
9943
|
-
}));
|
|
9944
|
-
} catch (e) {
|
|
9945
|
-
return Promise.reject(e);
|
|
9946
|
-
}
|
|
9947
|
-
};
|
|
9948
|
-
_proto.initialize = function initialize() {
|
|
9949
|
-
try {
|
|
9950
|
-
var _this5 = this;
|
|
9951
|
-
return Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {});
|
|
9952
|
-
} catch (e) {
|
|
9953
|
-
return Promise.reject(e);
|
|
9954
|
-
}
|
|
9955
|
-
};
|
|
9956
|
-
_proto.getIconUrl = function getIconUrl(coinOrTicker) {
|
|
9957
|
-
var loggerSource = "getIconUrl";
|
|
9958
|
-
try {
|
|
9959
|
-
var _this$_supportedCoins2, _this$_supportedCoins3;
|
|
9960
|
-
var coin = coinOrTicker;
|
|
9961
|
-
if (!(coinOrTicker instanceof Coin)) {
|
|
9962
|
-
var _this$_supportedCoins;
|
|
9963
|
-
coin = (_this$_supportedCoins = this._supportedCoins.find(function (i) {
|
|
9964
|
-
return i.coin.ticker === coinOrTicker;
|
|
9965
|
-
})) == null ? void 0 : _this$_supportedCoins.coin;
|
|
9966
|
-
}
|
|
9967
|
-
return (_this$_supportedCoins2 = (_this$_supportedCoins3 = this._supportedCoins.find(function (item) {
|
|
9968
|
-
var _item$coin2, _coin;
|
|
9969
|
-
return ((_item$coin2 = item.coin) == null ? void 0 : _item$coin2.ticker) === ((_coin = coin) == null ? void 0 : _coin.ticker);
|
|
9970
|
-
})) == null ? void 0 : _this$_supportedCoins3.iconURL) != null ? _this$_supportedCoins2 : FALLBACK_ASSET_ICON_URL;
|
|
9971
|
-
} catch (e) {
|
|
9972
|
-
improveAndRethrow(e, loggerSource);
|
|
9973
|
-
}
|
|
9974
|
-
};
|
|
9975
10143
|
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
9976
10144
|
try {
|
|
9977
|
-
var
|
|
10145
|
+
var _this2 = this;
|
|
9978
10146
|
var loggerSource = "_fetchSupportedCurrenciesIfNeeded";
|
|
9979
|
-
return Promise.resolve(_catch$
|
|
9980
|
-
var _temp = function (
|
|
9981
|
-
if (!((
|
|
9982
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10147
|
+
return Promise.resolve(_catch$3(function () {
|
|
10148
|
+
var _temp = function (_this2$_supportedCoin) {
|
|
10149
|
+
if (!((_this2$_supportedCoin = _this2._supportedCoins) != null && _this2$_supportedCoin.length)) {
|
|
10150
|
+
return Promise.resolve(axios__default["default"].get(_this2._URL + "/api/v2/currencies")).then(function (rawResponse) {
|
|
9983
10151
|
var _rawResponse$data, _rawResponse$data2;
|
|
9984
10152
|
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data = rawResponse.data) == null ? void 0 : _rawResponse$data.length), loggerSource);
|
|
9985
10153
|
var allowedCoins = (_rawResponse$data2 = rawResponse == null ? void 0 : rawResponse.data) != null ? _rawResponse$data2 : [];
|
|
9986
10154
|
Logger.log("Allowed cnt " + allowedCoins.length, loggerSource);
|
|
9987
|
-
|
|
9988
|
-
var coin =
|
|
9989
|
-
if (!coin && !
|
|
9990
|
-
var _item$name;
|
|
10155
|
+
_this2._supportedCoins = allowedCoins.map(function (item) {
|
|
10156
|
+
var coin = _this2._customCoinBuilder(item.code, item.network);
|
|
10157
|
+
if (!coin && !_this2.useRestrictedCoinsSet) {
|
|
9991
10158
|
/** Building coin object for coin that isn't supported OOB in Rabbit.
|
|
9992
10159
|
* We are doing this way to be able to use extended coins set for swaps.
|
|
9993
10160
|
* These temporary built coins are only for in-swap use, and we omit some usual
|
|
@@ -10001,11 +10168,7 @@
|
|
|
10001
10168
|
/** Removing ticker and protocol name from coin name as we usually use them explicitly
|
|
10002
10169
|
* from coin object rather than counting on having it in the coin name itself.
|
|
10003
10170
|
* This processing is needed due to poor quality of swapspace coins names. */
|
|
10004
|
-
var name = (
|
|
10005
|
-
if (name === "") {
|
|
10006
|
-
// Rolling back to original name if our processing leads in empty name
|
|
10007
|
-
name = item.name;
|
|
10008
|
-
}
|
|
10171
|
+
var name = _this2.removeProtocolNameFromCoinName(item.name, code, network);
|
|
10009
10172
|
var ticker = "" + code + (code === network ? "" : network);
|
|
10010
10173
|
var defaultDecimalPlacesForCoinNotSupportedOOB = 8;
|
|
10011
10174
|
var defaultMinConfirmationsForCoinNotSupportedOOB = 1;
|
|
@@ -10021,16 +10184,17 @@
|
|
|
10021
10184
|
network: item.network,
|
|
10022
10185
|
hasExtraId: item.hasExtraId,
|
|
10023
10186
|
extraIdName: item.extraIdName,
|
|
10024
|
-
isPopular:
|
|
10187
|
+
isPopular: item.popular ? 1 : 0,
|
|
10025
10188
|
iconURL: item.icon ? "https://storage.swapspace.co" + item.icon : FALLBACK_ASSET_ICON_URL,
|
|
10026
10189
|
deposit: (_item$deposit = item.deposit) != null ? _item$deposit : false,
|
|
10027
10190
|
withdrawal: (_item$withdrawal = item.withdrawal) != null ? _item$withdrawal : false,
|
|
10028
|
-
validationRegexp: (_item$validationRegex = item.validationRegexp) != null ? _item$validationRegex : null
|
|
10191
|
+
validationRegexp: (_item$validationRegex = item.validationRegexp) != null ? _item$validationRegex : null,
|
|
10192
|
+
isAvailable: true
|
|
10029
10193
|
};
|
|
10030
10194
|
}
|
|
10031
10195
|
return [];
|
|
10032
10196
|
}).flat();
|
|
10033
|
-
|
|
10197
|
+
_this2._putPopularCoinsFirst();
|
|
10034
10198
|
});
|
|
10035
10199
|
}
|
|
10036
10200
|
}();
|
|
@@ -10044,15 +10208,15 @@
|
|
|
10044
10208
|
};
|
|
10045
10209
|
_proto._fetchPartnersListIfNeeded = function _fetchPartnersListIfNeeded() {
|
|
10046
10210
|
try {
|
|
10047
|
-
var
|
|
10211
|
+
var _this3 = this;
|
|
10048
10212
|
var loggerSource = "_fetchPartnersListIfNeeded";
|
|
10049
|
-
return Promise.resolve(_catch$
|
|
10050
|
-
var _temp2 = function (
|
|
10051
|
-
if (((
|
|
10052
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10213
|
+
return Promise.resolve(_catch$3(function () {
|
|
10214
|
+
var _temp2 = function (_this3$_partners) {
|
|
10215
|
+
if (((_this3$_partners = _this3._partners) == null ? void 0 : _this3$_partners.length) === 0) {
|
|
10216
|
+
return Promise.resolve(axios__default["default"].get(_this3._URL + "/api/v2/partners")).then(function (rawResponse) {
|
|
10053
10217
|
var _rawResponse$data3;
|
|
10054
10218
|
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data3 = rawResponse.data) == null ? void 0 : _rawResponse$data3.length) + " partners", loggerSource);
|
|
10055
|
-
|
|
10219
|
+
_this3._partners = Array.isArray(rawResponse == null ? void 0 : rawResponse.data) ? rawResponse == null ? void 0 : rawResponse.data : [];
|
|
10056
10220
|
});
|
|
10057
10221
|
}
|
|
10058
10222
|
}();
|
|
@@ -10063,99 +10227,30 @@
|
|
|
10063
10227
|
} catch (e) {
|
|
10064
10228
|
return Promise.reject(e);
|
|
10065
10229
|
}
|
|
10066
|
-
}
|
|
10067
|
-
/**
|
|
10068
|
-
* This method sort internal list putting popular (as swapspace thinks) coins to the top.
|
|
10069
|
-
* 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.
|
|
10070
|
-
* @private
|
|
10071
|
-
*/
|
|
10072
|
-
;
|
|
10073
|
-
_proto._putPopularCoinsFirst = function _putPopularCoinsFirst() {
|
|
10074
|
-
this._supportedCoins.sort(function (i1, i2) {
|
|
10075
|
-
if (i1.isPopular && !i2.isPopular) return -1;
|
|
10076
|
-
if (i2.isPopular && !i1.isPopular) return 1;
|
|
10077
|
-
return i1.coin.ticker > i2.coin.ticker ? 1 : i1.coin.ticker < i2.coin.ticker ? -1 : 0;
|
|
10078
|
-
});
|
|
10079
|
-
};
|
|
10080
|
-
_proto.getCoinToUSDTRate = function getCoinToUSDTRate(coin) {
|
|
10081
|
-
try {
|
|
10082
|
-
var _this8 = this;
|
|
10083
|
-
var loggerSource = "getCoinToUSDTRate";
|
|
10084
|
-
return Promise.resolve(_catch$2(function () {
|
|
10085
|
-
return coin ? Promise.resolve(_this8._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
10086
|
-
var _this8$_supportedCoin;
|
|
10087
|
-
// Using USDT TRC20 as usually fee in this network is smaller than ERC20 and this network is widely used for USDT
|
|
10088
|
-
var usdtTrc20 = (_this8$_supportedCoin = _this8._supportedCoins.find(function (i) {
|
|
10089
|
-
return i.coin.ticker === "USDTTRC20";
|
|
10090
|
-
})) == null ? void 0 : _this8$_supportedCoin.coin;
|
|
10091
|
-
if (!usdtTrc20) {
|
|
10092
|
-
return {
|
|
10093
|
-
result: false
|
|
10094
|
-
};
|
|
10095
|
-
}
|
|
10096
|
-
var cached = _this8._cache.get("swapspace_usdt_rate_" + coin.ticker);
|
|
10097
|
-
if (cached != null) {
|
|
10098
|
-
return {
|
|
10099
|
-
result: true,
|
|
10100
|
-
rate: cached
|
|
10101
|
-
};
|
|
10102
|
-
}
|
|
10103
|
-
Logger.log("Loading USDT->coin rate as not found in cache:", coin == null ? void 0 : coin.ticker);
|
|
10104
|
-
return Promise.resolve(_this8.getSwapInfo(usdtTrc20, coin, "5000", false)).then(function (result) {
|
|
10105
|
-
if (!result.result) {
|
|
10106
|
-
return {
|
|
10107
|
-
result: false
|
|
10108
|
-
};
|
|
10109
|
-
}
|
|
10110
|
-
|
|
10111
|
-
// This calculation is not precise as we cannot recognize the actual fee and network fee. Just approximate.
|
|
10112
|
-
var standardSwapspaceFeeMultiplier = 1.004; // fee is usually 0.4%
|
|
10113
|
-
var rate = bignumber_js.BigNumber(1).div(bignumber_js.BigNumber(result.rate).times(standardSwapspaceFeeMultiplier)).toString();
|
|
10114
|
-
_this8._cache.put("swapspace_usdt_rate_" + coin.ticker, rate, 15 * 60000 // 15 minutes
|
|
10115
|
-
);
|
|
10116
|
-
return {
|
|
10117
|
-
result: true,
|
|
10118
|
-
rate: rate
|
|
10119
|
-
};
|
|
10120
|
-
});
|
|
10121
|
-
}) : null;
|
|
10122
|
-
}, function (e) {
|
|
10123
|
-
improveAndRethrow(e, loggerSource);
|
|
10124
|
-
}));
|
|
10125
|
-
} catch (e) {
|
|
10126
|
-
return Promise.reject(e);
|
|
10127
|
-
}
|
|
10128
10230
|
};
|
|
10129
|
-
_proto.
|
|
10130
|
-
try {
|
|
10131
|
-
var _item$coin3;
|
|
10132
|
-
var item = this._supportedCoins.find(function (i) {
|
|
10133
|
-
return i.coin.ticker === ticker;
|
|
10134
|
-
});
|
|
10135
|
-
return (_item$coin3 = item == null ? void 0 : item.coin) != null ? _item$coin3 : null;
|
|
10136
|
-
} catch (e) {
|
|
10137
|
-
improveAndRethrow(e, "getCoinByTickerIfPresent");
|
|
10138
|
-
}
|
|
10139
|
-
};
|
|
10140
|
-
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate) {
|
|
10231
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
10141
10232
|
if (fixed === void 0) {
|
|
10142
10233
|
fixed = false;
|
|
10143
10234
|
}
|
|
10144
10235
|
if (fromCoinToUsdRate === void 0) {
|
|
10145
10236
|
fromCoinToUsdRate = null;
|
|
10146
10237
|
}
|
|
10238
|
+
if (amountIsToReceive === void 0) {
|
|
10239
|
+
amountIsToReceive = false;
|
|
10240
|
+
}
|
|
10147
10241
|
try {
|
|
10148
|
-
var
|
|
10242
|
+
var _this4 = this;
|
|
10149
10243
|
var loggerSource = "getSwapInfo";
|
|
10150
|
-
return Promise.resolve(_catch$
|
|
10244
|
+
return Promise.resolve(_catch$3(function () {
|
|
10245
|
+
if (amountIsToReceive) throw new Error("Swapspace doesn't support exchanging to get the exact receiving amount");
|
|
10151
10246
|
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amountCoins !== "string" || bignumber_js.BigNumber(amountCoins).lt("0") || fixed !== null && typeof fixed !== "boolean") {
|
|
10152
10247
|
throw new Error("Wrong input params: " + amountCoins + " " + fromCoin.ticker + " -> " + toCoin.ticker + ", " + (fromCoin instanceof Coin) + ", " + (toCoin instanceof Coin) + ", " + typeof fixed + " " + fixed);
|
|
10153
10248
|
}
|
|
10154
|
-
var fromCoinSwapspaceDetails =
|
|
10249
|
+
var fromCoinSwapspaceDetails = _this4._supportedCoins.find(function (i) {
|
|
10155
10250
|
var _i$coin;
|
|
10156
10251
|
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
10157
10252
|
});
|
|
10158
|
-
var toCoinSwapspaceDetails =
|
|
10253
|
+
var toCoinSwapspaceDetails = _this4._supportedCoins.find(function (i) {
|
|
10159
10254
|
var _i$coin2;
|
|
10160
10255
|
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
10161
10256
|
});
|
|
@@ -10165,11 +10260,11 @@
|
|
|
10165
10260
|
return !fromCoinSwapspaceDetails.deposit || !toCoinSwapspaceDetails.withdrawal ? {
|
|
10166
10261
|
result: false,
|
|
10167
10262
|
reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
|
|
10168
|
-
} : Promise.resolve(axios__default["default"].get(
|
|
10263
|
+
} : 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) {
|
|
10169
10264
|
var _response$data, _exchangesSupportingT;
|
|
10170
10265
|
var _exit;
|
|
10171
|
-
function _temp4(
|
|
10172
|
-
if (_exit) return
|
|
10266
|
+
function _temp4(_result2) {
|
|
10267
|
+
if (_exit) return _result2;
|
|
10173
10268
|
var result = {
|
|
10174
10269
|
result: false,
|
|
10175
10270
|
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,
|
|
@@ -10263,9 +10358,9 @@
|
|
|
10263
10358
|
}
|
|
10264
10359
|
}
|
|
10265
10360
|
var rate = bestOpt.toAmount && bestOpt.fromAmount ? bignumber_js.BigNumber(bestOpt.toAmount).div(bestOpt.fromAmount) : null;
|
|
10266
|
-
return Promise.resolve(
|
|
10361
|
+
return Promise.resolve(_this4._fetchPartnersListIfNeeded()).then(function () {
|
|
10267
10362
|
var _bestOpt$duration;
|
|
10268
|
-
var partner =
|
|
10363
|
+
var partner = _this4._partners.find(function (p) {
|
|
10269
10364
|
var _bestOpt$partner;
|
|
10270
10365
|
return (bestOpt == null || (_bestOpt$partner = bestOpt.partner) == null ? void 0 : _bestOpt$partner.toLowerCase()) === p.path.toLowerCase();
|
|
10271
10366
|
});
|
|
@@ -10276,7 +10371,7 @@
|
|
|
10276
10371
|
max: max,
|
|
10277
10372
|
smallestMin: smallestMin,
|
|
10278
10373
|
greatestMax: greatestMax,
|
|
10279
|
-
rate: rate != null ? AmountUtils.trim(rate,
|
|
10374
|
+
rate: rate != null ? AmountUtils.trim(rate, _this4._maxRateDigits) : null,
|
|
10280
10375
|
durationMinutesRange: (_bestOpt$duration = bestOpt.duration) != null ? _bestOpt$duration : null,
|
|
10281
10376
|
fixed: bestOpt.fixed,
|
|
10282
10377
|
rawSwapData: bestOpt,
|
|
@@ -10290,8 +10385,8 @@
|
|
|
10290
10385
|
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
10291
10386
|
});
|
|
10292
10387
|
}, function (e) {
|
|
10293
|
-
var _e$
|
|
10294
|
-
if ((e == null || (_e$
|
|
10388
|
+
var _e$response;
|
|
10389
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
10295
10390
|
return {
|
|
10296
10391
|
result: false,
|
|
10297
10392
|
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
@@ -10304,18 +10399,22 @@
|
|
|
10304
10399
|
return Promise.reject(e);
|
|
10305
10400
|
}
|
|
10306
10401
|
};
|
|
10307
|
-
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId) {
|
|
10402
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
10308
10403
|
if (toCurrencyExtraId === void 0) {
|
|
10309
10404
|
toCurrencyExtraId = "";
|
|
10310
10405
|
}
|
|
10311
10406
|
if (refundExtraId === void 0) {
|
|
10312
10407
|
refundExtraId = "";
|
|
10313
10408
|
}
|
|
10409
|
+
if (amountIsToReceive === void 0) {
|
|
10410
|
+
amountIsToReceive = false;
|
|
10411
|
+
}
|
|
10314
10412
|
try {
|
|
10315
|
-
var
|
|
10413
|
+
var _this5 = this;
|
|
10316
10414
|
var loggerSource = "createSwap";
|
|
10317
10415
|
var partner = rawSwapData == null ? void 0 : rawSwapData.partner;
|
|
10318
|
-
return Promise.resolve(_catch$
|
|
10416
|
+
return Promise.resolve(_catch$3(function () {
|
|
10417
|
+
if (amountIsToReceive) throw new Error("Swapspace doesn't support exchanging to get the exact receiving amount");
|
|
10319
10418
|
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) {
|
|
10320
10419
|
throw new Error("Invalid input: " + fromCoin + " " + toCoin + " " + amount + " " + toAddress + " " + refundAddress + " " + (clientIpAddress == null ? void 0 : clientIpAddress.length) + " " + fixed);
|
|
10321
10420
|
}
|
|
@@ -10323,12 +10422,12 @@
|
|
|
10323
10422
|
) {
|
|
10324
10423
|
throw new Error("Invalid raw swap data: " + safeStringify(rawSwapData));
|
|
10325
10424
|
}
|
|
10326
|
-
var
|
|
10425
|
+
var _this5$_supportedCoin = _this5._supportedCoins.reduce(function (prev, coinData) {
|
|
10327
10426
|
return [coinData.coin.ticker === fromCoin.ticker ? coinData.hasExtraId : prev[0], coinData.coin.ticker === toCoin.ticker ? coinData.hasExtraId : prev[1]];
|
|
10328
10427
|
}, [false, false]),
|
|
10329
|
-
fromCurrencyHasExtraId =
|
|
10330
|
-
toCurrencyHasExtraId =
|
|
10331
|
-
return Promise.resolve(
|
|
10428
|
+
fromCurrencyHasExtraId = _this5$_supportedCoin[0],
|
|
10429
|
+
toCurrencyHasExtraId = _this5$_supportedCoin[1];
|
|
10430
|
+
return Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
10332
10431
|
var _toCurrencyExtraId, _refundExtraId;
|
|
10333
10432
|
var requestData = {
|
|
10334
10433
|
partner: partner,
|
|
@@ -10347,7 +10446,7 @@
|
|
|
10347
10446
|
refund: refundAddress
|
|
10348
10447
|
};
|
|
10349
10448
|
Logger.log("Sending create request: " + safeStringify(requestData), loggerSource);
|
|
10350
|
-
return Promise.resolve(axios__default["default"].post(
|
|
10449
|
+
return Promise.resolve(axios__default["default"].post(_this5._URL + "/api/v2/exchange", requestData)).then(function (response) {
|
|
10351
10450
|
var result = response.data;
|
|
10352
10451
|
Logger.log("Creation result " + safeStringify(result), loggerSource);
|
|
10353
10452
|
if (result != null && result.id) {
|
|
@@ -10372,7 +10471,7 @@
|
|
|
10372
10471
|
toAmount: AmountUtils.trim(result == null || (_result$to4 = result.to) == null ? void 0 : _result$to4.amount, toCoin.digits),
|
|
10373
10472
|
toAddress: result == null || (_result$to5 = result.to) == null ? void 0 : _result$to5.address,
|
|
10374
10473
|
fromCurrencyExtraId: (_result$from$extraId = result == null || (_result$from6 = result.from) == null ? void 0 : _result$from6.extraId) != null ? _result$from$extraId : "",
|
|
10375
|
-
rate: AmountUtils.trim(rate,
|
|
10474
|
+
rate: AmountUtils.trim(rate, _this5._maxRateDigits),
|
|
10376
10475
|
fixed: result.fixed
|
|
10377
10476
|
};
|
|
10378
10477
|
}
|
|
@@ -10382,7 +10481,7 @@
|
|
|
10382
10481
|
});
|
|
10383
10482
|
});
|
|
10384
10483
|
}, function (e) {
|
|
10385
|
-
var _e$
|
|
10484
|
+
var _e$response2, _e$response3;
|
|
10386
10485
|
Logger.logError(e, loggerSource, "Failed to create swap. Error is: " + safeStringify(e));
|
|
10387
10486
|
var composeFailResult = function composeFailResult(reason) {
|
|
10388
10487
|
return {
|
|
@@ -10391,8 +10490,8 @@
|
|
|
10391
10490
|
partner: partner
|
|
10392
10491
|
};
|
|
10393
10492
|
};
|
|
10394
|
-
var status = e == null || (_e$
|
|
10395
|
-
var data = e == null || (_e$
|
|
10493
|
+
var status = e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status;
|
|
10494
|
+
var data = e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.data;
|
|
10396
10495
|
if (status === 429) {
|
|
10397
10496
|
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
10398
10497
|
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
@@ -10441,9 +10540,9 @@
|
|
|
10441
10540
|
};
|
|
10442
10541
|
_proto.getExistingSwapsDetailsAndStatus = function getExistingSwapsDetailsAndStatus(swapIds) {
|
|
10443
10542
|
try {
|
|
10444
|
-
var
|
|
10543
|
+
var _this6 = this;
|
|
10445
10544
|
var loggerSource = "getExistingSwapsDetailsAndStatus";
|
|
10446
|
-
return Promise.resolve(_catch$
|
|
10545
|
+
return Promise.resolve(_catch$3(function () {
|
|
10447
10546
|
if (swapIds.find(function (id) {
|
|
10448
10547
|
return typeof id !== "string";
|
|
10449
10548
|
})) {
|
|
@@ -10451,8 +10550,8 @@
|
|
|
10451
10550
|
}
|
|
10452
10551
|
var getNotFailingOn404 = function getNotFailingOn404(swapId) {
|
|
10453
10552
|
try {
|
|
10454
|
-
return Promise.resolve(_catch$
|
|
10455
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10553
|
+
return Promise.resolve(_catch$3(function () {
|
|
10554
|
+
return Promise.resolve(axios__default["default"].get(_this6._URL + "/api/v2/exchange/" + swapId));
|
|
10456
10555
|
}, function (error) {
|
|
10457
10556
|
var _error$response;
|
|
10458
10557
|
if ((error == null || (_error$response = error.response) == null ? void 0 : _error$response.status) === 404) return [];
|
|
@@ -10472,13 +10571,13 @@
|
|
|
10472
10571
|
var swaps = wo404.map(function (r) {
|
|
10473
10572
|
return r.data;
|
|
10474
10573
|
}).map(function (swap, index) {
|
|
10475
|
-
var
|
|
10476
|
-
var fromCoin = (
|
|
10574
|
+
var _this6$_supportedCoin, _this6$_supportedCoin2, _swap$from$extraId, _swap$to$extraId, _swap$refundExtraId;
|
|
10575
|
+
var fromCoin = (_this6$_supportedCoin = _this6._supportedCoins.find(function (i) {
|
|
10477
10576
|
return i.code === swap.from.code && i.network === swap.from.network;
|
|
10478
|
-
})) == null ? void 0 :
|
|
10479
|
-
var toCoin = (
|
|
10577
|
+
})) == null ? void 0 : _this6$_supportedCoin.coin;
|
|
10578
|
+
var toCoin = (_this6$_supportedCoin2 = _this6._supportedCoins.find(function (i) {
|
|
10480
10579
|
return i.code === swap.to.code && i.network === swap.to.network;
|
|
10481
|
-
})) == null ? void 0 :
|
|
10580
|
+
})) == null ? void 0 : _this6$_supportedCoin2.coin;
|
|
10482
10581
|
if (!fromCoin || !toCoin) {
|
|
10483
10582
|
return []; // We skip swaps with not supported coins for now
|
|
10484
10583
|
}
|
|
@@ -10487,10 +10586,10 @@
|
|
|
10487
10586
|
};
|
|
10488
10587
|
var expiresAt = toUtcTimestamp(swap.timestamps.expiresAt);
|
|
10489
10588
|
var isExpiredByTime = expiresAt < Date.now();
|
|
10490
|
-
var status =
|
|
10589
|
+
var status = _this6._mapSwapspaceStatusToRabbitStatus(swap.status, isExpiredByTime);
|
|
10491
10590
|
var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
|
|
10492
10591
|
var addressToSendCoinsToSwapspace = swap.from.address;
|
|
10493
|
-
return new ExistingSwap(swapIds[index], status, toUtcTimestamp(swap.timestamps.createdAt), expiresAt, swap.confirmations, AmountUtils.trim(swap.rate,
|
|
10592
|
+
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);
|
|
10494
10593
|
}).flat();
|
|
10495
10594
|
Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
|
|
10496
10595
|
return {
|
|
@@ -10499,7 +10598,7 @@
|
|
|
10499
10598
|
};
|
|
10500
10599
|
});
|
|
10501
10600
|
}, function (e) {
|
|
10502
|
-
var _e$
|
|
10601
|
+
var _e$response4, _e$response5;
|
|
10503
10602
|
Logger.logError(e, loggerSource, "Failed to get swap details. Error is: " + safeStringify(e));
|
|
10504
10603
|
var composeFailResult = function composeFailResult(reason) {
|
|
10505
10604
|
return {
|
|
@@ -10507,8 +10606,8 @@
|
|
|
10507
10606
|
reason: reason
|
|
10508
10607
|
};
|
|
10509
10608
|
};
|
|
10510
|
-
var status = e == null || (_e$
|
|
10511
|
-
var data = e == null || (_e$
|
|
10609
|
+
var status = e == null || (_e$response4 = e.response) == null ? void 0 : _e$response4.status;
|
|
10610
|
+
var data = e == null || (_e$response5 = e.response) == null ? void 0 : _e$response5.data;
|
|
10512
10611
|
if (status === 429) {
|
|
10513
10612
|
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
10514
10613
|
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
@@ -10519,45 +10618,10 @@
|
|
|
10519
10618
|
return Promise.reject(e);
|
|
10520
10619
|
}
|
|
10521
10620
|
};
|
|
10522
|
-
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
10523
|
-
try {
|
|
10524
|
-
var assetData = this._supportedCoins.find(function (i) {
|
|
10525
|
-
var _i$coin3;
|
|
10526
|
-
return ((_i$coin3 = i.coin) == null ? void 0 : _i$coin3.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10527
|
-
});
|
|
10528
|
-
if (assetData) {
|
|
10529
|
-
var corrected = assetData.validationRegexp.trim();
|
|
10530
|
-
corrected = corrected[0] === "/" ? corrected.slice(1) : corrected;
|
|
10531
|
-
corrected = corrected[corrected.length - 1] === "/" ? corrected.slice(0, corrected.length - 1) : corrected;
|
|
10532
|
-
return address.match(corrected) != null;
|
|
10533
|
-
}
|
|
10534
|
-
} catch (e) {
|
|
10535
|
-
Logger.logError(e, "isAddressValidForAsset");
|
|
10536
|
-
}
|
|
10537
|
-
return false;
|
|
10538
|
-
};
|
|
10539
|
-
_proto.getExtraIdNameIfPresent = function getExtraIdNameIfPresent(asset) {
|
|
10540
|
-
try {
|
|
10541
|
-
var assetData = this._supportedCoins.find(function (i) {
|
|
10542
|
-
var _i$coin4;
|
|
10543
|
-
return ((_i$coin4 = i.coin) == null ? void 0 : _i$coin4.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10544
|
-
});
|
|
10545
|
-
if (assetData != null && assetData.hasExtraId) {
|
|
10546
|
-
if ((assetData == null ? void 0 : assetData.extraIdName) == null || (assetData == null ? void 0 : assetData.extraIdName) === "") {
|
|
10547
|
-
// We return some default name if the extraIdName is empty
|
|
10548
|
-
return "ID";
|
|
10549
|
-
}
|
|
10550
|
-
return assetData == null ? void 0 : assetData.extraIdName;
|
|
10551
|
-
}
|
|
10552
|
-
return null;
|
|
10553
|
-
} catch (e) {
|
|
10554
|
-
improveAndRethrow(e, "getExtraIdNameIfPresent");
|
|
10555
|
-
}
|
|
10556
|
-
};
|
|
10557
10621
|
return SwapspaceSwapProvider;
|
|
10558
10622
|
}(SwapProvider);
|
|
10559
10623
|
|
|
10560
|
-
function _catch$
|
|
10624
|
+
function _catch$2(body, recover) {
|
|
10561
10625
|
try {
|
|
10562
10626
|
var result = body();
|
|
10563
10627
|
} catch (e) {
|
|
@@ -10754,134 +10818,590 @@
|
|
|
10754
10818
|
if (coinToCurrentFiatRate === void 0) {
|
|
10755
10819
|
coinToCurrentFiatRate = null;
|
|
10756
10820
|
}
|
|
10757
|
-
if (fiatCurrencyDecimals === void 0) {
|
|
10758
|
-
fiatCurrencyDecimals = null;
|
|
10821
|
+
if (fiatCurrencyDecimals === void 0) {
|
|
10822
|
+
fiatCurrencyDecimals = null;
|
|
10823
|
+
}
|
|
10824
|
+
try {
|
|
10825
|
+
var loggerSource = "getInitialSwapData";
|
|
10826
|
+
return Promise.resolve(_catch$2(function () {
|
|
10827
|
+
/* We use some amount here that should fit at least some of the limits of the swap providers.
|
|
10828
|
+
* So we are going to get some rate to be used as the default for the on-flight calculations before we get
|
|
10829
|
+
* the exact rate (that should be retrieved by getSwapCreationInfo method) for a specific amount.
|
|
10830
|
+
*/
|
|
10831
|
+
var defaultAmountUsd = bignumber_js.BigNumber("300");
|
|
10832
|
+
return Promise.resolve(swapProvider.getCoinToUSDTRate(fromCoin)).then(function (coinUsdRate) {
|
|
10833
|
+
var coinAmountForDefaultUsdAmount = AmountUtils.trim(coinUsdRate.result ? defaultAmountUsd.div(coinUsdRate == null ? void 0 : coinUsdRate.rate) : defaultAmountUsd, fromCoin.digits);
|
|
10834
|
+
Logger.log("Init: " + coinAmountForDefaultUsdAmount + " " + fromCoin.ticker + "->" + toCoin.ticker, loggerSource);
|
|
10835
|
+
return Promise.resolve(swapProvider.getSwapInfo(fromCoin, toCoin, coinAmountForDefaultUsdAmount)).then(function (details) {
|
|
10836
|
+
var _coinToCurrentFiatRat, _fiatCurrencyDecimals;
|
|
10837
|
+
if (!details) {
|
|
10838
|
+
throw new Error("The details are empty: " + safeStringify(details));
|
|
10839
|
+
}
|
|
10840
|
+
if (!details.result) {
|
|
10841
|
+
Logger.log("Failed with reason: " + details.reason + ". " + fromCoin.ticker + "->" + toCoin.ticker, loggerSource);
|
|
10842
|
+
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) {
|
|
10843
|
+
return {
|
|
10844
|
+
result: false,
|
|
10845
|
+
reason: details.reason
|
|
10846
|
+
};
|
|
10847
|
+
} else {
|
|
10848
|
+
throw new Error("Unhandled error case: " + (details == null ? void 0 : details.reason));
|
|
10849
|
+
}
|
|
10850
|
+
}
|
|
10851
|
+
var fiatMin = null;
|
|
10852
|
+
var fiatMax = null;
|
|
10853
|
+
var fiatRate = (_coinToCurrentFiatRat = coinToCurrentFiatRate) != null ? _coinToCurrentFiatRat : coinUsdRate == null ? void 0 : coinUsdRate.rate;
|
|
10854
|
+
var fiatDecimals = (_fiatCurrencyDecimals = fiatCurrencyDecimals) != null ? _fiatCurrencyDecimals : FiatCurrenciesService.getCurrencyDecimalCountByCode("USD");
|
|
10855
|
+
if (fiatRate != null) {
|
|
10856
|
+
fiatMin = bignumber_js.BigNumber(details == null ? void 0 : details.smallestMin).times(fiatRate).toFixed(fiatDecimals);
|
|
10857
|
+
fiatMax = bignumber_js.BigNumber(details == null ? void 0 : details.greatestMax).times(fiatRate).toFixed(fiatDecimals);
|
|
10858
|
+
}
|
|
10859
|
+
var result = {
|
|
10860
|
+
result: true,
|
|
10861
|
+
min: details == null ? void 0 : details.smallestMin,
|
|
10862
|
+
fiatMin: fiatMin,
|
|
10863
|
+
max: details == null ? void 0 : details.greatestMax,
|
|
10864
|
+
fiatMax: fiatMax,
|
|
10865
|
+
rate: AmountUtils.trim(details.rate, 30)
|
|
10866
|
+
};
|
|
10867
|
+
Logger.log("Returning: " + safeStringify(result), loggerSource);
|
|
10868
|
+
return result;
|
|
10869
|
+
});
|
|
10870
|
+
});
|
|
10871
|
+
}, function (e) {
|
|
10872
|
+
Logger.logError(e, loggerSource, "Failed to init swap: " + safeStringify(e));
|
|
10873
|
+
improveAndRethrow(e, loggerSource);
|
|
10874
|
+
}));
|
|
10875
|
+
} catch (e) {
|
|
10876
|
+
return Promise.reject(e);
|
|
10877
|
+
}
|
|
10878
|
+
};
|
|
10879
|
+
SwapUtils.safeHandleRequestsLimitExceeding = function safeHandleRequestsLimitExceeding() {
|
|
10880
|
+
(function () {
|
|
10881
|
+
try {
|
|
10882
|
+
var _temp = _catch$2(function () {
|
|
10883
|
+
return Promise.resolve(EmailsApi.sendEmail("AUTOMATIC EMAIL - SWAPSPACE REQUESTS LIMIT EXCEEDED", "Requests limit exceeded. Urgently ask swaps provider support for limit increasing")).then(function () {});
|
|
10884
|
+
}, function (e) {
|
|
10885
|
+
Logger.log("Failed to handle limit exceeding " + safeStringify(e), "_safeHandleRequestsLimitExceeding");
|
|
10886
|
+
});
|
|
10887
|
+
return _temp && _temp.then ? _temp.then(function () {}) : void 0;
|
|
10888
|
+
} catch (e) {
|
|
10889
|
+
Promise.reject(e);
|
|
10890
|
+
}
|
|
10891
|
+
})();
|
|
10892
|
+
}
|
|
10893
|
+
|
|
10894
|
+
/**
|
|
10895
|
+
* If some swap is not found by id then there is no item in return list.
|
|
10896
|
+
*
|
|
10897
|
+
* @param swapProviders {SwapProvider[]} - Array of swap providers
|
|
10898
|
+
* @param swapIds {string[]} - Array of swap IDs
|
|
10899
|
+
* @return {Promise<{
|
|
10900
|
+
* result: true,
|
|
10901
|
+
* swaps: ExistingSwapWithFiatData[]
|
|
10902
|
+
* }|{
|
|
10903
|
+
* result: false,
|
|
10904
|
+
* reason: string
|
|
10905
|
+
* }>}
|
|
10906
|
+
*/;
|
|
10907
|
+
SwapUtils.getExistingSwapsDetailsWithFiatAmounts = function getExistingSwapsDetailsWithFiatAmounts(swapProviders, swapIds) {
|
|
10908
|
+
try {
|
|
10909
|
+
return Promise.resolve(_catch$2(function () {
|
|
10910
|
+
var _interrupt;
|
|
10911
|
+
function _temp8() {
|
|
10912
|
+
if (swapIds.length > 0 && allSwaps.length === 0 && failResults.length > 0) {
|
|
10913
|
+
var failReasons = failResults.map(function (r) {
|
|
10914
|
+
return r.reason;
|
|
10915
|
+
});
|
|
10916
|
+
return {
|
|
10917
|
+
result: false,
|
|
10918
|
+
reason: failReasons.find(function (r) {
|
|
10919
|
+
return r !== SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED;
|
|
10920
|
+
}) ? failReasons.join("\n") : SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
10921
|
+
};
|
|
10922
|
+
}
|
|
10923
|
+
return {
|
|
10924
|
+
result: true,
|
|
10925
|
+
swaps: allSwaps
|
|
10926
|
+
};
|
|
10927
|
+
}
|
|
10928
|
+
var allSwaps = [];
|
|
10929
|
+
var remainingSwapIds = new Set(swapIds);
|
|
10930
|
+
var failResults = [];
|
|
10931
|
+
var _temp7 = _forOf(swapProviders, function (provider) {
|
|
10932
|
+
return Promise.resolve(provider.getExistingSwapsDetailsAndStatus([].concat(remainingSwapIds))).then(function (result) {
|
|
10933
|
+
var _temp6 = function () {
|
|
10934
|
+
if (result.result) {
|
|
10935
|
+
var _temp5 = function _temp5() {
|
|
10936
|
+
allSwaps = allSwaps.concat(_extendedSwaps);
|
|
10937
|
+
|
|
10938
|
+
// Stop if we have retrieved all swaps
|
|
10939
|
+
if (allSwaps.length >= swapIds.length) {
|
|
10940
|
+
_interrupt = 1;
|
|
10941
|
+
}
|
|
10942
|
+
};
|
|
10943
|
+
var _extendedSwaps = [];
|
|
10944
|
+
var _temp4 = _forOf(result.swaps, function (swap) {
|
|
10945
|
+
function _temp3() {
|
|
10946
|
+
remainingSwapIds["delete"](swap.id);
|
|
10947
|
+
}
|
|
10948
|
+
var _temp2 = function () {
|
|
10949
|
+
if (swap.status === SwapProvider.SWAP_STATUSES.REFUNDED) {
|
|
10950
|
+
return Promise.resolve(provider.getCoinToUSDTRate(swap.fromCoin)).then(function (rate) {
|
|
10951
|
+
_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")));
|
|
10952
|
+
});
|
|
10953
|
+
} else {
|
|
10954
|
+
return Promise.resolve(Promise.all([provider.getCoinToUSDTRate(swap.fromCoin), provider.getCoinToUSDTRate(swap.toCoin)])).then(function (_ref) {
|
|
10955
|
+
var fromCoinFiatRate = _ref[0],
|
|
10956
|
+
toCoinFiatRate = _ref[1];
|
|
10957
|
+
_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")));
|
|
10958
|
+
});
|
|
10959
|
+
}
|
|
10960
|
+
}();
|
|
10961
|
+
return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
|
|
10962
|
+
});
|
|
10963
|
+
return _temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4);
|
|
10964
|
+
} else {
|
|
10965
|
+
failResults.push(result);
|
|
10966
|
+
}
|
|
10967
|
+
}();
|
|
10968
|
+
if (_temp6 && _temp6.then) return _temp6.then(function () {});
|
|
10969
|
+
});
|
|
10970
|
+
}, function () {
|
|
10971
|
+
return _interrupt;
|
|
10972
|
+
});
|
|
10973
|
+
return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
|
|
10974
|
+
}, function (e) {
|
|
10975
|
+
improveAndRethrow(e, "getExistingSwapsDetailsWithFiatAmounts");
|
|
10976
|
+
}));
|
|
10977
|
+
} catch (e) {
|
|
10978
|
+
return Promise.reject(e);
|
|
10979
|
+
}
|
|
10980
|
+
};
|
|
10981
|
+
return SwapUtils;
|
|
10982
|
+
}();
|
|
10983
|
+
|
|
10984
|
+
function _catch$1(body, recover) {
|
|
10985
|
+
try {
|
|
10986
|
+
var result = body();
|
|
10987
|
+
} catch (e) {
|
|
10988
|
+
return recover(e);
|
|
10989
|
+
}
|
|
10990
|
+
if (result && result.then) {
|
|
10991
|
+
return result.then(void 0, recover);
|
|
10992
|
+
}
|
|
10993
|
+
return result;
|
|
10994
|
+
}
|
|
10995
|
+
var LetsExchangeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
10996
|
+
_inheritsLoose(LetsExchangeSwapProvider, _SwapProvider);
|
|
10997
|
+
function LetsExchangeSwapProvider(apiKeysProxyUrl, cache, customCoinBuilder, useRestrictedCoinsSet) {
|
|
10998
|
+
var _this;
|
|
10999
|
+
if (customCoinBuilder === void 0) {
|
|
11000
|
+
customCoinBuilder = function customCoinBuilder(coin, network) {
|
|
11001
|
+
return null;
|
|
11002
|
+
};
|
|
11003
|
+
}
|
|
11004
|
+
if (useRestrictedCoinsSet === void 0) {
|
|
11005
|
+
useRestrictedCoinsSet = true;
|
|
11006
|
+
}
|
|
11007
|
+
_this = _SwapProvider.call(this, cache, customCoinBuilder, useRestrictedCoinsSet) || this;
|
|
11008
|
+
_this._partners = [];
|
|
11009
|
+
_this._URL = apiKeysProxyUrl + "/letsexchange";
|
|
11010
|
+
_this.isAggregator = false;
|
|
11011
|
+
_this.COINS_EXPIRATION_TIME_MS = 5 * 60 * 1000;
|
|
11012
|
+
_this.coinsLastUpdateTimestamp = null;
|
|
11013
|
+
return _this;
|
|
11014
|
+
}
|
|
11015
|
+
var _proto = LetsExchangeSwapProvider.prototype;
|
|
11016
|
+
_proto.getSwapCreationInfoTtlMs = function getSwapCreationInfoTtlMs() {
|
|
11017
|
+
return 110000;
|
|
11018
|
+
};
|
|
11019
|
+
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
11020
|
+
try {
|
|
11021
|
+
var _this2 = this;
|
|
11022
|
+
var loggerSource = "_fetchSupportedCurrenciesIfNeeded";
|
|
11023
|
+
return Promise.resolve(_catch$1(function () {
|
|
11024
|
+
var _temp = function (_this2$_supportedCoin) {
|
|
11025
|
+
if (!((_this2$_supportedCoin = _this2._supportedCoins) != null && _this2$_supportedCoin.length) || !_this2.coinsLastUpdateTimestamp || _this2.coinsLastUpdateTimestamp + _this2.COINS_EXPIRATION_TIME_MS < Date.now()) {
|
|
11026
|
+
return Promise.resolve(axios__default["default"].get(_this2._URL + "/v2/coins")).then(function (rawResponse) {
|
|
11027
|
+
var _rawResponse$data, _rawResponse$data2;
|
|
11028
|
+
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data = rawResponse.data) == null ? void 0 : _rawResponse$data.length), loggerSource);
|
|
11029
|
+
var allowedCoins = (_rawResponse$data2 = rawResponse == null ? void 0 : rawResponse.data) != null ? _rawResponse$data2 : [];
|
|
11030
|
+
Logger.log("Allowed cnt " + allowedCoins.length, loggerSource);
|
|
11031
|
+
_this2._supportedCoins = allowedCoins.map(function (item) {
|
|
11032
|
+
var code = item.code.toUpperCase();
|
|
11033
|
+
if (!Array.isArray(item.networks)) return [];
|
|
11034
|
+
return item.networks.map(function (networkDetails) {
|
|
11035
|
+
var network = networkDetails.code.toUpperCase();
|
|
11036
|
+
var coin = _this2._customCoinBuilder(code, network);
|
|
11037
|
+
if (!coin && !_this2.useRestrictedCoinsSet) {
|
|
11038
|
+
var name = _this2.removeProtocolNameFromCoinName(item.name, code, network);
|
|
11039
|
+
var ticker = "" + code + (code === network ? "" : network);
|
|
11040
|
+
var defaultDecimalPlacesForCoinNotSupportedOOB = DEFAULT_CRYPTO_DECIMAL_COUNT;
|
|
11041
|
+
var defaultMinConfirmationsForCoinNotSupportedOOB = 1;
|
|
11042
|
+
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);
|
|
11043
|
+
}
|
|
11044
|
+
if (coin) {
|
|
11045
|
+
var _networkDetails$extra, _networkDetails$valid;
|
|
11046
|
+
return {
|
|
11047
|
+
coin: coin,
|
|
11048
|
+
code: item.code,
|
|
11049
|
+
network: networkDetails.code,
|
|
11050
|
+
hasExtraId: !!networkDetails.has_extra,
|
|
11051
|
+
extraIdName: (_networkDetails$extra = networkDetails.extra_name) != null ? _networkDetails$extra : null,
|
|
11052
|
+
isPopular: item.rating || 0,
|
|
11053
|
+
iconURL: item.icon ? item.icon : FALLBACK_ASSET_ICON_URL,
|
|
11054
|
+
deposit: true,
|
|
11055
|
+
// Letsexchange provide no such details
|
|
11056
|
+
withdrawal: true,
|
|
11057
|
+
// Letsexchange provide no such details
|
|
11058
|
+
validationRegexp: (_networkDetails$valid = networkDetails.validation_address_regex) != null ? _networkDetails$valid : null,
|
|
11059
|
+
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)
|
|
11060
|
+
};
|
|
11061
|
+
}
|
|
11062
|
+
return [];
|
|
11063
|
+
});
|
|
11064
|
+
}).flat();
|
|
11065
|
+
_this2.coinsLastUpdateTimestamp = Date.now();
|
|
11066
|
+
_this2._putPopularCoinsFirst();
|
|
11067
|
+
});
|
|
11068
|
+
}
|
|
11069
|
+
}();
|
|
11070
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
|
11071
|
+
}, function (e) {
|
|
11072
|
+
improveAndRethrow(e, loggerSource);
|
|
11073
|
+
}));
|
|
11074
|
+
} catch (e) {
|
|
11075
|
+
return Promise.reject(e);
|
|
11076
|
+
}
|
|
11077
|
+
};
|
|
11078
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
11079
|
+
if (fixed === void 0) {
|
|
11080
|
+
fixed = false;
|
|
11081
|
+
}
|
|
11082
|
+
if (amountIsToReceive === void 0) {
|
|
11083
|
+
amountIsToReceive = false;
|
|
11084
|
+
}
|
|
11085
|
+
try {
|
|
11086
|
+
var _this3 = this;
|
|
11087
|
+
var loggerSource = "getSwapInfo";
|
|
11088
|
+
return Promise.resolve(_catch$1(function () {
|
|
11089
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amountCoins !== "string" || bignumber_js.BigNumber(amountCoins).lt("0") || fixed !== null && typeof fixed !== "boolean" || amountIsToReceive && !fixed) {
|
|
11090
|
+
throw new Error("Wrong input params: " + amountCoins + " " + fromCoin.ticker + " -> " + toCoin.ticker + ", " + (fromCoin instanceof Coin) + ", " + (toCoin instanceof Coin) + ", " + typeof fixed + " " + fixed + ", " + amountIsToReceive);
|
|
11091
|
+
}
|
|
11092
|
+
var fromCoinDetails = _this3._supportedCoins.find(function (i) {
|
|
11093
|
+
var _i$coin;
|
|
11094
|
+
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
11095
|
+
});
|
|
11096
|
+
var toCoinDetails = _this3._supportedCoins.find(function (i) {
|
|
11097
|
+
var _i$coin2;
|
|
11098
|
+
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
11099
|
+
});
|
|
11100
|
+
if (!fromCoinDetails || !toCoinDetails) {
|
|
11101
|
+
throw new Error("Failed to find coin details for: " + fromCoin.ticker + " -> " + toCoin.ticker);
|
|
11102
|
+
}
|
|
11103
|
+
if (!fromCoinDetails.deposit || !fromCoinDetails.isAvailable || !toCoinDetails.withdrawal || !toCoinDetails.isAvailable) {
|
|
11104
|
+
return {
|
|
11105
|
+
result: false,
|
|
11106
|
+
reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
|
|
11107
|
+
};
|
|
11108
|
+
}
|
|
11109
|
+
var pathAndQuery = "/v1/info" + (amountIsToReceive ? "-revert" : "?float=" + !fixed);
|
|
11110
|
+
return Promise.resolve(axios__default["default"].post("" + _this3._URL + pathAndQuery, {
|
|
11111
|
+
from: fromCoinDetails.code,
|
|
11112
|
+
to: toCoinDetails.code,
|
|
11113
|
+
network_from: fromCoinDetails.network,
|
|
11114
|
+
network_to: toCoinDetails.network,
|
|
11115
|
+
amount: amountCoins,
|
|
11116
|
+
affiliate_id: LetsExchangeSwapProvider.AFFILIATE_ID
|
|
11117
|
+
})).then(function (response) {
|
|
11118
|
+
Logger.log("Retrieved " + (response == null ? void 0 : response.data), loggerSource);
|
|
11119
|
+
var data = response.data;
|
|
11120
|
+
|
|
11121
|
+
// TODO: [dev] add SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING - request alternative rate. task_id=
|
|
11122
|
+
|
|
11123
|
+
// TODO: [feature, low] implement extra coins to fit min/max if there are frequent errors due to min/max exceeding
|
|
11124
|
+
// let extraCoinsToFitMinMax = "0";
|
|
11125
|
+
// if (typeof fromCoinToUsdRate === "string" && BigNumber(fromCoinToUsdRate).gt("0")) {
|
|
11126
|
+
// const extraUsdToFitMinMax = BigNumber("1"); // We correct the limits as the exact limit can fluctuate and cause failed swap creation
|
|
11127
|
+
// extraCoinsToFitMinMax = AmountUtils.trim(extraUsdToFitMinMax.div(fromCoinToUsdRate), fromCoin.digits);
|
|
11128
|
+
// }
|
|
11129
|
+
var min = null;
|
|
11130
|
+
if (data != null && data.min_amount) {
|
|
11131
|
+
min = AmountUtils.trim(data == null ? void 0 : data.min_amount, amountIsToReceive ? toCoin.digits : fromCoin.digits);
|
|
11132
|
+
}
|
|
11133
|
+
var max = null;
|
|
11134
|
+
if (data != null && data.max_amount) {
|
|
11135
|
+
max = AmountUtils.trim(data == null ? void 0 : data.max_amount, amountIsToReceive ? toCoin.digits : fromCoin.digits);
|
|
11136
|
+
}
|
|
11137
|
+
if (data.success === false && data.error) {
|
|
11138
|
+
// TODO: [dev] waiting for response from letsexchange about their not-documented responses
|
|
11139
|
+
// {
|
|
11140
|
+
// "success": false,
|
|
11141
|
+
// "error": "Internal error"
|
|
11142
|
+
// }
|
|
11143
|
+
throw new Error("Failed to estimate swap letsexchange");
|
|
11144
|
+
}
|
|
11145
|
+
if (bignumber_js.BigNumber(data.rate).eq("0") || bignumber_js.BigNumber(data.amount).eq("0")) {
|
|
11146
|
+
// TODO actualize according to letsexchage clarification - decide, can we count on min/max abcense? task_id=76512110797f4eab8b37f1bb789825cb
|
|
11147
|
+
// amount: "0", rate: "0", rate_id: ""
|
|
11148
|
+
var reason = SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED;
|
|
11149
|
+
if (min && bignumber_js.BigNumber(amountCoins).lt(min)) {
|
|
11150
|
+
reason = SwapProvider.NO_SWAPS_REASONS.TOO_LOW;
|
|
11151
|
+
} else if (max && bignumber_js.BigNumber(amountCoins).gt(max)) {
|
|
11152
|
+
reason = SwapProvider.NO_SWAPS_REASONS.TOO_HIGH;
|
|
11153
|
+
} else if (!amountIsToReceive) {
|
|
11154
|
+
// If we are not requesting receiving amount (it cannot be floating-rate)
|
|
11155
|
+
// todo [feature, moderate] request alternative rate. task_id=31884db5392f49738c20a86115c90e1f
|
|
11156
|
+
// const alternativeRate = 1;
|
|
11157
|
+
// const alternativeRateAvailable = alternativeRate;
|
|
11158
|
+
// if (alternativeRateAvailable) {
|
|
11159
|
+
// reason = fixed
|
|
11160
|
+
// ? SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING
|
|
11161
|
+
// : SwapProvider.NO_SWAPS_REASONS.NO_FLOATING_BUT_HAVE_FIXED;
|
|
11162
|
+
// }
|
|
11163
|
+
}
|
|
11164
|
+
return {
|
|
11165
|
+
result: false,
|
|
11166
|
+
reason: reason,
|
|
11167
|
+
smallestMin: min,
|
|
11168
|
+
greatestMax: max
|
|
11169
|
+
};
|
|
11170
|
+
}
|
|
11171
|
+
var rate = amountIsToReceive ? bignumber_js.BigNumber(amountCoins).div(data.amount) : bignumber_js.BigNumber(data.amount).div(amountCoins);
|
|
11172
|
+
return {
|
|
11173
|
+
result: true,
|
|
11174
|
+
min: min,
|
|
11175
|
+
max: max,
|
|
11176
|
+
smallestMin: min,
|
|
11177
|
+
greatestMax: max,
|
|
11178
|
+
rate: AmountUtils.trim(rate, _this3._maxRateDigits),
|
|
11179
|
+
durationMinutesRange: null,
|
|
11180
|
+
fixed: fixed,
|
|
11181
|
+
rawSwapData: data,
|
|
11182
|
+
isRefundAddressRequired: false
|
|
11183
|
+
};
|
|
11184
|
+
});
|
|
11185
|
+
}, function (e) {
|
|
11186
|
+
var _e$response;
|
|
11187
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
11188
|
+
return {
|
|
11189
|
+
result: false,
|
|
11190
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
11191
|
+
};
|
|
11192
|
+
}
|
|
11193
|
+
Logger.log("Internal error when getting swap options " + safeStringify(e), loggerSource);
|
|
11194
|
+
improveAndRethrow(e, loggerSource);
|
|
11195
|
+
}));
|
|
11196
|
+
} catch (e) {
|
|
11197
|
+
return Promise.reject(e);
|
|
11198
|
+
}
|
|
11199
|
+
};
|
|
11200
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
11201
|
+
if (toCurrencyExtraId === void 0) {
|
|
11202
|
+
toCurrencyExtraId = "";
|
|
11203
|
+
}
|
|
11204
|
+
if (refundExtraId === void 0) {
|
|
11205
|
+
refundExtraId = "";
|
|
11206
|
+
}
|
|
11207
|
+
if (amountIsToReceive === void 0) {
|
|
11208
|
+
amountIsToReceive = false;
|
|
10759
11209
|
}
|
|
10760
11210
|
try {
|
|
10761
|
-
var
|
|
11211
|
+
var _this4 = this;
|
|
11212
|
+
var loggerSource = "createSwap";
|
|
10762
11213
|
return Promise.resolve(_catch$1(function () {
|
|
10763
|
-
|
|
10764
|
-
|
|
10765
|
-
|
|
10766
|
-
|
|
10767
|
-
|
|
10768
|
-
|
|
10769
|
-
|
|
10770
|
-
|
|
10771
|
-
return
|
|
10772
|
-
|
|
10773
|
-
|
|
10774
|
-
|
|
10775
|
-
|
|
10776
|
-
|
|
10777
|
-
|
|
10778
|
-
|
|
10779
|
-
|
|
10780
|
-
|
|
10781
|
-
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10792
|
-
|
|
10793
|
-
|
|
10794
|
-
|
|
10795
|
-
|
|
11214
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || typeof refundAddress !== "string" || typeof clientIpAddress != "string" || typeof fixed != "boolean") {
|
|
11215
|
+
throw new Error("Invalid input: " + fromCoin + " " + toCoin + " " + amount + " " + toAddress + " " + refundAddress + " " + fixed);
|
|
11216
|
+
}
|
|
11217
|
+
if (typeof rawSwapData !== "object" || fixed && !rawSwapData.rate_id) {
|
|
11218
|
+
throw new Error("Invalid raw swap data: " + safeStringify(rawSwapData));
|
|
11219
|
+
}
|
|
11220
|
+
var fromCoinDetails = _this4._supportedCoins.find(function (i) {
|
|
11221
|
+
var _i$coin3;
|
|
11222
|
+
return ((_i$coin3 = i.coin) == null ? void 0 : _i$coin3.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
11223
|
+
});
|
|
11224
|
+
var toCoinDetails = _this4._supportedCoins.find(function (i) {
|
|
11225
|
+
var _i$coin4;
|
|
11226
|
+
return ((_i$coin4 = i.coin) == null ? void 0 : _i$coin4.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
11227
|
+
});
|
|
11228
|
+
if (!fromCoinDetails || !toCoinDetails) {
|
|
11229
|
+
throw new Error("Failed to find coin details for: " + fromCoin.ticker + " -> " + toCoin.ticker);
|
|
11230
|
+
}
|
|
11231
|
+
var requestBody = {
|
|
11232
|
+
coin_from: fromCoinDetails.code,
|
|
11233
|
+
network_from: fromCoinDetails.network,
|
|
11234
|
+
coin_to: toCoinDetails.code,
|
|
11235
|
+
network_to: toCoinDetails.network,
|
|
11236
|
+
withdrawal: toAddress,
|
|
11237
|
+
withdrawal_extra_id: toCurrencyExtraId,
|
|
11238
|
+
"return": refundAddress,
|
|
11239
|
+
return_extra_id: refundExtraId,
|
|
11240
|
+
affiliate_id: LetsExchangeSwapProvider.AFFILIATE_ID
|
|
11241
|
+
};
|
|
11242
|
+
if (amountIsToReceive) {
|
|
11243
|
+
requestBody.withdrawal_amount = amount;
|
|
11244
|
+
} else {
|
|
11245
|
+
requestBody.deposit_amount = amount;
|
|
11246
|
+
}
|
|
11247
|
+
if (fixed) {
|
|
11248
|
+
requestBody.rate_id = rawSwapData.rate_id;
|
|
11249
|
+
}
|
|
11250
|
+
return Promise.resolve(axios__default["default"].post(_this4._URL + "/v1/transaction" + (amountIsToReceive ? "-revert" : "?float=" + !fixed), requestBody)).then(function (response) {
|
|
11251
|
+
var result = response.data;
|
|
11252
|
+
Logger.log("Creation result " + safeStringify(result), loggerSource);
|
|
11253
|
+
if (result != null && result.transaction_id) {
|
|
11254
|
+
var _result$rate, _result$deposit_extra;
|
|
11255
|
+
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);
|
|
11256
|
+
return {
|
|
10796
11257
|
result: true,
|
|
10797
|
-
|
|
10798
|
-
|
|
10799
|
-
|
|
10800
|
-
|
|
10801
|
-
|
|
11258
|
+
swapId: result.transaction_id,
|
|
11259
|
+
fromCoin: fromCoin,
|
|
11260
|
+
fromAmount: AmountUtils.trim(result.deposit_amount, fromCoin.digits),
|
|
11261
|
+
fromAddress: result.deposit,
|
|
11262
|
+
toCoin: toCoin,
|
|
11263
|
+
toAmount: AmountUtils.trim(result.withdrawal_amount, toCoin.digits),
|
|
11264
|
+
toAddress: result.withdrawal,
|
|
11265
|
+
fromCurrencyExtraId: (_result$deposit_extra = result.deposit_extra_id) != null ? _result$deposit_extra : "",
|
|
11266
|
+
rate: AmountUtils.trim(rate, _this4._maxRateDigits),
|
|
11267
|
+
fixed: !result.is_float
|
|
10802
11268
|
};
|
|
10803
|
-
|
|
10804
|
-
|
|
10805
|
-
|
|
11269
|
+
}
|
|
11270
|
+
var errorMessage = "Swap creation succeeded but the response is wrong: " + safeStringify(response);
|
|
11271
|
+
Logger.log(errorMessage, loggerSource);
|
|
11272
|
+
throw new Error(errorMessage);
|
|
10806
11273
|
});
|
|
10807
11274
|
}, function (e) {
|
|
10808
|
-
|
|
11275
|
+
var _e$response2, _e$response3;
|
|
11276
|
+
Logger.logError(e, loggerSource, "Failed to create swap. Error is: " + safeStringify(e));
|
|
11277
|
+
var composeFailResult = function composeFailResult(reason) {
|
|
11278
|
+
return {
|
|
11279
|
+
result: false,
|
|
11280
|
+
reason: reason
|
|
11281
|
+
};
|
|
11282
|
+
};
|
|
11283
|
+
var status = e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status;
|
|
11284
|
+
var data = e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.data;
|
|
11285
|
+
if (status === 429) {
|
|
11286
|
+
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
11287
|
+
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
11288
|
+
}
|
|
11289
|
+
// TODO: [feature, low] add custom errors handling - waiting for response from letsexchange. task_id=00d2e435f6df4fb99af912135bd9ee27
|
|
11290
|
+
// 422 - missing params
|
|
11291
|
+
Logger.log("Internal error for swap: " + safeStringify(e), loggerSource);
|
|
10809
11292
|
improveAndRethrow(e, loggerSource);
|
|
10810
11293
|
}));
|
|
10811
11294
|
} catch (e) {
|
|
10812
11295
|
return Promise.reject(e);
|
|
10813
11296
|
}
|
|
10814
11297
|
};
|
|
10815
|
-
|
|
10816
|
-
(function () {
|
|
10817
|
-
try {
|
|
10818
|
-
var _temp = _catch$1(function () {
|
|
10819
|
-
return Promise.resolve(EmailsApi.sendEmail("AUTOMATIC EMAIL - SWAPSPACE REQUESTS LIMIT EXCEEDED", "Requests limit exceeded. Urgently ask swaps provider support for limit increasing")).then(function () {});
|
|
10820
|
-
}, function (e) {
|
|
10821
|
-
Logger.log("Failed to handle limit exceeding " + safeStringify(e), "_safeHandleRequestsLimitExceeding");
|
|
10822
|
-
});
|
|
10823
|
-
return _temp && _temp.then ? _temp.then(function () {}) : void 0;
|
|
10824
|
-
} catch (e) {
|
|
10825
|
-
Promise.reject(e);
|
|
10826
|
-
}
|
|
10827
|
-
})();
|
|
10828
|
-
}
|
|
10829
|
-
|
|
10830
|
-
/**
|
|
10831
|
-
* If some swap is not found by id then there is no item in return list.
|
|
10832
|
-
*
|
|
10833
|
-
* @param swapProvider {SwapProvider}
|
|
10834
|
-
* @param swapIds {string[]}
|
|
10835
|
-
* @return {Promise<{
|
|
10836
|
-
* result: true,
|
|
10837
|
-
* swaps: ExistingSwapWithFiatData[]
|
|
10838
|
-
* }|{
|
|
10839
|
-
* result: false,
|
|
10840
|
-
* reason: string
|
|
10841
|
-
* }>}
|
|
10842
|
-
*/;
|
|
10843
|
-
SwapUtils.getExistingSwapsDetailsWithFiatAmounts = function getExistingSwapsDetailsWithFiatAmounts(swapProvider, swapIds) {
|
|
11298
|
+
_proto.getExistingSwapsDetailsAndStatus = function getExistingSwapsDetailsAndStatus(swapIds) {
|
|
10844
11299
|
try {
|
|
11300
|
+
var _this5 = this;
|
|
11301
|
+
var loggerSource = "getExistingSwapsDetailsAndStatus";
|
|
10845
11302
|
return Promise.resolve(_catch$1(function () {
|
|
10846
|
-
|
|
10847
|
-
|
|
10848
|
-
|
|
10849
|
-
|
|
10850
|
-
|
|
10851
|
-
|
|
10852
|
-
|
|
10853
|
-
|
|
10854
|
-
|
|
10855
|
-
|
|
10856
|
-
|
|
10857
|
-
|
|
10858
|
-
|
|
10859
|
-
|
|
10860
|
-
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
_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")));
|
|
10864
|
-
});
|
|
10865
|
-
}
|
|
10866
|
-
}();
|
|
10867
|
-
if (_temp2 && _temp2.then) return _temp2.then(function () {});
|
|
10868
|
-
});
|
|
10869
|
-
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
11303
|
+
if (swapIds.find(function (id) {
|
|
11304
|
+
return typeof id !== "string";
|
|
11305
|
+
})) {
|
|
11306
|
+
throw new Error("Swap id is not string: " + safeStringify(swapIds));
|
|
11307
|
+
}
|
|
11308
|
+
return Promise.resolve(axios__default["default"].get(_this5._URL + "/v1/transactions-list?ids[]=" + swapIds.join("&ids[]="))).then(function (response) {
|
|
11309
|
+
Logger.log("All swaps RAW: " + safeStringify(response.data), loggerSource);
|
|
11310
|
+
var swaps = response.data.map(function (swap, index) {
|
|
11311
|
+
var _this5$_supportedCoin, _this5$_supportedCoin2, _swap$deposit_extra_i, _swap$withdrawal_extr, _swap$return_extra_id;
|
|
11312
|
+
var fromCoin = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
|
|
11313
|
+
return i.code === swap.coin_from && i.network === swap.coin_from_network;
|
|
11314
|
+
})) == null ? void 0 : _this5$_supportedCoin.coin;
|
|
11315
|
+
var toCoin = (_this5$_supportedCoin2 = _this5._supportedCoins.find(function (i) {
|
|
11316
|
+
return i.code === swap.coin_to && i.network === swap.coin_to_network;
|
|
11317
|
+
})) == null ? void 0 : _this5$_supportedCoin2.coin;
|
|
11318
|
+
if (!fromCoin || !toCoin) {
|
|
11319
|
+
return []; // We skip swaps with not supported coins for now
|
|
10870
11320
|
}
|
|
10871
|
-
|
|
10872
|
-
|
|
10873
|
-
|
|
10874
|
-
|
|
11321
|
+
var toUtcTimestamp = function toUtcTimestamp(timeStr) {
|
|
11322
|
+
return Date.parse(timeStr.match(/.+[Zz]$/) ? timeStr : timeStr + "Z");
|
|
11323
|
+
};
|
|
11324
|
+
var expiresAt = swap.expired_at ? swap.expired_at * 1000 : null;
|
|
11325
|
+
var createdAt = swap.created_at ? toUtcTimestamp("" + swap.created_at) : null;
|
|
11326
|
+
var isExpiredByTime = expiresAt && expiresAt < Date.now();
|
|
11327
|
+
var status = _this5._mapLetsExchangeStatusToRabbitStatus(swap.status, isExpiredByTime);
|
|
11328
|
+
var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
|
|
11329
|
+
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);
|
|
11330
|
+
}).flat();
|
|
11331
|
+
Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
|
|
11332
|
+
return {
|
|
11333
|
+
result: true,
|
|
11334
|
+
swaps: swaps
|
|
11335
|
+
};
|
|
10875
11336
|
});
|
|
10876
11337
|
}, function (e) {
|
|
10877
|
-
|
|
11338
|
+
var _e$response4, _e$response5;
|
|
11339
|
+
Logger.logError(e, loggerSource, "Failed to get swap details. Error is: " + safeStringify(e));
|
|
11340
|
+
var composeFailResult = function composeFailResult(reason) {
|
|
11341
|
+
return {
|
|
11342
|
+
result: false,
|
|
11343
|
+
reason: reason
|
|
11344
|
+
};
|
|
11345
|
+
};
|
|
11346
|
+
var status = e == null || (_e$response4 = e.response) == null ? void 0 : _e$response4.status;
|
|
11347
|
+
var data = e == null || (_e$response5 = e.response) == null ? void 0 : _e$response5.data;
|
|
11348
|
+
if (status === 429) {
|
|
11349
|
+
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
11350
|
+
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
11351
|
+
}
|
|
11352
|
+
improveAndRethrow(e, loggerSource);
|
|
10878
11353
|
}));
|
|
10879
11354
|
} catch (e) {
|
|
10880
11355
|
return Promise.reject(e);
|
|
10881
11356
|
}
|
|
11357
|
+
} // TODO: [dev] Serg, please check this during the review to make sure I did no mistakes in statuses mapping.
|
|
11358
|
+
// I will remove these comments after the review. https://api.letsexchange.io/doc
|
|
11359
|
+
// wait The exchange has just been created and it’s waiting for coins to reach the deposit wallet
|
|
11360
|
+
// confirmation The transaction appears in mempool and now it is waiting for necessary network confirmations to start.
|
|
11361
|
+
// confirmed The user’s payment is confirmed, the exchange process is about to start.
|
|
11362
|
+
// exchanging The exchange process is running.
|
|
11363
|
+
// sending Funds are being sent to the recipient`s address.
|
|
11364
|
+
// sending_confirmation The outgoing transaction is waiting for network confirmations.
|
|
11365
|
+
// success The exchange is completed and the funds are successfully sent to the recipient’s address.
|
|
11366
|
+
// aml_check_failed The deposit was marked as risky by AML check service.
|
|
11367
|
+
// overdue The deposit receiving time for this transaction has expired.
|
|
11368
|
+
// error The transaction has failed. In most cases, the amount that was sent differs from the amount that was specified when creating the transaction.
|
|
11369
|
+
// refund The exchange failed and the coins were refunded to the user's wallet.
|
|
11370
|
+
;
|
|
11371
|
+
_proto._mapLetsExchangeStatusToRabbitStatus = function _mapLetsExchangeStatusToRabbitStatus(status, isExpiredByTime) {
|
|
11372
|
+
switch (status) {
|
|
11373
|
+
case "wait":
|
|
11374
|
+
if (isExpiredByTime) {
|
|
11375
|
+
return SwapProvider.SWAP_STATUSES.EXPIRED;
|
|
11376
|
+
}
|
|
11377
|
+
return SwapProvider.SWAP_STATUSES.WAITING_FOR_PAYMENT;
|
|
11378
|
+
case "confirmation":
|
|
11379
|
+
return SwapProvider.SWAP_STATUSES.CONFIRMING;
|
|
11380
|
+
case "confirmed":
|
|
11381
|
+
return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;
|
|
11382
|
+
case "exchanging":
|
|
11383
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11384
|
+
case "sending":
|
|
11385
|
+
return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;
|
|
11386
|
+
case "sending_confirmation":
|
|
11387
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11388
|
+
case "success":
|
|
11389
|
+
return SwapProvider.SWAP_STATUSES.COMPLETED;
|
|
11390
|
+
case "refund":
|
|
11391
|
+
return SwapProvider.SWAP_STATUSES.REFUNDED;
|
|
11392
|
+
case "overdue":
|
|
11393
|
+
return SwapProvider.SWAP_STATUSES.EXPIRED;
|
|
11394
|
+
case "aml_check_failed":
|
|
11395
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11396
|
+
case "error":
|
|
11397
|
+
return SwapProvider.SWAP_STATUSES.FAILED;
|
|
11398
|
+
default:
|
|
11399
|
+
throw new Error("Unknown LetsExchange status: " + status);
|
|
11400
|
+
}
|
|
10882
11401
|
};
|
|
10883
|
-
return
|
|
10884
|
-
}();
|
|
11402
|
+
return LetsExchangeSwapProvider;
|
|
11403
|
+
}(SwapProvider);
|
|
11404
|
+
LetsExchangeSwapProvider.AFFILIATE_ID = "0zbj9hf7xg7jgdgv";
|
|
10885
11405
|
|
|
10886
11406
|
function _catch(body, recover) {
|
|
10887
11407
|
try {
|
|
@@ -10899,13 +11419,16 @@
|
|
|
10899
11419
|
this._swapProvider = new SwapspaceSwapProvider(apiKeysProxyUrl, cache, function () {
|
|
10900
11420
|
return null;
|
|
10901
11421
|
}, false);
|
|
11422
|
+
this._fixedSwapProvider = new LetsExchangeSwapProvider(apiKeysProxyUrl, cache, function () {
|
|
11423
|
+
return null;
|
|
11424
|
+
}, false);
|
|
10902
11425
|
}
|
|
10903
11426
|
var _proto = PublicSwapService.prototype;
|
|
10904
11427
|
_proto.initialize = function initialize() {
|
|
10905
11428
|
try {
|
|
10906
11429
|
var _this = this;
|
|
10907
11430
|
var _temp = _catch(function () {
|
|
10908
|
-
return Promise.resolve(_this._swapProvider.initialize()).then(function () {});
|
|
11431
|
+
return Promise.resolve(Promise.all([_this._swapProvider.initialize(), _this._fixedSwapProvider.initialize()])).then(function () {});
|
|
10909
11432
|
}, function (e) {
|
|
10910
11433
|
Logger.logError(e, "PublicSwapService.initialize");
|
|
10911
11434
|
});
|
|
@@ -10913,39 +11436,61 @@
|
|
|
10913
11436
|
} catch (e) {
|
|
10914
11437
|
return Promise.reject(e);
|
|
10915
11438
|
}
|
|
10916
|
-
}
|
|
11439
|
+
}
|
|
11440
|
+
/**
|
|
11441
|
+
* Gets all currencies across all partners. Useful for sitemap or supported currencies count/list.
|
|
11442
|
+
*
|
|
11443
|
+
* @return {Promise<{result: boolean, coins: Coin[]}|{result: boolean, reason: string}>}
|
|
11444
|
+
*/
|
|
11445
|
+
;
|
|
10917
11446
|
_proto.getAllSupportedCurrenciesListForPublicSwap = function getAllSupportedCurrenciesListForPublicSwap() {
|
|
10918
11447
|
try {
|
|
10919
11448
|
var _this2 = this;
|
|
10920
11449
|
var loggerSource = "getAllSupportedCurrenciesListForPublicSwap";
|
|
10921
11450
|
return Promise.resolve(_catch(function () {
|
|
10922
|
-
return Promise.resolve(_this2.
|
|
10923
|
-
|
|
10924
|
-
|
|
10925
|
-
|
|
11451
|
+
return Promise.resolve(_this2.initialize()).then(function () {
|
|
11452
|
+
return Promise.resolve(Promise.all([_this2._fixedSwapProvider.getAllSupportedCurrencies(), _this2._swapProvider.getAllSupportedCurrencies()])).then(function (result) {
|
|
11453
|
+
var _result$0$coins, _result$1$coins, _result$coins;
|
|
11454
|
+
var allCoins = [].concat((_result$0$coins = result[0].coins) != null ? _result$0$coins : []);
|
|
11455
|
+
((_result$1$coins = result[1].coins) != null ? _result$1$coins : []).forEach(function (c) {
|
|
11456
|
+
if (!allCoins.find(function (existingCoin) {
|
|
11457
|
+
return existingCoin.ticker === c.ticker;
|
|
11458
|
+
})) {
|
|
11459
|
+
allCoins.push(c);
|
|
11460
|
+
}
|
|
11461
|
+
});
|
|
11462
|
+
if (result[0].reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED || result[1].reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
11463
|
+
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
11464
|
+
// TODO: [dev] improve this during the whitebit integration. task_id=20e7e41211b540d081bf98f392a34b2c
|
|
11465
|
+
// return {
|
|
11466
|
+
// result: false,
|
|
11467
|
+
// reason: PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED,
|
|
11468
|
+
// };
|
|
11469
|
+
} else if (result[0].reason || result[1].reason) {
|
|
11470
|
+
console.log("Failed to get all supported coins", result[0].reason, result[1].reason);
|
|
11471
|
+
}
|
|
11472
|
+
Logger.log("Retrieved " + (result == null || (_result$coins = result.coins) == null ? void 0 : _result$coins.length) + " supported currencies for swap", loggerSource);
|
|
10926
11473
|
return {
|
|
10927
|
-
result:
|
|
10928
|
-
|
|
11474
|
+
result: true,
|
|
11475
|
+
coins: allCoins
|
|
10929
11476
|
};
|
|
10930
|
-
}
|
|
10931
|
-
Logger.log("Retrieved " + (result == null || (_result$coins = result.coins) == null ? void 0 : _result$coins.length) + " supported currencies for swap", loggerSource);
|
|
10932
|
-
return {
|
|
10933
|
-
result: true,
|
|
10934
|
-
coins: result.coins
|
|
10935
|
-
};
|
|
11477
|
+
});
|
|
10936
11478
|
});
|
|
10937
11479
|
}, function (e) {
|
|
10938
|
-
improveAndRethrow(e, "
|
|
11480
|
+
improveAndRethrow(e, "getAllSupportedCurrenciesListForPublicSwap");
|
|
10939
11481
|
}));
|
|
10940
11482
|
} catch (e) {
|
|
10941
11483
|
return Promise.reject(e);
|
|
10942
11484
|
}
|
|
10943
11485
|
};
|
|
10944
|
-
_proto.getDepositCurrenciesListForPublicSwap = function getDepositCurrenciesListForPublicSwap() {
|
|
11486
|
+
_proto.getDepositCurrenciesListForPublicSwap = function getDepositCurrenciesListForPublicSwap(fixed) {
|
|
11487
|
+
if (fixed === void 0) {
|
|
11488
|
+
fixed = false;
|
|
11489
|
+
}
|
|
10945
11490
|
try {
|
|
10946
11491
|
var _this3 = this;
|
|
10947
11492
|
return Promise.resolve(_catch(function () {
|
|
10948
|
-
return Promise.resolve(_this3._getCurrenciesListForPublicSwap(false));
|
|
11493
|
+
return Promise.resolve(_this3._getCurrenciesListForPublicSwap(false, fixed));
|
|
10949
11494
|
}, function (e) {
|
|
10950
11495
|
improveAndRethrow(e, "getDepositCurrenciesListForPublicSwap");
|
|
10951
11496
|
}));
|
|
@@ -10953,11 +11498,14 @@
|
|
|
10953
11498
|
return Promise.reject(e);
|
|
10954
11499
|
}
|
|
10955
11500
|
};
|
|
10956
|
-
_proto.getWithdrawCurrenciesListForPublicSwap = function getWithdrawCurrenciesListForPublicSwap() {
|
|
11501
|
+
_proto.getWithdrawCurrenciesListForPublicSwap = function getWithdrawCurrenciesListForPublicSwap(fixed) {
|
|
11502
|
+
if (fixed === void 0) {
|
|
11503
|
+
fixed = false;
|
|
11504
|
+
}
|
|
10957
11505
|
try {
|
|
10958
11506
|
var _this4 = this;
|
|
10959
11507
|
return Promise.resolve(_catch(function () {
|
|
10960
|
-
return Promise.resolve(_this4._getCurrenciesListForPublicSwap(true));
|
|
11508
|
+
return Promise.resolve(_this4._getCurrenciesListForPublicSwap(true, fixed));
|
|
10961
11509
|
}, function (e) {
|
|
10962
11510
|
improveAndRethrow(e, "getWithdrawCurrenciesListForPublicSwap");
|
|
10963
11511
|
}));
|
|
@@ -10965,15 +11513,19 @@
|
|
|
10965
11513
|
return Promise.reject(e);
|
|
10966
11514
|
}
|
|
10967
11515
|
};
|
|
10968
|
-
_proto._getCurrenciesListForPublicSwap = function _getCurrenciesListForPublicSwap(withdraw) {
|
|
11516
|
+
_proto._getCurrenciesListForPublicSwap = function _getCurrenciesListForPublicSwap(withdraw, fixed) {
|
|
10969
11517
|
if (withdraw === void 0) {
|
|
10970
11518
|
withdraw = false;
|
|
10971
11519
|
}
|
|
11520
|
+
if (fixed === void 0) {
|
|
11521
|
+
fixed = false;
|
|
11522
|
+
}
|
|
10972
11523
|
try {
|
|
10973
11524
|
var _this5 = this;
|
|
10974
11525
|
var loggerSource = "getCurrenciesListForPublicSwap";
|
|
10975
11526
|
return Promise.resolve(_catch(function () {
|
|
10976
|
-
|
|
11527
|
+
var provider = fixed ? _this5._fixedSwapProvider : _this5._swapProvider;
|
|
11528
|
+
return Promise.resolve(withdraw ? provider.getWithdrawalCurrencies() : provider.getDepositCurrencies()).then(function (result) {
|
|
10977
11529
|
var _result$coins2;
|
|
10978
11530
|
if (result.reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
10979
11531
|
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
@@ -10998,6 +11550,9 @@
|
|
|
10998
11550
|
/**
|
|
10999
11551
|
* Retrieves initial data for swapping two coins.
|
|
11000
11552
|
*
|
|
11553
|
+
* Always FLOATING rate, FIXED is not supported - if you want to change it the default rate - all
|
|
11554
|
+
* the swaps code logic should be verified to align with this change.
|
|
11555
|
+
*
|
|
11001
11556
|
* @param fromCoin {Coin}
|
|
11002
11557
|
* @param toCoin {Coin}
|
|
11003
11558
|
* @return {Promise<{
|
|
@@ -11050,6 +11605,8 @@
|
|
|
11050
11605
|
* @param fromAmountCoins {string}
|
|
11051
11606
|
* @param [fixed=false] {boolean|null} null means fixed or float doesn't matter
|
|
11052
11607
|
* @param [withoutFiat=false] {boolean} pass true if you don't need the fiat equivalent - this will diminish requests count
|
|
11608
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount.
|
|
11609
|
+
* False means the amount is the sending amount.
|
|
11053
11610
|
* @return {Promise<{
|
|
11054
11611
|
* result: false,
|
|
11055
11612
|
* reason: string,
|
|
@@ -11064,21 +11621,24 @@
|
|
|
11064
11621
|
* }>}
|
|
11065
11622
|
*/
|
|
11066
11623
|
;
|
|
11067
|
-
_proto.getPublicSwapDetails = function getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins, fixed, withoutFiat) {
|
|
11624
|
+
_proto.getPublicSwapDetails = function getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins, fixed, withoutFiat, amountIsToReceive) {
|
|
11068
11625
|
if (fixed === void 0) {
|
|
11069
11626
|
fixed = false;
|
|
11070
11627
|
}
|
|
11071
11628
|
if (withoutFiat === void 0) {
|
|
11072
11629
|
withoutFiat = false;
|
|
11073
11630
|
}
|
|
11631
|
+
if (amountIsToReceive === void 0) {
|
|
11632
|
+
amountIsToReceive = false;
|
|
11633
|
+
}
|
|
11074
11634
|
try {
|
|
11075
11635
|
var _this7 = this;
|
|
11076
11636
|
var loggerSource = "getPublicSwapDetails";
|
|
11077
11637
|
return Promise.resolve(_catch(function () {
|
|
11078
|
-
function _temp2(
|
|
11079
|
-
var
|
|
11080
|
-
var coinUsdtRate = withoutFiat ?
|
|
11081
|
-
return Promise.resolve(_this7._swapProvider.getSwapInfo(fromCoin, toCoin, fromAmountCoins, fixed, coinUsdtRate)).then(function (details) {
|
|
11638
|
+
function _temp2(_getCoinToUSDTRate) {
|
|
11639
|
+
var _getCoinToUSDTRate$ra;
|
|
11640
|
+
var coinUsdtRate = withoutFiat ? _getCoinToUSDTRate : (_getCoinToUSDTRate$ra = _getCoinToUSDTRate == null ? void 0 : _getCoinToUSDTRate.rate) != null ? _getCoinToUSDTRate$ra : null;
|
|
11641
|
+
return Promise.resolve((fixed ? _this7._fixedSwapProvider : _this7._swapProvider).getSwapInfo(fromCoin, toCoin, fromAmountCoins, fixed, coinUsdtRate, amountIsToReceive)).then(function (details) {
|
|
11082
11642
|
var _result$swapCreationI, _result$swapCreationI2;
|
|
11083
11643
|
// eslint-disable-next-line no-console
|
|
11084
11644
|
console.log("getSwapInfo result: ", details);
|
|
@@ -11139,7 +11699,10 @@
|
|
|
11139
11699
|
return result;
|
|
11140
11700
|
});
|
|
11141
11701
|
}
|
|
11142
|
-
|
|
11702
|
+
if (amountIsToReceive && !fixed) {
|
|
11703
|
+
throw new Error("Estimating allowed only for fixed rate.");
|
|
11704
|
+
}
|
|
11705
|
+
return withoutFiat ? _temp2(null) : Promise.resolve((fixed ? _this7._fixedSwapProvider : _this7._swapProvider).getCoinToUSDTRate(fromCoin)).then(_temp2);
|
|
11143
11706
|
}, function (e) {
|
|
11144
11707
|
improveAndRethrow(e, loggerSource);
|
|
11145
11708
|
}));
|
|
@@ -11152,13 +11715,15 @@
|
|
|
11152
11715
|
*
|
|
11153
11716
|
* @param fromCoin {Coin}
|
|
11154
11717
|
* @param toCoin {Coin}
|
|
11155
|
-
* @param
|
|
11718
|
+
* @param amount {string}
|
|
11156
11719
|
* @param swapCreationInfo {BaseSwapCreationInfo}
|
|
11157
11720
|
* @param toAddress {string}
|
|
11158
11721
|
* @param refundAddress {string}
|
|
11159
11722
|
* @param clientIp {string}
|
|
11160
11723
|
* @param [toCurrencyExtraId] {string}
|
|
11161
11724
|
* @param [refundExtraId] {string}
|
|
11725
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount.
|
|
11726
|
+
* False means the amount is the sending amount.
|
|
11162
11727
|
* @return {Promise<{
|
|
11163
11728
|
* result: true,
|
|
11164
11729
|
* fiatCurrencyCode: string,
|
|
@@ -11181,20 +11746,23 @@
|
|
|
11181
11746
|
* }>}
|
|
11182
11747
|
*/
|
|
11183
11748
|
;
|
|
11184
|
-
_proto.createPublicSwap = function createPublicSwap(fromCoin, toCoin,
|
|
11749
|
+
_proto.createPublicSwap = function createPublicSwap(fromCoin, toCoin, amount, swapCreationInfo, toAddress, refundAddress, clientIp, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
11750
|
+
if (amountIsToReceive === void 0) {
|
|
11751
|
+
amountIsToReceive = false;
|
|
11752
|
+
}
|
|
11185
11753
|
try {
|
|
11186
11754
|
var _this8 = this;
|
|
11187
11755
|
var loggerSource = "createPublicSwap";
|
|
11188
11756
|
return Promise.resolve(_catch(function () {
|
|
11189
11757
|
var _swapCreationInfo$fro, _swapCreationInfo$toC;
|
|
11190
|
-
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof
|
|
11191
|
-
throw new Error("Wrong input: " + fromCoin.ticker + " " + toCoin.ticker + " " +
|
|
11758
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || swapCreationInfo.isRefundAddressRequired && (typeof refundAddress !== "string" || refundAddress.length === 0) || !(swapCreationInfo instanceof BaseSwapCreationInfo)) {
|
|
11759
|
+
throw new Error("Wrong input: " + fromCoin.ticker + " " + toCoin.ticker + " " + amount + " " + swapCreationInfo);
|
|
11192
11760
|
}
|
|
11193
|
-
Logger.log("Start: " +
|
|
11761
|
+
Logger.log("Start: " + amount + " " + fromCoin.ticker + " -> " + toCoin.ticker + ". Details: " + safeStringify(_extends({}, swapCreationInfo, {
|
|
11194
11762
|
fromCoin: swapCreationInfo == null || (_swapCreationInfo$fro = swapCreationInfo.fromCoin) == null ? void 0 : _swapCreationInfo$fro.ticker,
|
|
11195
11763
|
toCoin: swapCreationInfo == null || (_swapCreationInfo$toC = swapCreationInfo.toCoin) == null ? void 0 : _swapCreationInfo$toC.ticker
|
|
11196
11764
|
})), loggerSource);
|
|
11197
|
-
return Promise.resolve(_this8._swapProvider.createSwap(fromCoin, toCoin,
|
|
11765
|
+
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) {
|
|
11198
11766
|
var _exit;
|
|
11199
11767
|
function _temp6(_result8) {
|
|
11200
11768
|
if (_exit) return _result8;
|
|
@@ -11224,7 +11792,7 @@
|
|
|
11224
11792
|
if (result.result && result != null && result.swapId) {
|
|
11225
11793
|
var _temp4 = function _temp4() {
|
|
11226
11794
|
var _result$fromCurrencyE;
|
|
11227
|
-
// TODO: feature, cirtical] add GA event. task_id=
|
|
11795
|
+
// TODO: feature, cirtical] add GA event. task_id=091004f1b6b748b29ddece6a130df904
|
|
11228
11796
|
EventBusInstance__default["default"].dispatch(PublicSwapService.PUBLIC_SWAP_CREATED_EVENT, null, fromCoin.ticker, toCoin.ticker, _fromAmountFiat);
|
|
11229
11797
|
var toReturn = {
|
|
11230
11798
|
result: true,
|
|
@@ -11304,7 +11872,7 @@
|
|
|
11304
11872
|
var _this9 = this;
|
|
11305
11873
|
var loggerSource = "getPublicExistingSwapDetailsAndStatus";
|
|
11306
11874
|
return Promise.resolve(_catch(function () {
|
|
11307
|
-
return Promise.resolve(SwapUtils.getExistingSwapsDetailsWithFiatAmounts(_this9._swapProvider, swapIds)).then(function (result) {
|
|
11875
|
+
return Promise.resolve(SwapUtils.getExistingSwapsDetailsWithFiatAmounts([_this9._swapProvider, _this9._fixedSwapProvider], swapIds)).then(function (result) {
|
|
11308
11876
|
if (!(result != null && result.result)) {
|
|
11309
11877
|
if (result.reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
11310
11878
|
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
@@ -11399,18 +11967,24 @@
|
|
|
11399
11967
|
|
|
11400
11968
|
/**
|
|
11401
11969
|
* @param coinOrTicker {Coin|string}
|
|
11970
|
+
* @param [isFixed=true] {boolean} rate type
|
|
11402
11971
|
* @return {string} icon URL (ready to use)
|
|
11403
11972
|
*/;
|
|
11404
|
-
_proto.getAssetIconUrl = function getAssetIconUrl(coinOrTicker) {
|
|
11405
|
-
|
|
11973
|
+
_proto.getAssetIconUrl = function getAssetIconUrl(coinOrTicker, isFixed) {
|
|
11974
|
+
// TODO: [feature, high] improve this logic - currently hacked to show better icons from fixed provider. task_id=3b6b8c2a9df04a86aaff2e070424b64f
|
|
11975
|
+
return this._fixedSwapProvider.getIconUrl(coinOrTicker);
|
|
11406
11976
|
}
|
|
11407
11977
|
|
|
11408
11978
|
/**
|
|
11409
11979
|
* @param ticker {string}
|
|
11980
|
+
* @param [fixed=false] {boolean}
|
|
11410
11981
|
* @return {Coin|null}
|
|
11411
11982
|
*/;
|
|
11412
|
-
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker) {
|
|
11413
|
-
|
|
11983
|
+
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker, fixed) {
|
|
11984
|
+
if (fixed === void 0) {
|
|
11985
|
+
fixed = false;
|
|
11986
|
+
}
|
|
11987
|
+
return !fixed ? this._swapProvider.getCoinByTickerIfPresent(ticker) : this._fixedSwapProvider.getCoinByTickerIfPresent(ticker);
|
|
11414
11988
|
}
|
|
11415
11989
|
|
|
11416
11990
|
/**
|
|
@@ -11423,8 +11997,18 @@
|
|
|
11423
11997
|
var _this11 = this;
|
|
11424
11998
|
return Promise.resolve(_catch(function () {
|
|
11425
11999
|
return Promise.resolve(_this11._swapProvider.getCoinToUSDTRate(asset)).then(function (result) {
|
|
11426
|
-
|
|
11427
|
-
|
|
12000
|
+
function _temp10() {
|
|
12001
|
+
var _result$rate, _result13;
|
|
12002
|
+
return (_result$rate = (_result13 = result) == null ? void 0 : _result13.rate) != null ? _result$rate : null;
|
|
12003
|
+
}
|
|
12004
|
+
var _temp9 = function (_result14) {
|
|
12005
|
+
if (((_result14 = result) == null ? void 0 : _result14.rate) == null) {
|
|
12006
|
+
return Promise.resolve(_this11._fixedSwapProvider.getCoinToUSDTRate(asset)).then(function (_this11$_fixedSwapPro) {
|
|
12007
|
+
result = _this11$_fixedSwapPro;
|
|
12008
|
+
});
|
|
12009
|
+
}
|
|
12010
|
+
}();
|
|
12011
|
+
return _temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9);
|
|
11428
12012
|
});
|
|
11429
12013
|
}, function (e) {
|
|
11430
12014
|
improveAndRethrow(e, "getAssetToUsdtRate");
|
|
@@ -11436,12 +12020,16 @@
|
|
|
11436
12020
|
/**
|
|
11437
12021
|
* @param asset {Coin}
|
|
11438
12022
|
* @param address {string}
|
|
12023
|
+
* @param [fixed=false] {boolean}
|
|
11439
12024
|
* @return {boolean}
|
|
11440
12025
|
*/
|
|
11441
12026
|
;
|
|
11442
|
-
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
12027
|
+
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address, fixed) {
|
|
12028
|
+
if (fixed === void 0) {
|
|
12029
|
+
fixed = false;
|
|
12030
|
+
}
|
|
11443
12031
|
try {
|
|
11444
|
-
return this._swapProvider.isAddressValidForAsset(asset, address);
|
|
12032
|
+
return !fixed ? this._swapProvider.isAddressValidForAsset(asset, address) : this._fixedSwapProvider.isAddressValidForAsset(asset, address);
|
|
11445
12033
|
} catch (e) {
|
|
11446
12034
|
improveAndRethrow(e, "isAddressValidForAsset");
|
|
11447
12035
|
}
|
|
@@ -11451,20 +12039,24 @@
|
|
|
11451
12039
|
* Retrieves token by contract address.
|
|
11452
12040
|
*
|
|
11453
12041
|
* @param addressString {string}
|
|
12042
|
+
* @param [fixed=false] {boolean}
|
|
11454
12043
|
* @return {Promise<Coin|null>}
|
|
11455
12044
|
*/;
|
|
11456
|
-
_proto.getTokenByContractAddress = function getTokenByContractAddress(addressString) {
|
|
12045
|
+
_proto.getTokenByContractAddress = function getTokenByContractAddress(addressString, fixed) {
|
|
12046
|
+
if (fixed === void 0) {
|
|
12047
|
+
fixed = false;
|
|
12048
|
+
}
|
|
11457
12049
|
try {
|
|
11458
12050
|
var _exit3;
|
|
11459
12051
|
var _this12 = this;
|
|
11460
|
-
var
|
|
12052
|
+
var _temp12 = _catch(function () {
|
|
11461
12053
|
if (!addressString) {
|
|
11462
|
-
var
|
|
12054
|
+
var _temp11 = null;
|
|
11463
12055
|
_exit3 = 1;
|
|
11464
|
-
return
|
|
12056
|
+
return _temp11;
|
|
11465
12057
|
}
|
|
11466
12058
|
var addressLowerCase = addressString.toLowerCase();
|
|
11467
|
-
return Promise.resolve(_this12._swapProvider.getAllSupportedCurrencies()).then(function (allCoins) {
|
|
12059
|
+
return Promise.resolve((fixed ? _this12._fixedSwapProvider : _this12._swapProvider).getAllSupportedCurrencies()).then(function (allCoins) {
|
|
11468
12060
|
if (allCoins.result) {
|
|
11469
12061
|
var _allCoins$coins$find = allCoins.coins.find(function (coin) {
|
|
11470
12062
|
return coin.tokenAddress && coin.tokenAddress.toLowerCase() === addressLowerCase;
|
|
@@ -11476,21 +12068,25 @@
|
|
|
11476
12068
|
}, function (e) {
|
|
11477
12069
|
Logger.logError(e, "getTokenByContractAddress");
|
|
11478
12070
|
});
|
|
11479
|
-
return Promise.resolve(
|
|
11480
|
-
return _exit3 ?
|
|
11481
|
-
}) : _exit3 ?
|
|
12071
|
+
return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(function (_result15) {
|
|
12072
|
+
return _exit3 ? _result15 : null;
|
|
12073
|
+
}) : _exit3 ? _temp12 : null);
|
|
11482
12074
|
} catch (e) {
|
|
11483
12075
|
return Promise.reject(e);
|
|
11484
12076
|
}
|
|
11485
12077
|
}
|
|
11486
12078
|
/**
|
|
11487
12079
|
* @param asset {Coin}
|
|
12080
|
+
* @param [fixed=false] {boolean}
|
|
11488
12081
|
* @return {string|null}
|
|
11489
12082
|
*/
|
|
11490
12083
|
;
|
|
11491
|
-
_proto.getExtraIdNameIfPresentForAsset = function getExtraIdNameIfPresentForAsset(asset) {
|
|
12084
|
+
_proto.getExtraIdNameIfPresentForAsset = function getExtraIdNameIfPresentForAsset(asset, fixed) {
|
|
12085
|
+
if (fixed === void 0) {
|
|
12086
|
+
fixed = false;
|
|
12087
|
+
}
|
|
11492
12088
|
try {
|
|
11493
|
-
return this._swapProvider.getExtraIdNameIfPresent(asset);
|
|
12089
|
+
return (fixed ? this._fixedSwapProvider : this._swapProvider).getExtraIdNameIfPresent(asset);
|
|
11494
12090
|
} catch (e) {
|
|
11495
12091
|
improveAndRethrow(e, "getExtraIdNameIfPresentForAsset");
|
|
11496
12092
|
}
|