@rabbitio/ui-kit 1.0.0-beta.72 → 1.0.0-beta.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/clover.xml +6428 -1864
- package/coverage/coverage-final.json +157 -95
- package/coverage/index.html +339 -84
- package/coverage/{rabbit-ui-kit → ui-kit}/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/index.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/axiosAdapter.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/adapters/qrUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/amountUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/errorUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/apiGroups.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/external-apis/ipAddressProviders.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/fiatCurrenciesService.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/globalConstants.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/blockchain.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/coin.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/models/protocol.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/cache.js.html +8 -8
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/emailAPI.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/logger.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/logging/logsStorage.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/postponeExecution.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/common-apis/utils/safeStringify.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/index.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cacheAndConcurrentRequestsResolver.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cachedRobustExternalApiCallerService.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/cancelProcessing.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/concurrentCalculationsMetadataHolder.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/externalApiProvider.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/externalServicesStatsCollector.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/robust-api-caller/robustExternalAPICallerService.js.html +3 -3
- package/coverage/ui-kit/src/swaps-lib/external-apis/index.html +146 -0
- package/coverage/ui-kit/src/swaps-lib/external-apis/letsExchangeSwapProvider.js.html +1456 -0
- package/coverage/ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +1390 -0
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +45 -585
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/baseSwapCreationInfo.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwap.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwapWithFiatData.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/publicSwapService.js.html +233 -50
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/index.html +13 -13
- package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/swapUtils.js.html +121 -46
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowTosca.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/arrowWhite.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/darkRectangle.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/determinedError.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/failedValidationIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/infoIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/noticeQuestionIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/successfulValidationIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/assets/wrappedImages/walletIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetIcon/AssetIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetIcon/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetSelection/AssetSelection.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/AssetSelection/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/BackgroundTitle/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/InformationMessage/InformationMessage.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/InformationMessage/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Input/Input.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Input/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/LoadingDots/LoadingDots.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/LoadingDots/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/NoticeIcon/NoticeIcon.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/NoticeIcon/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/QrCode/QrCode.jsx.html +52 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/QrCode/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/RateSelector/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/SupportChat/SupportChat.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/SupportChat/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Textarea/Textarea.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Textarea/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TitleBox/TitleBox.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TitleBox/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Tooltip/Tooltip.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Tooltip/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/TwoLinesOfText/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Validation/Validation.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/Validation/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Button/Button.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Button/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Close/Close.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/Close/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/LinkButton/LinkButton.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/LinkButton/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/AmountInput/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/CoinPicker/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/LineWithIconLink/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/CoinPickerDialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/Dialog.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/Dialog/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx.html +129 -36
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/organisms/SwapForm/index.html +7 -7
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useCallHandlingErrors.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useIsHydrated.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/hooks/useReferredState.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/inputValueProviders.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/textUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/uiUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/src/ui-kit/utils/urlQueryUtils.js.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/BackgroundTitle.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LinesOfText.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LoadingDots.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/QrCode.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/RateSelector.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/Validation.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Button.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Close.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/LinkButton.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/LineWithIconLink.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/TitledLineWithIconLink.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/Dialog.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/exampleContent.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/index.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +3 -3
- package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/index.html +3 -3
- package/coverage/ui-kit/storybook-static/124.c2d01e5e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/138.56b7edc4.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/312.6f62bbd9.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/341.57a15f57.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/370.73bb343e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/595.2e40d981.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/607.3ea32459.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/609.8c79ec77.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/666.09fdc1d7.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/797.c87cdf19.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/822.4bc0ebce.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/833.08e3ebb6.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/862.bf6bfe62.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/87.0a1bfeb1.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/893.4b09f929.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/996.846a677b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-BackgroundTitle-stories.1a5386a1.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-LinesOfText-stories.7043a48b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-LoadingDots-stories.091245c7.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-QrCode-stories.e10363b6.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-RateSelector-stories.af208e9a.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-Validation-stories.d561b311.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-Button-stories.e8e6b930.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-Close-stories.0a902a7c.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/atoms-buttons-LinkButton-stories.ca93ab6b.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/index.html +596 -0
- package/coverage/ui-kit/storybook-static/main.41f410f2.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/molecules-LineWithIconLink-stories.9721a18c.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/molecules-TitledLineWithIconLink-stories.1383fe3f.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-Dialog-stories.4e6da717.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-DialogButtons-DialogButtons-stories.6f45ae6e.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/organisms-Dialog-DialogStep-DialogStep-stories.74896048.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/addon-backgrounds/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/addon-backgrounds/dist/preview.js.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/components/dist/formatter-SWP5E3XI.mjs.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/@storybook/components/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/buffer/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/buffer/index.js.html +118 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/markdown-to-jsx/dist/index.html +116 -0
- package/coverage/ui-kit/storybook-static/rabbitio/ui-kit/node_modules/markdown-to-jsx/dist/index.modern.js.html +118 -0
- package/coverage/ui-kit/storybook-static/runtime~main.ad918f38.iframe.bundle.js.html +85 -0
- package/coverage/ui-kit/storybook-static/sb-addons/actions-9/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/actions-9/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-backgrounds-2/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-backgrounds-2/manager-bundle.js.html +121 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-controls-1/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.html +274 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-measure-4/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-measure-4/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-outline-5/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-outline-5/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-toolbars-3/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/essentials-toolbars-3/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/interactions-7/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/interactions-7/manager-bundle.js.html +121 -0
- package/coverage/ui-kit/storybook-static/sb-addons/links-0/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/links-0/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-addons/onboarding-6/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/onboarding-6/manager-bundle.js.html +1588 -0
- package/coverage/ui-kit/storybook-static/sb-addons/viewport-8/index.html +116 -0
- package/coverage/ui-kit/storybook-static/sb-addons/viewport-8/manager-bundle.js.html +94 -0
- package/coverage/ui-kit/storybook-static/sb-manager/WithTooltip-V3YHNWJZ-LVYLGZW2.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-2IXBUOFS.js.html +106 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-INSKDKQB.js.html +1129 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-NGTUFCUO.js.html +112 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-UUEAOBSN.js.html +1303 -0
- package/coverage/ui-kit/storybook-static/sb-manager/chunk-ZEU7PDD3.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/formatter-SWP5E3XI-7BGIK6BL.js.html +553 -0
- package/coverage/ui-kit/storybook-static/sb-manager/globals-module-info.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/globals.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/index.html +281 -0
- package/coverage/ui-kit/storybook-static/sb-manager/index.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/runtime.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-manager/syntaxhighlighter-V7JZZA35-DXZCI2WR.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-preview/globals.js.html +88 -0
- package/coverage/ui-kit/storybook-static/sb-preview/index.html +131 -0
- package/coverage/ui-kit/storybook-static/sb-preview/runtime.js.html +421 -0
- package/coverage/ui-kit/storybook-static/templates-DeterminedErrorDialogStep-stories.3cc14214.iframe.bundle.js.html +85 -0
- package/dist/index.cjs +1156 -571
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +775 -328
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +1156 -571
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1156 -571
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/swaps-lib/external-apis/letsExchangeSwapProvider.js +457 -0
- package/src/swaps-lib/external-apis/swapProvider.js +246 -20
- package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +20 -200
- package/src/swaps-lib/services/publicSwapService.js +105 -44
- package/src/swaps-lib/test/external-apis/swapProvider/removeProtocolNameFromCoinName.test.js +142 -0
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +2 -2
- package/src/swaps-lib/utils/swapUtils.js +63 -38
- package/src/ui-kit/components/atoms/QrCode/QrCode.jsx +16 -1
- package/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx +61 -30
- package/src/ui-kit/components/organisms/SwapForm/swap-form.module.scss +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/index.html +0 -131
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +0 -712
package/dist/index.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: {
|
|
@@ -4798,8 +4812,6 @@
|
|
|
4798
4812
|
} : _ref$translations;
|
|
4799
4813
|
var DETAIL_REFRESH_INTERVAL_MS = 1.5 * 60000;
|
|
4800
4814
|
var IS_FIXED_BY_DEFAULT = false;
|
|
4801
|
-
|
|
4802
|
-
// Updating the states below will insert the new value into the send or receive input field
|
|
4803
4815
|
var _useState = React.useState(preservedAmount != null ? preservedAmount : null),
|
|
4804
4816
|
updateSendInputTo = _useState[0],
|
|
4805
4817
|
setUpdateSendInputTo = _useState[1];
|
|
@@ -4839,8 +4851,6 @@
|
|
|
4839
4851
|
var _useState10 = React.useState(false),
|
|
4840
4852
|
readyToSwap = _useState10[0],
|
|
4841
4853
|
setReadyToSwap = _useState10[1]; // Basically a param that enables/disables the "Next" button
|
|
4842
|
-
// TODO: [refactoring, moderate] instead of handling preservedAmount at a lot of cases below, just
|
|
4843
|
-
// write single useEffect setting sendAssetAmount to the=is passed value and simplify the logic below. task_id=6453251e49b04c5e88a3cc771479ffb5
|
|
4844
4854
|
var _useState11 = React.useState(preservedAmount == null || String(preservedAmount) === "0"),
|
|
4845
4855
|
isAmountZero = _useState11[0],
|
|
4846
4856
|
setIsAmountZero = _useState11[1];
|
|
@@ -4850,21 +4860,24 @@
|
|
|
4850
4860
|
var _useReferredState5 = useReferredState(null),
|
|
4851
4861
|
isFixedRate = _useReferredState5[0],
|
|
4852
4862
|
setIsFixedRate = _useReferredState5[1];
|
|
4853
|
-
var _useState12 = React.useState(
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
var _useState13 = React.useState(),
|
|
4857
|
-
|
|
4858
|
-
|
|
4859
|
-
var _useState14 = React.useState(
|
|
4860
|
-
|
|
4861
|
-
|
|
4863
|
+
var _useState12 = React.useState(false),
|
|
4864
|
+
isLastEditedReceiving = _useState12[0],
|
|
4865
|
+
setIsLastEditedReceiving = _useState12[1];
|
|
4866
|
+
var _useState13 = React.useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
|
|
4867
|
+
confirmButtonTo = _useState13[0],
|
|
4868
|
+
setConfirmButtonTo = _useState13[1];
|
|
4869
|
+
var _useState14 = React.useState(),
|
|
4870
|
+
transactionFee = _useState14[0],
|
|
4871
|
+
setTransactionFee = _useState14[1];
|
|
4872
|
+
var _useState15 = React.useState(true),
|
|
4873
|
+
balanceValid = _useState15[0],
|
|
4874
|
+
setBalanceValid = _useState15[1]; // Whether the amount is less than total balance
|
|
4862
4875
|
var _useReferredState6 = useReferredState(null),
|
|
4863
4876
|
isSwapAll = _useReferredState6[0],
|
|
4864
4877
|
setIsSwapAll = _useReferredState6[1];
|
|
4865
|
-
var
|
|
4866
|
-
swapAllButtonLoaderReSetter =
|
|
4867
|
-
setSwapAllButtonLoaderReSetter =
|
|
4878
|
+
var _useState16 = React.useState([]),
|
|
4879
|
+
swapAllButtonLoaderReSetter = _useState16[0],
|
|
4880
|
+
setSwapAllButtonLoaderReSetter = _useState16[1];
|
|
4868
4881
|
var _useReferredState7 = useReferredState(null),
|
|
4869
4882
|
dataUpdateTimeoutId = _useReferredState7[0],
|
|
4870
4883
|
setDataUpdateTimeoutId = _useReferredState7[1];
|
|
@@ -4880,9 +4893,9 @@
|
|
|
4880
4893
|
var _useReferredState11 = useReferredState(false),
|
|
4881
4894
|
isRecipientAddressValid = _useReferredState11[0],
|
|
4882
4895
|
setIsRecipientAddressValid = _useReferredState11[1];
|
|
4883
|
-
var
|
|
4884
|
-
isRefundAddressRequired =
|
|
4885
|
-
setIsRefundAddressRequired =
|
|
4896
|
+
var _useState17 = React.useState(false),
|
|
4897
|
+
isRefundAddressRequired = _useState17[0],
|
|
4898
|
+
setIsRefundAddressRequired = _useState17[1];
|
|
4886
4899
|
var _useReferredState12 = useReferredState(""),
|
|
4887
4900
|
refundAddress = _useReferredState12[0],
|
|
4888
4901
|
setRefundAddress = _useReferredState12[1];
|
|
@@ -4897,9 +4910,8 @@
|
|
|
4897
4910
|
var recalculationDelayOnTyping = 1000;
|
|
4898
4911
|
var isAddressFieldEnabled = !formHasBalance;
|
|
4899
4912
|
var displayRateSelector = !formHasBalance;
|
|
4900
|
-
var recipientAddressExtraIdName = getExtraIdNameByTicker(receivingAssetTicker);
|
|
4901
|
-
var refundAddressExtraIdName = getExtraIdNameByTicker(sendingAssetTicker);
|
|
4902
4913
|
var handleSendAssetAmountChange = function handleSendAssetAmountChange(amount) {
|
|
4914
|
+
setIsLastEditedReceiving(false);
|
|
4903
4915
|
if (amount != null && amount !== "") {
|
|
4904
4916
|
setUpdateReceiveInputTo(AmountUtils.trim(bignumber_js.BigNumber(amount).times(swapRate), receivingAssetDecimalCount));
|
|
4905
4917
|
} else {
|
|
@@ -4908,6 +4920,7 @@
|
|
|
4908
4920
|
setSendAssetAmount(amount);
|
|
4909
4921
|
};
|
|
4910
4922
|
var handleReceiveAssetAmountChange = function handleReceiveAssetAmountChange(amount) {
|
|
4923
|
+
setIsLastEditedReceiving(true);
|
|
4911
4924
|
var sendAssetAmount = "";
|
|
4912
4925
|
if (amount != null && amount !== "") {
|
|
4913
4926
|
sendAssetAmount = AmountUtils.trim(bignumber_js.BigNumber(amount).div(swapRate), sendingAssetDecimalCount);
|
|
@@ -5008,7 +5021,7 @@
|
|
|
5008
5021
|
}
|
|
5009
5022
|
(function () {
|
|
5010
5023
|
try {
|
|
5011
|
-
return _catch$
|
|
5024
|
+
return _catch$e(function () {
|
|
5012
5025
|
var _minimalAmount$curren4, _maximumAmount$curren3, _isFixedRate$current;
|
|
5013
5026
|
var dataMemento = {
|
|
5014
5027
|
rate: swapRate,
|
|
@@ -5026,7 +5039,7 @@
|
|
|
5026
5039
|
setIsSameCoins(false);
|
|
5027
5040
|
setIsPairSupported(true);
|
|
5028
5041
|
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) {
|
|
5042
|
+
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
5043
|
if (!isSwapAll.current && String(amount) !== String(isForPreserved && sendAssetAmount.current == null ? preservedAmount : sendAssetAmount.current)) {
|
|
5031
5044
|
// Means amount changed and we no more need to do this exact calculation
|
|
5032
5045
|
return;
|
|
@@ -5074,7 +5087,7 @@
|
|
|
5074
5087
|
}
|
|
5075
5088
|
(function () {
|
|
5076
5089
|
try {
|
|
5077
|
-
return _catch$
|
|
5090
|
+
return _catch$e(function () {
|
|
5078
5091
|
setIsLoading(true);
|
|
5079
5092
|
setMinimalAmount(null);
|
|
5080
5093
|
setMaximumAmount(null);
|
|
@@ -5124,6 +5137,10 @@
|
|
|
5124
5137
|
}
|
|
5125
5138
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5126
5139
|
}, [isSwapAll.current]);
|
|
5140
|
+
React.useEffect(function () {
|
|
5141
|
+
onIsFixedChange(isFixedRate.current);
|
|
5142
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5143
|
+
}, [isFixedRate.current]);
|
|
5127
5144
|
React.useEffect(function () {
|
|
5128
5145
|
setConfirmButtonTo(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, sendAssetAmount.current || preservedAmount || null));
|
|
5129
5146
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -5172,7 +5189,7 @@
|
|
|
5172
5189
|
};
|
|
5173
5190
|
if (!receivingAssetTicker) return;
|
|
5174
5191
|
var _temp = recipientAddress.current === "";
|
|
5175
|
-
return _temp ? _temp2(false) : Promise.resolve(validateAddressByTicker(receivingAssetTicker, recipientAddress.current)).then(_temp2);
|
|
5192
|
+
return _temp ? _temp2(false) : Promise.resolve(validateAddressByTicker(receivingAssetTicker, recipientAddress.current, isFixedRate.current)).then(_temp2);
|
|
5176
5193
|
} catch (e) {
|
|
5177
5194
|
Promise.reject(e);
|
|
5178
5195
|
}
|
|
@@ -5187,7 +5204,7 @@
|
|
|
5187
5204
|
};
|
|
5188
5205
|
if (!sendingAssetTicker || !isRefundAddressRequired) return;
|
|
5189
5206
|
var _temp3 = refundAddress.current === "";
|
|
5190
|
-
return _temp3 ? _temp4(false) : Promise.resolve(validateAddressByTicker(sendingAssetTicker, refundAddress.current)).then(_temp4);
|
|
5207
|
+
return _temp3 ? _temp4(false) : Promise.resolve(validateAddressByTicker(sendingAssetTicker, refundAddress.current, isFixedRate.current)).then(_temp4);
|
|
5191
5208
|
} catch (e) {
|
|
5192
5209
|
Promise.reject(e);
|
|
5193
5210
|
}
|
|
@@ -5212,8 +5229,6 @@
|
|
|
5212
5229
|
};
|
|
5213
5230
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5214
5231
|
}, [readyToSwap]);
|
|
5215
|
-
|
|
5216
|
-
// TODO: [refactoring, critical] this code looks like a hack related to task_id=6e328d39063142b7b9fa01d497e616da
|
|
5217
5232
|
React.useEffect(function () {
|
|
5218
5233
|
if (triggerDataUpdateResetting) {
|
|
5219
5234
|
clearTimeout(dataUpdateTimeoutId.current);
|
|
@@ -5223,8 +5238,6 @@
|
|
|
5223
5238
|
}
|
|
5224
5239
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5225
5240
|
}, [triggerDataUpdateResetting]);
|
|
5226
|
-
|
|
5227
|
-
// Resets the passed "set value to" param to null, so it can be used multiple times with any value
|
|
5228
5241
|
React.useEffect(function () {
|
|
5229
5242
|
if (!!updateSendInputTo) setUpdateSendInputTo(null);
|
|
5230
5243
|
if (!!updateReceiveInputTo) setUpdateReceiveInputTo(null);
|
|
@@ -5243,8 +5256,6 @@
|
|
|
5243
5256
|
}
|
|
5244
5257
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5245
5258
|
}, [isLoading.current, swapAllButtonLoaderReSetter]);
|
|
5246
|
-
|
|
5247
|
-
// Handlers upon changing the asset amount
|
|
5248
5259
|
React.useEffect(function () {
|
|
5249
5260
|
setConfirmButtonTo(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, sendAssetAmount.current));
|
|
5250
5261
|
if (sendAssetAmount.current == null) return;
|
|
@@ -5264,7 +5275,13 @@
|
|
|
5264
5275
|
linkText: !formHasBalance ? "" : isSwapAll.current ? translations.swapAllButtonTitles.cancel : translations.swapAllButtonTitles.enable,
|
|
5265
5276
|
linkButtonLoader: true,
|
|
5266
5277
|
isLinkButtonDisabled: isLoading.current || sendingAssetTicker === receivingAssetTicker || bignumber_js.BigNumber(sendingAssetBalance == null ? void 0 : sendingAssetBalance.assetAmount).eq(0)
|
|
5267
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5278
|
+
}, displayRateSelector ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5279
|
+
className: s$9["swap-form-rate-selector"]
|
|
5280
|
+
}, /*#__PURE__*/React__default["default"].createElement(RateSelector, {
|
|
5281
|
+
isFixed: (_isFixedRate$current2 = isFixedRate.current) != null ? _isFixedRate$current2 : IS_FIXED_BY_DEFAULT,
|
|
5282
|
+
setIsFixed: handleRateModeChanged,
|
|
5283
|
+
translations: translations.rateSelector
|
|
5284
|
+
})) : "", /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5268
5285
|
className: s$9["swap-form-inputs"]
|
|
5269
5286
|
}, /*#__PURE__*/React__default["default"].createElement(AmountInput, {
|
|
5270
5287
|
ticker: sendingAssetTicker,
|
|
@@ -5312,7 +5329,7 @@
|
|
|
5312
5329
|
assetIconProtocolSrc: receivingAssetProtocolIconSrc,
|
|
5313
5330
|
fallbackAssetIconSrc: fallBackAssetIconSrc,
|
|
5314
5331
|
disabled: isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null,
|
|
5315
|
-
locked: !formHasBalance,
|
|
5332
|
+
locked: !formHasBalance && !isFixedRate.current,
|
|
5316
5333
|
handleCoinAmountChange: handleReceiveAssetAmountChange,
|
|
5317
5334
|
handleChangeAssetClick: handleChangeReceivingAssetClick,
|
|
5318
5335
|
updateAssetInputTo: updateReceiveInputTo,
|
|
@@ -5332,7 +5349,7 @@
|
|
|
5332
5349
|
className: s$9["swap-form-information-field"]
|
|
5333
5350
|
}, /*#__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
5351
|
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$
|
|
5352
|
+
}, " ~ " + 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
5353
|
className: s$9["interactable"] + " " + s$9["red"],
|
|
5337
5354
|
onClick: isLoading.current ? function () {} : function (e) {
|
|
5338
5355
|
return callHandlingErrors(handleMaximumAmountClick, e);
|
|
@@ -5359,7 +5376,7 @@
|
|
|
5359
5376
|
adaptiveHeight: true,
|
|
5360
5377
|
errorEncountered: recipientAddress.current !== "" && !isRecipientAddressValid.current
|
|
5361
5378
|
})), isHydrated && recipientAddressExtraIdName ? /*#__PURE__*/React__default["default"].createElement(TitleBox, {
|
|
5362
|
-
title:
|
|
5379
|
+
title: translations.addressFields.receivingAddressExtraIdTitle,
|
|
5363
5380
|
titleNoticeText: translations.addressFields.receivingAddressExtraIdNotice,
|
|
5364
5381
|
titleNoticePosition: TOOLTIP_POSITIONS.TOP_LEFT
|
|
5365
5382
|
}, /*#__PURE__*/React__default["default"].createElement(Textarea, {
|
|
@@ -5381,7 +5398,7 @@
|
|
|
5381
5398
|
adaptiveHeight: true,
|
|
5382
5399
|
errorEncountered: refundAddress.current !== "" && !isRefundAddressValid.current
|
|
5383
5400
|
})), refundAddressExtraIdName ? /*#__PURE__*/React__default["default"].createElement(TitleBox, {
|
|
5384
|
-
title:
|
|
5401
|
+
title: translations.addressFields.refundAddressExtraIdTitle,
|
|
5385
5402
|
titleNoticeText: translations.addressFields.refundAddressExtraIdNotice,
|
|
5386
5403
|
titleNoticePosition: TOOLTIP_POSITIONS.TOP_LEFT
|
|
5387
5404
|
}, /*#__PURE__*/React__default["default"].createElement(Textarea, {
|
|
@@ -5392,13 +5409,7 @@
|
|
|
5392
5409
|
value: refundAddressExtraId.current,
|
|
5393
5410
|
adaptiveHeight: true,
|
|
5394
5411
|
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", {
|
|
5412
|
+
})) : null) : null) : null, validationContent ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5402
5413
|
className: s$9["swap-form-validation-text"]
|
|
5403
5414
|
}, /*#__PURE__*/React__default["default"].createElement(Validation, {
|
|
5404
5415
|
text: validationContent
|
|
@@ -5465,7 +5476,12 @@
|
|
|
5465
5476
|
fiatCurrencyCode: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5466
5477
|
fiatCurrencyDecimals: PropTypes.oneOfType([PropTypes.number, null]),
|
|
5467
5478
|
formHasFiat: PropTypes.bool,
|
|
5479
|
+
termsOfUseUrl: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5480
|
+
privacyPolicyUrl: PropTypes.oneOfType([PropTypes.string, null]),
|
|
5481
|
+
recipientAddressExtraIdName: PropTypes.string,
|
|
5482
|
+
refundAddressExtraIdName: PropTypes.string,
|
|
5468
5483
|
translations: PropTypes.object,
|
|
5484
|
+
validateAddressByTicker: PropTypes.func,
|
|
5469
5485
|
swapSeparatorIconSrc: PropTypes.string.isRequired,
|
|
5470
5486
|
swapButtonAlwaysActive: PropTypes.bool
|
|
5471
5487
|
};
|
|
@@ -5498,6 +5514,11 @@
|
|
|
5498
5514
|
fiatCurrencyCode: null,
|
|
5499
5515
|
fiatCurrencyDecimals: null,
|
|
5500
5516
|
formHasFiat: true,
|
|
5517
|
+
termsOfUseUrl: null,
|
|
5518
|
+
privacyPolicyUrl: null,
|
|
5519
|
+
validateAddressByTicker: function validateAddressByTicker(ticker) {
|
|
5520
|
+
return false;
|
|
5521
|
+
},
|
|
5501
5522
|
swapButtonAlwaysActive: false
|
|
5502
5523
|
};
|
|
5503
5524
|
|
|
@@ -5509,7 +5530,7 @@
|
|
|
5509
5530
|
* @return {Promise<string>} xml string of generated svg image
|
|
5510
5531
|
*/
|
|
5511
5532
|
|
|
5512
|
-
function _catch$
|
|
5533
|
+
function _catch$d(body, recover) {
|
|
5513
5534
|
try {
|
|
5514
5535
|
var result = body();
|
|
5515
5536
|
} catch (e) {
|
|
@@ -5522,7 +5543,7 @@
|
|
|
5522
5543
|
}
|
|
5523
5544
|
var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingString) {
|
|
5524
5545
|
try {
|
|
5525
|
-
return Promise.resolve(_catch$
|
|
5546
|
+
return Promise.resolve(_catch$d(function () {
|
|
5526
5547
|
return Promise.resolve(QRCode__default["default"].toString(encodingString, {
|
|
5527
5548
|
type: "svg"
|
|
5528
5549
|
}));
|
|
@@ -5536,9 +5557,23 @@
|
|
|
5536
5557
|
|
|
5537
5558
|
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
5559
|
|
|
5539
|
-
|
|
5560
|
+
/**
|
|
5561
|
+
* QrCode component renders a QR code for a provided crypto address.
|
|
5562
|
+
*
|
|
5563
|
+
* @component
|
|
5564
|
+
* @example
|
|
5565
|
+
* const address = "0x123456789abcdef";
|
|
5566
|
+
* const fill = true;
|
|
5567
|
+
* return <QrCode address={address} fill={fill} />;
|
|
5568
|
+
*
|
|
5569
|
+
* @param {Object} props - The props for the component.
|
|
5570
|
+
* @param {string} props.address - The crypto address to generate the QR code for.
|
|
5571
|
+
* @param {boolean} [props.fill=false] - If true, applies additional CSS class to fill the container.
|
|
5572
|
+
*
|
|
5573
|
+
* @returns {JSX.Element} A div containing the generated QR code.
|
|
5574
|
+
*/
|
|
5540
5575
|
|
|
5541
|
-
function _catch$
|
|
5576
|
+
function _catch$c(body, recover) {
|
|
5542
5577
|
try {
|
|
5543
5578
|
var result = body();
|
|
5544
5579
|
} catch (e) {
|
|
@@ -5557,7 +5592,7 @@
|
|
|
5557
5592
|
React.useEffect(function () {
|
|
5558
5593
|
(function () {
|
|
5559
5594
|
try {
|
|
5560
|
-
return _catch$
|
|
5595
|
+
return _catch$c(function () {
|
|
5561
5596
|
var _temp = function () {
|
|
5562
5597
|
if (address) {
|
|
5563
5598
|
return Promise.resolve(generateQrAndShowInCanvas(address)).then(function (_generateQrAndShowInC) {
|
|
@@ -5584,7 +5619,8 @@
|
|
|
5584
5619
|
fill: PropTypes.bool
|
|
5585
5620
|
};
|
|
5586
5621
|
QrCode.defaultProps = {
|
|
5587
|
-
address: ""
|
|
5622
|
+
address: "",
|
|
5623
|
+
fill: false
|
|
5588
5624
|
};
|
|
5589
5625
|
|
|
5590
5626
|
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 +6305,7 @@
|
|
|
6269
6305
|
var FALLBACK_ASSET_ICON_URL = "https://rabbit.io/asset-icons/fallback.svg";
|
|
6270
6306
|
var DEFAULT_CRYPTO_DECIMAL_COUNT = 8;
|
|
6271
6307
|
|
|
6272
|
-
function _catch$
|
|
6308
|
+
function _catch$b(body, recover) {
|
|
6273
6309
|
try {
|
|
6274
6310
|
var result = body();
|
|
6275
6311
|
} catch (e) {
|
|
@@ -6493,7 +6529,7 @@
|
|
|
6493
6529
|
var loadCoinsAndSaveToState = function loadCoinsAndSaveToState() {
|
|
6494
6530
|
(function () {
|
|
6495
6531
|
try {
|
|
6496
|
-
var _temp = _catch$
|
|
6532
|
+
var _temp = _catch$b(function () {
|
|
6497
6533
|
return Promise.resolve(loadCoinsAndContent ? loadCoinsAndContent() : defaultLoadCoinsAndContent()).then(function (data) {
|
|
6498
6534
|
setCoins(data.coins);
|
|
6499
6535
|
setFilteredCoins(data.coins);
|
|
@@ -7302,7 +7338,7 @@
|
|
|
7302
7338
|
return Cache;
|
|
7303
7339
|
}();
|
|
7304
7340
|
|
|
7305
|
-
function _catch$
|
|
7341
|
+
function _catch$a(body, recover) {
|
|
7306
7342
|
try {
|
|
7307
7343
|
var result = body();
|
|
7308
7344
|
} catch (e) {
|
|
@@ -7320,7 +7356,7 @@
|
|
|
7320
7356
|
return new Promise(function (resolve, reject) {
|
|
7321
7357
|
setTimeout(function () {
|
|
7322
7358
|
try {
|
|
7323
|
-
var _temp = _catch$
|
|
7359
|
+
var _temp = _catch$a(function () {
|
|
7324
7360
|
return Promise.resolve(execution()).then(function (_execution) {
|
|
7325
7361
|
resolve(_execution);
|
|
7326
7362
|
});
|
|
@@ -7404,7 +7440,7 @@
|
|
|
7404
7440
|
return AxiosAdapter;
|
|
7405
7441
|
}();
|
|
7406
7442
|
|
|
7407
|
-
function _catch$
|
|
7443
|
+
function _catch$9(body, recover) {
|
|
7408
7444
|
try {
|
|
7409
7445
|
var result = body();
|
|
7410
7446
|
} catch (e) {
|
|
@@ -7420,7 +7456,7 @@
|
|
|
7420
7456
|
EmailsApi.sendEmail = function sendEmail(subject, body) {
|
|
7421
7457
|
try {
|
|
7422
7458
|
var _this = this;
|
|
7423
|
-
var _temp = _catch$
|
|
7459
|
+
var _temp = _catch$9(function () {
|
|
7424
7460
|
var url = window.location.protocol + "//" + window.location.host + "/api/v1/" + _this.serverEndpointEntity;
|
|
7425
7461
|
return Promise.resolve(axios__default["default"].post(url, {
|
|
7426
7462
|
subject: subject,
|
|
@@ -7838,7 +7874,7 @@
|
|
|
7838
7874
|
* improve the reliability of a data retrieval.
|
|
7839
7875
|
*/
|
|
7840
7876
|
|
|
7841
|
-
function _catch$
|
|
7877
|
+
function _catch$8(body, recover) {
|
|
7842
7878
|
try {
|
|
7843
7879
|
var result = body();
|
|
7844
7880
|
} catch (e) {
|
|
@@ -8177,7 +8213,7 @@
|
|
|
8177
8213
|
var result;
|
|
8178
8214
|
var calculationUuid = concurrentCalculationsMetadataHolder.startCalculation(_this.bio);
|
|
8179
8215
|
return Promise.resolve(_finallyRethrows$1(function () {
|
|
8180
|
-
return _catch$
|
|
8216
|
+
return _catch$8(function () {
|
|
8181
8217
|
function _temp5() {
|
|
8182
8218
|
var _result2, _result3;
|
|
8183
8219
|
if (((_result2 = result) == null ? void 0 : _result2.data) == null) {
|
|
@@ -8205,7 +8241,7 @@
|
|
|
8205
8241
|
*/
|
|
8206
8242
|
var rpsFactor = result ? result.rpsFactor : RobustExternalAPICallerService.defaultRPSFactor;
|
|
8207
8243
|
result = null;
|
|
8208
|
-
var _temp3 = _catch$
|
|
8244
|
+
var _temp3 = _catch$8(function () {
|
|
8209
8245
|
function _temp2() {
|
|
8210
8246
|
var _result$errors;
|
|
8211
8247
|
if ((_result$errors = result.errors) != null && _result$errors.length) {
|
|
@@ -8229,7 +8265,7 @@
|
|
|
8229
8265
|
return Promise.resolve(new Promise(function (resolve, reject) {
|
|
8230
8266
|
setTimeout(function () {
|
|
8231
8267
|
try {
|
|
8232
|
-
var _temp6 = _catch$
|
|
8268
|
+
var _temp6 = _catch$8(function () {
|
|
8233
8269
|
return Promise.resolve(_this._performCallAttempt(parametersValues, timeoutMS, cancelToken, rpsFactor, doNotFailForNowData)).then(function (_this$_performCallAtt2) {
|
|
8234
8270
|
resolve(_this$_performCallAtt2);
|
|
8235
8271
|
});
|
|
@@ -8299,7 +8335,7 @@
|
|
|
8299
8335
|
return;
|
|
8300
8336
|
}
|
|
8301
8337
|
var _temp13 = _finallyRethrows$1(function () {
|
|
8302
|
-
return _catch$
|
|
8338
|
+
return _catch$8(function () {
|
|
8303
8339
|
var _provider$specificHea;
|
|
8304
8340
|
function _temp12() {
|
|
8305
8341
|
if (iterationsData.length) {
|
|
@@ -8631,7 +8667,7 @@
|
|
|
8631
8667
|
}
|
|
8632
8668
|
}
|
|
8633
8669
|
}
|
|
8634
|
-
function _catch$
|
|
8670
|
+
function _catch$7(body, recover) {
|
|
8635
8671
|
try {
|
|
8636
8672
|
var result = body();
|
|
8637
8673
|
} catch (e) {
|
|
@@ -8710,7 +8746,7 @@
|
|
|
8710
8746
|
_proto.getCachedOrWaitForCachedOrAcquireLock = function getCachedOrWaitForCachedOrAcquireLock(cacheId) {
|
|
8711
8747
|
try {
|
|
8712
8748
|
var _this = this;
|
|
8713
|
-
return Promise.resolve(_catch$
|
|
8749
|
+
return Promise.resolve(_catch$7(function () {
|
|
8714
8750
|
function _temp2() {
|
|
8715
8751
|
var _cached, _cached2;
|
|
8716
8752
|
return calculationId ? {
|
|
@@ -8789,7 +8825,7 @@
|
|
|
8789
8825
|
_proto.acquireLock = function acquireLock(cacheId) {
|
|
8790
8826
|
try {
|
|
8791
8827
|
var _this2 = this;
|
|
8792
|
-
return Promise.resolve(_catch$
|
|
8828
|
+
return Promise.resolve(_catch$7(function () {
|
|
8793
8829
|
return Promise.resolve(_this2._requestsManager.acquireLock(cacheId));
|
|
8794
8830
|
}, function (e) {
|
|
8795
8831
|
improveAndRethrow(e, "acquireLock");
|
|
@@ -8959,7 +8995,7 @@
|
|
|
8959
8995
|
try {
|
|
8960
8996
|
var _exit;
|
|
8961
8997
|
var _this3 = this;
|
|
8962
|
-
var _temp3 = _catch$
|
|
8998
|
+
var _temp3 = _catch$7(function () {
|
|
8963
8999
|
var activeCalculationIdForHash = _this3._activeCalculationsIds.get(requestHash);
|
|
8964
9000
|
if (activeCalculationIdForHash == null) {
|
|
8965
9001
|
var id = uuid.v4();
|
|
@@ -8993,7 +9029,7 @@
|
|
|
8993
9029
|
_proto2.acquireLock = function acquireLock(requestHash) {
|
|
8994
9030
|
try {
|
|
8995
9031
|
var _this4 = this;
|
|
8996
|
-
return Promise.resolve(_catch$
|
|
9032
|
+
return Promise.resolve(_catch$7(function () {
|
|
8997
9033
|
var _this4$_nextCalculati;
|
|
8998
9034
|
var activeId = _this4._activeCalculationsIds.get(requestHash);
|
|
8999
9035
|
var nextId = uuid.v4();
|
|
@@ -9144,7 +9180,7 @@
|
|
|
9144
9180
|
* TODO: [tests, critical] Massively used logic
|
|
9145
9181
|
*/
|
|
9146
9182
|
|
|
9147
|
-
function _catch$
|
|
9183
|
+
function _catch$6(body, recover) {
|
|
9148
9184
|
try {
|
|
9149
9185
|
var result = body();
|
|
9150
9186
|
} catch (e) {
|
|
@@ -9241,7 +9277,7 @@
|
|
|
9241
9277
|
var cacheId;
|
|
9242
9278
|
var result;
|
|
9243
9279
|
return Promise.resolve(_finallyRethrows(function () {
|
|
9244
|
-
return _catch$
|
|
9280
|
+
return _catch$6(function () {
|
|
9245
9281
|
cacheId = _this._calculateCacheId(parametersValues, customHashFunctionForParams);
|
|
9246
9282
|
return Promise.resolve(_this._cahceAndRequestsResolver.getCachedOrWaitForCachedOrAcquireLock(cacheId)).then(function (_this$_cahceAndReques) {
|
|
9247
9283
|
var _result2, _result4;
|
|
@@ -9310,7 +9346,7 @@
|
|
|
9310
9346
|
return CachedRobustExternalApiCallerService;
|
|
9311
9347
|
}();
|
|
9312
9348
|
|
|
9313
|
-
function _catch$
|
|
9349
|
+
function _catch$5(body, recover) {
|
|
9314
9350
|
try {
|
|
9315
9351
|
var result = body();
|
|
9316
9352
|
} catch (e) {
|
|
@@ -9394,7 +9430,7 @@
|
|
|
9394
9430
|
IpAddressProvider.getClientIpAddress = function getClientIpAddress() {
|
|
9395
9431
|
try {
|
|
9396
9432
|
var _this = this;
|
|
9397
|
-
return Promise.resolve(_catch$
|
|
9433
|
+
return Promise.resolve(_catch$5(function () {
|
|
9398
9434
|
return Promise.resolve(_this.externalIPAddressAPICaller.callExternalAPICached([], 7000));
|
|
9399
9435
|
}, function (e) {
|
|
9400
9436
|
improveAndRethrow(e, "getClientIpAddress");
|
|
@@ -9574,15 +9610,44 @@
|
|
|
9574
9610
|
this.isRefundAddressRequired = isRefundAddressRequired;
|
|
9575
9611
|
};
|
|
9576
9612
|
|
|
9613
|
+
// TODO: [refactoring, moderate] extract structure of _supportedCoins into model class
|
|
9614
|
+
|
|
9615
|
+
function _catch$4(body, recover) {
|
|
9616
|
+
try {
|
|
9617
|
+
var result = body();
|
|
9618
|
+
} catch (e) {
|
|
9619
|
+
return recover(e);
|
|
9620
|
+
}
|
|
9621
|
+
if (result && result.then) {
|
|
9622
|
+
return result.then(void 0, recover);
|
|
9623
|
+
}
|
|
9624
|
+
return result;
|
|
9625
|
+
}
|
|
9577
9626
|
var SwapProvider = /*#__PURE__*/function () {
|
|
9578
|
-
function SwapProvider() {
|
|
9627
|
+
function SwapProvider(cache, customCoinBuilder, useRestrictedCoinsSet) {
|
|
9628
|
+
if (customCoinBuilder === void 0) {
|
|
9629
|
+
customCoinBuilder = function customCoinBuilder(coin, network) {
|
|
9630
|
+
return null;
|
|
9631
|
+
};
|
|
9632
|
+
}
|
|
9633
|
+
if (useRestrictedCoinsSet === void 0) {
|
|
9634
|
+
useRestrictedCoinsSet = true;
|
|
9635
|
+
}
|
|
9636
|
+
this._supportedCoins = [];
|
|
9637
|
+
this._maxRateDigits = 20;
|
|
9638
|
+
this.useRestrictedCoinsSet = useRestrictedCoinsSet;
|
|
9639
|
+
this._customCoinBuilder = customCoinBuilder;
|
|
9640
|
+
this._cache = cache;
|
|
9641
|
+
this.isAggregator = false;
|
|
9642
|
+
}
|
|
9579
9643
|
var _proto = SwapProvider.prototype;
|
|
9580
9644
|
/**
|
|
9581
9645
|
* @return {Promise<void>}
|
|
9582
9646
|
*/
|
|
9583
9647
|
_proto.initialize = function initialize() {
|
|
9584
9648
|
try {
|
|
9585
|
-
|
|
9649
|
+
var _this = this;
|
|
9650
|
+
return Promise.resolve(_this._fetchSupportedCurrenciesIfNeeded()).then(function () {});
|
|
9586
9651
|
} catch (e) {
|
|
9587
9652
|
return Promise.reject(e);
|
|
9588
9653
|
}
|
|
@@ -9595,15 +9660,68 @@
|
|
|
9595
9660
|
throw new Error("Not implemented in base");
|
|
9596
9661
|
}
|
|
9597
9662
|
|
|
9663
|
+
/**
|
|
9664
|
+
* This method sort internal list putting popular (as provider thinks) coins to the top.
|
|
9665
|
+
* 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.
|
|
9666
|
+
* @private
|
|
9667
|
+
*/;
|
|
9668
|
+
_proto._putPopularCoinsFirst = function _putPopularCoinsFirst() {
|
|
9669
|
+
this._supportedCoins.sort(function (i1, i2) {
|
|
9670
|
+
if (i1.isPopular !== i2.isPopular) return i2.isPopular - i1.isPopular;
|
|
9671
|
+
return i1.coin.ticker.localeCompare(i2.coin.ticker);
|
|
9672
|
+
});
|
|
9673
|
+
}
|
|
9674
|
+
|
|
9675
|
+
/**
|
|
9676
|
+
* Should fill _supportedCoins with array of coins.
|
|
9677
|
+
* Coin construction rules:
|
|
9678
|
+
* 1. ticker should be CODEPROTOCOL_CODE e.g. USDTERC20
|
|
9679
|
+
* 2. name should not contain (PROTOCOL_CODE) or just PROTOCOL_CODe
|
|
9680
|
+
* 3. protocol should be null for coins major for their blockchains like BTC, ETH
|
|
9681
|
+
* 4. isPopular should be a number
|
|
9682
|
+
*
|
|
9683
|
+
* @return {Promise<void>}
|
|
9684
|
+
* @private
|
|
9685
|
+
*/;
|
|
9686
|
+
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
9687
|
+
try {
|
|
9688
|
+
throw new Error("Not implemented in base - _fetchSupportedCurrenciesIfNeeded");
|
|
9689
|
+
} catch (e) {
|
|
9690
|
+
return Promise.reject(e);
|
|
9691
|
+
}
|
|
9692
|
+
}
|
|
9598
9693
|
/**
|
|
9599
9694
|
* Retrieves all currencies supported by this swap provider.
|
|
9600
9695
|
* Returns one of SwapProvider.COMMON_ERRORS in case of processable fail.
|
|
9601
9696
|
*
|
|
9602
9697
|
* @return {Promise<({ result: true, coins: Coin[] }|{ result: false, reason: string })>}
|
|
9603
|
-
|
|
9698
|
+
*/
|
|
9699
|
+
;
|
|
9604
9700
|
_proto.getAllSupportedCurrencies = function getAllSupportedCurrencies() {
|
|
9605
9701
|
try {
|
|
9606
|
-
|
|
9702
|
+
var _this2 = this;
|
|
9703
|
+
var loggerSource = "getAllSupportedCurrencies";
|
|
9704
|
+
return Promise.resolve(_catch$4(function () {
|
|
9705
|
+
return Promise.resolve(_this2._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9706
|
+
var _this2$_supportedCoin;
|
|
9707
|
+
Logger.log("We have " + ((_this2$_supportedCoin = _this2._supportedCoins) == null ? void 0 : _this2$_supportedCoin.length) + " supported coins returning", loggerSource);
|
|
9708
|
+
return {
|
|
9709
|
+
result: true,
|
|
9710
|
+
coins: _this2._supportedCoins.map(function (item) {
|
|
9711
|
+
return item.coin;
|
|
9712
|
+
})
|
|
9713
|
+
};
|
|
9714
|
+
});
|
|
9715
|
+
}, function (e) {
|
|
9716
|
+
var _e$response;
|
|
9717
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
9718
|
+
return {
|
|
9719
|
+
result: false,
|
|
9720
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9721
|
+
};
|
|
9722
|
+
}
|
|
9723
|
+
improveAndRethrow(e, loggerSource);
|
|
9724
|
+
}));
|
|
9607
9725
|
} catch (e) {
|
|
9608
9726
|
return Promise.reject(e);
|
|
9609
9727
|
}
|
|
@@ -9617,7 +9735,31 @@
|
|
|
9617
9735
|
;
|
|
9618
9736
|
_proto.getDepositCurrencies = function getDepositCurrencies() {
|
|
9619
9737
|
try {
|
|
9620
|
-
|
|
9738
|
+
var _this3 = this;
|
|
9739
|
+
var loggerSource = "getDepositCurrencies";
|
|
9740
|
+
return Promise.resolve(_catch$4(function () {
|
|
9741
|
+
return Promise.resolve(_this3._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9742
|
+
var _this3$_supportedCoin;
|
|
9743
|
+
Logger.log("We have " + ((_this3$_supportedCoin = _this3._supportedCoins) == null ? void 0 : _this3$_supportedCoin.length) + " supported coins, getting depositable", loggerSource);
|
|
9744
|
+
return {
|
|
9745
|
+
result: true,
|
|
9746
|
+
coins: _this3._supportedCoins.filter(function (item) {
|
|
9747
|
+
return item.deposit;
|
|
9748
|
+
}).map(function (item) {
|
|
9749
|
+
return item.coin;
|
|
9750
|
+
})
|
|
9751
|
+
};
|
|
9752
|
+
});
|
|
9753
|
+
}, function (e) {
|
|
9754
|
+
var _e$response2;
|
|
9755
|
+
if ((e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status) === 429) {
|
|
9756
|
+
return {
|
|
9757
|
+
result: false,
|
|
9758
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9759
|
+
};
|
|
9760
|
+
}
|
|
9761
|
+
improveAndRethrow(e, loggerSource);
|
|
9762
|
+
}));
|
|
9621
9763
|
} catch (e) {
|
|
9622
9764
|
return Promise.reject(e);
|
|
9623
9765
|
}
|
|
@@ -9631,8 +9773,36 @@
|
|
|
9631
9773
|
*/
|
|
9632
9774
|
;
|
|
9633
9775
|
_proto.getWithdrawalCurrencies = function getWithdrawalCurrencies(exceptCurrency) {
|
|
9776
|
+
if (exceptCurrency === void 0) {
|
|
9777
|
+
exceptCurrency = null;
|
|
9778
|
+
}
|
|
9634
9779
|
try {
|
|
9635
|
-
|
|
9780
|
+
var _this4 = this;
|
|
9781
|
+
var loggerSource = "getWithdrawalCurrencies";
|
|
9782
|
+
return Promise.resolve(_catch$4(function () {
|
|
9783
|
+
return Promise.resolve(_this4._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9784
|
+
var _this4$_supportedCoin;
|
|
9785
|
+
Logger.log("We have " + ((_this4$_supportedCoin = _this4._supportedCoins) == null ? void 0 : _this4$_supportedCoin.length) + " supported coins, getting withdrawable", loggerSource);
|
|
9786
|
+
return {
|
|
9787
|
+
result: true,
|
|
9788
|
+
coins: _this4._supportedCoins.filter(function (item) {
|
|
9789
|
+
var _item$coin, _exceptCurrency;
|
|
9790
|
+
return item.withdrawal && (!exceptCurrency || ((_item$coin = item.coin) == null ? void 0 : _item$coin.ticker) !== ((_exceptCurrency = exceptCurrency) == null ? void 0 : _exceptCurrency.ticker));
|
|
9791
|
+
}).map(function (item) {
|
|
9792
|
+
return item.coin;
|
|
9793
|
+
})
|
|
9794
|
+
};
|
|
9795
|
+
});
|
|
9796
|
+
}, function (e) {
|
|
9797
|
+
var _e$response3;
|
|
9798
|
+
if ((e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.status) === 429) {
|
|
9799
|
+
return {
|
|
9800
|
+
result: false,
|
|
9801
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
9802
|
+
};
|
|
9803
|
+
}
|
|
9804
|
+
improveAndRethrow(e, loggerSource);
|
|
9805
|
+
}));
|
|
9636
9806
|
} catch (e) {
|
|
9637
9807
|
return Promise.reject(e);
|
|
9638
9808
|
}
|
|
@@ -9640,12 +9810,28 @@
|
|
|
9640
9810
|
/**
|
|
9641
9811
|
* Retrieves URL for coin icon or fallback if not found.
|
|
9642
9812
|
*
|
|
9643
|
-
* @param
|
|
9813
|
+
* @param coinOrTicker {Coin|string} coin or rabbit-format of coin ticker
|
|
9644
9814
|
* @return {string}
|
|
9645
9815
|
*/
|
|
9646
9816
|
;
|
|
9647
|
-
_proto.getIconUrl = function getIconUrl(
|
|
9648
|
-
|
|
9817
|
+
_proto.getIconUrl = function getIconUrl(coinOrTicker) {
|
|
9818
|
+
var loggerSource = "getIconUrl";
|
|
9819
|
+
try {
|
|
9820
|
+
var _this$_supportedCoins2, _this$_supportedCoins3;
|
|
9821
|
+
var coin = coinOrTicker;
|
|
9822
|
+
if (!(coinOrTicker instanceof Coin)) {
|
|
9823
|
+
var _this$_supportedCoins;
|
|
9824
|
+
coin = (_this$_supportedCoins = this._supportedCoins.find(function (i) {
|
|
9825
|
+
return i.coin.ticker === coinOrTicker;
|
|
9826
|
+
})) == null ? void 0 : _this$_supportedCoins.coin;
|
|
9827
|
+
}
|
|
9828
|
+
return (_this$_supportedCoins2 = (_this$_supportedCoins3 = this._supportedCoins.find(function (item) {
|
|
9829
|
+
var _item$coin2, _coin;
|
|
9830
|
+
return ((_item$coin2 = item.coin) == null ? void 0 : _item$coin2.ticker) === ((_coin = coin) == null ? void 0 : _coin.ticker);
|
|
9831
|
+
})) == null ? void 0 : _this$_supportedCoins3.iconURL) != null ? _this$_supportedCoins2 : FALLBACK_ASSET_ICON_URL;
|
|
9832
|
+
} catch (e) {
|
|
9833
|
+
improveAndRethrow(e, loggerSource);
|
|
9834
|
+
}
|
|
9649
9835
|
}
|
|
9650
9836
|
|
|
9651
9837
|
/**
|
|
@@ -9656,7 +9842,49 @@
|
|
|
9656
9842
|
*/;
|
|
9657
9843
|
_proto.getCoinToUSDTRate = function getCoinToUSDTRate(coin) {
|
|
9658
9844
|
try {
|
|
9659
|
-
|
|
9845
|
+
var _this5 = this;
|
|
9846
|
+
var loggerSource = "getCoinToUSDTRate";
|
|
9847
|
+
return Promise.resolve(_catch$4(function () {
|
|
9848
|
+
return coin ? Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
9849
|
+
var _this5$_supportedCoin;
|
|
9850
|
+
// Using USDT TRC20 as usually fee in this network is smaller than ERC20 and this network is widely used for USDT
|
|
9851
|
+
var usdtTrc20 = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
|
|
9852
|
+
return i.coin.ticker === "USDTTRC20";
|
|
9853
|
+
})) == null ? void 0 : _this5$_supportedCoin.coin;
|
|
9854
|
+
if (!usdtTrc20) {
|
|
9855
|
+
return {
|
|
9856
|
+
result: false
|
|
9857
|
+
};
|
|
9858
|
+
}
|
|
9859
|
+
var cached = _this5._cache.get("swapspace_usdt_rate_" + coin.ticker);
|
|
9860
|
+
if (cached != null) {
|
|
9861
|
+
return {
|
|
9862
|
+
result: true,
|
|
9863
|
+
rate: cached
|
|
9864
|
+
};
|
|
9865
|
+
}
|
|
9866
|
+
Logger.log("Loading USDT->coin rate as not found in cache:", coin == null ? void 0 : coin.ticker);
|
|
9867
|
+
return Promise.resolve(_this5.getSwapInfo(usdtTrc20, coin, "5000", false)).then(function (result) {
|
|
9868
|
+
if (!result.result) {
|
|
9869
|
+
return {
|
|
9870
|
+
result: false
|
|
9871
|
+
};
|
|
9872
|
+
}
|
|
9873
|
+
|
|
9874
|
+
// This calculation is not precise as we cannot recognize the actual fee and network fee. Just approximate.
|
|
9875
|
+
var standardSwapspaceFeeMultiplier = 1.004; // fee is usually 0.4%
|
|
9876
|
+
var rate = bignumber_js.BigNumber(1).div(bignumber_js.BigNumber(result.rate).times(standardSwapspaceFeeMultiplier)).toString();
|
|
9877
|
+
_this5._cache.put("swap_usdt_rate_" + coin.ticker, rate, 15 * 60000 // 15 minutes
|
|
9878
|
+
);
|
|
9879
|
+
return {
|
|
9880
|
+
result: true,
|
|
9881
|
+
rate: rate
|
|
9882
|
+
};
|
|
9883
|
+
});
|
|
9884
|
+
}) : null;
|
|
9885
|
+
}, function (e) {
|
|
9886
|
+
improveAndRethrow(e, loggerSource);
|
|
9887
|
+
}));
|
|
9660
9888
|
} catch (e) {
|
|
9661
9889
|
return Promise.reject(e);
|
|
9662
9890
|
}
|
|
@@ -9673,6 +9901,7 @@
|
|
|
9673
9901
|
* @param [fixed=false] {boolean|null} null means fixed or float doesn't matter
|
|
9674
9902
|
* @param [fromCoinToUsdRate=null] pass if you want to increase the min amount returned
|
|
9675
9903
|
* by provider with some fixed "insurance" amount to cover min amount fluctuations.
|
|
9904
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount. False means the amount is the sending amount.
|
|
9676
9905
|
* @return {Promise<({
|
|
9677
9906
|
* result: false,
|
|
9678
9907
|
* reason: string,
|
|
@@ -9692,7 +9921,7 @@
|
|
|
9692
9921
|
* })>}
|
|
9693
9922
|
*/
|
|
9694
9923
|
;
|
|
9695
|
-
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate) {
|
|
9924
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
9696
9925
|
try {
|
|
9697
9926
|
throw new Error("Not implemented in base");
|
|
9698
9927
|
} catch (e) {
|
|
@@ -9712,6 +9941,7 @@
|
|
|
9712
9941
|
* @param fixed {boolean}
|
|
9713
9942
|
* @param [toCurrencyExtraId=""] {string} optional extra ID
|
|
9714
9943
|
* @param [refundExtraId=""] {string} optional extra ID for refund address
|
|
9944
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount. False means the amount is the sending amount.
|
|
9715
9945
|
* @return {Promise<({
|
|
9716
9946
|
* result: true,
|
|
9717
9947
|
* swapId: string,
|
|
@@ -9731,7 +9961,7 @@
|
|
|
9731
9961
|
* })>}
|
|
9732
9962
|
*/
|
|
9733
9963
|
;
|
|
9734
|
-
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId) {
|
|
9964
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
9735
9965
|
try {
|
|
9736
9966
|
throw new Error("Not implemented in base");
|
|
9737
9967
|
} catch (e) {
|
|
@@ -9759,7 +9989,15 @@
|
|
|
9759
9989
|
*/
|
|
9760
9990
|
;
|
|
9761
9991
|
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker) {
|
|
9762
|
-
|
|
9992
|
+
try {
|
|
9993
|
+
var _item$coin3;
|
|
9994
|
+
var item = this._supportedCoins.find(function (i) {
|
|
9995
|
+
return i.coin.ticker === ticker;
|
|
9996
|
+
});
|
|
9997
|
+
return (_item$coin3 = item == null ? void 0 : item.coin) != null ? _item$coin3 : null;
|
|
9998
|
+
} catch (e) {
|
|
9999
|
+
improveAndRethrow(e, "getCoinByTickerIfPresent");
|
|
10000
|
+
}
|
|
9763
10001
|
}
|
|
9764
10002
|
|
|
9765
10003
|
/**
|
|
@@ -9768,17 +10006,68 @@
|
|
|
9768
10006
|
* @return {boolean}
|
|
9769
10007
|
*/;
|
|
9770
10008
|
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
9771
|
-
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
|
|
9778
|
-
|
|
9779
|
-
|
|
9780
|
-
|
|
9781
|
-
|
|
10009
|
+
try {
|
|
10010
|
+
var assetData = this._supportedCoins.find(function (i) {
|
|
10011
|
+
var _i$coin;
|
|
10012
|
+
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10013
|
+
});
|
|
10014
|
+
if (assetData) {
|
|
10015
|
+
var corrected = assetData.validationRegexp.trim();
|
|
10016
|
+
corrected = corrected[0] === "/" ? corrected.slice(1) : corrected;
|
|
10017
|
+
corrected = corrected[corrected.length - 1] === "/" ? corrected.slice(0, corrected.length - 1) : corrected;
|
|
10018
|
+
return address.match(corrected) != null;
|
|
10019
|
+
}
|
|
10020
|
+
} catch (e) {
|
|
10021
|
+
Logger.logError(e, "isAddressValidForAsset");
|
|
10022
|
+
}
|
|
10023
|
+
return false;
|
|
10024
|
+
}
|
|
10025
|
+
|
|
10026
|
+
/**
|
|
10027
|
+
* @param asset {Coin}
|
|
10028
|
+
* @return {string|null}
|
|
10029
|
+
*/;
|
|
10030
|
+
_proto.getExtraIdNameIfPresent = function getExtraIdNameIfPresent(asset) {
|
|
10031
|
+
try {
|
|
10032
|
+
var assetData = this._supportedCoins.find(function (i) {
|
|
10033
|
+
var _i$coin2;
|
|
10034
|
+
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (asset == null ? void 0 : asset.ticker);
|
|
10035
|
+
});
|
|
10036
|
+
if (assetData != null && assetData.hasExtraId) {
|
|
10037
|
+
if ((assetData == null ? void 0 : assetData.extraIdName) == null || (assetData == null ? void 0 : assetData.extraIdName) === "") {
|
|
10038
|
+
// We return some default name if the extraIdName is empty
|
|
10039
|
+
return "ID";
|
|
10040
|
+
}
|
|
10041
|
+
return assetData == null ? void 0 : assetData.extraIdName;
|
|
10042
|
+
}
|
|
10043
|
+
return null;
|
|
10044
|
+
} catch (e) {
|
|
10045
|
+
improveAndRethrow(e, "getExtraIdNameIfPresent");
|
|
10046
|
+
}
|
|
10047
|
+
};
|
|
10048
|
+
_proto.removeProtocolNameFromCoinName = function removeProtocolNameFromCoinName(coinName, tickerPrintable, protocolName) {
|
|
10049
|
+
if (coinName) {
|
|
10050
|
+
var originalName = coinName;
|
|
10051
|
+
if (tickerPrintable) {
|
|
10052
|
+
coinName = coinName.replaceAll(new RegExp("\\(" + tickerPrintable + "\\)", "gi"), "");
|
|
10053
|
+
}
|
|
10054
|
+
if (protocolName) {
|
|
10055
|
+
coinName = coinName.replaceAll(new RegExp("\\(" + protocolName + "\\)", "gi"), "").replaceAll(new RegExp("(?<!on) " + protocolName + "$", "gi"), "").replaceAll(new RegExp("^" + protocolName + " ", "gi"), "").replaceAll(new RegExp("(?<!on) " + protocolName + " ", "gi"), " ");
|
|
10056
|
+
}
|
|
10057
|
+
coinName = coinName.replaceAll(/ +/g, " ").trim();
|
|
10058
|
+
var defaultNames = ["token", "network", "protocol", "coin", "mainnet", "chain", "project", "cash", "finance", "wrapped", "blockchain", "network"];
|
|
10059
|
+
var lowerCoinName = coinName.toLowerCase();
|
|
10060
|
+
var isBecameDefaultName = defaultNames.find(function (defName) {
|
|
10061
|
+
return lowerCoinName === defName || lowerCoinName === "the " + defName;
|
|
10062
|
+
});
|
|
10063
|
+
if (coinName === "" || isBecameDefaultName) {
|
|
10064
|
+
// Rolling back to original name if our processing leads in empty name or one of the default words
|
|
10065
|
+
coinName = originalName;
|
|
10066
|
+
}
|
|
10067
|
+
}
|
|
10068
|
+
return coinName;
|
|
10069
|
+
};
|
|
10070
|
+
return SwapProvider;
|
|
9782
10071
|
}();
|
|
9783
10072
|
SwapProvider.COMMON_ERRORS = {
|
|
9784
10073
|
REQUESTS_LIMIT_EXCEEDED: "requestsLimitExceeded"
|
|
@@ -9795,22 +10084,16 @@
|
|
|
9795
10084
|
};
|
|
9796
10085
|
SwapProvider.SWAP_STATUSES = {
|
|
9797
10086
|
WAITING_FOR_PAYMENT: "waiting_for_payment",
|
|
9798
|
-
// public +
|
|
9799
10087
|
CONFIRMING: "confirming",
|
|
9800
10088
|
PAYMENT_RECEIVED: "payment_received",
|
|
9801
|
-
// public +
|
|
9802
10089
|
EXCHANGING: "exchanging",
|
|
9803
|
-
// session full // public +
|
|
9804
10090
|
COMPLETED: "completed",
|
|
9805
|
-
// session full // public +
|
|
9806
10091
|
REFUNDED: "refunded",
|
|
9807
|
-
// session full // public +
|
|
9808
10092
|
EXPIRED: "expired",
|
|
9809
|
-
|
|
9810
|
-
FAILED: "failed" // public +
|
|
10093
|
+
FAILED: "failed"
|
|
9811
10094
|
};
|
|
9812
10095
|
|
|
9813
|
-
function _catch$
|
|
10096
|
+
function _catch$3(body, recover) {
|
|
9814
10097
|
try {
|
|
9815
10098
|
var result = body();
|
|
9816
10099
|
} catch (e) {
|
|
@@ -9834,14 +10117,10 @@
|
|
|
9834
10117
|
if (useRestrictedCoinsSet === void 0) {
|
|
9835
10118
|
useRestrictedCoinsSet = true;
|
|
9836
10119
|
}
|
|
9837
|
-
_this = _SwapProvider.call(this) || this;
|
|
9838
|
-
_this._supportedCoins = [];
|
|
10120
|
+
_this = _SwapProvider.call(this, cache, customCoinBuilder, useRestrictedCoinsSet) || this;
|
|
9839
10121
|
_this._partners = [];
|
|
9840
|
-
_this._URL =
|
|
9841
|
-
_this.
|
|
9842
|
-
_this.useRestrictedCoinsSet = useRestrictedCoinsSet;
|
|
9843
|
-
_this._customCoinBuilder = customCoinBuilder;
|
|
9844
|
-
_this._cache = cache;
|
|
10122
|
+
_this._URL = apiKeysProxyUrl + "/swapspace";
|
|
10123
|
+
_this.isAggregator = true;
|
|
9845
10124
|
return _this;
|
|
9846
10125
|
}
|
|
9847
10126
|
var _proto = SwapspaceSwapProvider.prototype;
|
|
@@ -9850,144 +10129,21 @@
|
|
|
9850
10129
|
* (and even a bit smaller value) for better consistency */
|
|
9851
10130
|
return 110000;
|
|
9852
10131
|
};
|
|
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
10132
|
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
9976
10133
|
try {
|
|
9977
|
-
var
|
|
10134
|
+
var _this2 = this;
|
|
9978
10135
|
var loggerSource = "_fetchSupportedCurrenciesIfNeeded";
|
|
9979
|
-
return Promise.resolve(_catch$
|
|
9980
|
-
var _temp = function (
|
|
9981
|
-
if (!((
|
|
9982
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10136
|
+
return Promise.resolve(_catch$3(function () {
|
|
10137
|
+
var _temp = function (_this2$_supportedCoin) {
|
|
10138
|
+
if (!((_this2$_supportedCoin = _this2._supportedCoins) != null && _this2$_supportedCoin.length)) {
|
|
10139
|
+
return Promise.resolve(axios__default["default"].get(_this2._URL + "/api/v2/currencies")).then(function (rawResponse) {
|
|
9983
10140
|
var _rawResponse$data, _rawResponse$data2;
|
|
9984
10141
|
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data = rawResponse.data) == null ? void 0 : _rawResponse$data.length), loggerSource);
|
|
9985
10142
|
var allowedCoins = (_rawResponse$data2 = rawResponse == null ? void 0 : rawResponse.data) != null ? _rawResponse$data2 : [];
|
|
9986
10143
|
Logger.log("Allowed cnt " + allowedCoins.length, loggerSource);
|
|
9987
|
-
|
|
9988
|
-
var coin =
|
|
9989
|
-
if (!coin && !
|
|
9990
|
-
var _item$name;
|
|
10144
|
+
_this2._supportedCoins = allowedCoins.map(function (item) {
|
|
10145
|
+
var coin = _this2._customCoinBuilder(item.code, item.network);
|
|
10146
|
+
if (!coin && !_this2.useRestrictedCoinsSet) {
|
|
9991
10147
|
/** Building coin object for coin that isn't supported OOB in Rabbit.
|
|
9992
10148
|
* We are doing this way to be able to use extended coins set for swaps.
|
|
9993
10149
|
* These temporary built coins are only for in-swap use, and we omit some usual
|
|
@@ -10001,11 +10157,7 @@
|
|
|
10001
10157
|
/** Removing ticker and protocol name from coin name as we usually use them explicitly
|
|
10002
10158
|
* from coin object rather than counting on having it in the coin name itself.
|
|
10003
10159
|
* 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
|
-
}
|
|
10160
|
+
var name = _this2.removeProtocolNameFromCoinName(item.name, code, network);
|
|
10009
10161
|
var ticker = "" + code + (code === network ? "" : network);
|
|
10010
10162
|
var defaultDecimalPlacesForCoinNotSupportedOOB = 8;
|
|
10011
10163
|
var defaultMinConfirmationsForCoinNotSupportedOOB = 1;
|
|
@@ -10021,16 +10173,17 @@
|
|
|
10021
10173
|
network: item.network,
|
|
10022
10174
|
hasExtraId: item.hasExtraId,
|
|
10023
10175
|
extraIdName: item.extraIdName,
|
|
10024
|
-
isPopular:
|
|
10176
|
+
isPopular: item.popular ? 1 : 0,
|
|
10025
10177
|
iconURL: item.icon ? "https://storage.swapspace.co" + item.icon : FALLBACK_ASSET_ICON_URL,
|
|
10026
10178
|
deposit: (_item$deposit = item.deposit) != null ? _item$deposit : false,
|
|
10027
10179
|
withdrawal: (_item$withdrawal = item.withdrawal) != null ? _item$withdrawal : false,
|
|
10028
|
-
validationRegexp: (_item$validationRegex = item.validationRegexp) != null ? _item$validationRegex : null
|
|
10180
|
+
validationRegexp: (_item$validationRegex = item.validationRegexp) != null ? _item$validationRegex : null,
|
|
10181
|
+
isAvailable: true
|
|
10029
10182
|
};
|
|
10030
10183
|
}
|
|
10031
10184
|
return [];
|
|
10032
10185
|
}).flat();
|
|
10033
|
-
|
|
10186
|
+
_this2._putPopularCoinsFirst();
|
|
10034
10187
|
});
|
|
10035
10188
|
}
|
|
10036
10189
|
}();
|
|
@@ -10044,15 +10197,15 @@
|
|
|
10044
10197
|
};
|
|
10045
10198
|
_proto._fetchPartnersListIfNeeded = function _fetchPartnersListIfNeeded() {
|
|
10046
10199
|
try {
|
|
10047
|
-
var
|
|
10200
|
+
var _this3 = this;
|
|
10048
10201
|
var loggerSource = "_fetchPartnersListIfNeeded";
|
|
10049
|
-
return Promise.resolve(_catch$
|
|
10050
|
-
var _temp2 = function (
|
|
10051
|
-
if (((
|
|
10052
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10202
|
+
return Promise.resolve(_catch$3(function () {
|
|
10203
|
+
var _temp2 = function (_this3$_partners) {
|
|
10204
|
+
if (((_this3$_partners = _this3._partners) == null ? void 0 : _this3$_partners.length) === 0) {
|
|
10205
|
+
return Promise.resolve(axios__default["default"].get(_this3._URL + "/api/v2/partners")).then(function (rawResponse) {
|
|
10053
10206
|
var _rawResponse$data3;
|
|
10054
10207
|
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data3 = rawResponse.data) == null ? void 0 : _rawResponse$data3.length) + " partners", loggerSource);
|
|
10055
|
-
|
|
10208
|
+
_this3._partners = Array.isArray(rawResponse == null ? void 0 : rawResponse.data) ? rawResponse == null ? void 0 : rawResponse.data : [];
|
|
10056
10209
|
});
|
|
10057
10210
|
}
|
|
10058
10211
|
}();
|
|
@@ -10063,99 +10216,30 @@
|
|
|
10063
10216
|
} catch (e) {
|
|
10064
10217
|
return Promise.reject(e);
|
|
10065
10218
|
}
|
|
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
10219
|
};
|
|
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) {
|
|
10220
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
10141
10221
|
if (fixed === void 0) {
|
|
10142
10222
|
fixed = false;
|
|
10143
10223
|
}
|
|
10144
10224
|
if (fromCoinToUsdRate === void 0) {
|
|
10145
10225
|
fromCoinToUsdRate = null;
|
|
10146
10226
|
}
|
|
10227
|
+
if (amountIsToReceive === void 0) {
|
|
10228
|
+
amountIsToReceive = false;
|
|
10229
|
+
}
|
|
10147
10230
|
try {
|
|
10148
|
-
var
|
|
10231
|
+
var _this4 = this;
|
|
10149
10232
|
var loggerSource = "getSwapInfo";
|
|
10150
|
-
return Promise.resolve(_catch$
|
|
10233
|
+
return Promise.resolve(_catch$3(function () {
|
|
10234
|
+
if (amountIsToReceive) throw new Error("Swapspace doesn't support exchanging to get the exact receiving amount");
|
|
10151
10235
|
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amountCoins !== "string" || bignumber_js.BigNumber(amountCoins).lt("0") || fixed !== null && typeof fixed !== "boolean") {
|
|
10152
10236
|
throw new Error("Wrong input params: " + amountCoins + " " + fromCoin.ticker + " -> " + toCoin.ticker + ", " + (fromCoin instanceof Coin) + ", " + (toCoin instanceof Coin) + ", " + typeof fixed + " " + fixed);
|
|
10153
10237
|
}
|
|
10154
|
-
var fromCoinSwapspaceDetails =
|
|
10238
|
+
var fromCoinSwapspaceDetails = _this4._supportedCoins.find(function (i) {
|
|
10155
10239
|
var _i$coin;
|
|
10156
10240
|
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
10157
10241
|
});
|
|
10158
|
-
var toCoinSwapspaceDetails =
|
|
10242
|
+
var toCoinSwapspaceDetails = _this4._supportedCoins.find(function (i) {
|
|
10159
10243
|
var _i$coin2;
|
|
10160
10244
|
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
10161
10245
|
});
|
|
@@ -10165,11 +10249,11 @@
|
|
|
10165
10249
|
return !fromCoinSwapspaceDetails.deposit || !toCoinSwapspaceDetails.withdrawal ? {
|
|
10166
10250
|
result: false,
|
|
10167
10251
|
reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
|
|
10168
|
-
} : Promise.resolve(axios__default["default"].get(
|
|
10252
|
+
} : 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
10253
|
var _response$data, _exchangesSupportingT;
|
|
10170
10254
|
var _exit;
|
|
10171
|
-
function _temp4(
|
|
10172
|
-
if (_exit) return
|
|
10255
|
+
function _temp4(_result2) {
|
|
10256
|
+
if (_exit) return _result2;
|
|
10173
10257
|
var result = {
|
|
10174
10258
|
result: false,
|
|
10175
10259
|
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 +10347,9 @@
|
|
|
10263
10347
|
}
|
|
10264
10348
|
}
|
|
10265
10349
|
var rate = bestOpt.toAmount && bestOpt.fromAmount ? bignumber_js.BigNumber(bestOpt.toAmount).div(bestOpt.fromAmount) : null;
|
|
10266
|
-
return Promise.resolve(
|
|
10350
|
+
return Promise.resolve(_this4._fetchPartnersListIfNeeded()).then(function () {
|
|
10267
10351
|
var _bestOpt$duration;
|
|
10268
|
-
var partner =
|
|
10352
|
+
var partner = _this4._partners.find(function (p) {
|
|
10269
10353
|
var _bestOpt$partner;
|
|
10270
10354
|
return (bestOpt == null || (_bestOpt$partner = bestOpt.partner) == null ? void 0 : _bestOpt$partner.toLowerCase()) === p.path.toLowerCase();
|
|
10271
10355
|
});
|
|
@@ -10276,7 +10360,7 @@
|
|
|
10276
10360
|
max: max,
|
|
10277
10361
|
smallestMin: smallestMin,
|
|
10278
10362
|
greatestMax: greatestMax,
|
|
10279
|
-
rate: rate != null ? AmountUtils.trim(rate,
|
|
10363
|
+
rate: rate != null ? AmountUtils.trim(rate, _this4._maxRateDigits) : null,
|
|
10280
10364
|
durationMinutesRange: (_bestOpt$duration = bestOpt.duration) != null ? _bestOpt$duration : null,
|
|
10281
10365
|
fixed: bestOpt.fixed,
|
|
10282
10366
|
rawSwapData: bestOpt,
|
|
@@ -10290,8 +10374,8 @@
|
|
|
10290
10374
|
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
|
10291
10375
|
});
|
|
10292
10376
|
}, function (e) {
|
|
10293
|
-
var _e$
|
|
10294
|
-
if ((e == null || (_e$
|
|
10377
|
+
var _e$response;
|
|
10378
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
10295
10379
|
return {
|
|
10296
10380
|
result: false,
|
|
10297
10381
|
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
@@ -10304,18 +10388,22 @@
|
|
|
10304
10388
|
return Promise.reject(e);
|
|
10305
10389
|
}
|
|
10306
10390
|
};
|
|
10307
|
-
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId) {
|
|
10391
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
10308
10392
|
if (toCurrencyExtraId === void 0) {
|
|
10309
10393
|
toCurrencyExtraId = "";
|
|
10310
10394
|
}
|
|
10311
10395
|
if (refundExtraId === void 0) {
|
|
10312
10396
|
refundExtraId = "";
|
|
10313
10397
|
}
|
|
10398
|
+
if (amountIsToReceive === void 0) {
|
|
10399
|
+
amountIsToReceive = false;
|
|
10400
|
+
}
|
|
10314
10401
|
try {
|
|
10315
|
-
var
|
|
10402
|
+
var _this5 = this;
|
|
10316
10403
|
var loggerSource = "createSwap";
|
|
10317
10404
|
var partner = rawSwapData == null ? void 0 : rawSwapData.partner;
|
|
10318
|
-
return Promise.resolve(_catch$
|
|
10405
|
+
return Promise.resolve(_catch$3(function () {
|
|
10406
|
+
if (amountIsToReceive) throw new Error("Swapspace doesn't support exchanging to get the exact receiving amount");
|
|
10319
10407
|
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
10408
|
throw new Error("Invalid input: " + fromCoin + " " + toCoin + " " + amount + " " + toAddress + " " + refundAddress + " " + (clientIpAddress == null ? void 0 : clientIpAddress.length) + " " + fixed);
|
|
10321
10409
|
}
|
|
@@ -10323,12 +10411,12 @@
|
|
|
10323
10411
|
) {
|
|
10324
10412
|
throw new Error("Invalid raw swap data: " + safeStringify(rawSwapData));
|
|
10325
10413
|
}
|
|
10326
|
-
var
|
|
10414
|
+
var _this5$_supportedCoin = _this5._supportedCoins.reduce(function (prev, coinData) {
|
|
10327
10415
|
return [coinData.coin.ticker === fromCoin.ticker ? coinData.hasExtraId : prev[0], coinData.coin.ticker === toCoin.ticker ? coinData.hasExtraId : prev[1]];
|
|
10328
10416
|
}, [false, false]),
|
|
10329
|
-
fromCurrencyHasExtraId =
|
|
10330
|
-
toCurrencyHasExtraId =
|
|
10331
|
-
return Promise.resolve(
|
|
10417
|
+
fromCurrencyHasExtraId = _this5$_supportedCoin[0],
|
|
10418
|
+
toCurrencyHasExtraId = _this5$_supportedCoin[1];
|
|
10419
|
+
return Promise.resolve(_this5._fetchSupportedCurrenciesIfNeeded()).then(function () {
|
|
10332
10420
|
var _toCurrencyExtraId, _refundExtraId;
|
|
10333
10421
|
var requestData = {
|
|
10334
10422
|
partner: partner,
|
|
@@ -10347,7 +10435,7 @@
|
|
|
10347
10435
|
refund: refundAddress
|
|
10348
10436
|
};
|
|
10349
10437
|
Logger.log("Sending create request: " + safeStringify(requestData), loggerSource);
|
|
10350
|
-
return Promise.resolve(axios__default["default"].post(
|
|
10438
|
+
return Promise.resolve(axios__default["default"].post(_this5._URL + "/api/v2/exchange", requestData)).then(function (response) {
|
|
10351
10439
|
var result = response.data;
|
|
10352
10440
|
Logger.log("Creation result " + safeStringify(result), loggerSource);
|
|
10353
10441
|
if (result != null && result.id) {
|
|
@@ -10372,7 +10460,7 @@
|
|
|
10372
10460
|
toAmount: AmountUtils.trim(result == null || (_result$to4 = result.to) == null ? void 0 : _result$to4.amount, toCoin.digits),
|
|
10373
10461
|
toAddress: result == null || (_result$to5 = result.to) == null ? void 0 : _result$to5.address,
|
|
10374
10462
|
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,
|
|
10463
|
+
rate: AmountUtils.trim(rate, _this5._maxRateDigits),
|
|
10376
10464
|
fixed: result.fixed
|
|
10377
10465
|
};
|
|
10378
10466
|
}
|
|
@@ -10382,7 +10470,7 @@
|
|
|
10382
10470
|
});
|
|
10383
10471
|
});
|
|
10384
10472
|
}, function (e) {
|
|
10385
|
-
var _e$
|
|
10473
|
+
var _e$response2, _e$response3;
|
|
10386
10474
|
Logger.logError(e, loggerSource, "Failed to create swap. Error is: " + safeStringify(e));
|
|
10387
10475
|
var composeFailResult = function composeFailResult(reason) {
|
|
10388
10476
|
return {
|
|
@@ -10391,8 +10479,8 @@
|
|
|
10391
10479
|
partner: partner
|
|
10392
10480
|
};
|
|
10393
10481
|
};
|
|
10394
|
-
var status = e == null || (_e$
|
|
10395
|
-
var data = e == null || (_e$
|
|
10482
|
+
var status = e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status;
|
|
10483
|
+
var data = e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.data;
|
|
10396
10484
|
if (status === 429) {
|
|
10397
10485
|
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
10398
10486
|
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
@@ -10441,9 +10529,9 @@
|
|
|
10441
10529
|
};
|
|
10442
10530
|
_proto.getExistingSwapsDetailsAndStatus = function getExistingSwapsDetailsAndStatus(swapIds) {
|
|
10443
10531
|
try {
|
|
10444
|
-
var
|
|
10532
|
+
var _this6 = this;
|
|
10445
10533
|
var loggerSource = "getExistingSwapsDetailsAndStatus";
|
|
10446
|
-
return Promise.resolve(_catch$
|
|
10534
|
+
return Promise.resolve(_catch$3(function () {
|
|
10447
10535
|
if (swapIds.find(function (id) {
|
|
10448
10536
|
return typeof id !== "string";
|
|
10449
10537
|
})) {
|
|
@@ -10451,8 +10539,8 @@
|
|
|
10451
10539
|
}
|
|
10452
10540
|
var getNotFailingOn404 = function getNotFailingOn404(swapId) {
|
|
10453
10541
|
try {
|
|
10454
|
-
return Promise.resolve(_catch$
|
|
10455
|
-
return Promise.resolve(axios__default["default"].get(
|
|
10542
|
+
return Promise.resolve(_catch$3(function () {
|
|
10543
|
+
return Promise.resolve(axios__default["default"].get(_this6._URL + "/api/v2/exchange/" + swapId));
|
|
10456
10544
|
}, function (error) {
|
|
10457
10545
|
var _error$response;
|
|
10458
10546
|
if ((error == null || (_error$response = error.response) == null ? void 0 : _error$response.status) === 404) return [];
|
|
@@ -10472,13 +10560,13 @@
|
|
|
10472
10560
|
var swaps = wo404.map(function (r) {
|
|
10473
10561
|
return r.data;
|
|
10474
10562
|
}).map(function (swap, index) {
|
|
10475
|
-
var
|
|
10476
|
-
var fromCoin = (
|
|
10563
|
+
var _this6$_supportedCoin, _this6$_supportedCoin2, _swap$from$extraId, _swap$to$extraId, _swap$refundExtraId;
|
|
10564
|
+
var fromCoin = (_this6$_supportedCoin = _this6._supportedCoins.find(function (i) {
|
|
10477
10565
|
return i.code === swap.from.code && i.network === swap.from.network;
|
|
10478
|
-
})) == null ? void 0 :
|
|
10479
|
-
var toCoin = (
|
|
10566
|
+
})) == null ? void 0 : _this6$_supportedCoin.coin;
|
|
10567
|
+
var toCoin = (_this6$_supportedCoin2 = _this6._supportedCoins.find(function (i) {
|
|
10480
10568
|
return i.code === swap.to.code && i.network === swap.to.network;
|
|
10481
|
-
})) == null ? void 0 :
|
|
10569
|
+
})) == null ? void 0 : _this6$_supportedCoin2.coin;
|
|
10482
10570
|
if (!fromCoin || !toCoin) {
|
|
10483
10571
|
return []; // We skip swaps with not supported coins for now
|
|
10484
10572
|
}
|
|
@@ -10487,10 +10575,10 @@
|
|
|
10487
10575
|
};
|
|
10488
10576
|
var expiresAt = toUtcTimestamp(swap.timestamps.expiresAt);
|
|
10489
10577
|
var isExpiredByTime = expiresAt < Date.now();
|
|
10490
|
-
var status =
|
|
10578
|
+
var status = _this6._mapSwapspaceStatusToRabbitStatus(swap.status, isExpiredByTime);
|
|
10491
10579
|
var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
|
|
10492
10580
|
var addressToSendCoinsToSwapspace = swap.from.address;
|
|
10493
|
-
return new ExistingSwap(swapIds[index], status, toUtcTimestamp(swap.timestamps.createdAt), expiresAt, swap.confirmations, AmountUtils.trim(swap.rate,
|
|
10581
|
+
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
10582
|
}).flat();
|
|
10495
10583
|
Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
|
|
10496
10584
|
return {
|
|
@@ -10499,7 +10587,7 @@
|
|
|
10499
10587
|
};
|
|
10500
10588
|
});
|
|
10501
10589
|
}, function (e) {
|
|
10502
|
-
var _e$
|
|
10590
|
+
var _e$response4, _e$response5;
|
|
10503
10591
|
Logger.logError(e, loggerSource, "Failed to get swap details. Error is: " + safeStringify(e));
|
|
10504
10592
|
var composeFailResult = function composeFailResult(reason) {
|
|
10505
10593
|
return {
|
|
@@ -10507,8 +10595,8 @@
|
|
|
10507
10595
|
reason: reason
|
|
10508
10596
|
};
|
|
10509
10597
|
};
|
|
10510
|
-
var status = e == null || (_e$
|
|
10511
|
-
var data = e == null || (_e$
|
|
10598
|
+
var status = e == null || (_e$response4 = e.response) == null ? void 0 : _e$response4.status;
|
|
10599
|
+
var data = e == null || (_e$response5 = e.response) == null ? void 0 : _e$response5.data;
|
|
10512
10600
|
if (status === 429) {
|
|
10513
10601
|
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
10514
10602
|
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
@@ -10519,45 +10607,10 @@
|
|
|
10519
10607
|
return Promise.reject(e);
|
|
10520
10608
|
}
|
|
10521
10609
|
};
|
|
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
10610
|
return SwapspaceSwapProvider;
|
|
10558
10611
|
}(SwapProvider);
|
|
10559
10612
|
|
|
10560
|
-
function _catch$
|
|
10613
|
+
function _catch$2(body, recover) {
|
|
10561
10614
|
try {
|
|
10562
10615
|
var result = body();
|
|
10563
10616
|
} catch (e) {
|
|
@@ -10754,134 +10807,590 @@
|
|
|
10754
10807
|
if (coinToCurrentFiatRate === void 0) {
|
|
10755
10808
|
coinToCurrentFiatRate = null;
|
|
10756
10809
|
}
|
|
10757
|
-
if (fiatCurrencyDecimals === void 0) {
|
|
10758
|
-
fiatCurrencyDecimals = null;
|
|
10810
|
+
if (fiatCurrencyDecimals === void 0) {
|
|
10811
|
+
fiatCurrencyDecimals = null;
|
|
10812
|
+
}
|
|
10813
|
+
try {
|
|
10814
|
+
var loggerSource = "getInitialSwapData";
|
|
10815
|
+
return Promise.resolve(_catch$2(function () {
|
|
10816
|
+
/* We use some amount here that should fit at least some of the limits of the swap providers.
|
|
10817
|
+
* So we are going to get some rate to be used as the default for the on-flight calculations before we get
|
|
10818
|
+
* the exact rate (that should be retrieved by getSwapCreationInfo method) for a specific amount.
|
|
10819
|
+
*/
|
|
10820
|
+
var defaultAmountUsd = bignumber_js.BigNumber("300");
|
|
10821
|
+
return Promise.resolve(swapProvider.getCoinToUSDTRate(fromCoin)).then(function (coinUsdRate) {
|
|
10822
|
+
var coinAmountForDefaultUsdAmount = AmountUtils.trim(coinUsdRate.result ? defaultAmountUsd.div(coinUsdRate == null ? void 0 : coinUsdRate.rate) : defaultAmountUsd, fromCoin.digits);
|
|
10823
|
+
Logger.log("Init: " + coinAmountForDefaultUsdAmount + " " + fromCoin.ticker + "->" + toCoin.ticker, loggerSource);
|
|
10824
|
+
return Promise.resolve(swapProvider.getSwapInfo(fromCoin, toCoin, coinAmountForDefaultUsdAmount)).then(function (details) {
|
|
10825
|
+
var _coinToCurrentFiatRat, _fiatCurrencyDecimals;
|
|
10826
|
+
if (!details) {
|
|
10827
|
+
throw new Error("The details are empty: " + safeStringify(details));
|
|
10828
|
+
}
|
|
10829
|
+
if (!details.result) {
|
|
10830
|
+
Logger.log("Failed with reason: " + details.reason + ". " + fromCoin.ticker + "->" + toCoin.ticker, loggerSource);
|
|
10831
|
+
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) {
|
|
10832
|
+
return {
|
|
10833
|
+
result: false,
|
|
10834
|
+
reason: details.reason
|
|
10835
|
+
};
|
|
10836
|
+
} else {
|
|
10837
|
+
throw new Error("Unhandled error case: " + (details == null ? void 0 : details.reason));
|
|
10838
|
+
}
|
|
10839
|
+
}
|
|
10840
|
+
var fiatMin = null;
|
|
10841
|
+
var fiatMax = null;
|
|
10842
|
+
var fiatRate = (_coinToCurrentFiatRat = coinToCurrentFiatRate) != null ? _coinToCurrentFiatRat : coinUsdRate == null ? void 0 : coinUsdRate.rate;
|
|
10843
|
+
var fiatDecimals = (_fiatCurrencyDecimals = fiatCurrencyDecimals) != null ? _fiatCurrencyDecimals : FiatCurrenciesService.getCurrencyDecimalCountByCode("USD");
|
|
10844
|
+
if (fiatRate != null) {
|
|
10845
|
+
fiatMin = bignumber_js.BigNumber(details == null ? void 0 : details.smallestMin).times(fiatRate).toFixed(fiatDecimals);
|
|
10846
|
+
fiatMax = bignumber_js.BigNumber(details == null ? void 0 : details.greatestMax).times(fiatRate).toFixed(fiatDecimals);
|
|
10847
|
+
}
|
|
10848
|
+
var result = {
|
|
10849
|
+
result: true,
|
|
10850
|
+
min: details == null ? void 0 : details.smallestMin,
|
|
10851
|
+
fiatMin: fiatMin,
|
|
10852
|
+
max: details == null ? void 0 : details.greatestMax,
|
|
10853
|
+
fiatMax: fiatMax,
|
|
10854
|
+
rate: AmountUtils.trim(details.rate, 30)
|
|
10855
|
+
};
|
|
10856
|
+
Logger.log("Returning: " + safeStringify(result), loggerSource);
|
|
10857
|
+
return result;
|
|
10858
|
+
});
|
|
10859
|
+
});
|
|
10860
|
+
}, function (e) {
|
|
10861
|
+
Logger.logError(e, loggerSource, "Failed to init swap: " + safeStringify(e));
|
|
10862
|
+
improveAndRethrow(e, loggerSource);
|
|
10863
|
+
}));
|
|
10864
|
+
} catch (e) {
|
|
10865
|
+
return Promise.reject(e);
|
|
10866
|
+
}
|
|
10867
|
+
};
|
|
10868
|
+
SwapUtils.safeHandleRequestsLimitExceeding = function safeHandleRequestsLimitExceeding() {
|
|
10869
|
+
(function () {
|
|
10870
|
+
try {
|
|
10871
|
+
var _temp = _catch$2(function () {
|
|
10872
|
+
return Promise.resolve(EmailsApi.sendEmail("AUTOMATIC EMAIL - SWAPSPACE REQUESTS LIMIT EXCEEDED", "Requests limit exceeded. Urgently ask swaps provider support for limit increasing")).then(function () {});
|
|
10873
|
+
}, function (e) {
|
|
10874
|
+
Logger.log("Failed to handle limit exceeding " + safeStringify(e), "_safeHandleRequestsLimitExceeding");
|
|
10875
|
+
});
|
|
10876
|
+
return _temp && _temp.then ? _temp.then(function () {}) : void 0;
|
|
10877
|
+
} catch (e) {
|
|
10878
|
+
Promise.reject(e);
|
|
10879
|
+
}
|
|
10880
|
+
})();
|
|
10881
|
+
}
|
|
10882
|
+
|
|
10883
|
+
/**
|
|
10884
|
+
* If some swap is not found by id then there is no item in return list.
|
|
10885
|
+
*
|
|
10886
|
+
* @param swapProviders {SwapProvider[]} - Array of swap providers
|
|
10887
|
+
* @param swapIds {string[]} - Array of swap IDs
|
|
10888
|
+
* @return {Promise<{
|
|
10889
|
+
* result: true,
|
|
10890
|
+
* swaps: ExistingSwapWithFiatData[]
|
|
10891
|
+
* }|{
|
|
10892
|
+
* result: false,
|
|
10893
|
+
* reason: string
|
|
10894
|
+
* }>}
|
|
10895
|
+
*/;
|
|
10896
|
+
SwapUtils.getExistingSwapsDetailsWithFiatAmounts = function getExistingSwapsDetailsWithFiatAmounts(swapProviders, swapIds) {
|
|
10897
|
+
try {
|
|
10898
|
+
return Promise.resolve(_catch$2(function () {
|
|
10899
|
+
var _interrupt;
|
|
10900
|
+
function _temp8() {
|
|
10901
|
+
if (swapIds.length > 0 && allSwaps.length === 0 && failResults.length > 0) {
|
|
10902
|
+
var failReasons = failResults.map(function (r) {
|
|
10903
|
+
return r.reason;
|
|
10904
|
+
});
|
|
10905
|
+
return {
|
|
10906
|
+
result: false,
|
|
10907
|
+
reason: failReasons.find(function (r) {
|
|
10908
|
+
return r !== SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED;
|
|
10909
|
+
}) ? failReasons.join("\n") : SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
10910
|
+
};
|
|
10911
|
+
}
|
|
10912
|
+
return {
|
|
10913
|
+
result: true,
|
|
10914
|
+
swaps: allSwaps
|
|
10915
|
+
};
|
|
10916
|
+
}
|
|
10917
|
+
var allSwaps = [];
|
|
10918
|
+
var remainingSwapIds = new Set(swapIds);
|
|
10919
|
+
var failResults = [];
|
|
10920
|
+
var _temp7 = _forOf(swapProviders, function (provider) {
|
|
10921
|
+
return Promise.resolve(provider.getExistingSwapsDetailsAndStatus([].concat(remainingSwapIds))).then(function (result) {
|
|
10922
|
+
var _temp6 = function () {
|
|
10923
|
+
if (result.result) {
|
|
10924
|
+
var _temp5 = function _temp5() {
|
|
10925
|
+
allSwaps = allSwaps.concat(_extendedSwaps);
|
|
10926
|
+
|
|
10927
|
+
// Stop if we have retrieved all swaps
|
|
10928
|
+
if (allSwaps.length >= swapIds.length) {
|
|
10929
|
+
_interrupt = 1;
|
|
10930
|
+
}
|
|
10931
|
+
};
|
|
10932
|
+
var _extendedSwaps = [];
|
|
10933
|
+
var _temp4 = _forOf(result.swaps, function (swap) {
|
|
10934
|
+
function _temp3() {
|
|
10935
|
+
remainingSwapIds["delete"](swap.id);
|
|
10936
|
+
}
|
|
10937
|
+
var _temp2 = function () {
|
|
10938
|
+
if (swap.status === SwapProvider.SWAP_STATUSES.REFUNDED) {
|
|
10939
|
+
return Promise.resolve(provider.getCoinToUSDTRate(swap.fromCoin)).then(function (rate) {
|
|
10940
|
+
_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")));
|
|
10941
|
+
});
|
|
10942
|
+
} else {
|
|
10943
|
+
return Promise.resolve(Promise.all([provider.getCoinToUSDTRate(swap.fromCoin), provider.getCoinToUSDTRate(swap.toCoin)])).then(function (_ref) {
|
|
10944
|
+
var fromCoinFiatRate = _ref[0],
|
|
10945
|
+
toCoinFiatRate = _ref[1];
|
|
10946
|
+
_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")));
|
|
10947
|
+
});
|
|
10948
|
+
}
|
|
10949
|
+
}();
|
|
10950
|
+
return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
|
|
10951
|
+
});
|
|
10952
|
+
return _temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4);
|
|
10953
|
+
} else {
|
|
10954
|
+
failResults.push(result);
|
|
10955
|
+
}
|
|
10956
|
+
}();
|
|
10957
|
+
if (_temp6 && _temp6.then) return _temp6.then(function () {});
|
|
10958
|
+
});
|
|
10959
|
+
}, function () {
|
|
10960
|
+
return _interrupt;
|
|
10961
|
+
});
|
|
10962
|
+
return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
|
|
10963
|
+
}, function (e) {
|
|
10964
|
+
improveAndRethrow(e, "getExistingSwapsDetailsWithFiatAmounts");
|
|
10965
|
+
}));
|
|
10966
|
+
} catch (e) {
|
|
10967
|
+
return Promise.reject(e);
|
|
10968
|
+
}
|
|
10969
|
+
};
|
|
10970
|
+
return SwapUtils;
|
|
10971
|
+
}();
|
|
10972
|
+
|
|
10973
|
+
function _catch$1(body, recover) {
|
|
10974
|
+
try {
|
|
10975
|
+
var result = body();
|
|
10976
|
+
} catch (e) {
|
|
10977
|
+
return recover(e);
|
|
10978
|
+
}
|
|
10979
|
+
if (result && result.then) {
|
|
10980
|
+
return result.then(void 0, recover);
|
|
10981
|
+
}
|
|
10982
|
+
return result;
|
|
10983
|
+
}
|
|
10984
|
+
var LetsExchangeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
|
|
10985
|
+
_inheritsLoose(LetsExchangeSwapProvider, _SwapProvider);
|
|
10986
|
+
function LetsExchangeSwapProvider(apiKeysProxyUrl, cache, customCoinBuilder, useRestrictedCoinsSet) {
|
|
10987
|
+
var _this;
|
|
10988
|
+
if (customCoinBuilder === void 0) {
|
|
10989
|
+
customCoinBuilder = function customCoinBuilder(coin, network) {
|
|
10990
|
+
return null;
|
|
10991
|
+
};
|
|
10992
|
+
}
|
|
10993
|
+
if (useRestrictedCoinsSet === void 0) {
|
|
10994
|
+
useRestrictedCoinsSet = true;
|
|
10995
|
+
}
|
|
10996
|
+
_this = _SwapProvider.call(this, cache, customCoinBuilder, useRestrictedCoinsSet) || this;
|
|
10997
|
+
_this._partners = [];
|
|
10998
|
+
_this._URL = apiKeysProxyUrl + "/letsexchange";
|
|
10999
|
+
_this.isAggregator = false;
|
|
11000
|
+
_this.COINS_EXPIRATION_TIME_MS = 5 * 60 * 1000;
|
|
11001
|
+
_this.coinsLastUpdateTimestamp = null;
|
|
11002
|
+
return _this;
|
|
11003
|
+
}
|
|
11004
|
+
var _proto = LetsExchangeSwapProvider.prototype;
|
|
11005
|
+
_proto.getSwapCreationInfoTtlMs = function getSwapCreationInfoTtlMs() {
|
|
11006
|
+
return 110000;
|
|
11007
|
+
};
|
|
11008
|
+
_proto._fetchSupportedCurrenciesIfNeeded = function _fetchSupportedCurrenciesIfNeeded() {
|
|
11009
|
+
try {
|
|
11010
|
+
var _this2 = this;
|
|
11011
|
+
var loggerSource = "_fetchSupportedCurrenciesIfNeeded";
|
|
11012
|
+
return Promise.resolve(_catch$1(function () {
|
|
11013
|
+
var _temp = function (_this2$_supportedCoin) {
|
|
11014
|
+
if (!((_this2$_supportedCoin = _this2._supportedCoins) != null && _this2$_supportedCoin.length) || !_this2.coinsLastUpdateTimestamp || _this2.coinsLastUpdateTimestamp + _this2.COINS_EXPIRATION_TIME_MS < Date.now()) {
|
|
11015
|
+
return Promise.resolve(axios__default["default"].get(_this2._URL + "/v2/coins")).then(function (rawResponse) {
|
|
11016
|
+
var _rawResponse$data, _rawResponse$data2;
|
|
11017
|
+
Logger.log("Retrieved " + (rawResponse == null || (_rawResponse$data = rawResponse.data) == null ? void 0 : _rawResponse$data.length), loggerSource);
|
|
11018
|
+
var allowedCoins = (_rawResponse$data2 = rawResponse == null ? void 0 : rawResponse.data) != null ? _rawResponse$data2 : [];
|
|
11019
|
+
Logger.log("Allowed cnt " + allowedCoins.length, loggerSource);
|
|
11020
|
+
_this2._supportedCoins = allowedCoins.map(function (item) {
|
|
11021
|
+
var code = item.code.toUpperCase();
|
|
11022
|
+
if (!Array.isArray(item.networks)) return [];
|
|
11023
|
+
return item.networks.map(function (networkDetails) {
|
|
11024
|
+
var network = networkDetails.code.toUpperCase();
|
|
11025
|
+
var coin = _this2._customCoinBuilder(code, network);
|
|
11026
|
+
if (!coin && !_this2.useRestrictedCoinsSet) {
|
|
11027
|
+
var name = _this2.removeProtocolNameFromCoinName(item.name, code, network);
|
|
11028
|
+
var ticker = "" + code + (code === network ? "" : network);
|
|
11029
|
+
var defaultDecimalPlacesForCoinNotSupportedOOB = DEFAULT_CRYPTO_DECIMAL_COUNT;
|
|
11030
|
+
var defaultMinConfirmationsForCoinNotSupportedOOB = 1;
|
|
11031
|
+
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);
|
|
11032
|
+
}
|
|
11033
|
+
if (coin) {
|
|
11034
|
+
var _networkDetails$extra, _networkDetails$valid;
|
|
11035
|
+
return {
|
|
11036
|
+
coin: coin,
|
|
11037
|
+
code: item.code,
|
|
11038
|
+
network: networkDetails.code,
|
|
11039
|
+
hasExtraId: !!networkDetails.has_extra,
|
|
11040
|
+
extraIdName: (_networkDetails$extra = networkDetails.extra_name) != null ? _networkDetails$extra : null,
|
|
11041
|
+
isPopular: item.rating || 0,
|
|
11042
|
+
iconURL: item.icon ? item.icon : FALLBACK_ASSET_ICON_URL,
|
|
11043
|
+
deposit: true,
|
|
11044
|
+
// Letsexchange provide no such details
|
|
11045
|
+
withdrawal: true,
|
|
11046
|
+
// Letsexchange provide no such details
|
|
11047
|
+
validationRegexp: (_networkDetails$valid = networkDetails.validation_address_regex) != null ? _networkDetails$valid : null,
|
|
11048
|
+
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)
|
|
11049
|
+
};
|
|
11050
|
+
}
|
|
11051
|
+
return [];
|
|
11052
|
+
});
|
|
11053
|
+
}).flat();
|
|
11054
|
+
_this2.coinsLastUpdateTimestamp = Date.now();
|
|
11055
|
+
_this2._putPopularCoinsFirst();
|
|
11056
|
+
});
|
|
11057
|
+
}
|
|
11058
|
+
}();
|
|
11059
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
|
11060
|
+
}, function (e) {
|
|
11061
|
+
improveAndRethrow(e, loggerSource);
|
|
11062
|
+
}));
|
|
11063
|
+
} catch (e) {
|
|
11064
|
+
return Promise.reject(e);
|
|
11065
|
+
}
|
|
11066
|
+
};
|
|
11067
|
+
_proto.getSwapInfo = function getSwapInfo(fromCoin, toCoin, amountCoins, fixed, fromCoinToUsdRate, amountIsToReceive) {
|
|
11068
|
+
if (fixed === void 0) {
|
|
11069
|
+
fixed = false;
|
|
11070
|
+
}
|
|
11071
|
+
if (amountIsToReceive === void 0) {
|
|
11072
|
+
amountIsToReceive = false;
|
|
11073
|
+
}
|
|
11074
|
+
try {
|
|
11075
|
+
var _this3 = this;
|
|
11076
|
+
var loggerSource = "getSwapInfo";
|
|
11077
|
+
return Promise.resolve(_catch$1(function () {
|
|
11078
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amountCoins !== "string" || bignumber_js.BigNumber(amountCoins).lt("0") || fixed !== null && typeof fixed !== "boolean" || amountIsToReceive && !fixed) {
|
|
11079
|
+
throw new Error("Wrong input params: " + amountCoins + " " + fromCoin.ticker + " -> " + toCoin.ticker + ", " + (fromCoin instanceof Coin) + ", " + (toCoin instanceof Coin) + ", " + typeof fixed + " " + fixed + ", " + amountIsToReceive);
|
|
11080
|
+
}
|
|
11081
|
+
var fromCoinDetails = _this3._supportedCoins.find(function (i) {
|
|
11082
|
+
var _i$coin;
|
|
11083
|
+
return ((_i$coin = i.coin) == null ? void 0 : _i$coin.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
11084
|
+
});
|
|
11085
|
+
var toCoinDetails = _this3._supportedCoins.find(function (i) {
|
|
11086
|
+
var _i$coin2;
|
|
11087
|
+
return ((_i$coin2 = i.coin) == null ? void 0 : _i$coin2.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
11088
|
+
});
|
|
11089
|
+
if (!fromCoinDetails || !toCoinDetails) {
|
|
11090
|
+
throw new Error("Failed to find coin details for: " + fromCoin.ticker + " -> " + toCoin.ticker);
|
|
11091
|
+
}
|
|
11092
|
+
if (!fromCoinDetails.deposit || !fromCoinDetails.isAvailable || !toCoinDetails.withdrawal || !toCoinDetails.isAvailable) {
|
|
11093
|
+
return {
|
|
11094
|
+
result: false,
|
|
11095
|
+
reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED
|
|
11096
|
+
};
|
|
11097
|
+
}
|
|
11098
|
+
var pathAndQuery = "/v1/info" + (amountIsToReceive ? "-revert" : "?float=" + !fixed);
|
|
11099
|
+
return Promise.resolve(axios__default["default"].post("" + _this3._URL + pathAndQuery, {
|
|
11100
|
+
from: fromCoinDetails.code,
|
|
11101
|
+
to: toCoinDetails.code,
|
|
11102
|
+
network_from: fromCoinDetails.network,
|
|
11103
|
+
network_to: toCoinDetails.network,
|
|
11104
|
+
amount: amountCoins,
|
|
11105
|
+
affiliate_id: LetsExchangeSwapProvider.AFFILIATE_ID
|
|
11106
|
+
})).then(function (response) {
|
|
11107
|
+
Logger.log("Retrieved " + (response == null ? void 0 : response.data), loggerSource);
|
|
11108
|
+
var data = response.data;
|
|
11109
|
+
|
|
11110
|
+
// TODO: [dev] add SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING - request alternative rate. task_id=
|
|
11111
|
+
|
|
11112
|
+
// TODO: [feature, low] implement extra coins to fit min/max if there are frequent errors due to min/max exceeding
|
|
11113
|
+
// let extraCoinsToFitMinMax = "0";
|
|
11114
|
+
// if (typeof fromCoinToUsdRate === "string" && BigNumber(fromCoinToUsdRate).gt("0")) {
|
|
11115
|
+
// const extraUsdToFitMinMax = BigNumber("1"); // We correct the limits as the exact limit can fluctuate and cause failed swap creation
|
|
11116
|
+
// extraCoinsToFitMinMax = AmountUtils.trim(extraUsdToFitMinMax.div(fromCoinToUsdRate), fromCoin.digits);
|
|
11117
|
+
// }
|
|
11118
|
+
var min = null;
|
|
11119
|
+
if (data != null && data.min_amount) {
|
|
11120
|
+
min = AmountUtils.trim(data == null ? void 0 : data.min_amount, amountIsToReceive ? toCoin.digits : fromCoin.digits);
|
|
11121
|
+
}
|
|
11122
|
+
var max = null;
|
|
11123
|
+
if (data != null && data.max_amount) {
|
|
11124
|
+
max = AmountUtils.trim(data == null ? void 0 : data.max_amount, amountIsToReceive ? toCoin.digits : fromCoin.digits);
|
|
11125
|
+
}
|
|
11126
|
+
if (data.success === false && data.error) {
|
|
11127
|
+
// TODO: [dev] waiting for response from letsexchange about their not-documented responses
|
|
11128
|
+
// {
|
|
11129
|
+
// "success": false,
|
|
11130
|
+
// "error": "Internal error"
|
|
11131
|
+
// }
|
|
11132
|
+
throw new Error("Failed to estimate swap letsexchange");
|
|
11133
|
+
}
|
|
11134
|
+
if (bignumber_js.BigNumber(data.rate).eq("0") || bignumber_js.BigNumber(data.amount).eq("0")) {
|
|
11135
|
+
// TODO actualize according to letsexchage clarification - decide, can we count on min/max abcense? task_id=76512110797f4eab8b37f1bb789825cb
|
|
11136
|
+
// amount: "0", rate: "0", rate_id: ""
|
|
11137
|
+
var reason = SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED;
|
|
11138
|
+
if (min && bignumber_js.BigNumber(amountCoins).lt(min)) {
|
|
11139
|
+
reason = SwapProvider.NO_SWAPS_REASONS.TOO_LOW;
|
|
11140
|
+
} else if (max && bignumber_js.BigNumber(amountCoins).gt(max)) {
|
|
11141
|
+
reason = SwapProvider.NO_SWAPS_REASONS.TOO_HIGH;
|
|
11142
|
+
} else if (!amountIsToReceive) {
|
|
11143
|
+
// If we are not requesting receiving amount (it cannot be floating-rate)
|
|
11144
|
+
// todo [feature, moderate] request alternative rate. task_id=31884db5392f49738c20a86115c90e1f
|
|
11145
|
+
// const alternativeRate = 1;
|
|
11146
|
+
// const alternativeRateAvailable = alternativeRate;
|
|
11147
|
+
// if (alternativeRateAvailable) {
|
|
11148
|
+
// reason = fixed
|
|
11149
|
+
// ? SwapProvider.NO_SWAPS_REASONS.NO_FIXED_BUT_HAVE_FLOATING
|
|
11150
|
+
// : SwapProvider.NO_SWAPS_REASONS.NO_FLOATING_BUT_HAVE_FIXED;
|
|
11151
|
+
// }
|
|
11152
|
+
}
|
|
11153
|
+
return {
|
|
11154
|
+
result: false,
|
|
11155
|
+
reason: reason,
|
|
11156
|
+
smallestMin: min,
|
|
11157
|
+
greatestMax: max
|
|
11158
|
+
};
|
|
11159
|
+
}
|
|
11160
|
+
var rate = amountIsToReceive ? bignumber_js.BigNumber(amountCoins).div(data.amount) : bignumber_js.BigNumber(data.amount).div(amountCoins);
|
|
11161
|
+
return {
|
|
11162
|
+
result: true,
|
|
11163
|
+
min: min,
|
|
11164
|
+
max: max,
|
|
11165
|
+
smallestMin: min,
|
|
11166
|
+
greatestMax: max,
|
|
11167
|
+
rate: AmountUtils.trim(rate, _this3._maxRateDigits),
|
|
11168
|
+
durationMinutesRange: null,
|
|
11169
|
+
fixed: fixed,
|
|
11170
|
+
rawSwapData: data,
|
|
11171
|
+
isRefundAddressRequired: false
|
|
11172
|
+
};
|
|
11173
|
+
});
|
|
11174
|
+
}, function (e) {
|
|
11175
|
+
var _e$response;
|
|
11176
|
+
if ((e == null || (_e$response = e.response) == null ? void 0 : _e$response.status) === 429) {
|
|
11177
|
+
return {
|
|
11178
|
+
result: false,
|
|
11179
|
+
reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED
|
|
11180
|
+
};
|
|
11181
|
+
}
|
|
11182
|
+
Logger.log("Internal error when getting swap options " + safeStringify(e), loggerSource);
|
|
11183
|
+
improveAndRethrow(e, loggerSource);
|
|
11184
|
+
}));
|
|
11185
|
+
} catch (e) {
|
|
11186
|
+
return Promise.reject(e);
|
|
11187
|
+
}
|
|
11188
|
+
};
|
|
11189
|
+
_proto.createSwap = function createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData, clientIpAddress, fixed, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
11190
|
+
if (toCurrencyExtraId === void 0) {
|
|
11191
|
+
toCurrencyExtraId = "";
|
|
11192
|
+
}
|
|
11193
|
+
if (refundExtraId === void 0) {
|
|
11194
|
+
refundExtraId = "";
|
|
11195
|
+
}
|
|
11196
|
+
if (amountIsToReceive === void 0) {
|
|
11197
|
+
amountIsToReceive = false;
|
|
10759
11198
|
}
|
|
10760
11199
|
try {
|
|
10761
|
-
var
|
|
11200
|
+
var _this4 = this;
|
|
11201
|
+
var loggerSource = "createSwap";
|
|
10762
11202
|
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
|
-
|
|
11203
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || typeof refundAddress !== "string" || typeof clientIpAddress != "string" || typeof fixed != "boolean") {
|
|
11204
|
+
throw new Error("Invalid input: " + fromCoin + " " + toCoin + " " + amount + " " + toAddress + " " + refundAddress + " " + fixed);
|
|
11205
|
+
}
|
|
11206
|
+
if (typeof rawSwapData !== "object" || fixed && !rawSwapData.rate_id) {
|
|
11207
|
+
throw new Error("Invalid raw swap data: " + safeStringify(rawSwapData));
|
|
11208
|
+
}
|
|
11209
|
+
var fromCoinDetails = _this4._supportedCoins.find(function (i) {
|
|
11210
|
+
var _i$coin3;
|
|
11211
|
+
return ((_i$coin3 = i.coin) == null ? void 0 : _i$coin3.ticker) === (fromCoin == null ? void 0 : fromCoin.ticker);
|
|
11212
|
+
});
|
|
11213
|
+
var toCoinDetails = _this4._supportedCoins.find(function (i) {
|
|
11214
|
+
var _i$coin4;
|
|
11215
|
+
return ((_i$coin4 = i.coin) == null ? void 0 : _i$coin4.ticker) === (toCoin == null ? void 0 : toCoin.ticker);
|
|
11216
|
+
});
|
|
11217
|
+
if (!fromCoinDetails || !toCoinDetails) {
|
|
11218
|
+
throw new Error("Failed to find coin details for: " + fromCoin.ticker + " -> " + toCoin.ticker);
|
|
11219
|
+
}
|
|
11220
|
+
var requestBody = {
|
|
11221
|
+
coin_from: fromCoinDetails.code,
|
|
11222
|
+
network_from: fromCoinDetails.network,
|
|
11223
|
+
coin_to: toCoinDetails.code,
|
|
11224
|
+
network_to: toCoinDetails.network,
|
|
11225
|
+
withdrawal: toAddress,
|
|
11226
|
+
withdrawal_extra_id: toCurrencyExtraId,
|
|
11227
|
+
"return": refundAddress,
|
|
11228
|
+
return_extra_id: refundExtraId,
|
|
11229
|
+
affiliate_id: LetsExchangeSwapProvider.AFFILIATE_ID
|
|
11230
|
+
};
|
|
11231
|
+
if (amountIsToReceive) {
|
|
11232
|
+
requestBody.withdrawal_amount = amount;
|
|
11233
|
+
} else {
|
|
11234
|
+
requestBody.deposit_amount = amount;
|
|
11235
|
+
}
|
|
11236
|
+
if (fixed) {
|
|
11237
|
+
requestBody.rate_id = rawSwapData.rate_id;
|
|
11238
|
+
}
|
|
11239
|
+
return Promise.resolve(axios__default["default"].post(_this4._URL + "/v1/transaction" + (amountIsToReceive ? "-revert" : "?float=" + !fixed), requestBody)).then(function (response) {
|
|
11240
|
+
var result = response.data;
|
|
11241
|
+
Logger.log("Creation result " + safeStringify(result), loggerSource);
|
|
11242
|
+
if (result != null && result.transaction_id) {
|
|
11243
|
+
var _result$rate, _result$deposit_extra;
|
|
11244
|
+
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);
|
|
11245
|
+
return {
|
|
10796
11246
|
result: true,
|
|
10797
|
-
|
|
10798
|
-
|
|
10799
|
-
|
|
10800
|
-
|
|
10801
|
-
|
|
11247
|
+
swapId: result.transaction_id,
|
|
11248
|
+
fromCoin: fromCoin,
|
|
11249
|
+
fromAmount: AmountUtils.trim(result.deposit_amount, fromCoin.digits),
|
|
11250
|
+
fromAddress: result.deposit,
|
|
11251
|
+
toCoin: toCoin,
|
|
11252
|
+
toAmount: AmountUtils.trim(result.withdrawal_amount, toCoin.digits),
|
|
11253
|
+
toAddress: result.withdrawal,
|
|
11254
|
+
fromCurrencyExtraId: (_result$deposit_extra = result.deposit_extra_id) != null ? _result$deposit_extra : "",
|
|
11255
|
+
rate: AmountUtils.trim(rate, _this4._maxRateDigits),
|
|
11256
|
+
fixed: !result.is_float
|
|
10802
11257
|
};
|
|
10803
|
-
|
|
10804
|
-
|
|
10805
|
-
|
|
11258
|
+
}
|
|
11259
|
+
var errorMessage = "Swap creation succeeded but the response is wrong: " + safeStringify(response);
|
|
11260
|
+
Logger.log(errorMessage, loggerSource);
|
|
11261
|
+
throw new Error(errorMessage);
|
|
10806
11262
|
});
|
|
10807
11263
|
}, function (e) {
|
|
10808
|
-
|
|
11264
|
+
var _e$response2, _e$response3;
|
|
11265
|
+
Logger.logError(e, loggerSource, "Failed to create swap. Error is: " + safeStringify(e));
|
|
11266
|
+
var composeFailResult = function composeFailResult(reason) {
|
|
11267
|
+
return {
|
|
11268
|
+
result: false,
|
|
11269
|
+
reason: reason
|
|
11270
|
+
};
|
|
11271
|
+
};
|
|
11272
|
+
var status = e == null || (_e$response2 = e.response) == null ? void 0 : _e$response2.status;
|
|
11273
|
+
var data = e == null || (_e$response3 = e.response) == null ? void 0 : _e$response3.data;
|
|
11274
|
+
if (status === 429) {
|
|
11275
|
+
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
11276
|
+
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
11277
|
+
}
|
|
11278
|
+
// TODO: [feature, low] add custom errors handling - waiting for response from letsexchange. task_id=00d2e435f6df4fb99af912135bd9ee27
|
|
11279
|
+
// 422 - missing params
|
|
11280
|
+
Logger.log("Internal error for swap: " + safeStringify(e), loggerSource);
|
|
10809
11281
|
improveAndRethrow(e, loggerSource);
|
|
10810
11282
|
}));
|
|
10811
11283
|
} catch (e) {
|
|
10812
11284
|
return Promise.reject(e);
|
|
10813
11285
|
}
|
|
10814
11286
|
};
|
|
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) {
|
|
11287
|
+
_proto.getExistingSwapsDetailsAndStatus = function getExistingSwapsDetailsAndStatus(swapIds) {
|
|
10844
11288
|
try {
|
|
11289
|
+
var _this5 = this;
|
|
11290
|
+
var loggerSource = "getExistingSwapsDetailsAndStatus";
|
|
10845
11291
|
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);
|
|
11292
|
+
if (swapIds.find(function (id) {
|
|
11293
|
+
return typeof id !== "string";
|
|
11294
|
+
})) {
|
|
11295
|
+
throw new Error("Swap id is not string: " + safeStringify(swapIds));
|
|
11296
|
+
}
|
|
11297
|
+
return Promise.resolve(axios__default["default"].get(_this5._URL + "/v1/transactions-list?ids[]=" + swapIds.join("&ids[]="))).then(function (response) {
|
|
11298
|
+
Logger.log("All swaps RAW: " + safeStringify(response.data), loggerSource);
|
|
11299
|
+
var swaps = response.data.map(function (swap, index) {
|
|
11300
|
+
var _this5$_supportedCoin, _this5$_supportedCoin2, _swap$deposit_extra_i, _swap$withdrawal_extr, _swap$return_extra_id;
|
|
11301
|
+
var fromCoin = (_this5$_supportedCoin = _this5._supportedCoins.find(function (i) {
|
|
11302
|
+
return i.code === swap.coin_from && i.network === swap.coin_from_network;
|
|
11303
|
+
})) == null ? void 0 : _this5$_supportedCoin.coin;
|
|
11304
|
+
var toCoin = (_this5$_supportedCoin2 = _this5._supportedCoins.find(function (i) {
|
|
11305
|
+
return i.code === swap.coin_to && i.network === swap.coin_to_network;
|
|
11306
|
+
})) == null ? void 0 : _this5$_supportedCoin2.coin;
|
|
11307
|
+
if (!fromCoin || !toCoin) {
|
|
11308
|
+
return []; // We skip swaps with not supported coins for now
|
|
10870
11309
|
}
|
|
10871
|
-
|
|
10872
|
-
|
|
10873
|
-
|
|
10874
|
-
|
|
11310
|
+
var toUtcTimestamp = function toUtcTimestamp(timeStr) {
|
|
11311
|
+
return Date.parse(timeStr.match(/.+[Zz]$/) ? timeStr : timeStr + "Z");
|
|
11312
|
+
};
|
|
11313
|
+
var expiresAt = swap.expired_at ? swap.expired_at * 1000 : null;
|
|
11314
|
+
var createdAt = swap.created_at ? toUtcTimestamp("" + swap.created_at) : null;
|
|
11315
|
+
var isExpiredByTime = expiresAt && expiresAt < Date.now();
|
|
11316
|
+
var status = _this5._mapLetsExchangeStatusToRabbitStatus(swap.status, isExpiredByTime);
|
|
11317
|
+
var toDigits = status === SwapProvider.SWAP_STATUSES.REFUNDED ? fromCoin.digits : toCoin.digits;
|
|
11318
|
+
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);
|
|
11319
|
+
}).flat();
|
|
11320
|
+
Logger.log("Swap details result " + safeStringify(swaps), loggerSource);
|
|
11321
|
+
return {
|
|
11322
|
+
result: true,
|
|
11323
|
+
swaps: swaps
|
|
11324
|
+
};
|
|
10875
11325
|
});
|
|
10876
11326
|
}, function (e) {
|
|
10877
|
-
|
|
11327
|
+
var _e$response4, _e$response5;
|
|
11328
|
+
Logger.logError(e, loggerSource, "Failed to get swap details. Error is: " + safeStringify(e));
|
|
11329
|
+
var composeFailResult = function composeFailResult(reason) {
|
|
11330
|
+
return {
|
|
11331
|
+
result: false,
|
|
11332
|
+
reason: reason
|
|
11333
|
+
};
|
|
11334
|
+
};
|
|
11335
|
+
var status = e == null || (_e$response4 = e.response) == null ? void 0 : _e$response4.status;
|
|
11336
|
+
var data = e == null || (_e$response5 = e.response) == null ? void 0 : _e$response5.data;
|
|
11337
|
+
if (status === 429) {
|
|
11338
|
+
Logger.log("Returning fail - RPS limit exceeded " + data, loggerSource);
|
|
11339
|
+
return composeFailResult(SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED);
|
|
11340
|
+
}
|
|
11341
|
+
improveAndRethrow(e, loggerSource);
|
|
10878
11342
|
}));
|
|
10879
11343
|
} catch (e) {
|
|
10880
11344
|
return Promise.reject(e);
|
|
10881
11345
|
}
|
|
11346
|
+
} // TODO: [dev] Serg, please check this during the review to make sure I did no mistakes in statuses mapping.
|
|
11347
|
+
// I will remove these comments after the review. https://api.letsexchange.io/doc
|
|
11348
|
+
// wait The exchange has just been created and it’s waiting for coins to reach the deposit wallet
|
|
11349
|
+
// confirmation The transaction appears in mempool and now it is waiting for necessary network confirmations to start.
|
|
11350
|
+
// confirmed The user’s payment is confirmed, the exchange process is about to start.
|
|
11351
|
+
// exchanging The exchange process is running.
|
|
11352
|
+
// sending Funds are being sent to the recipient`s address.
|
|
11353
|
+
// sending_confirmation The outgoing transaction is waiting for network confirmations.
|
|
11354
|
+
// success The exchange is completed and the funds are successfully sent to the recipient’s address.
|
|
11355
|
+
// aml_check_failed The deposit was marked as risky by AML check service.
|
|
11356
|
+
// overdue The deposit receiving time for this transaction has expired.
|
|
11357
|
+
// error The transaction has failed. In most cases, the amount that was sent differs from the amount that was specified when creating the transaction.
|
|
11358
|
+
// refund The exchange failed and the coins were refunded to the user's wallet.
|
|
11359
|
+
;
|
|
11360
|
+
_proto._mapLetsExchangeStatusToRabbitStatus = function _mapLetsExchangeStatusToRabbitStatus(status, isExpiredByTime) {
|
|
11361
|
+
switch (status) {
|
|
11362
|
+
case "wait":
|
|
11363
|
+
if (isExpiredByTime) {
|
|
11364
|
+
return SwapProvider.SWAP_STATUSES.EXPIRED;
|
|
11365
|
+
}
|
|
11366
|
+
return SwapProvider.SWAP_STATUSES.WAITING_FOR_PAYMENT;
|
|
11367
|
+
case "confirmation":
|
|
11368
|
+
return SwapProvider.SWAP_STATUSES.CONFIRMING;
|
|
11369
|
+
case "confirmed":
|
|
11370
|
+
return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;
|
|
11371
|
+
case "exchanging":
|
|
11372
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11373
|
+
case "sending":
|
|
11374
|
+
return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;
|
|
11375
|
+
case "sending_confirmation":
|
|
11376
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11377
|
+
case "success":
|
|
11378
|
+
return SwapProvider.SWAP_STATUSES.COMPLETED;
|
|
11379
|
+
case "refund":
|
|
11380
|
+
return SwapProvider.SWAP_STATUSES.REFUNDED;
|
|
11381
|
+
case "overdue":
|
|
11382
|
+
return SwapProvider.SWAP_STATUSES.EXPIRED;
|
|
11383
|
+
case "aml_check_failed":
|
|
11384
|
+
return SwapProvider.SWAP_STATUSES.EXCHANGING;
|
|
11385
|
+
case "error":
|
|
11386
|
+
return SwapProvider.SWAP_STATUSES.FAILED;
|
|
11387
|
+
default:
|
|
11388
|
+
throw new Error("Unknown LetsExchange status: " + status);
|
|
11389
|
+
}
|
|
10882
11390
|
};
|
|
10883
|
-
return
|
|
10884
|
-
}();
|
|
11391
|
+
return LetsExchangeSwapProvider;
|
|
11392
|
+
}(SwapProvider);
|
|
11393
|
+
LetsExchangeSwapProvider.AFFILIATE_ID = "0zbj9hf7xg7jgdgv";
|
|
10885
11394
|
|
|
10886
11395
|
function _catch(body, recover) {
|
|
10887
11396
|
try {
|
|
@@ -10899,13 +11408,16 @@
|
|
|
10899
11408
|
this._swapProvider = new SwapspaceSwapProvider(apiKeysProxyUrl, cache, function () {
|
|
10900
11409
|
return null;
|
|
10901
11410
|
}, false);
|
|
11411
|
+
this._fixedSwapProvider = new LetsExchangeSwapProvider(apiKeysProxyUrl, cache, function () {
|
|
11412
|
+
return null;
|
|
11413
|
+
}, false);
|
|
10902
11414
|
}
|
|
10903
11415
|
var _proto = PublicSwapService.prototype;
|
|
10904
11416
|
_proto.initialize = function initialize() {
|
|
10905
11417
|
try {
|
|
10906
11418
|
var _this = this;
|
|
10907
11419
|
var _temp = _catch(function () {
|
|
10908
|
-
return Promise.resolve(_this._swapProvider.initialize()).then(function () {});
|
|
11420
|
+
return Promise.resolve(Promise.all([_this._swapProvider.initialize(), _this._fixedSwapProvider.initialize()])).then(function () {});
|
|
10909
11421
|
}, function (e) {
|
|
10910
11422
|
Logger.logError(e, "PublicSwapService.initialize");
|
|
10911
11423
|
});
|
|
@@ -10913,39 +11425,61 @@
|
|
|
10913
11425
|
} catch (e) {
|
|
10914
11426
|
return Promise.reject(e);
|
|
10915
11427
|
}
|
|
10916
|
-
}
|
|
11428
|
+
}
|
|
11429
|
+
/**
|
|
11430
|
+
* Gets all currencies across all partners. Useful for sitemap or supported currencies count/list.
|
|
11431
|
+
*
|
|
11432
|
+
* @return {Promise<{result: boolean, coins: Coin[]}|{result: boolean, reason: string}>}
|
|
11433
|
+
*/
|
|
11434
|
+
;
|
|
10917
11435
|
_proto.getAllSupportedCurrenciesListForPublicSwap = function getAllSupportedCurrenciesListForPublicSwap() {
|
|
10918
11436
|
try {
|
|
10919
11437
|
var _this2 = this;
|
|
10920
11438
|
var loggerSource = "getAllSupportedCurrenciesListForPublicSwap";
|
|
10921
11439
|
return Promise.resolve(_catch(function () {
|
|
10922
|
-
return Promise.resolve(_this2.
|
|
10923
|
-
|
|
10924
|
-
|
|
10925
|
-
|
|
11440
|
+
return Promise.resolve(_this2.initialize()).then(function () {
|
|
11441
|
+
return Promise.resolve(Promise.all([_this2._fixedSwapProvider.getAllSupportedCurrencies(), _this2._swapProvider.getAllSupportedCurrencies()])).then(function (result) {
|
|
11442
|
+
var _result$0$coins, _result$1$coins, _result$coins;
|
|
11443
|
+
var allCoins = [].concat((_result$0$coins = result[0].coins) != null ? _result$0$coins : []);
|
|
11444
|
+
((_result$1$coins = result[1].coins) != null ? _result$1$coins : []).forEach(function (c) {
|
|
11445
|
+
if (!allCoins.find(function (existingCoin) {
|
|
11446
|
+
return existingCoin.ticker === c.ticker;
|
|
11447
|
+
})) {
|
|
11448
|
+
allCoins.push(c);
|
|
11449
|
+
}
|
|
11450
|
+
});
|
|
11451
|
+
if (result[0].reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED || result[1].reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
11452
|
+
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
11453
|
+
// TODO: [dev] improve this during the whitebit integration. task_id=20e7e41211b540d081bf98f392a34b2c
|
|
11454
|
+
// return {
|
|
11455
|
+
// result: false,
|
|
11456
|
+
// reason: PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED,
|
|
11457
|
+
// };
|
|
11458
|
+
} else if (result[0].reason || result[1].reason) {
|
|
11459
|
+
console.log("Failed to get all supported coins", result[0].reason, result[1].reason);
|
|
11460
|
+
}
|
|
11461
|
+
Logger.log("Retrieved " + (result == null || (_result$coins = result.coins) == null ? void 0 : _result$coins.length) + " supported currencies for swap", loggerSource);
|
|
10926
11462
|
return {
|
|
10927
|
-
result:
|
|
10928
|
-
|
|
11463
|
+
result: true,
|
|
11464
|
+
coins: allCoins
|
|
10929
11465
|
};
|
|
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
|
-
};
|
|
11466
|
+
});
|
|
10936
11467
|
});
|
|
10937
11468
|
}, function (e) {
|
|
10938
|
-
improveAndRethrow(e, "
|
|
11469
|
+
improveAndRethrow(e, "getAllSupportedCurrenciesListForPublicSwap");
|
|
10939
11470
|
}));
|
|
10940
11471
|
} catch (e) {
|
|
10941
11472
|
return Promise.reject(e);
|
|
10942
11473
|
}
|
|
10943
11474
|
};
|
|
10944
|
-
_proto.getDepositCurrenciesListForPublicSwap = function getDepositCurrenciesListForPublicSwap() {
|
|
11475
|
+
_proto.getDepositCurrenciesListForPublicSwap = function getDepositCurrenciesListForPublicSwap(fixed) {
|
|
11476
|
+
if (fixed === void 0) {
|
|
11477
|
+
fixed = false;
|
|
11478
|
+
}
|
|
10945
11479
|
try {
|
|
10946
11480
|
var _this3 = this;
|
|
10947
11481
|
return Promise.resolve(_catch(function () {
|
|
10948
|
-
return Promise.resolve(_this3._getCurrenciesListForPublicSwap(false));
|
|
11482
|
+
return Promise.resolve(_this3._getCurrenciesListForPublicSwap(false, fixed));
|
|
10949
11483
|
}, function (e) {
|
|
10950
11484
|
improveAndRethrow(e, "getDepositCurrenciesListForPublicSwap");
|
|
10951
11485
|
}));
|
|
@@ -10953,11 +11487,14 @@
|
|
|
10953
11487
|
return Promise.reject(e);
|
|
10954
11488
|
}
|
|
10955
11489
|
};
|
|
10956
|
-
_proto.getWithdrawCurrenciesListForPublicSwap = function getWithdrawCurrenciesListForPublicSwap() {
|
|
11490
|
+
_proto.getWithdrawCurrenciesListForPublicSwap = function getWithdrawCurrenciesListForPublicSwap(fixed) {
|
|
11491
|
+
if (fixed === void 0) {
|
|
11492
|
+
fixed = false;
|
|
11493
|
+
}
|
|
10957
11494
|
try {
|
|
10958
11495
|
var _this4 = this;
|
|
10959
11496
|
return Promise.resolve(_catch(function () {
|
|
10960
|
-
return Promise.resolve(_this4._getCurrenciesListForPublicSwap(true));
|
|
11497
|
+
return Promise.resolve(_this4._getCurrenciesListForPublicSwap(true, fixed));
|
|
10961
11498
|
}, function (e) {
|
|
10962
11499
|
improveAndRethrow(e, "getWithdrawCurrenciesListForPublicSwap");
|
|
10963
11500
|
}));
|
|
@@ -10965,15 +11502,19 @@
|
|
|
10965
11502
|
return Promise.reject(e);
|
|
10966
11503
|
}
|
|
10967
11504
|
};
|
|
10968
|
-
_proto._getCurrenciesListForPublicSwap = function _getCurrenciesListForPublicSwap(withdraw) {
|
|
11505
|
+
_proto._getCurrenciesListForPublicSwap = function _getCurrenciesListForPublicSwap(withdraw, fixed) {
|
|
10969
11506
|
if (withdraw === void 0) {
|
|
10970
11507
|
withdraw = false;
|
|
10971
11508
|
}
|
|
11509
|
+
if (fixed === void 0) {
|
|
11510
|
+
fixed = false;
|
|
11511
|
+
}
|
|
10972
11512
|
try {
|
|
10973
11513
|
var _this5 = this;
|
|
10974
11514
|
var loggerSource = "getCurrenciesListForPublicSwap";
|
|
10975
11515
|
return Promise.resolve(_catch(function () {
|
|
10976
|
-
|
|
11516
|
+
var provider = fixed ? _this5._fixedSwapProvider : _this5._swapProvider;
|
|
11517
|
+
return Promise.resolve(withdraw ? provider.getWithdrawalCurrencies() : provider.getDepositCurrencies()).then(function (result) {
|
|
10977
11518
|
var _result$coins2;
|
|
10978
11519
|
if (result.reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
10979
11520
|
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
@@ -10998,6 +11539,9 @@
|
|
|
10998
11539
|
/**
|
|
10999
11540
|
* Retrieves initial data for swapping two coins.
|
|
11000
11541
|
*
|
|
11542
|
+
* Always FLOATING rate, FIXED is not supported - if you want to change it the default rate - all
|
|
11543
|
+
* the swaps code logic should be verified to align with this change.
|
|
11544
|
+
*
|
|
11001
11545
|
* @param fromCoin {Coin}
|
|
11002
11546
|
* @param toCoin {Coin}
|
|
11003
11547
|
* @return {Promise<{
|
|
@@ -11050,6 +11594,8 @@
|
|
|
11050
11594
|
* @param fromAmountCoins {string}
|
|
11051
11595
|
* @param [fixed=false] {boolean|null} null means fixed or float doesn't matter
|
|
11052
11596
|
* @param [withoutFiat=false] {boolean} pass true if you don't need the fiat equivalent - this will diminish requests count
|
|
11597
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount.
|
|
11598
|
+
* False means the amount is the sending amount.
|
|
11053
11599
|
* @return {Promise<{
|
|
11054
11600
|
* result: false,
|
|
11055
11601
|
* reason: string,
|
|
@@ -11064,21 +11610,24 @@
|
|
|
11064
11610
|
* }>}
|
|
11065
11611
|
*/
|
|
11066
11612
|
;
|
|
11067
|
-
_proto.getPublicSwapDetails = function getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins, fixed, withoutFiat) {
|
|
11613
|
+
_proto.getPublicSwapDetails = function getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins, fixed, withoutFiat, amountIsToReceive) {
|
|
11068
11614
|
if (fixed === void 0) {
|
|
11069
11615
|
fixed = false;
|
|
11070
11616
|
}
|
|
11071
11617
|
if (withoutFiat === void 0) {
|
|
11072
11618
|
withoutFiat = false;
|
|
11073
11619
|
}
|
|
11620
|
+
if (amountIsToReceive === void 0) {
|
|
11621
|
+
amountIsToReceive = false;
|
|
11622
|
+
}
|
|
11074
11623
|
try {
|
|
11075
11624
|
var _this7 = this;
|
|
11076
11625
|
var loggerSource = "getPublicSwapDetails";
|
|
11077
11626
|
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) {
|
|
11627
|
+
function _temp2(_getCoinToUSDTRate) {
|
|
11628
|
+
var _getCoinToUSDTRate$ra;
|
|
11629
|
+
var coinUsdtRate = withoutFiat ? _getCoinToUSDTRate : (_getCoinToUSDTRate$ra = _getCoinToUSDTRate == null ? void 0 : _getCoinToUSDTRate.rate) != null ? _getCoinToUSDTRate$ra : null;
|
|
11630
|
+
return Promise.resolve((fixed ? _this7._fixedSwapProvider : _this7._swapProvider).getSwapInfo(fromCoin, toCoin, fromAmountCoins, fixed, coinUsdtRate, amountIsToReceive)).then(function (details) {
|
|
11082
11631
|
var _result$swapCreationI, _result$swapCreationI2;
|
|
11083
11632
|
// eslint-disable-next-line no-console
|
|
11084
11633
|
console.log("getSwapInfo result: ", details);
|
|
@@ -11139,7 +11688,10 @@
|
|
|
11139
11688
|
return result;
|
|
11140
11689
|
});
|
|
11141
11690
|
}
|
|
11142
|
-
|
|
11691
|
+
if (amountIsToReceive && !fixed) {
|
|
11692
|
+
throw new Error("Estimating allowed only for fixed rate.");
|
|
11693
|
+
}
|
|
11694
|
+
return withoutFiat ? _temp2(null) : Promise.resolve((fixed ? _this7._fixedSwapProvider : _this7._swapProvider).getCoinToUSDTRate(fromCoin)).then(_temp2);
|
|
11143
11695
|
}, function (e) {
|
|
11144
11696
|
improveAndRethrow(e, loggerSource);
|
|
11145
11697
|
}));
|
|
@@ -11152,13 +11704,15 @@
|
|
|
11152
11704
|
*
|
|
11153
11705
|
* @param fromCoin {Coin}
|
|
11154
11706
|
* @param toCoin {Coin}
|
|
11155
|
-
* @param
|
|
11707
|
+
* @param amount {string}
|
|
11156
11708
|
* @param swapCreationInfo {BaseSwapCreationInfo}
|
|
11157
11709
|
* @param toAddress {string}
|
|
11158
11710
|
* @param refundAddress {string}
|
|
11159
11711
|
* @param clientIp {string}
|
|
11160
11712
|
* @param [toCurrencyExtraId] {string}
|
|
11161
11713
|
* @param [refundExtraId] {string}
|
|
11714
|
+
* @param [amountIsToReceive=false] {boolean} whether the given amount is receiving amount.
|
|
11715
|
+
* False means the amount is the sending amount.
|
|
11162
11716
|
* @return {Promise<{
|
|
11163
11717
|
* result: true,
|
|
11164
11718
|
* fiatCurrencyCode: string,
|
|
@@ -11181,20 +11735,23 @@
|
|
|
11181
11735
|
* }>}
|
|
11182
11736
|
*/
|
|
11183
11737
|
;
|
|
11184
|
-
_proto.createPublicSwap = function createPublicSwap(fromCoin, toCoin,
|
|
11738
|
+
_proto.createPublicSwap = function createPublicSwap(fromCoin, toCoin, amount, swapCreationInfo, toAddress, refundAddress, clientIp, toCurrencyExtraId, refundExtraId, amountIsToReceive) {
|
|
11739
|
+
if (amountIsToReceive === void 0) {
|
|
11740
|
+
amountIsToReceive = false;
|
|
11741
|
+
}
|
|
11185
11742
|
try {
|
|
11186
11743
|
var _this8 = this;
|
|
11187
11744
|
var loggerSource = "createPublicSwap";
|
|
11188
11745
|
return Promise.resolve(_catch(function () {
|
|
11189
11746
|
var _swapCreationInfo$fro, _swapCreationInfo$toC;
|
|
11190
|
-
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof
|
|
11191
|
-
throw new Error("Wrong input: " + fromCoin.ticker + " " + toCoin.ticker + " " +
|
|
11747
|
+
if (!(fromCoin instanceof Coin) || !(toCoin instanceof Coin) || typeof amount !== "string" || typeof toAddress !== "string" || swapCreationInfo.isRefundAddressRequired && (typeof refundAddress !== "string" || refundAddress.length === 0) || !(swapCreationInfo instanceof BaseSwapCreationInfo)) {
|
|
11748
|
+
throw new Error("Wrong input: " + fromCoin.ticker + " " + toCoin.ticker + " " + amount + " " + swapCreationInfo);
|
|
11192
11749
|
}
|
|
11193
|
-
Logger.log("Start: " +
|
|
11750
|
+
Logger.log("Start: " + amount + " " + fromCoin.ticker + " -> " + toCoin.ticker + ". Details: " + safeStringify(_extends({}, swapCreationInfo, {
|
|
11194
11751
|
fromCoin: swapCreationInfo == null || (_swapCreationInfo$fro = swapCreationInfo.fromCoin) == null ? void 0 : _swapCreationInfo$fro.ticker,
|
|
11195
11752
|
toCoin: swapCreationInfo == null || (_swapCreationInfo$toC = swapCreationInfo.toCoin) == null ? void 0 : _swapCreationInfo$toC.ticker
|
|
11196
11753
|
})), loggerSource);
|
|
11197
|
-
return Promise.resolve(_this8._swapProvider.createSwap(fromCoin, toCoin,
|
|
11754
|
+
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
11755
|
var _exit;
|
|
11199
11756
|
function _temp6(_result8) {
|
|
11200
11757
|
if (_exit) return _result8;
|
|
@@ -11224,7 +11781,7 @@
|
|
|
11224
11781
|
if (result.result && result != null && result.swapId) {
|
|
11225
11782
|
var _temp4 = function _temp4() {
|
|
11226
11783
|
var _result$fromCurrencyE;
|
|
11227
|
-
// TODO: feature, cirtical] add GA event. task_id=
|
|
11784
|
+
// TODO: feature, cirtical] add GA event. task_id=091004f1b6b748b29ddece6a130df904
|
|
11228
11785
|
EventBusInstance__default["default"].dispatch(PublicSwapService.PUBLIC_SWAP_CREATED_EVENT, null, fromCoin.ticker, toCoin.ticker, _fromAmountFiat);
|
|
11229
11786
|
var toReturn = {
|
|
11230
11787
|
result: true,
|
|
@@ -11304,7 +11861,7 @@
|
|
|
11304
11861
|
var _this9 = this;
|
|
11305
11862
|
var loggerSource = "getPublicExistingSwapDetailsAndStatus";
|
|
11306
11863
|
return Promise.resolve(_catch(function () {
|
|
11307
|
-
return Promise.resolve(SwapUtils.getExistingSwapsDetailsWithFiatAmounts(_this9._swapProvider, swapIds)).then(function (result) {
|
|
11864
|
+
return Promise.resolve(SwapUtils.getExistingSwapsDetailsWithFiatAmounts([_this9._swapProvider, _this9._fixedSwapProvider], swapIds)).then(function (result) {
|
|
11308
11865
|
if (!(result != null && result.result)) {
|
|
11309
11866
|
if (result.reason === SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED) {
|
|
11310
11867
|
SwapUtils.safeHandleRequestsLimitExceeding();
|
|
@@ -11399,18 +11956,24 @@
|
|
|
11399
11956
|
|
|
11400
11957
|
/**
|
|
11401
11958
|
* @param coinOrTicker {Coin|string}
|
|
11959
|
+
* @param [isFixed=true] {boolean} rate type
|
|
11402
11960
|
* @return {string} icon URL (ready to use)
|
|
11403
11961
|
*/;
|
|
11404
|
-
_proto.getAssetIconUrl = function getAssetIconUrl(coinOrTicker) {
|
|
11405
|
-
|
|
11962
|
+
_proto.getAssetIconUrl = function getAssetIconUrl(coinOrTicker, isFixed) {
|
|
11963
|
+
// TODO: [feature, high] improve this logic - currently hacked to show better icons from fixed provider. task_id=3b6b8c2a9df04a86aaff2e070424b64f
|
|
11964
|
+
return this._fixedSwapProvider.getIconUrl(coinOrTicker);
|
|
11406
11965
|
}
|
|
11407
11966
|
|
|
11408
11967
|
/**
|
|
11409
11968
|
* @param ticker {string}
|
|
11969
|
+
* @param [fixed=false] {boolean}
|
|
11410
11970
|
* @return {Coin|null}
|
|
11411
11971
|
*/;
|
|
11412
|
-
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker) {
|
|
11413
|
-
|
|
11972
|
+
_proto.getCoinByTickerIfPresent = function getCoinByTickerIfPresent(ticker, fixed) {
|
|
11973
|
+
if (fixed === void 0) {
|
|
11974
|
+
fixed = false;
|
|
11975
|
+
}
|
|
11976
|
+
return !fixed ? this._swapProvider.getCoinByTickerIfPresent(ticker) : this._fixedSwapProvider.getCoinByTickerIfPresent(ticker);
|
|
11414
11977
|
}
|
|
11415
11978
|
|
|
11416
11979
|
/**
|
|
@@ -11423,8 +11986,18 @@
|
|
|
11423
11986
|
var _this11 = this;
|
|
11424
11987
|
return Promise.resolve(_catch(function () {
|
|
11425
11988
|
return Promise.resolve(_this11._swapProvider.getCoinToUSDTRate(asset)).then(function (result) {
|
|
11426
|
-
|
|
11427
|
-
|
|
11989
|
+
function _temp10() {
|
|
11990
|
+
var _result$rate, _result13;
|
|
11991
|
+
return (_result$rate = (_result13 = result) == null ? void 0 : _result13.rate) != null ? _result$rate : null;
|
|
11992
|
+
}
|
|
11993
|
+
var _temp9 = function (_result14) {
|
|
11994
|
+
if (((_result14 = result) == null ? void 0 : _result14.rate) == null) {
|
|
11995
|
+
return Promise.resolve(_this11._fixedSwapProvider.getCoinToUSDTRate(asset)).then(function (_this11$_fixedSwapPro) {
|
|
11996
|
+
result = _this11$_fixedSwapPro;
|
|
11997
|
+
});
|
|
11998
|
+
}
|
|
11999
|
+
}();
|
|
12000
|
+
return _temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9);
|
|
11428
12001
|
});
|
|
11429
12002
|
}, function (e) {
|
|
11430
12003
|
improveAndRethrow(e, "getAssetToUsdtRate");
|
|
@@ -11436,12 +12009,16 @@
|
|
|
11436
12009
|
/**
|
|
11437
12010
|
* @param asset {Coin}
|
|
11438
12011
|
* @param address {string}
|
|
12012
|
+
* @param [fixed=false] {boolean}
|
|
11439
12013
|
* @return {boolean}
|
|
11440
12014
|
*/
|
|
11441
12015
|
;
|
|
11442
|
-
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address) {
|
|
12016
|
+
_proto.isAddressValidForAsset = function isAddressValidForAsset(asset, address, fixed) {
|
|
12017
|
+
if (fixed === void 0) {
|
|
12018
|
+
fixed = false;
|
|
12019
|
+
}
|
|
11443
12020
|
try {
|
|
11444
|
-
return this._swapProvider.isAddressValidForAsset(asset, address);
|
|
12021
|
+
return !fixed ? this._swapProvider.isAddressValidForAsset(asset, address) : this._fixedSwapProvider.isAddressValidForAsset(asset, address);
|
|
11445
12022
|
} catch (e) {
|
|
11446
12023
|
improveAndRethrow(e, "isAddressValidForAsset");
|
|
11447
12024
|
}
|
|
@@ -11451,20 +12028,24 @@
|
|
|
11451
12028
|
* Retrieves token by contract address.
|
|
11452
12029
|
*
|
|
11453
12030
|
* @param addressString {string}
|
|
12031
|
+
* @param [fixed=false] {boolean}
|
|
11454
12032
|
* @return {Promise<Coin|null>}
|
|
11455
12033
|
*/;
|
|
11456
|
-
_proto.getTokenByContractAddress = function getTokenByContractAddress(addressString) {
|
|
12034
|
+
_proto.getTokenByContractAddress = function getTokenByContractAddress(addressString, fixed) {
|
|
12035
|
+
if (fixed === void 0) {
|
|
12036
|
+
fixed = false;
|
|
12037
|
+
}
|
|
11457
12038
|
try {
|
|
11458
12039
|
var _exit3;
|
|
11459
12040
|
var _this12 = this;
|
|
11460
|
-
var
|
|
12041
|
+
var _temp12 = _catch(function () {
|
|
11461
12042
|
if (!addressString) {
|
|
11462
|
-
var
|
|
12043
|
+
var _temp11 = null;
|
|
11463
12044
|
_exit3 = 1;
|
|
11464
|
-
return
|
|
12045
|
+
return _temp11;
|
|
11465
12046
|
}
|
|
11466
12047
|
var addressLowerCase = addressString.toLowerCase();
|
|
11467
|
-
return Promise.resolve(_this12._swapProvider.getAllSupportedCurrencies()).then(function (allCoins) {
|
|
12048
|
+
return Promise.resolve((fixed ? _this12._fixedSwapProvider : _this12._swapProvider).getAllSupportedCurrencies()).then(function (allCoins) {
|
|
11468
12049
|
if (allCoins.result) {
|
|
11469
12050
|
var _allCoins$coins$find = allCoins.coins.find(function (coin) {
|
|
11470
12051
|
return coin.tokenAddress && coin.tokenAddress.toLowerCase() === addressLowerCase;
|
|
@@ -11476,21 +12057,25 @@
|
|
|
11476
12057
|
}, function (e) {
|
|
11477
12058
|
Logger.logError(e, "getTokenByContractAddress");
|
|
11478
12059
|
});
|
|
11479
|
-
return Promise.resolve(
|
|
11480
|
-
return _exit3 ?
|
|
11481
|
-
}) : _exit3 ?
|
|
12060
|
+
return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(function (_result15) {
|
|
12061
|
+
return _exit3 ? _result15 : null;
|
|
12062
|
+
}) : _exit3 ? _temp12 : null);
|
|
11482
12063
|
} catch (e) {
|
|
11483
12064
|
return Promise.reject(e);
|
|
11484
12065
|
}
|
|
11485
12066
|
}
|
|
11486
12067
|
/**
|
|
11487
12068
|
* @param asset {Coin}
|
|
12069
|
+
* @param [fixed=false] {boolean}
|
|
11488
12070
|
* @return {string|null}
|
|
11489
12071
|
*/
|
|
11490
12072
|
;
|
|
11491
|
-
_proto.getExtraIdNameIfPresentForAsset = function getExtraIdNameIfPresentForAsset(asset) {
|
|
12073
|
+
_proto.getExtraIdNameIfPresentForAsset = function getExtraIdNameIfPresentForAsset(asset, fixed) {
|
|
12074
|
+
if (fixed === void 0) {
|
|
12075
|
+
fixed = false;
|
|
12076
|
+
}
|
|
11492
12077
|
try {
|
|
11493
|
-
return this._swapProvider.getExtraIdNameIfPresent(asset);
|
|
12078
|
+
return (fixed ? this._fixedSwapProvider : this._swapProvider).getExtraIdNameIfPresent(asset);
|
|
11494
12079
|
} catch (e) {
|
|
11495
12080
|
improveAndRethrow(e, "getExtraIdNameIfPresentForAsset");
|
|
11496
12081
|
}
|