@rabbitio/ui-kit 1.0.0-beta.124 → 1.0.0-beta.125
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 +181 -181
- package/coverage/coverage-final.json +7 -7
- package/coverage/index.html +14 -14
- package/coverage/rabbit-ui-kit/index.html +1 -1
- package/coverage/rabbit-ui-kit/index.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/googleAnalyticsAdapter.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/metrikaAdapter.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/mixpanelAdapter.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/adapters/axiosAdapter.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/adapters/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/adapters/qrUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/external-apis/apiGroups.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/external-apis/emailAPI.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/external-apis/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/external-apis/ipAddressProviders.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/globalConstants.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/models/blockchain.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/models/coin.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/models/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/models/protocol.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/services/fiatCurrenciesService.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/services/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/utils/amountUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/utils/cache.js.html +6 -6
- package/coverage/rabbit-ui-kit/src/common-apis/utils/emailUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/utils/errorUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/utils/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/logger.js.html +5 -5
- package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/logsStorage.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/common-apis/utils/postponeExecution.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/utils/rabbitTicker.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/common-apis/utils/safeStringify.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/index.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/robust-api-caller/cacheAndConcurrentRequestsResolver.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/robust-api-caller/cachedRobustExternalApiCallerService.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/robust-api-caller/cancelProcessing.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/robust-api-caller/concurrentCalculationsMetadataHolder.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/robust-api-caller/externalApiProvider.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/robust-api-caller/externalServicesStatsCollector.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/robust-api-caller/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/robust-api-caller/robustExternalAPICallerService.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/changeHeroSwapProvider.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/changeNowSwapProvider.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/exolixSwapProvider.js.html +4 -4
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/goexmeSwapProvider.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/index.html +18 -18
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/letsExchangeSwapProvider.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/retriableErrorsUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +36 -36
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +128 -128
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/utils.js.html +14 -14
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/baseSwapCreationInfo.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwap.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwapWithFiatData.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/partner.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/swapProviderCoinInfo.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/services/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/services/publicSwapService.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/utils/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/utils/swapUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowTosca.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowWhite.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/darkRectangle.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/determinedError.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/failedValidationIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/infoIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/messageIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/noticeQuestionIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/successfulValidationIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/supportDialogImage.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/walletIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetIcon/AssetIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetIcon/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/AssetSelection.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/InformationMessage.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Input/Input.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Input/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/LoadingDots/LoadingDots.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/LoadingDots/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/NoticeIcon.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/QrCode/QrCode.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/QrCode/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/SupportChat.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/Textarea.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/TitleBox.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/Tooltip.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/Validation.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Button/Button.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Button/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Close/Close.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Close/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/LinkButton.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/CoinPicker/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/ColoredNotice/ColoredNotice.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/ColoredNotice/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LineWithIconLink/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LogoCarousel/LogoCarousel.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LogoCarousel/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/SearchableCoinsList.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/Dialog.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/WaitlistSubscription.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/hooks/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useCallHandlingErrors.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useIsHydrated.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useReferredState.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/utils/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/utils/inputValueProviders.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/utils/searchCoins.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/utils/textUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/utils/uiUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/ui-kit/utils/urlQueryUtils.js.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/BackgroundTitle.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/LinesOfText.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/LoadingDots.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/QrCode.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/RateSelector.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/Validation.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/buttons/Button.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/buttons/Close.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/buttons/LinkButton.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/buttons/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/atoms/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/molecules/AmountInput.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/molecules/CoinPicker.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/molecules/ColoredNotice.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/molecules/LineWithIconLink.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/molecules/LogoCarousel.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/molecules/TitledLineWithIconLink.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/molecules/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/Dialog.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/WaitlistSubscription.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/stubs/coins.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/stubs/exampleContent.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/stubs/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/templates/index.html +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +1 -1
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +1 -1
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/docker-compose.loadtest.yml +64 -0
- package/package.json +1 -1
- package/src/swaps-lib/external-apis/exolixSwapProvider.js +1 -1
- package/src/swaps-lib/test/external-apis/goexmeSwapProvider/integration/PairSupport.int.test.js +4 -1
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getSwapInfo.test.js +42 -0
- package/tools/rate-limits-tester/Dockerfile.loadtest +18 -0
- package/tools/rate-limits-tester/docker-compose.loadtest.yml +65 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-dedicated-changehero-2026-03-10T14-57-24-907Z.json +572 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-dedicated-changenow-2026-03-10T15-30-53-033Z.json +572 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-dedicated-exolix-2026-03-10T13-49-07-452Z.json +518 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-dedicated-letsexchange-2026-03-10T14-26-27-034Z.json +572 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-report-2026-03-05T23-05-54-995Z.json +140 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-report-2026-03-10T10-59-26-699Z.json +83 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-report-2026-03-10T11-19-31-962Z.json +121 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-report-2026-03-10T12-35-39-529Z.json +21 -0
- package/tools/rate-limits-tester/reports/fixed-pair-rps-report-2026-03-10T13-00-46-343Z.json +115 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
name: rabbit-loadtest
|
|
2
|
+
|
|
3
|
+
x-loadtest-base: &loadtest-base
|
|
4
|
+
image: node:20
|
|
5
|
+
restart: "no"
|
|
6
|
+
working_dir: /work
|
|
7
|
+
volumes:
|
|
8
|
+
- /root/ui-kit:/work
|
|
9
|
+
env_file:
|
|
10
|
+
- /root/ui-kit/.env.loadtest
|
|
11
|
+
command: >
|
|
12
|
+
bash -lc '
|
|
13
|
+
set -euo pipefail
|
|
14
|
+
RUN_ID=$${RUN_ID:-run-unknown}
|
|
15
|
+
mkdir -p /work/tools/rate-limits-tester/logs /work/tools/rate-limits-tester/reports
|
|
16
|
+
LOG_FILE=/work/tools/rate-limits-tester/logs/$${PARTNER_ID}-$${RUN_ID}.log
|
|
17
|
+
touch "$${LOG_FILE}"
|
|
18
|
+
exec >>"$${LOG_FILE}" 2>&1
|
|
19
|
+
|
|
20
|
+
echo "[INFO] container_started partner=$${PARTNER_ID} run_id=$${RUN_ID}"
|
|
21
|
+
|
|
22
|
+
SCRIPT_PATH=/work/src/swaps-lib/external-apis/load-test/loadTestForProviders.js
|
|
23
|
+
if [ ! -f "$${SCRIPT_PATH}" ]; then
|
|
24
|
+
SCRIPT_PATH="$$(find /work -type f -name loadTestForProviders.js | head -n 1 || true)"
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
if [ -z "$${SCRIPT_PATH}" ] || [ ! -f "$${SCRIPT_PATH}" ]; then
|
|
28
|
+
echo "[ERROR] loadTestForProviders.js_not_found_under_/work"
|
|
29
|
+
ls -la /work
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
echo "[INFO] script_path=$${SCRIPT_PATH}"
|
|
33
|
+
|
|
34
|
+
TMP_BUNDLE=/tmp/loadTestForProviders-$${PARTNER_ID}.cjs
|
|
35
|
+
npx -y esbuild "$${SCRIPT_PATH}" --bundle --platform=node --format=cjs --target=node20 --outfile="$${TMP_BUNDLE}"
|
|
36
|
+
echo "[INFO] bundle_ready path=$${TMP_BUNDLE}"
|
|
37
|
+
|
|
38
|
+
node "$${TMP_BUNDLE}"
|
|
39
|
+
'
|
|
40
|
+
|
|
41
|
+
services:
|
|
42
|
+
loadtest-exolix:
|
|
43
|
+
<<: *loadtest-base
|
|
44
|
+
container_name: lt-exolix
|
|
45
|
+
environment:
|
|
46
|
+
PARTNER_ID: exolix
|
|
47
|
+
|
|
48
|
+
loadtest-changenow:
|
|
49
|
+
<<: *loadtest-base
|
|
50
|
+
container_name: lt-changenow
|
|
51
|
+
environment:
|
|
52
|
+
PARTNER_ID: changenow
|
|
53
|
+
|
|
54
|
+
loadtest-changehero:
|
|
55
|
+
<<: *loadtest-base
|
|
56
|
+
container_name: lt-changehero
|
|
57
|
+
environment:
|
|
58
|
+
PARTNER_ID: changehero
|
|
59
|
+
|
|
60
|
+
loadtest-letsexchange:
|
|
61
|
+
<<: *loadtest-base
|
|
62
|
+
container_name: lt-letsexchange
|
|
63
|
+
environment:
|
|
64
|
+
PARTNER_ID: letsexchange
|
package/package.json
CHANGED
|
@@ -286,7 +286,7 @@ export class ExolixSwapProvider extends SwapProvider {
|
|
|
286
286
|
);
|
|
287
287
|
if (returnObject) return returnObject;
|
|
288
288
|
|
|
289
|
-
if (min && max
|
|
289
|
+
if (min && max && BigNumber(max).lt(min)) {
|
|
290
290
|
Logger.log(
|
|
291
291
|
`Exolix swap info failed, max limit is below the min one. ${safeStringify(response)}`,
|
|
292
292
|
loggerSource
|
package/src/swaps-lib/test/external-apis/goexmeSwapProvider/integration/PairSupport.int.test.js
CHANGED
|
@@ -29,6 +29,7 @@ const ALLOWED_RABBIT_TICKERS = [
|
|
|
29
29
|
];
|
|
30
30
|
|
|
31
31
|
const FORBIDDEN_TICKERS = ["WELL", "VOXEL", "WOO"];
|
|
32
|
+
const BANNED_LIVE_PAIRS = new Set(["BTC->USDTTRC20", "ETH->BTC", "GMTSOL->BTC", "XMR->BTC"]);
|
|
32
33
|
|
|
33
34
|
function checkPairSupported(response, providerInstance) {
|
|
34
35
|
const { TOO_LOW, TOO_HIGH } = providerInstance.constructor.NO_SWAPS_REASONS;
|
|
@@ -46,8 +47,10 @@ maybeDescribe("external-apis/goexmeSwapProvider integration", function () {
|
|
|
46
47
|
|
|
47
48
|
ALLOWED_RABBIT_TICKERS.forEach(fromTicker => {
|
|
48
49
|
const toTicker = fromTicker === "BTC" ? "USDTTRC20" : "BTC";
|
|
50
|
+
const pairKey = `${fromTicker}->${toTicker}`;
|
|
51
|
+
const pairSupportCheck = BANNED_LIVE_PAIRS.has(pairKey) ? it.skip : it;
|
|
49
52
|
|
|
50
|
-
|
|
53
|
+
pairSupportCheck(`Should support swaps for ${fromTicker}→${toTicker}`, async function () {
|
|
51
54
|
const fromCoin = provider.getCoinByTickerIfPresent(fromTicker);
|
|
52
55
|
const toCoin = provider.getCoinByTickerIfPresent(toTicker);
|
|
53
56
|
|
|
@@ -1739,5 +1739,47 @@ describe("swapspaceSwapProvider", function () {
|
|
|
1739
1739
|
result.result.should.be.true();
|
|
1740
1740
|
result.rawSwapData.partner.should.be.equal("partner2");
|
|
1741
1741
|
});
|
|
1742
|
+
|
|
1743
|
+
it("Should pass only allowed swapspace partners in partner query parameter", async () => {
|
|
1744
|
+
swapspaceSwapProvider._supportedCoins = [
|
|
1745
|
+
{ coin: BTC, code: "btc", network: "btc", deposit: true, isAvailable: true },
|
|
1746
|
+
{ coin: ETH, code: "eth", network: "eth", withdrawal: true, isAvailable: true },
|
|
1747
|
+
];
|
|
1748
|
+
swapspaceSwapProvider._partners = [
|
|
1749
|
+
{ path: "easybit" },
|
|
1750
|
+
{ path: "fixedfloat" },
|
|
1751
|
+
{ path: "shapebtc" },
|
|
1752
|
+
{ path: "quickex" },
|
|
1753
|
+
];
|
|
1754
|
+
axiosGetStub.returns(Promise.resolve({ data: [] }));
|
|
1755
|
+
|
|
1756
|
+
await swapspaceSwapProvider.getSwapInfo(
|
|
1757
|
+
BTC,
|
|
1758
|
+
ETH,
|
|
1759
|
+
"1",
|
|
1760
|
+
false,
|
|
1761
|
+
null,
|
|
1762
|
+
false,
|
|
1763
|
+
["quickex", "swapuz", "godex"],
|
|
1764
|
+
["easybit", "fixedfloat", "shapebtc", "quickex", "bitcoinvn"]
|
|
1765
|
+
);
|
|
1766
|
+
|
|
1767
|
+
new URL(axiosGetStub.firstCall.args[0], "https://example.org").searchParams
|
|
1768
|
+
.get("partner")
|
|
1769
|
+
.should.be.equal("easybit,fixedfloat,shapebtc");
|
|
1770
|
+
});
|
|
1771
|
+
|
|
1772
|
+
it("Should not call rates endpoint when no allowed partners remain after restrictions", async () => {
|
|
1773
|
+
swapspaceSwapProvider._supportedCoins = [
|
|
1774
|
+
{ coin: BTC, code: "btc", network: "btc", deposit: true, isAvailable: true },
|
|
1775
|
+
{ coin: ETH, code: "eth", network: "eth", withdrawal: true, isAvailable: true },
|
|
1776
|
+
];
|
|
1777
|
+
swapspaceSwapProvider._partners = [{ path: "partner1" }];
|
|
1778
|
+
axiosGetStub.returns(Promise.resolve({ data: [] }));
|
|
1779
|
+
|
|
1780
|
+
await swapspaceSwapProvider.getSwapInfo(BTC, ETH, "1", false, null, false, ["partner1"], ["partner1"]);
|
|
1781
|
+
|
|
1782
|
+
axiosGetStub.callCount.should.be.equal(0);
|
|
1783
|
+
});
|
|
1742
1784
|
});
|
|
1743
1785
|
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
FROM node:20-slim AS build
|
|
2
|
+
|
|
3
|
+
WORKDIR /src
|
|
4
|
+
COPY package.json package-lock.json ./
|
|
5
|
+
RUN npm ci
|
|
6
|
+
COPY . .
|
|
7
|
+
RUN npx -y esbuild ./src/swaps-lib/external-apis/load-test/loadTestForProviders.js \
|
|
8
|
+
--bundle \
|
|
9
|
+
--platform=node \
|
|
10
|
+
--format=cjs \
|
|
11
|
+
--target=node20 \
|
|
12
|
+
--outfile=/opt/loadtest/loadTestForProviders.cjs
|
|
13
|
+
|
|
14
|
+
FROM node:20-slim
|
|
15
|
+
|
|
16
|
+
WORKDIR /work
|
|
17
|
+
COPY --from=build /opt/loadtest/loadTestForProviders.cjs /opt/loadtest/loadTestForProviders.cjs
|
|
18
|
+
CMD ["node", "/opt/loadtest/loadTestForProviders.cjs"]
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
name: rabbit-loadtest
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
loadtest-exolix:
|
|
5
|
+
container_name: lt-exolix
|
|
6
|
+
build:
|
|
7
|
+
context: ../..
|
|
8
|
+
dockerfile: tools/rate-limits-tester/Dockerfile.loadtest
|
|
9
|
+
image: rabbit-loadtest:latest
|
|
10
|
+
restart: "no"
|
|
11
|
+
working_dir: /work
|
|
12
|
+
volumes:
|
|
13
|
+
- ../..:/work
|
|
14
|
+
env_file:
|
|
15
|
+
- ../../.env.loadtest
|
|
16
|
+
environment:
|
|
17
|
+
PARTNER_ID: exolix
|
|
18
|
+
command: >
|
|
19
|
+
bash -lc "mkdir -p /work/tools/rate-limits-tester/logs /work/tools/rate-limits-tester/reports
|
|
20
|
+
&& node /opt/loadtest/loadTestForProviders.cjs >> /work/tools/rate-limits-tester/logs/exolix-$$RUN_ID.log 2>&1"
|
|
21
|
+
|
|
22
|
+
loadtest-changenow:
|
|
23
|
+
container_name: lt-changenow
|
|
24
|
+
image: rabbit-loadtest:latest
|
|
25
|
+
restart: "no"
|
|
26
|
+
working_dir: /work
|
|
27
|
+
volumes:
|
|
28
|
+
- ../..:/work
|
|
29
|
+
env_file:
|
|
30
|
+
- ../../.env.loadtest
|
|
31
|
+
environment:
|
|
32
|
+
PARTNER_ID: changenow
|
|
33
|
+
command: >
|
|
34
|
+
bash -lc "mkdir -p /work/tools/rate-limits-tester/logs /work/tools/rate-limits-tester/reports
|
|
35
|
+
&& node /opt/loadtest/loadTestForProviders.cjs >> /work/tools/rate-limits-tester/logs/changenow-$$RUN_ID.log 2>&1"
|
|
36
|
+
|
|
37
|
+
loadtest-changehero:
|
|
38
|
+
container_name: lt-changehero
|
|
39
|
+
image: rabbit-loadtest:latest
|
|
40
|
+
restart: "no"
|
|
41
|
+
working_dir: /work
|
|
42
|
+
volumes:
|
|
43
|
+
- ../..:/work
|
|
44
|
+
env_file:
|
|
45
|
+
- ../../.env.loadtest
|
|
46
|
+
environment:
|
|
47
|
+
PARTNER_ID: changehero
|
|
48
|
+
command: >
|
|
49
|
+
bash -lc "mkdir -p /work/tools/rate-limits-tester/logs /work/tools/rate-limits-tester/reports
|
|
50
|
+
&& node /opt/loadtest/loadTestForProviders.cjs >> /work/tools/rate-limits-tester/logs/changehero-$$RUN_ID.log 2>&1"
|
|
51
|
+
|
|
52
|
+
loadtest-letsexchange:
|
|
53
|
+
container_name: lt-letsexchange
|
|
54
|
+
image: rabbit-loadtest:latest
|
|
55
|
+
restart: "no"
|
|
56
|
+
working_dir: /work
|
|
57
|
+
volumes:
|
|
58
|
+
- ../..:/work
|
|
59
|
+
env_file:
|
|
60
|
+
- ../../.env.loadtest
|
|
61
|
+
environment:
|
|
62
|
+
PARTNER_ID: letsexchange
|
|
63
|
+
command: >
|
|
64
|
+
bash -lc "mkdir -p /work/tools/rate-limits-tester/logs /work/tools/rate-limits-tester/reports
|
|
65
|
+
&& node /opt/loadtest/loadTestForProviders.cjs >> /work/tools/rate-limits-tester/logs/letsexchange-$$RUN_ID.log 2>&1"
|