@rabbitio/ui-kit 1.0.0-beta.2 → 1.0.0-beta.21

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/README.md +23 -16
  3. package/dist/index.cjs +4404 -1
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.css +8757 -1
  6. package/dist/index.css.map +1 -1
  7. package/dist/index.modern.js +3692 -1
  8. package/dist/index.modern.js.map +1 -1
  9. package/dist/index.module.js +4375 -1
  10. package/dist/index.module.js.map +1 -1
  11. package/dist/index.umd.js +4406 -1
  12. package/dist/index.umd.js.map +1 -1
  13. package/index.js +1 -1
  14. package/package.json +17 -24
  15. package/src/common/amountUtils.js +423 -0
  16. package/src/common/errorUtils.js +27 -0
  17. package/src/common/fiatCurrenciesService.js +161 -0
  18. package/src/common/models/blockchain.js +10 -0
  19. package/src/common/models/coin.js +157 -0
  20. package/src/common/models/protocol.js +5 -0
  21. package/src/common/utils/cache.js +268 -0
  22. package/src/common/utils/emailAPI.js +18 -0
  23. package/src/common/utils/logging/logger.js +48 -0
  24. package/src/common/utils/logging/logsStorage.js +61 -0
  25. package/src/common/utils/safeStringify.js +50 -0
  26. package/src/components/atoms/AssetIcon/AssetIcon.jsx +55 -0
  27. package/src/components/atoms/AssetIcon/asset-icon.module.scss +42 -0
  28. package/{stories → src/components}/atoms/LoadingDots/LoadingDots.module.scss +1 -1
  29. package/src/components/atoms/SupportChat/SupportChat.jsx +40 -0
  30. package/{stories → src/components}/atoms/buttons/Button/Button.jsx +6 -6
  31. package/{stories → src/components}/atoms/buttons/Button/Button.module.scss +6 -1
  32. package/src/components/hooks/useCallHandlingErrors.js +26 -0
  33. package/src/components/hooks/useReferredState.js +24 -0
  34. package/src/index.js +33 -0
  35. package/src/swaps-lib/external-apis/swapProvider.js +169 -0
  36. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +812 -0
  37. package/src/swaps-lib/models/baseSwapCreationInfo.js +40 -0
  38. package/src/swaps-lib/models/existingSwap.js +58 -0
  39. package/src/swaps-lib/models/existingSwapWithFiatData.js +115 -0
  40. package/src/swaps-lib/services/publicSwapService.js +602 -0
  41. package/src/swaps-lib/utils/swapUtils.js +209 -0
  42. package/stories/index.js +0 -2
  43. /package/{stories → src/components}/atoms/LoadingDots/LoadingDots.jsx +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../stories/atoms/LoadingDots/LoadingDots.jsx","../stories/atoms/buttons/Button/Button.jsx"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styles from \"./LoadingDots.module.scss\";\n\n/**\n * LoadingDots Component - Displays a loading animation with dots.\n * This component allows customization of size, color, margins, and alignment.\n *\n * @component\n * @param {Object} props - The props of the component.\n * @param {('big'|'small'|'extra-small')} [props.size='small'] - Sets the size of the loading dots.\n * @param {boolean} [props.isColored=false] - If true, the dots will be colored, otherwise they will be monochrome.\n * @param {boolean} [props.noMargins=false] - If true, removes the margins around the loading dots.\n * @param {(boolean|'left'|'right')} [props.align=false] - Aligns the loading dots to the left or right if specified, otherwise centered.\n * @returns {React.ReactElement} A React component that renders the loading dots animation.\n */\nexport const LoadingDots = ({\n size = \"small\",\n isColored = false,\n noMargins = false,\n align = false,\n}) => {\n return (\n <div\n className={`${styles[\"loading-dots\"]} ${styles[size]} ${\n noMargins ? ` ${styles[\"no-margins\"]}` : \"\"\n } ${align ? styles[\"align-\" + align] : \"\"}`}\n >\n <div\n className={`${styles.dot} ${\n isColored ? ` ${styles.colored}` : \"\"\n }`}\n />\n <div\n className={`${styles.dot} ${\n isColored ? ` ${styles.colored}` : \"\"\n }`}\n />\n <div\n className={`${styles.dot} ${\n isColored ? ` ${styles.colored}` : \"\"\n }`}\n />\n </div>\n );\n};\n\nLoadingDots.propTypes = {\n size: PropTypes.oneOf([\"big\", \"small\", \"extra-small\"]),\n isColored: PropTypes.bool,\n noMargins: PropTypes.bool,\n align: PropTypes.oneOfType([\n PropTypes.oneOf([\"left\", \"right\"]),\n PropTypes.bool,\n ]),\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\n\nimport styles from \"./Button.module.scss\";\n\nimport { LoadingDots } from \"../../LoadingDots/LoadingDots.jsx\";\n\n/**\n * Button component - A versatile and customizable button for React applications.\n * It supports various sizes, styles, and functionalities, including loaders, icons, and handling of click events.\n * This component can also be used as a link when integrated with `react-router-dom`.\n *\n * @component\n * @param {Object} props\n * @param {('xl'|'lg'|'md'|'sm')} [props.size='xl'] - Sets the size of the button.\n * @param {string} [props.className=''] - An optional custom CSS class name for additional styling.\n * @param {string} [props.mode='transparent'] - Determines the button's visual style.\n * @param {Function} [props.onClick=(resetButtonLoader, event) => {}] - Callback function that triggers on button click.\n * @param {boolean} [props.loader=true] - If true, displays a loader animation on the button when clicked.\n * @param {boolean} [props.loading=false] - Controls the actual display of the loader if `loader` is true.\n * @param {string} [props.to=''] - The path for the button to act as a link.\n * @param {boolean} [props.fullWidthOnMobiles=false] - Expands the button to full width on mobiles.\n * @param {boolean} [props.fullWidthOnTablets=false] - Expands the button to full width on tablets.\n * @param {string} [props.icon=''] - The path to the button's icon.\n * @param {React.ReactNode} [props.content=''] - The text or content displayed inside the button.\n * @param {boolean} [props.isDisabled=false] - Disables the button if true.\n * @param {Function} [props.setClickTrigger=(p) => {}] - Function to programmatically trigger a button click.\n * @param {boolean} [props.isFormSubmittingButton=false] - If true, adds a hidden `<input type=\"submit\">`.\n * @param {boolean} [props.bigIcon=false] - If true, displays a larger icon on the button.\n * @param {boolean} [props.checkmarkOnClick=false] - Shows a checkmark instead of content for a few seconds after click.\n * @param {boolean} [props.propagatePrimaryButtonClick=true] - Propagates the primary button click event if true.\n * @param {boolean} [props.smallPaddingOnSmallMobiles=false] - Enables smaller paddings for extra-small screen sizes.\n * @param {Function} [props.handleError=(func) => func()] - Function to handle errors during button click events.\n * @returns {React.ReactElement}\n */\nexport const Button = ({\n size = \"xl\",\n className = \"\",\n mode = \"transparent\",\n onClick = (resetButtonLoader, event) => {},\n loader = true,\n loading = false,\n to = \"\",\n fullWidthOnMobiles = false,\n fullWidthOnTablets = false,\n icon = \"\",\n content = \"\",\n isDisabled = false,\n setClickTrigger = (p) => {},\n isFormSubmittingButton = false,\n bigIcon = false,\n checkmarkOnClick = false,\n propagatePrimaryButtonClick = true,\n smallPaddingOnSmallMobiles = false,\n handleError = (func, event) => func(event),\n}) => {\n const [isLoading, setIsLoading] = useState(loading);\n const [isCheckShown, setIsCheckShown] = useState(false);\n const [event, setEvent] = useState(null);\n\n const buttonRef = useRef();\n\n useEffect(() => {\n setClickTrigger(() => buttonRef.current.click());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [buttonRef]);\n\n useEffect(() => {\n if (isLoading) {\n onClick(() => setIsLoading(false), event);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoading]);\n\n const buttonClick = (e) => {\n if (isLoading || isDisabled) {\n return false;\n }\n\n if (checkmarkOnClick && !isCheckShown && !loader && !loading) {\n setIsCheckShown(true);\n setTimeout(() => {\n setIsCheckShown(false);\n }, 2000);\n }\n\n e.persist(); // Persisting React's SyntheticEvent to be able to use it in any async context\n !propagatePrimaryButtonClick && e.stopPropagation();\n if (loader) {\n setIsLoading(true);\n setEvent(e);\n } else {\n onClick(() => setIsLoading(false), e);\n }\n };\n\n const classNames =\n `${styles.button} ${styles[size]} ${styles[className]} ${styles[mode]}` +\n (fullWidthOnMobiles ? ` ${styles[\"full-width-on-mobiles\"]}` : \"\") +\n (fullWidthOnTablets ? ` ${styles[\"full-width-on-tablets\"]}` : \"\") +\n (isDisabled ? ` ${styles.disable}` : \"\") +\n (smallPaddingOnSmallMobiles\n ? ` ${styles[\"small-padding-on-small-mobiles\"]}`\n : \"\");\n\n return (\n <>\n {isFormSubmittingButton ? <input type=\"submit\" hidden /> : null}\n {to ? (\n <Link\n className={classNames}\n onClick={(e) => handleError(buttonClick, e)}\n to={to}\n innerRef={buttonRef}\n >\n {icon ? (\n <div\n className={\n styles[\"button-with-icon\"] +\n (bigIcon ? ` ${styles[\"big-icon\"]}` : \"\")\n }\n >\n <img src={icon} alt=\"button icon\" />\n <span className={styles[\"button-with-icon-text\"]}>\n {content}\n </span>\n </div>\n ) : (\n content\n )}\n </Link>\n ) : (\n <div\n className={classNames}\n onClick={(e) => handleError(buttonClick, e)}\n ref={buttonRef}\n >\n <div\n className={`${styles[\"button-primary-dots-wrapper\"]} ${\n isLoading && loader ? styles.show : \"\"\n }`}\n >\n {loader && isLoading ? (\n <LoadingDots isColored={mode === \"white\"} />\n ) : null}\n </div>\n <div\n className={`${styles[\"button-success-icon\"]} ${\n styles[mode]\n } ${isCheckShown ? styles[\"show\"] : \"\"}`}\n ></div>\n {icon ? (\n <div\n className={`${styles[\"button-with-icon\"]} ${\n (isLoading && loader) ||\n (checkmarkOnClick && isCheckShown)\n ? styles[\"hide\"]\n : \"\"\n } ${bigIcon ? styles[\"big-icon\"] : \"\"}`}\n >\n <img src={icon} alt=\"button icon\" />\n <span className={styles[\"button-with-icon-text\"]}>\n {content}\n </span>\n </div>\n ) : (\n <span\n className={`${styles[\"button-text\"]} ${\n (isLoading && loader) ||\n (checkmarkOnClick && isCheckShown)\n ? styles[\"hide\"]\n : \"\"\n }`}\n >\n {content}\n </span>\n )}\n </div>\n )}\n </>\n );\n};\n\nButton.propTypes = {\n size: PropTypes.oneOf([\"xl\", \"lg\", \"md\", \"sm\"]),\n className: PropTypes.string,\n mode: PropTypes.oneOf([\n \"transparent\",\n \"white\",\n \"primary\",\n \"primary-bordered\",\n \"primary-transparent\",\n \"transparent-bordered\",\n \"transparent-without-shadow\",\n ]),\n onClick: PropTypes.func,\n loader: PropTypes.bool,\n loading: PropTypes.bool,\n to: PropTypes.string,\n fullWidthOnMobiles: PropTypes.bool,\n fullWidthOnTablets: PropTypes.bool,\n icon: PropTypes.string,\n content: PropTypes.node,\n isDisabled: PropTypes.bool,\n setClickTrigger: PropTypes.func,\n isFormSubmittingButton: PropTypes.bool,\n bigIcon: PropTypes.bool,\n checkmarkOnClick: PropTypes.bool,\n propagatePrimaryButtonClick: PropTypes.bool,\n smallPaddingOnSmallMobiles: PropTypes.bool,\n handleError: PropTypes.func,\n};\n\nButton.defaultProps = {\n size: \"xl\",\n className: \"\",\n mode: \"transparent\",\n onClick: (resetButtonLoader, event) => {},\n loader: true,\n loading: false,\n to: \"\",\n fullWidthOnMobiles: false,\n fullWidthOnTablets: false,\n icon: \"\",\n content: \"\",\n isDisabled: false,\n setClickTrigger: (p) => {},\n isFormSubmittingButton: false,\n bigIcon: false,\n checkmarkOnClick: false,\n propagatePrimaryButtonClick: true,\n smallPaddingOnSmallMobiles: false,\n handleError: (func) => func(),\n};\n"],"names":["b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","type","A","process","env","NODE_ENV","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","object","$$typeofType","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","exports","AsyncMode","isAsyncMode","console","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","module","require$$0","require$$1","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","objectAssign","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","join","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","val","TypeError","toObject","s","arguments","length","key","call","has","Function","bind","printWarning","ReactPropTypesSecret","loggedTypeFailures","text","message","error","Error","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","name","ex","stack","checkPropTypes$1","resetWarningCache","emptyFunctionThatReturnsNull","emptyFunction","emptyFunctionWithReset","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","number","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","props","propName","propFullName","PropTypeError","propValue","Array","isArray","getPropType","element","elementType","ReactIs","instanceOf","expectedClass","constructor","node","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","JSON","stringify","value","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","push","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","this","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","step","entries","next","done","entry","RegExp","isSymbol","Date","PropTypes","shim","getShim","require$$2","LoadingDots","_ref","_ref$size","size","_ref$isColored","isColored","_ref$noMargins","noMargins","_ref$align","align","className","styles","dot","colored","propTypes","Button","_ref$className","_ref$mode","mode","_ref$onClick","onClick","resetButtonLoader","event","_ref$loader","loader","_ref$loading","loading","_ref$to","_ref$fullWidthOnMobil","fullWidthOnMobiles","_ref$fullWidthOnTable","fullWidthOnTablets","_ref$icon","icon","_ref$content","content","_ref$isDisabled","isDisabled","_ref$setClickTrigger","setClickTrigger","_ref$isFormSubmitting","isFormSubmittingButton","_ref$bigIcon","bigIcon","_ref$checkmarkOnClick","checkmarkOnClick","_ref$propagatePrimary","propagatePrimaryButtonClick","_ref$smallPaddingOnSm","smallPaddingOnSmallMobiles","_ref$handleError","handleError","_useState","useState","isLoading","setIsLoading","_useState2","isCheckShown","setIsCheckShown","_useState3","setEvent","buttonRef","useRef","useEffect","current","click","buttonClick","setTimeout","persist","stopPropagation","classNames","button","disable","hidden","Link","innerRef","src","alt","ref","show","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../src/components/atoms/LoadingDots/LoadingDots.jsx","../src/components/atoms/buttons/Button/Button.jsx","../src/components/atoms/SupportChat/SupportChat.jsx","../src/components/atoms/AssetIcon/AssetIcon.jsx","../src/common/utils/logging/logsStorage.js","../src/common/utils/safeStringify.js","../src/common/utils/logging/logger.js","../src/components/hooks/useCallHandlingErrors.js","../src/components/hooks/useReferredState.js","../src/common/errorUtils.js","../src/common/fiatCurrenciesService.js","../src/common/amountUtils.js","../src/common/models/blockchain.js","../src/common/models/protocol.js","../src/common/models/coin.js","../src/common/utils/cache.js","../src/common/utils/emailAPI.js","../src/swaps-lib/models/existingSwap.js","../src/swaps-lib/models/existingSwapWithFiatData.js","../src/swaps-lib/models/baseSwapCreationInfo.js","../src/swaps-lib/external-apis/swapProvider.js","../src/swaps-lib/external-apis/swapspaceSwapProvider.js","../src/swaps-lib/utils/swapUtils.js","../src/swaps-lib/services/publicSwapService.js"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styles from \"./LoadingDots.module.scss\";\n\n/**\n * LoadingDots Component - Displays a loading animation with dots.\n * This component allows customization of size, color, margins, and alignment.\n *\n * @component\n * @param {Object} props - The props of the component.\n * @param {('big'|'small'|'extra-small')} [props.size='small'] - Sets the size of the loading dots.\n * @param {boolean} [props.isColored=false] - If true, the dots will be colored, otherwise they will be monochrome.\n * @param {boolean} [props.noMargins=false] - If true, removes the margins around the loading dots.\n * @param {(boolean|'left'|'right')} [props.align=false] - Aligns the loading dots to the left or right if specified, otherwise centered.\n * @returns {React.ReactElement} A React component that renders the loading dots animation.\n */\nexport const LoadingDots = ({\n size = \"small\",\n isColored = false,\n noMargins = false,\n align = false,\n}) => {\n return (\n <div\n className={`${styles[\"loading-dots\"]} ${styles[size]} ${\n noMargins ? ` ${styles[\"no-margins\"]}` : \"\"\n } ${align ? styles[\"align-\" + align] : \"\"}`}\n >\n <div\n className={`${styles.dot} ${\n isColored ? ` ${styles.colored}` : \"\"\n }`}\n />\n <div\n className={`${styles.dot} ${\n isColored ? ` ${styles.colored}` : \"\"\n }`}\n />\n <div\n className={`${styles.dot} ${\n isColored ? ` ${styles.colored}` : \"\"\n }`}\n />\n </div>\n );\n};\n\nLoadingDots.propTypes = {\n size: PropTypes.oneOf([\"big\", \"small\", \"extra-small\"]),\n isColored: PropTypes.bool,\n noMargins: PropTypes.bool,\n align: PropTypes.oneOfType([\n PropTypes.oneOf([\"left\", \"right\"]),\n PropTypes.bool,\n ]),\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styles from \"./Button.module.scss\";\n\nimport { LoadingDots } from \"../../LoadingDots/LoadingDots.jsx\";\n\n/**\n * Button component - A versatile and customizable button for React applications.\n * It supports various sizes, styles, and functionalities, including loaders, icons, and handling of click events.\n * This component can also be used as a link if \"to\" is provided.\n *\n * @component\n * @param {Object} props\n * @param {('xl'|'lg'|'md'|'sm')} [props.size='xl'] - Sets the size of the button.\n * @param {string} [props.className=''] - An optional custom CSS class name for additional styling.\n * @param {string} [props.mode='transparent'] - Determines the button's visual style.\n * @param {Function} [props.onClick=(resetButtonLoader, event) => {}] - Callback function that triggers on button click.\n * @param {boolean} [props.loader=true] - If true, displays a loader animation on the button when clicked.\n * @param {boolean} [props.loading=false] - Controls the actual display of the loader if `loader` is true.\n * @param {string} [props.to=''] - The path for the button to act as a link.\n * @param {boolean} [props.fullWidthOnMobiles=false] - Expands the button to full width on mobiles.\n * @param {boolean} [props.fullWidthOnTablets=false] - Expands the button to full width on tablets.\n * @param {string} [props.icon=''] - The path to the button's icon.\n * @param {React.ReactNode} [props.content=''] - The text or content displayed inside the button.\n * @param {boolean} [props.isDisabled=false] - Disables the button if true.\n * @param {Function} [props.setClickTrigger=(p) => {}] - Function to programmatically trigger a button click.\n * @param {boolean} [props.isFormSubmittingButton=false] - If true, adds a hidden `<input type=\"submit\">`.\n * @param {boolean} [props.bigIcon=false] - If true, displays a larger icon on the button.\n * @param {boolean} [props.checkmarkOnClick=false] - Shows a checkmark instead of content for a few seconds after click.\n * @param {boolean} [props.propagatePrimaryButtonClick=true] - Propagates the primary button click event if true.\n * @param {boolean} [props.smallPaddingOnSmallMobiles=false] - Enables smaller paddings for extra-small screen sizes.\n * @param {Function} [props.handleError=(func) => func()] - Function to handle errors during button click events.\n * @returns {React.ReactElement}\n */\nexport const Button = ({\n size = \"xl\",\n className = \"\",\n mode = \"transparent\",\n onClick = (resetButtonLoader, event) => {},\n loader = true,\n loading = false,\n to = \"\",\n fullWidthOnMobiles = false,\n fullWidthOnTablets = false,\n icon = \"\",\n content = \"\",\n isDisabled = false,\n setClickTrigger = (p) => {},\n isFormSubmittingButton = false,\n bigIcon = false,\n checkmarkOnClick = false,\n propagatePrimaryButtonClick = true,\n smallPaddingOnSmallMobiles = false,\n handleError = (func, event) => func(event),\n}) => {\n const [isLoading, setIsLoading] = useState(loading);\n const [isCheckShown, setIsCheckShown] = useState(false);\n const [event, setEvent] = useState(null);\n\n const buttonRef = useRef();\n\n useEffect(() => {\n setClickTrigger(() => buttonRef.current.click());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [buttonRef]);\n\n useEffect(() => {\n if (isLoading) {\n onClick(() => setIsLoading(false), event);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoading]);\n\n const buttonClick = (e) => {\n if (isLoading || isDisabled) {\n return false;\n }\n\n if (checkmarkOnClick && !isCheckShown && !loader && !loading) {\n setIsCheckShown(true);\n setTimeout(() => {\n setIsCheckShown(false);\n }, 2000);\n }\n\n e.persist(); // Persisting React's SyntheticEvent to be able to use it in any async context\n !propagatePrimaryButtonClick && e.stopPropagation();\n if (loader) {\n setIsLoading(true);\n setEvent(e);\n } else {\n onClick(() => setIsLoading(false), e);\n }\n };\n\n const classNames =\n `${styles.button} ${styles[size]} ${styles[className]} ${styles[mode]}` +\n (fullWidthOnMobiles ? ` ${styles[\"full-width-on-mobiles\"]}` : \"\") +\n (fullWidthOnTablets ? ` ${styles[\"full-width-on-tablets\"]}` : \"\") +\n (isDisabled ? ` ${styles.disable}` : \"\") +\n (smallPaddingOnSmallMobiles\n ? ` ${styles[\"small-padding-on-small-mobiles\"]}`\n : \"\");\n\n return (\n <>\n {isFormSubmittingButton ? <input type=\"submit\" hidden /> : null}\n {to ? (\n <a\n className={classNames}\n onClick={(e) => handleError(buttonClick, e)}\n href={to}\n ref={buttonRef}\n >\n {icon ? (\n <div\n className={\n styles[\"button-with-icon\"] +\n (bigIcon ? ` ${styles[\"big-icon\"]}` : \"\")\n }\n >\n <img src={icon} alt=\"button icon\" />\n <span className={styles[\"button-with-icon-text\"]}>\n {content}\n </span>\n </div>\n ) : (\n content\n )}\n </a>\n ) : (\n <div\n className={classNames}\n onClick={(e) => handleError(buttonClick, e)}\n ref={buttonRef}\n >\n <div\n className={`${styles[\"button-primary-dots-wrapper\"]} ${\n isLoading && loader ? styles.show : \"\"\n }`}\n >\n {loader && isLoading ? (\n <LoadingDots isColored={mode === \"white\"} />\n ) : null}\n </div>\n <div\n className={`${styles[\"button-success-icon\"]} ${\n styles[mode]\n } ${isCheckShown ? styles[\"show\"] : \"\"}`}\n ></div>\n {icon ? (\n <div\n className={`${styles[\"button-with-icon\"]} ${\n (isLoading && loader) ||\n (checkmarkOnClick && isCheckShown)\n ? styles[\"hide\"]\n : \"\"\n } ${bigIcon ? styles[\"big-icon\"] : \"\"}`}\n >\n <img src={icon} alt=\"button icon\" />\n <span className={styles[\"button-with-icon-text\"]}>\n {content}\n </span>\n </div>\n ) : (\n <span\n className={`${styles[\"button-text\"]} ${\n (isLoading && loader) ||\n (checkmarkOnClick && isCheckShown)\n ? styles[\"hide\"]\n : \"\"\n }`}\n >\n {content}\n </span>\n )}\n </div>\n )}\n </>\n );\n};\n\nButton.propTypes = {\n size: PropTypes.oneOf([\"xl\", \"lg\", \"md\", \"sm\"]),\n className: PropTypes.string,\n mode: PropTypes.oneOf([\n \"transparent\",\n \"white\",\n \"white-flat\",\n \"primary\",\n \"primary-bordered\",\n \"primary-transparent\",\n \"transparent-bordered\",\n \"transparent-without-shadow\",\n ]),\n onClick: PropTypes.func,\n loader: PropTypes.bool,\n loading: PropTypes.bool,\n to: PropTypes.string,\n fullWidthOnMobiles: PropTypes.bool,\n fullWidthOnTablets: PropTypes.bool,\n icon: PropTypes.string,\n content: PropTypes.node,\n isDisabled: PropTypes.bool,\n setClickTrigger: PropTypes.func,\n isFormSubmittingButton: PropTypes.bool,\n bigIcon: PropTypes.bool,\n checkmarkOnClick: PropTypes.bool,\n propagatePrimaryButtonClick: PropTypes.bool,\n smallPaddingOnSmallMobiles: PropTypes.bool,\n handleError: PropTypes.func,\n};\n\nButton.defaultProps = {\n size: \"xl\",\n className: \"\",\n mode: \"transparent\",\n onClick: (resetButtonLoader, event) => {},\n loader: true,\n loading: false,\n to: \"\",\n fullWidthOnMobiles: false,\n fullWidthOnTablets: false,\n icon: \"\",\n content: \"\",\n isDisabled: false,\n setClickTrigger: (p) => {},\n isFormSubmittingButton: false,\n bigIcon: false,\n checkmarkOnClick: false,\n propagatePrimaryButtonClick: true,\n smallPaddingOnSmallMobiles: false,\n handleError: (func) => func(),\n};\n","import { useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\n\nexport const SupportChat = ({ url, websiteToken, welcomeMessage = \"\" }) => {\n useEffect(() => {\n window.chatwootSettings = {\n position: \"right\",\n type: \"standard\",\n launcherTitle: welcomeMessage,\n };\n (function (d, t) {\n var BASE_URL = url;\n var g = d.createElement(t),\n s = d.getElementsByTagName(t)[0];\n g.src = BASE_URL + \"/packs/js/sdk.js\";\n g.defer = true;\n g.async = true;\n s.parentNode.insertBefore(g, s);\n g.onload = function () {\n window.chatwootSDK.run({\n websiteToken: websiteToken,\n baseUrl: BASE_URL,\n });\n };\n })(document, \"script\");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return null;\n};\n\nSupportChat.propTypes = {\n url: PropTypes.string.isRequired,\n websiteToken: PropTypes.string.isRequired,\n welcomeMessage: PropTypes.string,\n};\n\nSupportChat.defaultProps = {\n welcomeMessage: \"\",\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport s from \"./asset-icon.module.scss\";\n\nexport const AssetIcon = ({\n assetIconSrc,\n assetIconProtocolSrc = null,\n fallbackSrc = null,\n small = false,\n}) => {\n const handleFailedLoad = (e) => {\n e.target.onerror = null;\n e.target.src = fallbackSrc;\n };\n\n return (\n <div className={s[\"asset-icon\"] + (small ? \" \" + s[\"small\"] : \"\")}>\n <img\n src={assetIconSrc}\n className={\n s[\"asset-icon-primary\"] + (small ? \" \" + s[\"small\"] : \"\")\n }\n alt={\" \"}\n onError={handleFailedLoad}\n />\n {assetIconProtocolSrc ? (\n <img\n src={assetIconProtocolSrc}\n className={\n s[\"asset-icon-secondary\"] +\n (small ? \" \" + s[\"small\"] : \"\")\n }\n alt={\" \"}\n onError={handleFailedLoad}\n />\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nAssetIcon.propTypes = {\n assetIconSrc: PropTypes.string.isRequired,\n assetIconProtocolSrc: PropTypes.string,\n fallbackSrc: PropTypes.string,\n small: PropTypes.bool,\n};\n\nAssetIcon.defaultProps = {\n assetIconProtocolSrc: null,\n fallbackSrc: null,\n small: false,\n};\n","export class LogsStorage {\n static _inMemoryStorage = [];\n static _logsStorageId = \"clietnLogs_j203fj2D0n-d1\";\n\n static saveLog(log) {\n this._inMemoryStorage.push(log);\n }\n\n static getInMemoryLogs() {\n return this._inMemoryStorage;\n }\n\n static getAllLogs() {\n let storedLogs = \"\";\n if (typeof window !== \"undefined\") {\n storedLogs = localStorage.getItem(this._logsStorageId);\n }\n return `${storedLogs}\\n${this._inMemoryStorage.join(\"\\n\")}`;\n }\n\n /**\n * @param logger {Logger}\n */\n static saveToTheDisk(logger) {\n try {\n const MAX_LOCAL_STORAGE_VOLUME_BYTES = 5 * 1024 * 1024;\n const MAX_LOGS_STORAGE_BYTES = MAX_LOCAL_STORAGE_VOLUME_BYTES * 0.65;\n if (typeof window !== \"undefined\") {\n const existingLogs = localStorage.getItem(this._logsStorageId);\n const logsString = `${existingLogs}\\n${this._inMemoryStorage.join(\"\\n\")}`;\n const lettersCountToRemove = logsString.length - Math.round(MAX_LOGS_STORAGE_BYTES / 2);\n if (lettersCountToRemove > 0) {\n localStorage.setItem(\n this._logsStorageId,\n logsString.slice(lettersCountToRemove, logsString.length)\n );\n } else {\n localStorage.setItem(this._logsStorageId, logsString);\n }\n this._inMemoryStorage = [];\n }\n } catch (e) {\n logger?.logError(e, \"saveToTheDisk\", \"Failed to save logs to disk\");\n }\n }\n\n static removeAllClientLogs() {\n if (typeof window !== \"undefined\") {\n if (localStorage.getItem(\"doNotRemoveClientLogsWhenSignedOut\") !== \"true\") {\n localStorage.removeItem(this._logsStorageId);\n }\n }\n this._inMemoryStorage = [];\n }\n\n static setDoNotRemoveClientLogsWhenSignedOut(value) {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(\"doNotRemoveClientLogsWhenSignedOut\", value);\n }\n }\n}\n","/**\n * Stringify given object by use of JSON.stringify but handles circular structures and \"response\", \"request\" properties\n * to avoid stringing redundant data when printing errors containing request/response objects.\n *\n * @param object - object to be stringed\n * @param indent - custom indentation\n * @return {string} - stringed object\n */\nexport function safeStringify(object, indent = 2) {\n let cache = [];\n if (\n typeof object === \"string\" ||\n typeof object === \"function\" ||\n typeof object === \"number\" ||\n typeof object === \"undefined\" ||\n typeof object === \"boolean\"\n ) {\n return String(object);\n }\n const retVal = JSON.stringify(\n object,\n (key, value) => {\n if (key.toLowerCase().includes(\"request\")) {\n return JSON.stringify({\n body: value?.body,\n query: value?.query,\n headers: value?.headers,\n });\n }\n\n if (key.toLowerCase().includes(\"response\")) {\n return JSON.stringify({\n statusText: value?.statusText,\n status: value?.status,\n data: value?.data,\n headers: value?.headers,\n });\n }\n\n return typeof value === \"object\" && value !== null\n ? cache.includes(value)\n ? \"duplicated reference\" // Duplicated references were found, discarding this key\n : cache.push(value) && value // Store value in our collection\n : value;\n },\n indent\n );\n cache = null;\n return retVal;\n}\n","import { LogsStorage } from \"./logsStorage.js\";\nimport { safeStringify } from \"../safeStringify.js\";\n\nexport class Logger {\n /**\n * Logs to client logs storage.\n *\n * WARNING! this method should ce used carefully for critical logging as we have the restriction for storing logs\n * on client side as we store them inside the local storage. Please see details inside storage.js\n * @param logString {string} log string\n * @param source {string} source of the log entry\n */\n static log(logString, source) {\n const timestamp = new Date().toISOString();\n LogsStorage.saveLog(`${timestamp}|${source}:${logString}`);\n }\n\n static logError(\n e,\n settingFunction,\n additionalMessage = \"\",\n onlyToConsole = false\n ) {\n let message = `\\nFunction call ${\n settingFunction ?? \"\"\n } failed. Error message: ${e?.message}. ${additionalMessage} `;\n message +=\n `${e?.errorDescription ?? \"\"}${e?.howToFix ?? \"\"}` +\n (e?.httpStatus === 403\n ? \"Authentication has expired or was lost. \"\n : \"\");\n\n if (e?.response) {\n try {\n const responseData = safeStringify({ response: e.response });\n responseData && (message += `\\n${responseData}. `);\n } catch (e) {}\n }\n\n const finalErrorText = message + \". \" + safeStringify(e);\n // eslint-disable-next-line no-console\n console.error(finalErrorText, e);\n\n if (!onlyToConsole) {\n this.log(finalErrorText, \"logError\");\n }\n }\n}\n","import { useCallback, useState } from \"react\";\n\nimport { Logger } from \"../../common/utils/logging/logger.js\";\n\nexport function useCallHandlingErrors() {\n const [, setState] = useState();\n return useCallback(\n async (functionToBeCalled, event) => {\n try {\n await functionToBeCalled(event);\n } catch (error) {\n Logger.logError(\n error,\n functionToBeCalled?.name || \"errorBoundaryTrigger\",\n \"Caught by ErrorBoundary\"\n );\n // Triggering ErrorBoundary\n setState(() => {\n throw error;\n });\n }\n },\n\n []\n );\n}\n","import React from \"react\";\n\n/**\n * Adds reference to standard state variable. It is helpful to be able to use state variable value inside\n * event handlers and other callbacks without the need to call setState(prev => { value = prev; return prev; }).\n *\n * @param initialValue {any} to be passed to useState\n * @return {[React.Ref, function]} reference to state variable and its setter\n */\nexport function useReferredState(initialValue) {\n const [state, setState] = React.useState(initialValue);\n const reference = React.useRef(state);\n\n const setReferredState = (value) => {\n if (value && {}.toString.call(value) === \"[object Function]\") {\n value = value(reference.current);\n }\n\n reference.current = value;\n setState(value);\n };\n\n return [reference, setReferredState];\n}\n","/**\n * This function improves the passed error object (its message) by adding the passed function name\n * and additional message to it.\n * This is useful as Javascript doesn't guarantee the stack-traces, so we should manually add these details to errors\n * to be able to troubleshoot.\n *\n * @param e {Error}\n * @param settingFunction {string}\n * @param [additionalMessage=\"\"] {string|undefined}\n * @throws {Error} always rethrows the original passed error but with an improved message\n */\nexport function improveAndRethrow(e, settingFunction, additionalMessage = \"\") {\n const message = improvedErrorMessage(e, settingFunction, additionalMessage);\n if (e) {\n e.message = message;\n throw e; // to preserve existing stacktrace if present\n }\n throw new Error(message);\n}\n\nfunction improvedErrorMessage(e, settingFunction, additionalMessage) {\n let message = `\\nFunction call ${settingFunction ?? \"\"} failed. `;\n e && e.message && (message += `Error message: ${e.message}. `);\n additionalMessage && (message += `${additionalMessage} `);\n\n return message;\n}\n","export class FiatCurrenciesService {\n static getFullCurrencyNameByCode(code = \"\") {\n const data = fiatCurrenciesList.find(\n (currencyData) => currencyData[0] === code.toUpperCase()\n );\n return (data && data[2]) || null;\n }\n\n static isCodeValid(code) {\n return !!fiatCurrenciesList.find(\n (currenciesData) => currenciesData[0] === code\n );\n }\n\n /**\n * Returns currency symbol by code if present\n *\n * @param code {string} currency code\n * @return {string|null} code or null if there is no symbol for the currency\n */\n static getCurrencySymbolByCode(code = \"\") {\n const data = fiatCurrenciesList.find(\n (currencyData) => currencyData[0] === code.toUpperCase()\n );\n return data?.[1] ?? null;\n }\n\n /**\n * @param code {string}\n * @return {number|null}\n */\n static getCurrencyDecimalCountByCode(code = \"\") {\n const data = fiatCurrenciesList.find(\n (currencyData) => currencyData[0] === code.toUpperCase()\n );\n return data?.[3] ?? null;\n }\n}\n\nconst fiatCurrenciesList = [\n [\"USD\", \"$\", \"US Dollar\", 2],\n [\"CAD\", \"CA$\", \"Canadian Dollar\", 2],\n [\"EUR\", \"€\", \"Euro\", 2],\n [\"AED\", \"AED\", \"UAE Dirham\", 2],\n [\"AFN\", \"؋\", \"Afghan Afghani\", 0],\n [\"ALL\", \"ALL\", \"Albanian Lek\", 0],\n [\"AMD\", \"֏\", \"Armenian Dram\", 0],\n [\"ARS\", \"AR$\", \"Argentine Peso\", 2],\n [\"AUD\", \"AU$\", \"Australian Dollar\", 2],\n [\"AZN\", \"₼\", \"Azerbaijani Manat\", 2],\n [\"BAM\", \"KM\", \"Bosnia-Herzegovina Convertible Mark\", 2],\n [\"BDT\", \"Tk\", \"Bangladeshi Taka\", 2],\n [\"BGN\", \"BGN\", \"Bulgarian Lev\", 2],\n [\"BHD\", \"BD\", \"Bahraini Dinar\", 3],\n [\"BIF\", \"FBu\", \"Burundian Franc\", 0],\n [\"BND\", \"BN$\", \"Brunei Dollar\", 2],\n [\"BOB\", \"Bs\", \"Bolivian Boliviano\", 2],\n [\"BRL\", \"R$\", \"Brazilian Real\", 2],\n [\"BWP\", \"BWP\", \"Botswanan Pula\", 2],\n [\"BYN\", \"Br\", \"Belarusian Ruble\", 2],\n [\"BZD\", \"BZ$\", \"Belize Dollar\", 2],\n [\"CDF\", \"CDF\", \"Congolese Franc\", 2],\n [\"CHF\", \"CHF\", \"Swiss Franc\", 2],\n [\"CLP\", \"CL$\", \"Chilean Peso\", 0],\n [\"CNY\", \"CN¥\", \"Chinese Yuan\", 2],\n [\"COP\", \"CO$\", \"Colombian Peso\", 0],\n [\"CRC\", \"₡\", \"Costa Rican Colón\", 0],\n [\"CVE\", \"CV$\", \"Cape Verdean Escudo\", 2],\n [\"CZK\", \"Kč\", \"Czech Republic Koruna\", 2],\n [\"DJF\", \"Fdj\", \"Djiboutian Franc\", 0],\n [\"DKK\", \"Dkr\", \"Danish Krone\", 2],\n [\"DOP\", \"RD$\", \"Dominican Peso\", 2],\n [\"DZD\", \"DA\", \"Algerian Dinar\", 2],\n [\"EEK\", \"Ekr\", \"Estonian Kroon\", 2],\n [\"EGP\", \"EGP\", \"Egyptian Pound\", 2],\n [\"ERN\", \"Nfk\", \"Eritrean Nakfa\", 2],\n [\"ETB\", \"Br\", \"Ethiopian Birr\", 2],\n [\"GBP\", \"£\", \"British Pound Sterling\", 2],\n [\"GEL\", \"₾\", \"Georgian Lari\", 2],\n [\"GHS\", \"₵\", \"Ghanaian Cedi\", 2],\n [\"GNF\", \"FG\", \"Guinean Franc\", 0],\n [\"GTQ\", \"GTQ\", \"Guatemalan Quetzal\", 2],\n [\"HKD\", \"HK$\", \"Hong Kong Dollar\", 2],\n [\"HNL\", \"HNL\", \"Honduran Lempira\", 2],\n [\"HRK\", \"kn\", \"Croatian Kuna\", 2],\n [\"HUF\", \"Ft\", \"Hungarian Forint\", 0],\n [\"IDR\", \"Rp\", \"Indonesian Rupiah\", 0],\n [\"ILS\", \"₪\", \"Israeli New Sheqel\", 2],\n [\"INR\", \"₹\", \"Indian Rupee\", 2],\n [\"IQD\", \"IQD\", \"Iraqi Dinar\", 0],\n [\"IRR\", \"﷼\", \"Iranian Rial\", 0],\n [\"ISK\", \"Ikr\", \"Icelandic Króna\", 0],\n [\"JMD\", \"J$\", \"Jamaican Dollar\", 2],\n [\"JOD\", \"JD\", \"Jordanian Dinar\", 3],\n [\"JPY\", \"¥\", \"Japanese Yen\", 0],\n [\"KES\", \"Ksh\", \"Kenyan Shilling\", 2],\n [\"KHR\", \"KHR\", \"Cambodian Riel\", 2],\n [\"KMF\", \"CF\", \"Comorian Franc\", 0],\n [\"KRW\", \"₩\", \"South Korean Won\", 0],\n [\"KWD\", \"KD\", \"Kuwaiti Dinar\", 3],\n [\"KZT\", \"₸\", \"Kazakhstani Tenge\", 2],\n [\"LBP\", \"LB£\", \"Lebanese Pound\", 0],\n [\"LKR\", \"SLRs\", \"Sri Lankan Rupee\", 2],\n [\"LTL\", \"Lt\", \"Lithuanian Litas\", 2],\n [\"LVL\", \"Ls\", \"Latvian Lats\", 2],\n [\"LYD\", \"LD\", \"Libyan Dinar\", 3],\n [\"MAD\", \"MAD\", \"Moroccan Dirham\", 2],\n [\"MDL\", \"MDL\", \"Moldovan Leu\", 2],\n [\"MGA\", \"MGA\", \"Malagasy Ariary\", 0],\n [\"MKD\", \"MKD\", \"Macedonian Denar\", 2],\n [\"MMK\", \"MMK\", \"Myanma Kyat\", 0],\n [\"MNT\", \"₮\", \"Mongolian Tugrik\", 0],\n [\"MOP\", \"MOP$\", \"Macanese Pataca\", 2],\n [\"MUR\", \"MURs\", \"Mauritian Rupee\", 0],\n [\"MXN\", \"MX$\", \"Mexican Peso\", 2],\n [\"MYR\", \"RM\", \"Malaysian Ringgit\", 2],\n [\"MZN\", \"MTn\", \"Mozambican Metical\", 2],\n [\"NAD\", \"N$\", \"Namibian Dollar\", 2],\n [\"NGN\", \"₦\", \"Nigerian Naira\", 2],\n [\"NIO\", \"C$\", \"Nicaraguan Córdoba\", 2],\n [\"NOK\", \"Nkr\", \"Norwegian Krone\", 2],\n [\"NPR\", \"NPRs\", \"Nepalese Rupee\", 2],\n [\"NZD\", \"NZ$\", \"New Zealand Dollar\", 2],\n [\"OMR\", \"OMR\", \"Omani Rial\", 3],\n [\"PAB\", \"B/.\", \"Panamanian Balboa\", 2],\n [\"PEN\", \"S/.\", \"Peruvian Nuevo Sol\", 2],\n [\"PHP\", \"₱\", \"Philippine Peso\", 2],\n [\"PKR\", \"PKRs\", \"Pakistani Rupee\", 0],\n [\"PLN\", \"zł\", \"Polish Zloty\", 2],\n [\"PYG\", \"₲\", \"Paraguayan Guarani\", 0],\n [\"QAR\", \"QR\", \"Qatari Rial\", 2],\n [\"RON\", \"RON\", \"Romanian Leu\", 2],\n [\"RSD\", \"din.\", \"Serbian Dinar\", 0],\n [\"RUB\", \"₽\", \"Russian Ruble\", 2],\n [\"RWF\", \"RWF\", \"Rwandan Franc\", 0],\n [\"SAR\", \"SR\", \"Saudi Riyal\", 2],\n [\"SDG\", \"SDG\", \"Sudanese Pound\", 2],\n [\"SEK\", \"Skr\", \"Swedish Krona\", 2],\n [\"SGD\", \"S$\", \"Singapore Dollar\", 2],\n [\"SOS\", \"Ssh\", \"Somali Shilling\", 0],\n [\"SYP\", \"SY£\", \"Syrian Pound\", 0],\n [\"THB\", \"฿\", \"Thai Baht\", 2],\n [\"TND\", \"DT\", \"Tunisian Dinar\", 3],\n [\"TOP\", \"T$\", \"Tongan Paʻanga\", 2],\n [\"TRY\", \"₺\", \"Turkish Lira\", 2],\n [\"TTD\", \"TT$\", \"Trinidad and Tobago Dollar\", 2],\n [\"TWD\", \"NT$\", \"New Taiwan Dollar\", 2],\n [\"TZS\", \"TSh\", \"Tanzanian Shilling\", 0],\n [\"UAH\", \"₴\", \"Ukrainian Hryvnia\", 2],\n [\"UGX\", \"USh\", \"Ugandan Shilling\", 0],\n [\"UYU\", \"$U\", \"Uruguayan Peso\", 2],\n [\"UZS\", \"UZS\", \"Uzbekistan Som\", 0],\n [\"VEF\", \"Bs.F.\", \"Venezuelan Bolívar\", 2],\n [\"VND\", \"₫\", \"Vietnamese Dong\", 0],\n [\"XAF\", \"FCFA\", \"CFA Franc BEAC\", 0],\n [\"XOF\", \"CFA\", \"CFA Franc BCEAO\", 0],\n [\"YER\", \"﷼\", \"Yemeni Rial\", 0],\n [\"ZAR\", \"R\", \"South African Rand\", 2],\n [\"ZMK\", \"ZK\", \"Zambian Kwacha\", 0],\n [\"ZWL\", \"ZWL$\", \"Zimbabwean Dollar\", 0],\n];\n","import { BigNumber } from \"bignumber.js\";\n\nimport { FiatCurrenciesService } from \"./fiatCurrenciesService.js\";\nimport { improveAndRethrow } from \"./errorUtils.js\";\n\n// TODO: [dev] return addCommasToAmountString internal method to encapsulate commas adding\n\nexport class AmountUtils {\n static significantDecimalCount = 8;\n static collapsedDecimalCount = 2;\n static maxTotalLength = 12;\n static extraSmallMaxTotalLength = 9; // >=10 breaks transactions list (mobile) and it is hard to avoid this\n static periods = \"..\";\n\n static defaultFiatParams = {\n ticker: true, // If true, currency code will be shown\n enableCurrencySymbols: true, // Enables currency symbols where available. Requires \"ticker: true\"\n collapsible: true, // Enables minimization of amounts over 1 million (example: 1.52M)\n limitTotalLength: true, // Limits the total amount length to maxTotalLength\n extraSmallLength: false, // Limits the total amount length to extraSmallMaxTotalLength\n };\n\n static fiatXs(amount, code) {\n return this.fiat(amount, code, { extraSmallLength: true });\n }\n\n /**\n * Universal method for rendering of fiat amounts, taking into account the rules of\n * the passed fiat currency code.\n *\n * TODO: [feature, high] remove 'number' from accepted types list task_id=1e692bcfabbe487a9d1638fc8ff17448\n * @param amount {BigNumber|number|string|null|undefined} The number value to be trimmed\n * @param currencyCode {string|null} The currency code. Can be omitted if { ticker: false } in the config\n * @param [passedParams={}] {object} Formatting parameters\n * @return {string} Formatted fiat amount string\n */\n static fiat(amount, currencyCode, passedParams = {}) {\n try {\n const params = { ...this.defaultFiatParams, ...passedParams };\n\n if (\n this._checkIfAmountInvalid(amount, true) ||\n typeof currencyCode !== \"string\"\n )\n return \"NULL\";\n\n const currencySymbol =\n FiatCurrenciesService.getCurrencySymbolByCode(currencyCode);\n const currencyDecimalCount =\n FiatCurrenciesService.getCurrencyDecimalCountByCode(\n currencyCode\n );\n\n const trimmedByMaxDigits = BigNumber(amount).toFixed(\n currencyDecimalCount,\n BigNumber.ROUND_FLOOR\n );\n\n let processedAmount = BigNumber(trimmedByMaxDigits);\n if (\n params.collapsible &&\n processedAmount.gte(BigNumber(\"1000000\"))\n ) {\n processedAmount = this._collapseToMillionsAndFormat(\n processedAmount,\n this.collapsedDecimalCount,\n params\n );\n } else {\n const limitResult = this._limitTotalAmountLengthIfNeeded(\n trimmedByMaxDigits,\n params\n );\n processedAmount = BigNumber(\n limitResult.processedAmount\n ).toFormat(); // Adds commas to integer part\n }\n\n // Add the currency code or currency symbol, if symbol is enabled and available\n if (params.ticker) {\n if (\n typeof currencySymbol === \"string\" &&\n params.enableCurrencySymbols\n ) {\n processedAmount =\n currencySymbol +\n (currencySymbol.length > 1 ? \" \" : \"\") +\n processedAmount;\n } else {\n processedAmount = processedAmount + \" \" + currencyCode;\n }\n }\n\n return processedAmount;\n } catch (e) {\n improveAndRethrow(e, \"fiat\", `Passed: ${amount}`);\n }\n }\n\n static defaultCryptoParams = {\n ticker: true, // If true, asset ticker will be shown\n collapsible: true, // Enables minimization of amounts over 1 million (example: 1.52M)\n trim: true, // Cuts the right part of the amount if necessary, and adds \"..\" in the end\n limitTotalLength: true, // Limits the total amount length to maxTotalLength\n extraSmallLength: false, // Limits the total amount length to extraSmallMaxTotalLength\n periods: true, // Whether we add periods (\"..\") as suffix for trimmed numbers\n };\n\n static cryptoWoTicker(amount, digits) {\n return this.crypto(amount, null, digits, { ticker: false });\n }\n\n static cryptoWoTickerXs(amount, digits) {\n return this.crypto(amount, null, digits, {\n ticker: false,\n extraSmallLength: true,\n });\n }\n\n static cryptoXs(amount, ticker, digits) {\n return this.crypto(amount, ticker, digits, {\n extraSmallLength: true,\n periods: false,\n });\n }\n\n static cryptoFull(amount, ticker, digits) {\n return this.crypto(amount, ticker, digits, {\n collapsible: false,\n trim: false,\n limitTotalLength: false,\n });\n }\n\n /**\n * Universal method for rendering of crypto amounts, taking into account the rules of\n * the passed ticker. Requires the number of digits after period to be less of equal to\n * the number of digits, supported by the passed ticker.\n *\n * @param amount {BigNumber|string|null|undefined} The number value to be formatted\n * @param ticker {string|null} Coin ticker\n * @param [digits=8] {number} max digits after the dot\n * @param passedParams {object} Formatting parameters\n * @return {string} Formatted crypto amount string\n */\n static crypto(\n amount,\n ticker,\n digits = this.significantDecimalCount,\n passedParams\n ) {\n try {\n const params = { ...this.defaultCryptoParams, ...passedParams };\n\n if (\n this._checkIfAmountInvalid(amount) ||\n (typeof ticker !== \"string\" && params.ticker)\n )\n return \"NULL\";\n\n let addPeriods = false;\n\n const amountBigNumber = BigNumber(amount);\n\n let processedAmount = amountBigNumber.toFixed(\n digits,\n BigNumber.ROUND_FLOOR\n );\n processedAmount =\n this.removeRedundantRightZerosFromNumberString(processedAmount);\n const originalAmountDecimalPlaces =\n BigNumber(processedAmount).decimalPlaces();\n // Check decimal count and throw an error, if the amount has more decimal digits than supported by the asset\n if (originalAmountDecimalPlaces > digits) {\n const errorMessage = `An attempt to render a crypto value with too many digits after period was made: ${amount}, allowed digits: ${digits}. This is a no-op, since the logical and visually rendered values would differ, which is not acceptable for crypto amounts. Please trim the amount before rendering, using the trimCryptoAmountByCoin(amount, coin) method.`;\n // throw new Error(errorMessage);\n // eslint-disable-next-line no-console\n console.log(errorMessage, \"crypto\");\n }\n\n // Shortening the value to general significant number of digits after period\n if (params.trim) {\n processedAmount =\n this.removeRedundantRightZerosFromNumberString(\n amountBigNumber.toFixed(\n this.significantDecimalCount,\n BigNumber.ROUND_FLOOR\n )\n );\n addPeriods =\n originalAmountDecimalPlaces > this.significantDecimalCount;\n }\n\n const limitResult = this._limitTotalAmountLengthIfNeeded(\n processedAmount,\n params\n );\n processedAmount = limitResult.processedAmount;\n addPeriods ||= limitResult.addPeriods;\n\n let wereMillionsCollapsed = false;\n if (params.collapsible && amountBigNumber.gte(\"1000000\")) {\n // Collapse the 1M+ amounts if applicable\n processedAmount = this._collapseToMillionsAndFormat(\n BigNumber(processedAmount),\n this.collapsedDecimalCount,\n params\n );\n wereMillionsCollapsed = true;\n } else {\n // Add separators to integer part of the amount\n processedAmount = BigNumber(processedAmount).toFormat();\n }\n\n // Adding periods, if the amount was shortened\n if (params.periods && addPeriods && !wereMillionsCollapsed) {\n processedAmount = processedAmount + this.periods;\n }\n\n // Adding an adaptive (printable/full) ticker\n if (params.ticker && ticker) {\n processedAmount = processedAmount + \" \" + ticker;\n }\n\n return processedAmount;\n } catch (e) {\n improveAndRethrow(\n e,\n \"crypto\",\n `Passed: ${amount}, ${ticker}, ${digits}`\n );\n }\n }\n\n static _checkIfAmountInvalid(amount, allowNumbers = false) {\n return (\n amount == null ||\n amount === \"\" ||\n (!BigNumber.isBigNumber(amount) &&\n typeof amount !== \"string\" &&\n (!allowNumbers || typeof amount !== \"number\"))\n );\n }\n\n /**\n * Trims all digits after period that exceed the number of digits provided.\n * Use this everywhere when calculating some amount value to ensure the result is correct in terms\n * of max digits allowed by specific currency.\n *\n * @param amount {BigNumber|number|string|null|undefined} The number value to be trimmed.\n * HEX strings also allowed \"0x...\" and JS hex numbers\n * @param digits {number} allowed digits\n * @return {string|null} String with trimmed number or null for invalid amount\n */\n static trim(amount, digits) {\n try {\n if (this._checkIfAmountInvalid(amount, true)) return null;\n return BigNumber(amount).toFixed(digits, BigNumber.ROUND_FLOOR);\n } catch (e) {\n improveAndRethrow(e, \"trim\", `Passed: ${amount}, ${digits}`);\n }\n }\n\n /**\n * @param amount {BigNumber|number|string|null|undefined} The number value to be trimmed.\n * HEX strings also allowed \"0x...\" and JS hex numbers\n * @return {string|null}\n */\n static intStr(amount) {\n return this.trim(amount, 0);\n }\n\n /**\n * Shortens the line length by using a \"1.52M\" representation of big amounts.\n *\n * @param amountBigNumber {BigNumber} The number value to be trimmed\n * @param decimalCount {number} The number of digits after period to keep in millions representation\n * @param params {object} params object\n * @return {string} A shortened string, converted into \"millions\" format, if the amount exceeds 1 million\n */\n static _collapseToMillionsAndFormat(\n amountBigNumber,\n decimalCount,\n params = {}\n ) {\n try {\n // TODO: [feature, moderate] use local format here - take from JS locales (comma/dot etc.)\n const millionBigNumber = BigNumber(\"1000000\");\n const millions = amountBigNumber\n .div(millionBigNumber)\n .toFixed(decimalCount, BigNumber.ROUND_FLOOR);\n const limitedResult = this._limitTotalAmountLengthIfNeeded(\n millions,\n params\n );\n const formatted = BigNumber(\n limitedResult.processedAmount\n ).toFormat();\n\n return formatted + \"M\";\n } catch (e) {\n improveAndRethrow(\n e,\n \"_collapseAmountAndFormat\",\n `Passed: ${amountBigNumber.toFixed()}, ${decimalCount}`\n );\n }\n }\n\n /**\n * @param amountString {string} The amount to be restricted by length\n * @param params {object} Params object used for formatting\n * @return {{processedAmount:string, addPeriods: boolean}} A shortened string\n */\n static _limitTotalAmountLengthIfNeeded(amountString, params) {\n try {\n let addPeriods = false;\n if (params.limitTotalLength || params.extraSmallLength) {\n const maxLength = params.extraSmallLength\n ? this.extraSmallMaxTotalLength\n : this.maxTotalLength;\n if (amountString.length > maxLength) {\n const delta = amountString.length - maxLength;\n const currentDecimalsCount =\n BigNumber(amountString).decimalPlaces();\n const newDecimalCount = currentDecimalsCount - delta;\n amountString = BigNumber(amountString).toFixed(\n newDecimalCount > 2 ? newDecimalCount : 2,\n BigNumber.ROUND_FLOOR\n );\n addPeriods = currentDecimalsCount > newDecimalCount;\n }\n }\n\n return { addPeriods: addPeriods, processedAmount: amountString };\n } catch (e) {\n improveAndRethrow(\n e,\n \"_limitTotalAmountLengthIfNeeded\",\n `Passed: ${amountString}, ${params}`\n );\n }\n }\n\n /**\n * Safely composes rate string (handles small/big rates)\n *\n * @param leftTicker {string}\n * @param rightTicker {string}\n * @param rate {number|string|BigNumber}\n * @param [rightCurrencyDigitsAfterDots=8] {number}\n * @return {string}\n */\n static composeRateText(\n leftTicker,\n rightTicker,\n rate,\n rightCurrencyDigitsAfterDots = this.significantDecimalCount\n ) {\n try {\n /* Here we try to calculate a clear rate for the user. The difficulty is that the rate value can be pretty\n * small as some coins have significantly higher price than the other. For such cases we calculate\n * not the \"1 <coin_A> is X <coin B>\" but \"Y <coin_A> is X <coin B>\" where Y is one of the powers of 100.\n */\n let leftNumber = BigNumber(\"1\");\n const multiplier = BigNumber(\"100\");\n const maxAttemptsToGetRate = 10;\n let right = null;\n const rateBigNumber = BigNumber(rate);\n for (let i = 0; i < maxAttemptsToGetRate; ++i) {\n const rightNumberAttempt = rateBigNumber\n .times(leftNumber)\n .toFixed(\n rightCurrencyDigitsAfterDots,\n BigNumber.ROUND_FLOOR\n );\n if (!BigNumber(rightNumberAttempt).eq(BigNumber(\"0\"))) {\n right = BigNumber(rightNumberAttempt);\n break;\n } else {\n leftNumber = leftNumber.times(multiplier);\n }\n }\n const leftAmountString = AmountUtils.intStr(leftNumber);\n const rightAmountString =\n right != null\n ? right.toFixed(\n rightCurrencyDigitsAfterDots,\n BigNumber.ROUND_FLOOR\n )\n : null;\n return `${leftAmountString} ${leftTicker} ~ ${\n rightAmountString ?? \"?\"\n } ${rightTicker}`;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(\"composeRateText\", e);\n }\n return \"-\";\n }\n\n /**\n * @param numberAsAString {string}\n * @return {string}\n */\n static removeRedundantRightZerosFromNumberString(numberAsAString) {\n try {\n const parts = (\"\" + numberAsAString).split(\".\");\n let right = parts[1];\n while (right?.length && right[right.length - 1] === \"0\") {\n right = right.slice(0, right.length - 1);\n }\n\n return `${parts[0]}${right?.length ? `.${right}` : \"\"}`;\n } catch (e) {\n improveAndRethrow(\n e,\n \"removeRedundantRightZerosFromNumberString\",\n `Passed: ${numberAsAString}`\n );\n }\n }\n}\n","export class Blockchain {\n /**\n * @param name {string} latin printable name of blockchain\n * @param supportedProtocols {Protocol[]}\n */\n constructor(name, supportedProtocols = []) {\n this.name = name;\n this.supportedProtocols = supportedProtocols;\n }\n}\n","export class Protocol {\n constructor(protocolName) {\n this.protocol = protocolName;\n }\n}\n","import { improveAndRethrow } from \"./../errorUtils.js\";\n\n/**\n * The model for cryptocurrency coins.\n *\n * WARNING: this class should not be instantiated directly. Use only predefined singleton Coin (or descendants) instances.\n */\nexport class Coin {\n /**\n * Creates new coin\n *\n * @param latinName {string} the coin name in latin symbols like \"Bitcoin\"\n * @param ticker {string} the coin symbol/ticker/code like 'BTC'. Always upper case. A unique coin identifier\n * @param tickerPrintable {string} ticker but in printable format. Useful for tokens based on external blockchains\n * like ERC20 or TRC20. It is not friendly to display USDTERC20 or BUSDTRC20 - more neat options are just\n * USDT and BUSD. Note that you should always care about user's understanding of what coin he/she is working\n * with as printable ticker for USDTERC20 and USDTTRC20 are the same.\n * @param digitsCountAfterComma {number} count of digits after the comma. E.g. 8 for bitcoin\n * @param maxValue {number|null} max possible value for cryptocurrency. Null means that the currency has no max possible value\n * @param atomName {string} name of the coin's atomic value. Like 'satoshi' for bitcoin\n * @param mainnet {Network} main network for this coin\n * @param testnet {Network} test network for this coin\n * @param minConfirmations {number} min confirmations count to treat the coin's transaction confirmed\n * @param payableEntityStringForFeeRate {string|null} the payable fee entity like byte for bitcoin or gas for ether if present\n * @param feeOptionsTimeStringsSortedDesc {string[]} array of 4 strings for fee options when sending coins. Should be sorted from the highest time to the smallest\n * @param feeRatesExpirationTimeMs {number} number of milliseconds to treat the fee rates as expired\n * @param blockchain {Blockchain} blockchain object\n * @param [protocol] {Protocol|null} token/coin protocol if relevant\n * @param [tokenAddress] {string|null} address of contract of this token (if the coin is token)\n * @param [doesUseLowerCaseAddresses] {boolean} flag to clarify whether we can use lower case addresses to ensure more robust comparisons\n * @param [doesUseOutputs=false] {boolean} true if this coin uses inputs/outputs concept and false if it uses just balances\n */\n constructor(\n latinName,\n ticker,\n tickerPrintable,\n digitsCountAfterComma,\n maxValue,\n atomName,\n mainnet,\n testnet,\n minConfirmations,\n payableEntityStringForFeeRate,\n feeOptionsTimeStringsSortedDesc,\n feeRatesExpirationTimeMs,\n blockchain,\n protocol = null,\n tokenAddress = null,\n doesUseLowerCaseAddresses = true,\n doesUseOutputs = false\n ) {\n this.latinName = latinName;\n this.ticker = ticker;\n this.tickerPrintable = tickerPrintable;\n this.digits = digitsCountAfterComma;\n this.maxValue = maxValue;\n this.atomName = atomName;\n this.mainnet = mainnet;\n this.testnet = testnet;\n this.minConfirmations = minConfirmations;\n this.payableEntityStringForFeeRate = payableEntityStringForFeeRate;\n this.feeOptionsTimeStringsSortedDesc = feeOptionsTimeStringsSortedDesc;\n this.feeRatesExpirationTimeMs = feeRatesExpirationTimeMs;\n this.protocol = protocol;\n this.blockchain = blockchain;\n // TODO: [bug, critical] use testnet property for testnet contract address as it blocks the app work in testnets\n this.tokenAddress = tokenAddress;\n this.feeCoin = this;\n this._significantDigits = 8;\n this.doesUseLowerCaseAddresses = doesUseLowerCaseAddresses;\n this.doesUseOutputs = doesUseOutputs;\n }\n\n /**\n * Sets fee coin\n *\n * @param feeCoin {Coin} some tokens use another coin to charge transaction fee as they work on top of some external\n * blockchain. So pass here the coin the token uses for fee charging. Like for ERC20 token the fee coin is ETH.\n * By default, the creating coin will be set as a value for this field.\n */\n setFeeCoin(feeCoin) {\n this.feeCoin = feeCoin;\n }\n\n /**\n * Checks whether this coin uses another coin (blockchain) to charge fee for transactions (means works on base of\n * some external blockchain).\n *\n * @return {boolean} true if this coin uses external blockchain to perform transactions and charge fee\n */\n doesUseDifferentCoinFee() {\n return this.feeCoin !== this;\n }\n\n /**\n * Converts the given atoms string/number to string representing the same amount in coin itself - floating point number\n *\n * @param atoms {string} atoms positive integer amount\n * @return {string} coin amount floating point number as a string\n */\n atomsToCoinAmount(atoms) {\n throw new Error(\"Not implemented in base Coin\");\n }\n\n /**\n * Converts the given coins amount string/number to string representing the same amount in coin atoms - integer number\n *\n * @param coinsAmount {string} coins positive floating point amount\n * @return {string} coin atoms amount integer number as a string\n */\n coinAmountToAtoms(coinsAmount) {\n throw new Error(\"Not implemented in base Coin\");\n }\n\n /**\n * Composes URL to view the tx with given id in the external blockchain explorer\n *\n * @param txId {string} id of transaction\n * @return {string} URL string\n */\n composeUrlToTransactionExplorer(txId) {\n throw new Error(\"Not implemented in base Coin\");\n }\n\n /**\n * Most of the cryptocurrencies has specific fee rate or fee price metric. This value usually has specific measure\n * like satoshi/byte or gWei/gas. This function adds the described denomination string to the given amount\n * as a suffix and returns the result string ready to be show to a user.\n *\n * @param coinAtomsString {string} coin atoms positive integer amount\n * @return {string} string of coin amount and fee rate units\n */\n coinAtomsFeeRateToCommonlyUsedAmountFormatWithDenominationString(\n coinAtomsString\n ) {\n throw new Error(\"Not implemented in base Coin\");\n }\n\n /**\n * Check whether this coin support transaction prioritisation during the sending process.\n *\n * @return {boolean} true if support transaction prioritisation and false otherwise\n */\n doesSupportTransactionPrioritisation() {\n return Array.isArray(this.feeOptionsTimeStringsSortedDesc);\n }\n\n tickerAndProtocol() {\n try {\n return `${this.tickerPrintable}${\n this.protocol ? \" \" + this.protocol.protocol ?? \"\" : \"\"\n }`;\n } catch (e) {\n improveAndRethrow(e, \"tickerAndProtocol\");\n }\n }\n}\n","import { improveAndRethrow } from \"../errorUtils.js\";\nimport { Logger } from \"./logging/logger.js\";\n\n/**\n * TODO: [tests, critical] Ued by payments logic\n *\n * Simple cache based on Map.\n * Provides ability to store event-dependent data.\n */\nexport class Cache {\n /**\n * @param eventBus {EventBus} EventBus.js lib instance\n * @param [noSessionEvents=[]] {string[]} array of events that will be treated as \"no session\"\n */\n constructor(eventBus, noSessionEvents = []) {\n this._cache = new Map();\n this._eventDependentDataKeys = [];\n this._noSessionEvents = noSessionEvents;\n this._eventBus = eventBus;\n }\n\n _setupIntervalClearingExpired() {\n let cleaner = function () {\n try {\n for (const key of this._cache.keys()) {\n const item = this._cache.get(key);\n if (\n item &&\n item.ttlMs &&\n item.addedMsTimestamp + item.ttlMs < Date.now()\n ) {\n this._cache.delete(key);\n }\n }\n } catch (e) {\n improveAndRethrow(e, \"_intervalClearingExpiredCache\");\n }\n };\n\n cleaner = cleaner.bind(this);\n\n setInterval(cleaner, 1000);\n }\n\n /**\n * Puts data to cache\n *\n * @param key {string} string key for this data\n * @param data {any} any data\n * @param ttlMs {number|null} optional milliseconds number for cache lifetime\n * @throws {Error} when the data is null/undefined because these values for data are reserved for internal logic\n */\n put(key, data, ttlMs = null) {\n try {\n if (typeof key !== \"string\" || data == null) {\n throw new Error(\n `Trying to cache corrupted data: ${key}, ${data}`\n );\n }\n this._cache.set(key, {\n data: data,\n addedMsTimestamp: Date.now(),\n ttlMs: ttlMs,\n });\n } catch (e) {\n improveAndRethrow(e, \"cache.put\");\n }\n }\n\n putSessionDependentData(key, data, ttlMs = null) {\n this._putEventDependentData(key, data, this._noSessionEvents, ttlMs);\n }\n\n /**\n * Puts data to cache and adds its key to list of keys that should be related by each of given events.\n *\n * @param key {string} key for cache\n * @param data {any} any caching data\n * @param events {string[]} list of events forcing putting data to be removed when triggered\n * @param ttlMs {|null} optional time to live for this cache item\n * @throws {Error} when the data is null/undefined because these values for data are reserved for internal logic\n */\n putEventDependentData(key, data, events, ttlMs = null) {\n this._putEventDependentData(key, data, events, ttlMs);\n }\n\n _putEventDependentData(key, data, events, ttlMs = null) {\n try {\n if (typeof key !== \"string\" || data == null) {\n throw new Error(\n `Trying to cache corrupted data: ${key}, ${data}`\n );\n }\n this._cache.set(key, {\n data: data,\n addedMsTimestamp: Date.now(),\n ttlMs: ttlMs,\n });\n for (let event of events) {\n const eventAndKeys = this._eventDependentDataKeys.find(\n (item) => item[0] === event\n );\n if (eventAndKeys) {\n eventAndKeys.push(key);\n } else {\n this._eventDependentDataKeys.push([event, key]);\n this._eventBus.addEventListener(event, () => {\n try {\n const keys = this._eventDependentDataKeys.find(\n (item) => item[0] === event\n );\n (keys ?? [event])\n .slice(1)\n .forEach((key) => this._cache.delete(key));\n } catch (e) {\n Logger.logError(\n e,\n \"cache.removing-for-event\",\n `Event: ${event}`\n );\n }\n });\n }\n }\n } catch (e) {\n improveAndRethrow(e, \"cache.putEventDependentData\");\n }\n }\n\n // TODO: [feature, low] add clearing of expired data by schedule\n get(key) {\n try {\n const item = this._cache.get(key);\n if (item) {\n if (\n item.addedMsTimestamp &&\n item.ttlMs !== null &&\n item.addedMsTimestamp + item.ttlMs < Date.now()\n ) {\n this._cache.delete(key);\n return null;\n } else {\n return item.data;\n }\n }\n\n return null;\n } catch (e) {\n improveAndRethrow(e, \"cache.get\");\n }\n }\n\n getLastUpdateTimestamp(key) {\n return this._cache.get(key)?.addedMsTimestamp ?? null;\n }\n\n /**\n * Updates the timestamp of the last update for specified key to the provided value.\n * Can be useful when TTL is controlled outside this class.\n *\n * @param key {string}\n * @param timestamp {number}\n * @return {boolean}\n */\n setLastUpdateTimestamp(key, timestamp) {\n try {\n const item = this._cache.get(key);\n if (item != null && typeof timestamp === \"number\") {\n this._cache.set(key, { ...item, addedTimestampMs: timestamp });\n return true;\n }\n return false;\n } catch (e) {\n improveAndRethrow(\"cache.setLastUpdateTimestamp\");\n }\n }\n\n invalidate(key) {\n try {\n this._cache.delete(key);\n } catch (e) {\n improveAndRethrow(e, \"cache.invalidate\");\n }\n }\n\n invalidateContaining(keyPart) {\n if (typeof keyPart !== \"string\" || keyPart === \"\") {\n throw new Error(\n \"Trying to invalidate containing wrong key or empty key: \" +\n keyPart\n );\n }\n\n try {\n const matchedKeys = Array.from(this._cache.keys()).filter(\n (key) =>\n typeof key === \"string\" && new RegExp(keyPart).test(key)\n );\n for (let i = 0; i < matchedKeys.length; ++i) {\n this._cache.delete(matchedKeys[i]);\n }\n } catch (e) {\n improveAndRethrow(e, \"invalidateContaining\");\n }\n }\n\n clear() {\n this._cache.clear();\n this._sessionDependentDataKeys = [];\n }\n\n /**\n * Saves given data string to persistent cache.\n * NOTE: we have no TTL here, implement if needed.\n *\n * WARNING: use only when really needed and don't store big data as we use localStorage\n * under the hood and its capacity is restricted.\n *\n * @param uniqueKey {string} the key should be unique\n * @param data {string} only string data allowed\n */\n putClientPersistentData(uniqueKey, data) {\n try {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(uniqueKey, data);\n }\n } catch (e) {\n improveAndRethrow(e, \"cache.putClientPersistentData\");\n }\n }\n\n /**\n * @param uniqueKey {string}\n * @return {string|null}\n */\n getClientPersistentData(uniqueKey) {\n try {\n if (typeof window !== \"undefined\") {\n return localStorage.getItem(uniqueKey);\n }\n return null;\n } catch (e) {\n improveAndRethrow(e, \"cache.getClientPersistentData\");\n }\n }\n\n /**\n * Only makes effect if the TTL is not null.\n *\n * @param key {string}\n * @param ttlMs {number|null}\n */\n markCacheItemAsExpiredButDontRemove(key, ttlMs = null) {\n try {\n const item = this._cache.get(key);\n const ttlFinalMs = ttlMs ?? item?.ttlMs;\n if (item != null && ttlFinalMs) {\n this._cache.set(key, {\n data: item.data,\n addedMsTimestamp: Date.now() - ttlFinalMs - 1,\n ttlMs: ttlFinalMs,\n });\n }\n } catch (e) {\n improveAndRethrow(e, \"cache.markCacheItemAsExpiredButDontRemove\");\n }\n }\n}\n","import axios from \"axios\";\n\nimport { improveAndRethrow } from \"../errorUtils.js\";\n\nexport class EmailsApi {\n static serverEndpointEntity = \"emails\";\n\n static async sendEmail(subject, body) {\n try {\n const url = `${\n window.location.protocol + \"//\" + window.location.host\n }/api/v1/${this.serverEndpointEntity}`;\n await axios.post(url, { subject, body });\n } catch (e) {\n improveAndRethrow(e, \"sendEmail\", subject + body);\n }\n }\n}\n","export class ExistingSwap {\n /**\n * @param swapId {string}\n * @param status {SwapProvider.SWAP_STATUSES}\n * @param createdAt {number}\n * @param expiresAt {number}\n * @param confirmations {number}\n * @param rate {string}\n * @param refundAddress {string}\n * @param fromCoin {Coin}\n * @param fromAmount {string}\n * @param fromTransactionId {string}\n * @param toCoin {Coin}\n * @param toAmount {string}\n * @param toTransactionId {string|null}\n * @param toAddress {string}\n * @param partner {string}\n */\n constructor(\n swapId,\n status,\n createdAt,\n expiresAt,\n confirmations,\n rate,\n refundAddress,\n payToAddress,\n fromCoin,\n fromAmount,\n fromTransactionId,\n fromTransactionLink,\n toCoin,\n toAmount,\n toTransactionId,\n toTransactionLink,\n toAddress, // TODO: [refactoring, moderate] toAddress is not quite clear. How about recipientAddress? task_id=0815a111c99543b78d374217eadbde4f\n partner\n ) {\n this.swapId = swapId;\n this.status = status;\n this.createdAt = createdAt;\n this.expiresAt = expiresAt;\n this.confirmations = confirmations;\n this.rate = rate;\n this.refundAddress = refundAddress;\n this.payToAddress = payToAddress;\n this.fromCoin = fromCoin;\n this.fromTransactionId = fromTransactionId;\n this.fromAmount = fromAmount;\n this.fromTransactionLink = fromTransactionLink;\n this.toCoin = toCoin;\n this.toTransactionId = toTransactionId;\n this.toTransactionLink = toTransactionLink;\n this.toAmount = toAmount;\n this.toAddress = toAddress;\n this.partner = partner;\n }\n}\n","import { ExistingSwap } from \"./existingSwap.js\";\n\nexport class ExistingSwapWithFiatData extends ExistingSwap {\n /**\n * @param swapId {string}\n * @param status {SwapProvider.SWAP_STATUSES}\n * @param createdAt {number}\n * @param expiresAt {number}\n * @param confirmations {number}\n * @param rate {string}\n * @param refundAddress {string}\n * @param fromCoin {Coin}\n * @param fromAmount {string}\n * @param fromTransactionId {string}\n * @param toCoin {Coin}\n * @param toAmount {string}\n * @param toTransactionId {string|null}\n * @param toAddress {string}\n * @param partner {string}\n * @param fromAmountFiat {number}\n * @param toAmountFiat {number}\n * @param fiatCurrencyCode {string}\n * @param fiatCurrencyDecimals {number}\n */\n constructor(\n swapId,\n status,\n createdAt,\n expiresAt,\n confirmations,\n rate,\n refundAddress,\n payToAddress,\n fromCoin,\n fromAmount,\n fromTransactionId,\n fromTransactionLink,\n toCoin,\n toAmount,\n toTransactionId,\n toTransactionLink,\n toAddress,\n partner,\n fromAmountFiat,\n toAmountFiat,\n fiatCurrencyCode,\n fiatCurrencyDecimals\n ) {\n super(\n swapId,\n status,\n createdAt,\n expiresAt,\n confirmations,\n rate,\n refundAddress,\n payToAddress,\n fromCoin,\n fromAmount,\n fromTransactionId,\n fromTransactionLink,\n toCoin,\n toAmount,\n toTransactionId,\n toTransactionLink,\n toAddress,\n partner\n );\n this.fromAmountFiat = fromAmountFiat;\n this.toAmountFiat = toAmountFiat;\n this.fiatCurrencyCode = fiatCurrencyCode;\n this.fiatCurrencyDecimals = fiatCurrencyDecimals;\n }\n\n /**\n * @param existingSwap {ExistingSwap}\n * @param fromAmountFiat {number}\n * @param toAmountFiat {number}\n * @param fiatCurrencyCode {string}\n * @param fiatCurrencyDecimals {number}\n * @return {ExistingSwapWithFiatData}\n */\n static fromExistingSwap(\n existingSwap,\n fromAmountFiat,\n toAmountFiat,\n fiatCurrencyCode,\n fiatCurrencyDecimals\n ) {\n return new ExistingSwapWithFiatData(\n existingSwap.swapId,\n existingSwap.status,\n existingSwap.createdAt,\n existingSwap.expiresAt,\n existingSwap.confirmations,\n existingSwap.rate,\n existingSwap.refundAddress,\n existingSwap.payToAddress,\n existingSwap.fromCoin,\n existingSwap.fromAmount,\n existingSwap.fromTransactionId,\n existingSwap.fromTransactionLink,\n existingSwap.toCoin,\n existingSwap.toAmount,\n existingSwap.toTransactionId,\n existingSwap.toTransactionLink,\n existingSwap.toAddress,\n existingSwap.partner,\n fromAmountFiat,\n toAmountFiat,\n fiatCurrencyCode,\n fiatCurrencyDecimals\n );\n }\n}\n","export class BaseSwapCreationInfo {\n /**\n * @param fromCoin {Coin}\n * @param toCoin {Coin}\n * @param fromAmountCoins {string}\n * @param toAmountCoins {string}\n * @param rate {string}\n * @param rawSwapData {Object}\n * @param min {string}\n * @param fiatMin {number}\n * @param max {string}\n * @param fiatMax {number}\n * @param durationMinutesRange {string}\n */\n constructor(\n fromCoin,\n toCoin,\n fromAmountCoins,\n toAmountCoins,\n rate,\n rawSwapData,\n min,\n fiatMin,\n max,\n fiatMax,\n durationMinutesRange\n ) {\n this.fromCoin = fromCoin;\n this.toCoin = toCoin;\n this.fromAmountCoins = fromAmountCoins;\n this.toAmountCoins = toAmountCoins;\n this.rate = rate;\n this.rawSwapData = rawSwapData;\n this.min = min;\n this.fiatMin = fiatMin;\n this.max = max;\n this.fiatMax = fiatMax;\n this.durationMinutesRange = durationMinutesRange;\n }\n}\n","export class SwapProvider {\n static COMMON_ERRORS = {\n REQUESTS_LIMIT_EXCEEDED: \"requestsLimitExceeded\",\n };\n\n static NO_SWAPS_REASONS = {\n TOO_LOW: \"tooLow\",\n TOO_HIGH: \"tooHigh\",\n NOT_SUPPORTED: \"notSupported\",\n };\n\n static CREATION_FAIL_REASONS = {\n RETRIABLE_FAIL: \"retriableFail\",\n };\n\n static SWAP_STATUSES = {\n WAITING_FOR_PAYMENT: \"waiting_for_payment\", // public +\n CONFIRMING: \"confirming\",\n PAYMENT_RECEIVED: \"payment_received\", // public +\n EXCHANGING: \"exchanging\", // session full // public +\n COMPLETED: \"completed\", // session full // public +\n REFUNDED: \"refunded\", // session full // public +\n EXPIRED: \"expired\", // public +\n FAILED: \"failed\", // public +\n };\n\n /**\n * @return {Promise<void>}\n */\n async initialize() {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * @return {number} milliseconds TTL\n */\n getSwapCreationInfoTtlMs() {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * Retrieves all deposit currencies supported by this swap provider.\n * Returns one of SwapProvider.COMMON_ERRORS in case of processable fail.\n *\n * @return {Promise<({ result: true, coins: Coin[] }|{ result: false, reason: string })>}\n */\n async getDepositCurrencies() {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * Retrieves all withdrawable currencies supported by this swap provider.\n * Returns one of SwapProvider.COMMON_ERRORS in case of processable fail.\n *\n * @param [exceptCurrency=null] {Coin|null}\n * @return {Promise<({ result: true, coins: Coin[] }|{ result: false, reason: string })>}\n */\n async getWithdrawalCurrencies(exceptCurrency = null) {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * Retrieves URL for coin icon or fallback if not found.\n *\n * @param coin {Coin|string} coin or rabbit-format of coin ticker\n * @return {string}\n */\n getIconUrl(coin) {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * Retrieves coin to USDT rate.\n *\n * @param coin {Coin}\n * @return {{result: true, rate: string}|{result: false}}\n */\n async getCoinToUSDTRate(coin) {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * Retrieves estimation for swapping giving coins amount.\n * null min or max signals there is no corresponding limitation. undefined means that the limits were not retrieved.\n * For fail result on of SwapProvider.NO_SWAPS_REASONS or SwapProvider.COMMON_ERRORS reasons will be returned.\n *\n * @param fromCoin {Coin}\n * @param toCoin {Coin}\n * @param amountCoins {string}\n * @param [fromCoinToUsdRate=null] pass if you want to increase the min amount returned\n * by provider with some fixed \"insurance\" amount to cover min amount fluctuations.\n * @return {Promise<({\n * result: false,\n * reason: string,\n * smallestMin: (string|null|undefined),\n * greatestMax: (string|null|undefined),\n * }|{\n * result: true,\n * min: (string|null),\n * max: (string|null),\n * smallestMin: (string|null),\n * greatestMax: (string|null),\n * rate: (string|null),\n * durationMinutesRange: string,\n * [rawSwapData]: Object\n * })>}\n */\n async getSwapInfo(fromCoin, toCoin, amountCoins, fromCoinToUsdRate = null) {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * For fail result we return one of SwapProvider.CREATION_FAIL_REASONS or SwapProvider.COMMON_ERRORS.\n *\n * @param fromCoin {Coin}\n * @param toCoin {Coin}\n * @param amount {string}\n * @param toAddress {string}\n * @param refundAddress {string}\n * @param rawSwapData {Object|null}\n * @param clientIpAddress {string}\n * @return {Promise<({\n * result: true,\n * swapId: string,\n * fromCoin: Coin,\n * fromAmount: string,\n * fromAddress: string,\n * toCoin: Coin,\n * toAmount: string,\n * toAddress: string,\n * rate: string\n * }|{\n * result: false,\n * reason: string,\n * partner: string\n * })>}\n */\n async createSwap(fromCoin, toCoin, amount, toAddress, refundAddress, rawSwapData = null, clientIpAddress) {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * Retrieves details and status for swaps by given ids.\n * If some swap is not found by id then there is no item in return list.\n *\n * @param swapIds {string[]}\n * @return {Promise<{result: false, reason: string}|{result:true, swaps: ExistingSwap[]}>}\n */\n async getExistingSwapsDetailsAndStatus(swapIds) {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * @param ticker {string}\n * @return {Coin|null}\n */\n getCoinByTickerIfPresent(ticker) {\n throw new Error(\"Not implemented in base\");\n }\n\n /**\n * @param asset {Coin}\n * @param address {string}\n * @return {boolean}\n */\n isAddressValidForAsset(asset, address) {\n throw new Error(\"Not implemented in base\");\n }\n}\n","import axios from \"axios\";\nimport { BigNumber } from \"bignumber.js\";\n\nimport { AmountUtils } from \"../../common/amountUtils.js\";\nimport { improveAndRethrow } from \"../../common/errorUtils.js\";\nimport { SwapProvider } from \"./swapProvider.js\";\nimport { ExistingSwap } from \"../models/existingSwap.js\";\nimport { Coin } from \"../../common/models/coin.js\";\nimport { Protocol } from \"../../common/models/protocol.js\";\nimport { safeStringify } from \"../../common/utils/safeStringify.js\";\nimport { Logger } from \"../../common/utils/logging/logger.js\";\n\nexport const BANNED_PARTNERS = [\"stealthex\", \"changee\", \"coincraddle\"];\nconst FALLBACK_ICON_URL = \"https://rabbit.io/asset-icons/fallback.svg\";\n\nexport class SwapspaceSwapProvider extends SwapProvider {\n constructor(\n apiKeysProxyUrl,\n cache,\n customCoinBuilder = (coin, network) => null,\n useRestrictedCoinsSet = true\n ) {\n super();\n this._supportedCoins = [];\n this._URL = `${apiKeysProxyUrl}/swapspace`;\n this._maxRateDigits = 20;\n this.useRestrictedCoinsSet = useRestrictedCoinsSet;\n this._customCoinBuilder = customCoinBuilder;\n this._cache = cache;\n }\n\n getSwapCreationInfoTtlMs() {\n /* Actually 2 minutes and only relevant for some partners, but we use it\n * (and even a bit smaller value) for better consistency */\n return 110000;\n }\n\n async getDepositCurrencies() {\n const loggerSource = \"getDepositCurrencies\";\n try {\n await this._fetchSupportedCurrenciesIfNeeded();\n Logger.log(\n `We have ${this._supportedCoins?.length} supported coins, getting depositable`,\n loggerSource\n );\n return {\n result: true,\n coins: this._supportedCoins\n .filter((item) => item.deposit)\n .map((item) => item.coin),\n };\n } catch (e) {\n if (e?.response?.status === 429) {\n return {\n result: false,\n reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED,\n };\n }\n improveAndRethrow(e, loggerSource);\n }\n }\n\n async getWithdrawalCurrencies(exceptCurrency = null) {\n const loggerSource = \"getWithdrawalCurrencies\";\n try {\n await this._fetchSupportedCurrenciesIfNeeded();\n Logger.log(\n `We have ${this._supportedCoins?.length} supported coins, getting withdrawable`,\n loggerSource\n );\n return {\n result: true,\n coins: this._supportedCoins\n .filter(\n (item) =>\n item.withdrawal &&\n (!exceptCurrency ||\n item.coin?.ticker !== exceptCurrency?.ticker)\n )\n .map((item) => item.coin),\n };\n } catch (e) {\n if (e?.response?.status === 429) {\n return {\n result: false,\n reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED,\n };\n }\n improveAndRethrow(e, loggerSource);\n }\n }\n\n async initialize() {\n await this._fetchSupportedCurrenciesIfNeeded();\n }\n\n getIconUrl(coinOrTicker) {\n const loggerSource = \"getIconUrl\";\n try {\n let coin = coinOrTicker;\n if (!(coinOrTicker instanceof Coin)) {\n coin = this._supportedCoins.find(\n (i) => i.coin.ticker === coinOrTicker\n )?.coin;\n }\n return (\n this._supportedCoins.find(\n (item) => item.coin?.ticker === coin?.ticker\n )?.iconURL ?? FALLBACK_ICON_URL\n );\n } catch (e) {\n improveAndRethrow(e, loggerSource);\n }\n }\n\n async _fetchSupportedCurrenciesIfNeeded() {\n const loggerSource = \"_fetchSupportedCurrenciesIfNeeded\";\n try {\n if (!this._supportedCoins?.length) {\n const rawResponse = await axios.get(\n `${this._URL}/api/v2/currencies`\n );\n Logger.log(\n `Retrieved ${rawResponse?.data?.length} currencies`,\n loggerSource\n );\n this._supportedCoins = (rawResponse?.data ?? [])\n .map((item) => {\n let coin = this._customCoinBuilder(\n item.code,\n item.network\n );\n if (!coin && !this.useRestrictedCoinsSet) {\n /** Building coin object for coin that isn't supported OOB in Rabbit.\n * We are doing this way to be able to use extended coins set for swaps.\n * These temporary built coins are only for in-swap use, and we omit some usual\n * coin details here.\n * Ideally we should add some new abstractions e.g. BaseCoin:\n * Coin will extend BaseCoin, SwapCoin will extend BaseCoin etc.\n * But for now it is reasonable to use this simpler approach.\n */\n const code = item.code.toUpperCase();\n const network = item.network.toUpperCase();\n const ticker = `${code}${\n code === network ? \"\" : network\n }`;\n const defaultDecimalPlacesForCoinNotSupportedOOB = 8;\n const defaultMinConfirmationsForCoinNotSupportedOOB = 1;\n coin = new Coin(\n item.name,\n ticker,\n code,\n defaultDecimalPlacesForCoinNotSupportedOOB,\n null,\n \"\",\n null,\n null,\n defaultMinConfirmationsForCoinNotSupportedOOB,\n null,\n [],\n 60000,\n null, // We cannot recognize blockchain from swapspace data\n code !== network ? new Protocol(network) : null, // TODO: [dev] maybe we should recognize standard protocols?\n item.contractAddress || null,\n false\n );\n }\n if (coin) {\n return {\n coin: coin,\n code: item.code,\n network: item.network,\n extraId: item.extraIdName,\n isPopular: !!item?.popular,\n iconURL: item.icon\n ? `https://storage.swapspace.co${item.icon}`\n : FALLBACK_ICON_URL,\n deposit: item.deposit ?? false,\n withdrawal: item.withdrawal ?? false,\n validationRegexp: item.validationRegexp ?? null,\n };\n }\n\n return [];\n })\n .flat();\n this._putPopularCoinsFirst();\n }\n } catch (e) {\n improveAndRethrow(e, loggerSource);\n }\n }\n\n /**\n * This method sort internal list putting popular (as swapspace thinks) coins to the top.\n * 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.\n * @private\n */\n _putPopularCoinsFirst() {\n this._supportedCoins.sort((i1, i2) => {\n if (i1.isPopular && !i2.isPopular) return -1;\n if (i2.isPopular && !i1.isPopular) return 1;\n return i1.coin.ticker > i2.coin.ticker\n ? 1\n : i1.coin.ticker < i2.coin.ticker\n ? -1\n : 0;\n });\n }\n\n async getCoinToUSDTRate(coin) {\n const loggerSource = \"getCoinToUSDTRate\";\n try {\n if (!coin) return null;\n\n await this._fetchSupportedCurrenciesIfNeeded();\n\n // Using USDT TRC20 as usually fee in this network is smaller than ERC20 and this network is widely used for USDT\n const usdtTrc20 = this._supportedCoins.find(\n (i) => i.coin.ticker === \"USDTTRC20\"\n )?.coin;\n if (!usdtTrc20) {\n return { result: false };\n }\n const cached = this._cache.get(\n \"swapspace_usdt_rate_\" + coin.ticker\n );\n if (cached != null) {\n return {\n result: true,\n rate: cached,\n };\n }\n\n Logger.log(\n \"Loading USDT->coin rate as not found in cache:\",\n coin?.ticker\n );\n const result = await this.getSwapInfo(usdtTrc20, coin, \"5000\");\n if (!result.result) {\n return { result: false };\n }\n\n // This calculation is not precise as we cannot recognize the actual fee and network fee. Just approximate.\n const standardSwapspaceFeeMultiplier = 1.002; // usually 0.2%\n const rate = BigNumber(1)\n .div(\n BigNumber(result.rate).times(standardSwapspaceFeeMultiplier)\n )\n .toString();\n this._cache.put(\n \"swapspace_usdt_rate_\" + coin.ticker,\n rate,\n 15 * 60000 // 15 minutes\n );\n return {\n result: true,\n rate: rate,\n };\n } catch (e) {\n improveAndRethrow(e, loggerSource);\n }\n }\n\n getCoinByTickerIfPresent(ticker) {\n try {\n const item = this._supportedCoins.find(\n (i) => i.coin.ticker === ticker\n );\n return item?.coin ?? null;\n } catch (e) {\n improveAndRethrow(e, \"getCoinByTickerIfPresent\");\n }\n }\n\n async getSwapInfo(fromCoin, toCoin, amountCoins, fromCoinToUsdRate = null) {\n const loggerSource = \"getSwapInfo\";\n try {\n if (\n !(fromCoin instanceof Coin) ||\n !(toCoin instanceof Coin) ||\n typeof amountCoins !== \"string\" ||\n BigNumber(amountCoins).lt(\"0\")\n ) {\n throw new Error(\n `Wrong input params: ${amountCoins} ${fromCoin.ticker} -> ${toCoin.ticker}` +\n (fromCoin instanceof Coin) +\n (toCoin instanceof Coin)\n );\n }\n const fromCoinSwapspaceDetails = this._supportedCoins.find(\n (i) => i.coin?.ticker === fromCoin?.ticker\n );\n const toCoinSwapspaceDetails = this._supportedCoins.find(\n (i) => i.coin?.ticker === toCoin?.ticker\n );\n if (!fromCoinSwapspaceDetails || !toCoinSwapspaceDetails) {\n throw new Error(\n \"Failed to find swapspace coin details for: \" +\n fromCoin.ticker +\n \" -> \" +\n toCoin.ticker\n );\n }\n /* Here we use not documented parameter 'estimated=false'. This parameter controls whether we want to use\n * cached rate values stored in swapspace cache. Their support says they store at most for 30 sec.\n * But we are better off using the most actual rates.\n */\n const response = await axios.get(\n `${this._URL}/api/v2/amounts?fromCurrency=${fromCoinSwapspaceDetails.code}&fromNetwork=${fromCoinSwapspaceDetails.network}&toNetwork=${toCoinSwapspaceDetails.network}&toCurrency=${toCoinSwapspaceDetails.code}&amount=${amountCoins}&float=true&estimated=false`\n );\n Logger.log(\n `Retrieved ${response?.data?.length} options`,\n loggerSource\n );\n const options = Array.isArray(response.data) ? response.data : [];\n const exchangesSupportingThePair = options.filter(\n (exchange) =>\n exchange?.exists &&\n !BANNED_PARTNERS.find(\n (bannedPartner) => bannedPartner === exchange?.partner\n ) &&\n exchange?.fixed === false &&\n (exchange.min === 0 ||\n exchange.max === 0 ||\n exchange.max > exchange.min ||\n ((typeof exchange.min !== \"number\" ||\n typeof exchange.max !== \"number\") &&\n exchange.toAmount > 0))\n );\n Logger.log(\n `${exchangesSupportingThePair?.length} of them have exist=true`,\n loggerSource\n );\n if (!exchangesSupportingThePair.length) {\n return {\n result: false,\n reason: SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED,\n };\n }\n const availableExchanges = exchangesSupportingThePair.filter(\n (exchange) =>\n typeof exchange?.toAmount === \"number\" &&\n exchange.toAmount > 0\n );\n Logger.log(\n `Available (having amountTo): ${safeStringify(\n availableExchanges\n )}`,\n loggerSource\n );\n // min=0 or max=0 means there is no limit for the partner\n let smallestMin = null;\n if (\n exchangesSupportingThePair.find((ex) =>\n BigNumber(ex.min).isZero()\n ) == null\n ) {\n smallestMin = exchangesSupportingThePair.reduce((prev, cur) => {\n if (\n typeof cur.min === \"number\" &&\n (prev === null || BigNumber(cur.min).lt(prev))\n )\n return BigNumber(cur.min);\n return prev;\n }, null);\n }\n let greatestMax = null;\n if (\n exchangesSupportingThePair.find((ex) =>\n BigNumber(ex.max).isZero()\n ) == null\n ) {\n greatestMax = exchangesSupportingThePair.reduce((prev, cur) => {\n if (\n typeof cur.max === \"number\" &&\n (prev === null || BigNumber(cur.max).gt(prev))\n )\n return BigNumber(cur.max);\n return prev;\n }, null);\n }\n let extraCoinsToFitMinMax = \"0\";\n if (\n typeof fromCoinToUsdRate === \"string\" &&\n BigNumber(fromCoinToUsdRate).gt(\"0\")\n ) {\n const extraUsdToFitMinMax = BigNumber(\"1\"); // We correct the limits as the exact limit can fluctuate and cause failed swap creation\n extraCoinsToFitMinMax = AmountUtils.trim(\n extraUsdToFitMinMax.div(fromCoinToUsdRate),\n fromCoin.digits\n );\n }\n if (smallestMin instanceof BigNumber) {\n smallestMin = AmountUtils.trim(\n smallestMin.plus(extraCoinsToFitMinMax),\n fromCoin.digits\n );\n }\n if (greatestMax instanceof BigNumber) {\n if (greatestMax > extraCoinsToFitMinMax) {\n greatestMax = AmountUtils.trim(\n greatestMax.minus(extraCoinsToFitMinMax),\n fromCoin.digits\n );\n } else {\n greatestMax = \"0\";\n }\n }\n\n if (availableExchanges.length) {\n const sorted = availableExchanges.sort(\n (op1, op2) => op2.toAmount - op1.toAmount\n );\n const bestOpt = sorted[0];\n Logger.log(\n `Returning first option after sorting: ${safeStringify(\n bestOpt\n )}`,\n loggerSource\n );\n let max = null;\n let min = null;\n if (extraCoinsToFitMinMax != null) {\n if (typeof bestOpt.max === \"number\" && bestOpt.max !== 0) {\n max = BigNumber(bestOpt.max).minus(\n extraCoinsToFitMinMax\n );\n max = AmountUtils.trim(\n max.lt(0) ? \"0\" : max,\n fromCoin.digits\n );\n }\n if (typeof bestOpt.min === \"number\" && bestOpt.min !== 0) {\n min = AmountUtils.trim(\n BigNumber(bestOpt.min).plus(extraCoinsToFitMinMax),\n fromCoin.digits\n );\n }\n }\n\n const rate =\n bestOpt.toAmount && bestOpt.fromAmount\n ? BigNumber(bestOpt.toAmount).div(bestOpt.fromAmount)\n : null;\n return {\n result: true,\n min: min,\n max: max,\n smallestMin: smallestMin,\n greatestMax: greatestMax,\n rate:\n rate != null\n ? AmountUtils.trim(rate, this._maxRateDigits)\n : null,\n durationMinutesRange: bestOpt.duration ?? null,\n rawSwapData: bestOpt,\n };\n }\n const result = {\n result: false,\n reason:\n smallestMin && BigNumber(amountCoins).lt(smallestMin)\n ? SwapProvider.NO_SWAPS_REASONS.TOO_LOW\n : greatestMax && BigNumber(amountCoins).gt(greatestMax)\n ? SwapProvider.NO_SWAPS_REASONS.TOO_HIGH\n : SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED,\n smallestMin: smallestMin,\n greatestMax: greatestMax,\n };\n Logger.log(\n `Returning result ${safeStringify(result)}`,\n loggerSource\n );\n return result;\n } catch (e) {\n if (e?.response?.status === 429) {\n return {\n result: false,\n reason: SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED,\n };\n }\n Logger.log(\n `Internal swapspace/rabbit error when getting swap options ${safeStringify(\n e\n )}`,\n loggerSource\n );\n improveAndRethrow(e, loggerSource);\n }\n }\n\n async createSwap(\n fromCoin,\n toCoin,\n amount,\n toAddress,\n refundAddress,\n rawSwapData,\n clientIpAddress\n ) {\n const loggerSource = \"createSwap\";\n const partner = rawSwapData?.partner;\n try {\n if (\n !(fromCoin instanceof Coin) ||\n !(toCoin instanceof Coin) ||\n typeof amount !== \"string\" ||\n typeof toAddress !== \"string\" ||\n typeof refundAddress !== \"string\"\n ) {\n throw new Error(\n `Invalid input: ${fromCoin} ${toCoin} ${amount} ${toAddress} ${refundAddress}`\n );\n }\n if (\n typeof partner !== \"string\" ||\n typeof rawSwapData?.fromCurrency !== \"string\" ||\n typeof rawSwapData?.fromNetwork !== \"string\" ||\n typeof rawSwapData?.toCurrency !== \"string\" ||\n typeof rawSwapData?.toNetwork !== \"string\" ||\n typeof rawSwapData?.id !== \"string\" // can be just empty\n ) {\n throw new Error(\n `Invalid raw swap data: ${safeStringify(rawSwapData)}`\n );\n }\n\n await this._fetchSupportedCurrenciesIfNeeded();\n const toCurrencyExtraId =\n this._supportedCoins.find(\n (item) => item.coin?.ticker === toCoin?.ticker\n )?.extraId ?? \"\";\n const requestData = {\n partner: partner,\n fromCurrency: rawSwapData?.fromCurrency,\n fromNetwork: rawSwapData?.fromNetwork,\n toCurrency: rawSwapData?.toCurrency,\n toNetwork: rawSwapData?.toNetwork,\n address: toAddress,\n amount: amount,\n fixed: false,\n extraId: toCurrencyExtraId ?? \"\",\n rateId: rawSwapData?.id,\n userIp: clientIpAddress,\n refund: refundAddress,\n };\n\n Logger.log(\n `Sending create request: ${safeStringify(requestData)}`,\n loggerSource\n );\n const response = await axios.post(\n `${this._URL}/api/v2/exchange`,\n requestData\n );\n const result = response.data;\n Logger.log(\n `Creation result ${safeStringify(result)}`,\n loggerSource\n );\n\n if (result?.id) {\n if (\n typeof result?.from?.amount !== \"number\" ||\n typeof result?.from?.address !== \"string\" ||\n typeof result?.to?.amount !== \"number\" ||\n typeof result?.to?.address !== \"string\"\n )\n throw new Error(`Wrong swap creation result ${result}`);\n /* We use the returned rate preferably but if the retrieved\n * rate 0/null/undefined we calculate it manually */\n let rate = result.rate;\n if (typeof rate !== \"number\" || BigNumber(rate).isZero()) {\n rate = BigNumber(result?.to?.amount).div(\n result?.from?.amount\n );\n } else {\n rate = BigNumber(rate);\n }\n\n return {\n result: true,\n swapId: result?.id,\n fromCoin: fromCoin,\n fromAmount: AmountUtils.trim(\n result?.from?.amount,\n fromCoin.digits\n ),\n fromAddress: result?.from?.address,\n toCoin: toCoin,\n toAmount: AmountUtils.trim(\n result?.to?.amount,\n toCoin.digits\n ),\n toAddress: result?.to?.address,\n rate: AmountUtils.trim(rate, this._maxRateDigits),\n };\n }\n const errorMessage = `Swap creation succeeded but the response is wrong: ${safeStringify(\n response\n )}`;\n Logger.log(errorMessage, loggerSource);\n throw new Error(errorMessage);\n } catch (e) {\n Logger.logError(\n e,\n loggerSource,\n `Failed to create swap. Error is: ${safeStringify(e)}`\n );\n const composeFailResult = (reason) => ({\n result: false,\n reason: reason,\n partner: partner,\n });\n const status = e?.response?.status;\n const data = e?.response?.data;\n if (status === 429) {\n Logger.log(\n `Returning fail - RPS limit exceeded ${data}`,\n loggerSource\n );\n return composeFailResult(\n SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED\n );\n }\n const texts422 = [\n \"Pair cannot be processed by\",\n \"Currency not found\",\n \"Amount maximum is\",\n \"Amount minimum is\",\n ];\n const text403 = \"IP address is forbidden\";\n if (\n typeof data === \"string\" &&\n ((status === 403 && data.includes(text403)) ||\n (status === 422 &&\n texts422.find((text) => data.includes(text))))\n ) {\n Logger.log(\n `Returning retriable fail: ${status} - ${data}, ${partner}`,\n loggerSource\n );\n return composeFailResult(\n SwapProvider.CREATION_FAIL_REASONS.RETRIABLE_FAIL\n );\n }\n Logger.log(\n `Internal swapspace/rabbit error for ${partner}: ${safeStringify(\n e\n )}`,\n loggerSource\n );\n improveAndRethrow(e, loggerSource);\n }\n }\n\n _mapSwapspaceStatusToRabbitStatus(status, isExpiredByTime) {\n switch (status) {\n case \"waiting\":\n if (isExpiredByTime) {\n return SwapProvider.SWAP_STATUSES.EXPIRED;\n }\n return SwapProvider.SWAP_STATUSES.WAITING_FOR_PAYMENT;\n case \"confirming\":\n return SwapProvider.SWAP_STATUSES.CONFIRMING;\n case \"exchanging\":\n return SwapProvider.SWAP_STATUSES.EXCHANGING;\n case \"sending\":\n return SwapProvider.SWAP_STATUSES.PAYMENT_RECEIVED;\n case \"finished\":\n return SwapProvider.SWAP_STATUSES.COMPLETED;\n case \"verifying\":\n return SwapProvider.SWAP_STATUSES.EXCHANGING;\n case \"refunded\":\n return SwapProvider.SWAP_STATUSES.REFUNDED;\n case \"expired\":\n return SwapProvider.SWAP_STATUSES.EXPIRED;\n case \"failed\":\n return SwapProvider.SWAP_STATUSES.FAILED;\n default:\n throw new Error(`Unknown swapspace status: ${status}`);\n }\n }\n\n async getExistingSwapsDetailsAndStatus(swapIds) {\n const loggerSource = \"getExistingSwapsDetailsAndStatus\";\n try {\n if (swapIds.find((id) => typeof id !== \"string\")) {\n throw new Error(\n \"Swap id is not string: \" + safeStringify(swapIds)\n );\n }\n const getNotFailingOn404 = async (swapId) => {\n try {\n return await axios.get(\n `${this._URL}/api/v2/exchange/${swapId}`\n );\n } catch (error) {\n if (error?.response?.status === 404) return [];\n throw error;\n }\n };\n const responses = await Promise.all(\n swapIds.map((swapId) => getNotFailingOn404(swapId))\n );\n const wo404 = responses.flat();\n const swaps = wo404\n .map((r) => r.data)\n .map((swap, index) => {\n const fromCoin = this._supportedCoins.find(\n (i) =>\n i.code === swap.from.code &&\n i.network === swap.from.network\n )?.coin;\n const toCoin = this._supportedCoins.find(\n (i) =>\n i.code === swap.to.code &&\n i.network === swap.to.network\n )?.coin;\n if (!fromCoin || !toCoin) {\n return []; // We skip swaps with not supported coins for now\n }\n\n const toUtcTimestamp = (timeStr) =>\n Date.parse(\n timeStr.match(/.+[Zz]$/) ? timeStr : `${timeStr}Z`\n );\n const expiresAt = toUtcTimestamp(swap.timestamps.expiresAt);\n const isExpiredByTime = expiresAt > Date.now();\n const status = this._mapSwapspaceStatusToRabbitStatus(\n swap.status,\n isExpiredByTime\n );\n const toDigits =\n status === SwapProvider.SWAP_STATUSES.REFUNDED\n ? fromCoin.digits\n : toCoin.digits;\n const addressToSendCoinsToSwapspace = swap.from.address;\n return new ExistingSwap(\n swapIds[index],\n status,\n toUtcTimestamp(swap.timestamps.createdAt),\n expiresAt,\n swap.confirmations,\n AmountUtils.trim(swap.rate, this._maxRateDigits),\n swap.refundAddress,\n addressToSendCoinsToSwapspace,\n fromCoin,\n AmountUtils.trim(swap.from.amount, fromCoin.digits),\n swap.from.transactionHash,\n swap.blockExplorerTransactionUrl.from,\n toCoin,\n AmountUtils.trim(swap.to.amount, toDigits),\n swap.to.transactionHash,\n swap.blockExplorerTransactionUrl.to,\n swap.to.address,\n swap.partner\n );\n })\n .flat();\n Logger.log(\n `Swap details result ${safeStringify(swaps)}`,\n loggerSource\n );\n return { result: true, swaps: swaps };\n } catch (e) {\n Logger.logError(\n e,\n loggerSource,\n `Failed to get swap details. Error is: ${safeStringify(e)}`\n );\n const composeFailResult = (reason) => ({\n result: false,\n reason: reason,\n });\n const status = e?.response?.status;\n const data = e?.response?.data;\n if (status === 429) {\n Logger.log(\n `Returning fail - RPS limit exceeded ${data}`,\n loggerSource\n );\n return composeFailResult(\n SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED\n );\n }\n improveAndRethrow(e, loggerSource);\n }\n }\n\n isAddressValidForAsset(asset, address) {\n try {\n const assetData = this._supportedCoins.find(\n (i) => i.coin?.ticker === asset?.ticker\n );\n if (assetData) {\n let corrected = assetData.validationRegexp.trim();\n corrected =\n corrected[0] === \"/\" ? corrected.slice(1) : corrected;\n corrected =\n corrected[corrected.length - 1] === \"/\"\n ? corrected.slice(0, corrected.length - 1)\n : corrected;\n return address.match(corrected) != null;\n }\n } catch (e) {\n Logger.logError(e, \"isAddressValidForAsset\");\n }\n return false;\n }\n}\n","import { BigNumber } from \"bignumber.js\";\n\nimport { AmountUtils } from \"../../common/amountUtils.js\";\nimport { FiatCurrenciesService } from \"../../common/fiatCurrenciesService.js\";\nimport { improveAndRethrow } from \"../../common/errorUtils.js\";\nimport { ExistingSwapWithFiatData } from \"../models/existingSwapWithFiatData.js\";\nimport { EmailsApi } from \"../../common/utils/emailAPI.js\";\nimport { SwapProvider } from \"../external-apis/swapProvider.js\";\nimport { Logger } from \"../../common/utils/logging/logger.js\";\nimport { safeStringify } from \"../../common/utils/safeStringify.js\";\n\nexport class SwapUtils {\n /**\n * Retrieves min and max limits for swapping giving currencies.\n * Returns also conversion rate if possible with predefined amount logic.\n * Rate is how many \"to\" coins does 1 \"from\" coin contain.\n *\n * In case of errors returns one of reasons\n * - SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED\n * - one of SwapProvider.COMMON_ERRORS.*\n *\n * @param swapProvider {SwapProvider}\n * @param fromCoin {Coin} enabled coin (to swap amount from)\n * @param toCoin {Coin}\n * @return {Promise<{\n * result: true,\n * min: string,\n * fiatMin: (number|null),\n * max: string,\n * fiatMax: (number|null),\n * rate: (string|null),\n * }|{\n * result: false,\n * reason: string\n * }>}\n */\n static async getInitialSwapData(swapProvider, fromCoin, toCoin) {\n const loggerSource = \"getInitialSwapData\";\n try {\n /* We use some amount here that should fit at least some of the limits of the swap providers.\n * So we are going to get some rate to be used as the default for the on-flight calculations before we get\n * the exact rate (that should be retrieved by getSwapCreationInfo method) for a specific amount.\n */\n const defaultAmountUsd = BigNumber(\"300\");\n const coinUsdRate = await swapProvider.getCoinToUSDTRate(fromCoin);\n const coinAmountForDefaultUsdAmount = AmountUtils.trim(\n coinUsdRate.result\n ? defaultAmountUsd.div(coinUsdRate?.rate)\n : defaultAmountUsd,\n fromCoin.digits\n );\n Logger.log(\n `Init: ${coinAmountForDefaultUsdAmount} ${fromCoin.ticker}->${toCoin.ticker}`,\n loggerSource\n );\n const details = await swapProvider.getSwapInfo(\n fromCoin,\n toCoin,\n coinAmountForDefaultUsdAmount\n );\n if (!details) {\n throw new Error(\n \"The details are empty: \" + safeStringify(details)\n );\n }\n if (!details.result) {\n Logger.log(\n `Failed with reason: ${details.reason}. ${fromCoin.ticker}->${toCoin.ticker}`,\n loggerSource\n );\n if (\n details?.reason ===\n SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED ||\n details?.reason ===\n SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED\n ) {\n return { result: false, reason: details.reason };\n } else {\n throw new Error(\"Unhandled error case: \" + details?.reason);\n }\n }\n let fiatMin = null;\n let fiatMax = null;\n if (coinUsdRate?.rate != null) {\n const usdDecimals =\n FiatCurrenciesService.getCurrencyDecimalCountByCode(\"USD\");\n fiatMin = BigNumber(details?.smallestMin)\n .times(coinUsdRate.rate)\n .toFixed(usdDecimals);\n fiatMax = BigNumber(details?.greatestMax)\n .times(coinUsdRate.rate)\n .toFixed(usdDecimals);\n }\n\n const result = {\n result: true,\n min: details?.smallestMin,\n fiatMin: fiatMin,\n max: details?.greatestMax,\n fiatMax: fiatMax,\n rate: AmountUtils.trim(details.rate, 30),\n };\n Logger.log(`Returning: ${safeStringify(result)}`, loggerSource);\n return result;\n } catch (e) {\n Logger.logError(\n e,\n loggerSource,\n `Failed to init swap: ${safeStringify(e)}`\n );\n improveAndRethrow(e, loggerSource);\n }\n }\n\n static safeHandleRequestsLimitExceeding() {\n (async () => {\n try {\n await EmailsApi.sendEmail(\n \"AUTOMATIC EMAIL - SWAPSPACE REQUESTS LIMIT EXCEEDED\",\n \"Requests limit exceeded. Urgently ask swaps provider support for limit increasing\"\n );\n } catch (e) {\n Logger.log(\n `Failed to handle limit exceeding ${safeStringify(e)}`,\n \"_safeHandleRequestsLimitExceeding\"\n );\n }\n })();\n }\n\n /**\n * If some swap is not found by id then there is no item in return list.\n *\n * @param swapProvider {SwapProvider}\n * @param swapIds {string[]}\n * @return {Promise<{\n * result: true,\n * swaps: ExistingSwapWithFiatData[]\n * }|{\n * result: false,\n * reason: string\n * }>}\n */\n static async getExistingSwapsDetailsWithFiatAmounts(swapProvider, swapIds) {\n try {\n const result =\n await swapProvider.getExistingSwapsDetailsAndStatus(swapIds);\n if (result.result) {\n const extendedSwaps = [];\n for (let swap of result.swaps) {\n if (swap.status === SwapProvider.SWAP_STATUSES.REFUNDED) {\n const rate = await swapProvider.getCoinToUSDTRate(\n swap.fromCoin\n );\n extendedSwaps.push(\n ExistingSwapWithFiatData.fromExistingSwap(\n swap,\n rate?.rate != null\n ? BigNumber(swap.fromAmount)\n .times(rate.rate)\n .toNumber()\n : null,\n rate?.rate != null\n ? BigNumber(swap.toAmount)\n .times(rate.rate)\n .toNumber()\n : null,\n \"USD\",\n FiatCurrenciesService.getCurrencyDecimalCountByCode(\n \"USD\"\n )\n )\n );\n } else {\n const [fromCoinFiatRate, toConFiatRate] =\n await Promise.all([\n swapProvider.getCoinToUSDTRate(swap.fromCoin),\n swapProvider.getCoinToUSDTRate(swap.toCoin),\n ]);\n extendedSwaps.push(\n ExistingSwapWithFiatData.fromExistingSwap(\n swap,\n fromCoinFiatRate?.rate != null\n ? BigNumber(swap.fromAmount)\n .times(fromCoinFiatRate.rate)\n .toNumber()\n : null,\n toConFiatRate?.rate != null\n ? BigNumber(swap.toAmount)\n .times(toConFiatRate.rate)\n .toNumber()\n : null,\n \"USD\",\n FiatCurrenciesService.getCurrencyDecimalCountByCode(\n \"USD\"\n )\n )\n );\n }\n }\n result.swaps = extendedSwaps;\n }\n\n return result;\n } catch (e) {\n improveAndRethrow(e, \"getExistingSwapsDetailsWithFiatAmounts\");\n }\n }\n}\n","import { BigNumber } from \"bignumber.js\";\nimport EventBusInstance from \"eventbusjs\";\n\nimport { FiatCurrenciesService } from \"../../common/fiatCurrenciesService.js\";\nimport { improveAndRethrow } from \"../../common/errorUtils.js\";\nimport { safeStringify } from \"../../common/utils/safeStringify.js\";\nimport { Logger } from \"../../common/utils/logging/logger.js\";\nimport { Coin } from \"../../common/models/coin.js\";\nimport { AmountUtils } from \"../../common/amountUtils.js\";\nimport { BaseSwapCreationInfo } from \"../models/baseSwapCreationInfo.js\";\nimport { SwapUtils } from \"../utils/swapUtils.js\";\nimport { SwapspaceSwapProvider } from \"../external-apis/swapspaceSwapProvider.js\";\nimport { SwapProvider } from \"../external-apis/swapProvider.js\";\n\nexport class PublicSwapService {\n static PUBLIC_SWAP_CREATED_EVENT = \"publicSwapCreatedEvent\";\n\n static PUBLIC_SWAPS_COMMON_ERRORS = {\n REQUESTS_LIMIT_EXCEEDED: \"requestsLimitExceeded\",\n };\n\n static PUBLIC_SWAP_DETAILS_FAIL_REASONS = {\n AMOUNT_LESS_THAN_MIN_SWAPPABLE: \"amountLessThanMinSwappable\",\n AMOUNT_HIGHER_THAN_MAX_SWAPPABLE: \"amountHigherThanMaxSwappable\",\n PAIR_NOT_SUPPORTED: \"pairNotSupported\",\n };\n\n static _fiatDecimalsCount =\n FiatCurrenciesService.getCurrencyDecimalCountByCode(\"USD\");\n\n constructor(API_KEYS_PROXY_URL, cache) {\n this._swapProvider = new SwapspaceSwapProvider(\n API_KEYS_PROXY_URL,\n cache,\n () => null,\n false\n );\n }\n\n async initialize() {\n try {\n await this._swapProvider.initialize();\n } catch (e) {\n Logger.logError(e, \"PublicSwapService.initialize\");\n }\n }\n\n async getDepositCurrenciesListForPublicSwap() {\n try {\n return await this._getCurrenciesListForPublicSwap(false);\n } catch (e) {\n improveAndRethrow(e, \"getDepositCurrenciesListForPublicSwap\");\n }\n }\n\n async getWithdrawCurrenciesListForPublicSwap() {\n try {\n return await this._getCurrenciesListForPublicSwap(true);\n } catch (e) {\n improveAndRethrow(e, \"getWithdrawCurrenciesListForPublicSwap\");\n }\n }\n\n async _getCurrenciesListForPublicSwap(withdraw = false) {\n const loggerSource = \"getCurrenciesListForPublicSwap\";\n try {\n const result = withdraw\n ? await this._swapProvider.getWithdrawalCurrencies()\n : await this._swapProvider.getDepositCurrencies();\n if (\n result.reason ===\n SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED\n ) {\n SwapUtils.safeHandleRequestsLimitExceeding();\n return {\n result: false,\n reason: PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS\n .REQUESTS_LIMIT_EXCEEDED,\n };\n }\n Logger.log(\n `Retrieved ${result?.coins?.length} supported currencies for swap`,\n loggerSource\n );\n if (result.coins.length > 1) {\n let temp = result.coins[0];\n result.coins[0] = result.coins[1];\n result.coins[1] = temp;\n }\n return { result: true, coins: result.coins };\n } catch (e) {\n improveAndRethrow(e, loggerSource);\n }\n }\n\n /**\n * Retrieves initial data for swapping two coins.\n *\n * @param fromCoin {Coin}\n * @param toCoin {Coin}\n * @return {Promise<{\n * result: true,\n * min: string,\n * fiatMin: (number|null),\n * max: string,\n * fiatMax: (number|null),\n * rate: (string|null)\n * }|{\n * result: false,\n * reason: string\n * }>}\n */\n async getInitialPublicSwapData(fromCoin, toCoin) {\n try {\n const result = await SwapUtils.getInitialSwapData(\n this._swapProvider,\n fromCoin,\n toCoin\n );\n if (!result.result) {\n if (\n result.reason ===\n SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED\n ) {\n SwapUtils.safeHandleRequestsLimitExceeding();\n return {\n result: false,\n reason: PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS\n .REQUESTS_LIMIT_EXCEEDED,\n };\n }\n if (\n result.reason ===\n SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED\n ) {\n return {\n result: false,\n reason: PublicSwapService\n .PUBLIC_SWAP_DETAILS_FAIL_REASONS\n .PAIR_NOT_SUPPORTED,\n };\n }\n }\n return result;\n } catch (e) {\n improveAndRethrow(e, \"getInitialPublicSwapData\");\n }\n }\n\n /**\n * Retrieves swap details that can be used to create swap.\n *\n * @param fromCoin {Coin}\n * @param toCoin {Coin}\n * @param fromAmountCoins {string}\n * @return {Promise<{\n * result: false,\n * reason: string,\n * min: (string|null),\n * max: (string|null),\n * rate: (string|undefined),\n * fiatMin: (number|null),\n * fiatMax: (number|null)\n * }|{\n * result: true,\n * swapCreationInfo: BaseSwapCreationInfo\n * }>}\n */\n async getPublicSwapDetails(fromCoin, toCoin, fromAmountCoins) {\n const loggerSource = \"getPublicSwapDetails\";\n try {\n const coinUsdtRate =\n (await this._swapProvider.getCoinToUSDTRate(fromCoin))?.rate ??\n null;\n const details = await this._swapProvider.getSwapInfo(\n fromCoin,\n toCoin,\n fromAmountCoins,\n coinUsdtRate\n );\n const min = details.result ? details.min : details.smallestMin;\n const max = details.result ? details.max : details.greatestMax;\n let fiatMin = null,\n fiatMax = null;\n if (coinUsdtRate != null) {\n if (min != null) {\n fiatMin = BigNumber(min)\n .times(coinUsdtRate)\n .toFixed(PublicSwapService._fiatDecimalsCount);\n }\n if (max != null) {\n fiatMax = BigNumber(max)\n .times(coinUsdtRate)\n .toFixed(PublicSwapService._fiatDecimalsCount);\n }\n }\n\n const composeFailResult = (reason) => ({\n result: false,\n reason: reason,\n min: min ?? null,\n fiatMin: fiatMin,\n max: max ?? null,\n fiatMax: fiatMax,\n rate: details.rate ?? null,\n });\n\n if (!details.result) {\n if (\n details?.reason ===\n SwapProvider.NO_SWAPS_REASONS.NOT_SUPPORTED\n )\n return composeFailResult(\n PublicSwapService.PUBLIC_SWAP_DETAILS_FAIL_REASONS\n .PAIR_NOT_SUPPORTED\n );\n else if (\n details?.reason ===\n SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED\n ) {\n SwapUtils.safeHandleRequestsLimitExceeding();\n return composeFailResult(\n PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS\n .REQUESTS_LIMIT_EXCEEDED\n );\n }\n }\n\n const fromAmountBigNumber = BigNumber(fromAmountCoins);\n if (typeof min === \"string\" && fromAmountBigNumber.lt(min)) {\n return composeFailResult(\n PublicSwapService.PUBLIC_SWAP_DETAILS_FAIL_REASONS\n .AMOUNT_LESS_THAN_MIN_SWAPPABLE\n );\n } else if (typeof max === \"string\" && fromAmountBigNumber.gt(max)) {\n return composeFailResult(\n PublicSwapService.PUBLIC_SWAP_DETAILS_FAIL_REASONS\n .AMOUNT_HIGHER_THAN_MAX_SWAPPABLE\n );\n }\n\n const toAmountCoins = AmountUtils.trim(\n fromAmountBigNumber.times(details.rate),\n fromCoin.digits\n );\n const result = {\n result: true,\n swapCreationInfo: new BaseSwapCreationInfo(\n fromCoin,\n toCoin,\n fromAmountCoins,\n toAmountCoins,\n details.rate,\n details.rawSwapData,\n min,\n fiatMin,\n max,\n fiatMax,\n details.durationMinutesRange\n ),\n };\n Logger.log(\n `Result: ${safeStringify({\n result: result.result,\n swapCreationInfo: {\n ...result.swapCreationInfo,\n fromCoin: result?.swapCreationInfo?.fromCoin?.ticker,\n toCoin: result?.swapCreationInfo?.toCoin?.ticker,\n },\n })}`,\n loggerSource\n );\n\n return result;\n } catch (e) {\n improveAndRethrow(e, loggerSource);\n }\n }\n\n /**\n * Creates swap by given params.\n *\n * @param fromCoin {Coin}\n * @param toCoin {Coin}\n * @param fromAmount {string}\n * @param swapCreationInfo {BaseSwapCreationInfo}\n * @param toAddress {string}\n * @param refundAddress {string}\n * @param clientIp {string}\n * @return {Promise<{\n * result: true,\n * fiatCurrencyCode: string,\n * toCoin: Coin,\n * fromAmountFiat: (number|null),\n * address: string,\n * durationMinutesRange: string,\n * fromAmount: string,\n * toAmount: string,\n * toAmountFiat: (number|null),\n * fiatCurrencyDecimals: number,\n * fromCoin: Coin,\n * rate: string,\n * swapId: string\n * }|{\n * result: false,\n * reason: string\n * }>}\n */\n async createPublicSwap(\n fromCoin,\n toCoin,\n fromAmount,\n swapCreationInfo,\n toAddress,\n refundAddress,\n clientIp\n ) {\n const loggerSource = \"createPublicSwap\";\n try {\n if (\n !(fromCoin instanceof Coin) ||\n !(toCoin instanceof Coin) ||\n typeof fromAmount !== \"string\" ||\n typeof toAddress !== \"string\" ||\n typeof refundAddress !== \"string\" ||\n !(swapCreationInfo instanceof BaseSwapCreationInfo)\n ) {\n throw new Error(\n `Wrong input: ${fromCoin.ticker} ${toCoin.ticker} ${fromAmount} ${swapCreationInfo}`\n );\n }\n Logger.log(\n `Start: ${fromAmount} ${fromCoin.ticker} -> ${\n toCoin.ticker\n }. Details: ${safeStringify({\n ...swapCreationInfo,\n fromCoin: swapCreationInfo?.fromCoin?.ticker,\n toCoin: swapCreationInfo?.toCoin?.ticker,\n })}`,\n loggerSource\n );\n\n const result = await this._swapProvider.createSwap(\n fromCoin,\n toCoin,\n fromAmount,\n toAddress,\n refundAddress,\n swapCreationInfo.rawSwapData,\n clientIp\n );\n Logger.log(\n `Created:${safeStringify({\n ...result,\n fromCoin: fromCoin?.ticker,\n toCoin: toCoin?.ticker,\n })}`,\n loggerSource\n );\n if (!result?.result) {\n if (\n result?.reason ===\n SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED\n ) {\n SwapUtils.safeHandleRequestsLimitExceeding();\n return {\n result: false,\n reason: PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS\n .REQUESTS_LIMIT_EXCEEDED,\n };\n }\n if (\n result?.reason ===\n SwapProvider.CREATION_FAIL_REASONS.RETRIABLE_FAIL\n ) {\n // TODO: [feature, high] implement retrying if one partner fail and we have another partners task_id=a07e367e488f4a4899613ac9056fa359\n // return {\n // result: false,\n // reason: PublicSwapService.SWAP_CREATION_FAIL_REASONS.RETRIABLE_FAIL,\n // };\n }\n }\n if (result.result && result?.swapId) {\n let fromAmountFiat = null,\n toAmountFiat = null;\n try {\n const fromCoinUsdtRate =\n (await this._swapProvider.getCoinToUSDTRate(fromCoin))\n ?.rate ?? null;\n const toCoinUsdtRate =\n (await this._swapProvider.getCoinToUSDTRate(fromCoin))\n ?.rate ?? null;\n if (fromCoinUsdtRate != null && result.fromAmount != null) {\n fromAmountFiat = BigNumber(result.fromAmount)\n .times(fromCoinUsdtRate)\n .toFixed(PublicSwapService._fiatDecimalsCount);\n }\n if (toCoinUsdtRate != null && result.toAmount != null) {\n toAmountFiat = BigNumber(result.toAmount)\n .times(toCoinUsdtRate)\n .toFixed(PublicSwapService._fiatDecimalsCount);\n }\n } catch (e) {\n Logger.logError(\n e,\n loggerSource,\n \"Failed to calculate fiat amounts for result\"\n );\n }\n\n EventBusInstance.dispatch(\n PublicSwapService.PUBLIC_SWAP_CREATED_EVENT,\n null,\n fromCoin.ticker,\n toCoin.ticker,\n fromAmountFiat\n );\n\n const toReturn = {\n result: true,\n swapId: result.swapId,\n fromCoin: fromCoin,\n toCoin: toCoin,\n fromAmount: result.fromAmount,\n toAmount: result.toAmount,\n fromAmountFiat: fromAmountFiat,\n toAmountFiat: toAmountFiat,\n fiatCurrencyCode: \"USD\",\n fiatCurrencyDecimals: PublicSwapService._fiatDecimalsCount,\n rate: result.rate,\n durationMinutesRange: swapCreationInfo.durationMinutesRange,\n address: result.fromAddress, // CRITICAL: this is the address to send coins to swaps provider\n };\n\n this._savePublicSwapIdLocally(result.swapId);\n\n Logger.log(\n `Returning: ${safeStringify({\n ...toReturn,\n fromCoin: fromCoin?.ticker,\n toCoin: toCoin?.ticker,\n })}`,\n loggerSource\n );\n return toReturn;\n }\n\n throw new Error(\n `Unexpected result from provider ${safeStringify(result)}`\n );\n } catch (e) {\n improveAndRethrow(e, loggerSource);\n }\n }\n\n /**\n * Retrieves swap details and status for existing swaps by their ids.\n *\n * @param swapIds {string[]}\n * @return {Promise<{\n * result: true,\n * swaps: ExistingSwapWithFiatData[]\n * }|{\n * result: false,\n * reason: string\n * }>}\n * error reason is one of PUBLIC_SWAPS_COMMON_ERRORS\n */\n async getPublicExistingSwapDetailsAndStatus(swapIds) {\n const loggerSource = \"getPublicExistingSwapDetailsAndStatus\";\n try {\n const result =\n await SwapUtils.getExistingSwapsDetailsWithFiatAmounts(\n this._swapProvider,\n swapIds\n );\n if (!result?.result) {\n if (\n result.reason ===\n SwapProvider.COMMON_ERRORS.REQUESTS_LIMIT_EXCEEDED\n ) {\n SwapUtils.safeHandleRequestsLimitExceeding();\n return {\n result: false,\n reason: PublicSwapService.PUBLIC_SWAPS_COMMON_ERRORS\n .REQUESTS_LIMIT_EXCEEDED,\n };\n }\n throw new Error(\"Unknown reason: \" + result?.reason);\n }\n\n return result;\n } catch (e) {\n improveAndRethrow(e, loggerSource);\n }\n }\n\n /**\n * Retrieves the whole available swaps history by ids saved locally.\n *\n * @return {Promise<{\n * result: true,\n * swaps: ExistingSwapWithFiatData[]\n * }|{\n * result: false,\n * reason: string\n * }>}\n */\n async getPublicSwapsHistory() {\n try {\n const swapIds = this._getPublicSwapIdsSavedLocally();\n if (swapIds.length) {\n return await this.getPublicExistingSwapDetailsAndStatus(\n swapIds\n );\n }\n return { result: true, swaps: [] };\n } catch (e) {\n improveAndRethrow(e, \"getPublicSwapsHistory\");\n }\n }\n\n /**\n * @param swapId {string}\n * @private\n */\n _savePublicSwapIdLocally(swapId) {\n if (typeof window !== \"undefined\") {\n try {\n const saved = localStorage.getItem(\"publicSwapIds\");\n const ids =\n typeof saved === \"string\" && saved.length > 0\n ? saved.split(\",\")\n : [];\n ids.push(swapId);\n localStorage.setItem(\"publicSwapIds\", ids.join(\",\"));\n } catch (e) {\n improveAndRethrow(e, \"_savePublicSwapIdLocally\");\n }\n }\n }\n\n /**\n * @private\n * @return {string[]}\n */\n _getPublicSwapIdsSavedLocally() {\n if (typeof window !== \"undefined\") {\n try {\n const saved = localStorage.getItem(\"publicSwapIds\");\n return typeof saved === \"string\" && saved.length > 0\n ? saved.split(\",\")\n : [];\n } catch (e) {\n improveAndRethrow(e, \"_getPublicSwapIdsSavedLocally\");\n }\n }\n }\n\n /**\n * @param coinOrTicker {Coin|string}\n * @return {string} icon URL (ready to use)\n */\n getAssetIconUrl(coinOrTicker) {\n return this._swapProvider.getIconUrl(coinOrTicker);\n }\n\n /**\n * @param ticker {string}\n * @return {Coin|null}\n */\n getCoinByTickerIfPresent(ticker) {\n return this._swapProvider.getCoinByTickerIfPresent(ticker);\n }\n\n /**\n * TODO: [feature, moderate] add other fiat currencies support. task_id=5490e21b8b9c4f89a2247b28db3c9e0a\n * @param asset {Coin}\n * @return {Promise<string|null>}\n */\n async getAssetToUsdtRate(asset) {\n try {\n const result = await this._swapProvider.getCoinToUSDTRate(asset);\n return result?.rate ?? null;\n } catch (e) {\n improveAndRethrow(e, \"getAssetToUsdtRate\");\n }\n }\n\n /**\n * @param asset {Coin}\n * @param address {string}\n * @return {boolean}\n */\n isAddressValidForAsset(asset, address) {\n try {\n return this._swapProvider.isAddressValidForAsset(asset, address);\n } catch (e) {\n improveAndRethrow(e, \"isAddressValidForAsset\");\n }\n }\n}\n"],"names":["require$$0","require$$1","ReactPropTypesSecret","has","printWarning","checkPropTypes","ReactIs","assign","LoadingDots","_ref","_ref$size","size","_ref$isColored","isColored","_ref$noMargins","noMargins","_ref$align","align","React","createElement","className","styles","dot","colored","propTypes","PropTypes","oneOf","bool","oneOfType","Button","_ref$className","_ref$mode","mode","_ref$onClick","onClick","resetButtonLoader","event","_ref$loader","loader","_ref$loading","loading","_ref$to","to","_ref$fullWidthOnMobil","fullWidthOnMobiles","_ref$fullWidthOnTable","fullWidthOnTablets","_ref$icon","icon","_ref$content","content","_ref$isDisabled","isDisabled","_ref$setClickTrigger","setClickTrigger","p","_ref$isFormSubmitting","isFormSubmittingButton","_ref$bigIcon","bigIcon","_ref$checkmarkOnClick","checkmarkOnClick","_ref$propagatePrimary","propagatePrimaryButtonClick","_ref$smallPaddingOnSm","smallPaddingOnSmallMobiles","_ref$handleError","handleError","func","_useState","useState","isLoading","setIsLoading","_useState2","isCheckShown","setIsCheckShown","_useState3","setEvent","buttonRef","useRef","useEffect","current","click","buttonClick","e","setTimeout","persist","stopPropagation","classNames","button","disable","Fragment","type","hidden","href","ref","src","alt","show","string","node","defaultProps","SupportChat","url","websiteToken","_ref$welcomeMessage","welcomeMessage","window","chatwootSettings","position","launcherTitle","d","t","BASE_URL","g","s","getElementsByTagName","defer","async","parentNode","insertBefore","onload","chatwootSDK","run","baseUrl","document","isRequired","AssetIcon","assetIconSrc","_ref$assetIconProtoco","assetIconProtocolSrc","_ref$fallbackSrc","fallbackSrc","_ref$small","small","handleFailedLoad","target","onerror","onError","LogsStorage","saveLog","log","_inMemoryStorage","push","getInMemoryLogs","getAllLogs","storedLogs","localStorage","getItem","_logsStorageId","join","saveToTheDisk","logger","MAX_LOCAL_STORAGE_VOLUME_BYTES","MAX_LOGS_STORAGE_BYTES","existingLogs","logsString","lettersCountToRemove","length","Math","round","setItem","slice","logError","removeAllClientLogs","removeItem","setDoNotRemoveClientLogsWhenSignedOut","value","safeStringify","object","indent","cache","String","retVal","JSON","stringify","key","toLowerCase","includes","body","query","headers","statusText","status","data","Logger","logString","source","timestamp","Date","toISOString","settingFunction","additionalMessage","onlyToConsole","_e$errorDescription","_e$howToFix","message","errorDescription","howToFix","httpStatus","response","responseData","finalErrorText","console","error","_catch","recover","result","then","useCallHandlingErrors","setState","useCallback","functionToBeCalled","_temp","Promise","resolve","name","reject","useReferredState","initialValue","_React$useState","state","reference","setReferredState","toString","call","improveAndRethrow","improvedErrorMessage","Error","FiatCurrenciesService","getFullCurrencyNameByCode","code","fiatCurrenciesList","find","currencyData","toUpperCase","isCodeValid","currenciesData","getCurrencySymbolByCode","_data$","getCurrencyDecimalCountByCode","_data$2","AmountUtils","fiatXs","amount","fiat","extraSmallLength","currencyCode","passedParams","params","_extends","defaultFiatParams","_checkIfAmountInvalid","currencySymbol","currencyDecimalCount","trimmedByMaxDigits","BigNumber","toFixed","ROUND_FLOOR","processedAmount","collapsible","gte","_collapseToMillionsAndFormat","collapsedDecimalCount","limitResult","_limitTotalAmountLengthIfNeeded","toFormat","ticker","enableCurrencySymbols","cryptoWoTicker","digits","crypto","cryptoWoTickerXs","cryptoXs","periods","cryptoFull","trim","limitTotalLength","significantDecimalCount","defaultCryptoParams","addPeriods","amountBigNumber","removeRedundantRightZerosFromNumberString","originalAmountDecimalPlaces","decimalPlaces","errorMessage","wereMillionsCollapsed","allowNumbers","isBigNumber","intStr","decimalCount","millionBigNumber","millions","div","limitedResult","formatted","amountString","maxLength","extraSmallMaxTotalLength","maxTotalLength","delta","currentDecimalsCount","newDecimalCount","composeRateText","leftTicker","rightTicker","rate","rightCurrencyDigitsAfterDots","leftNumber","multiplier","maxAttemptsToGetRate","right","rateBigNumber","i","rightNumberAttempt","times","eq","leftAmountString","rightAmountString","numberAsAString","_right2","parts","split","_right","Blockchain","supportedProtocols","Protocol","protocolName","protocol","Coin","latinName","tickerPrintable","digitsCountAfterComma","maxValue","atomName","mainnet","testnet","minConfirmations","payableEntityStringForFeeRate","feeOptionsTimeStringsSortedDesc","feeRatesExpirationTimeMs","blockchain","tokenAddress","doesUseLowerCaseAddresses","doesUseOutputs","feeCoin","_significantDigits","_proto","prototype","setFeeCoin","doesUseDifferentCoinFee","atomsToCoinAmount","atoms","coinAmountToAtoms","coinsAmount","composeUrlToTransactionExplorer","txId","coinAtomsFeeRateToCommonlyUsedAmountFormatWithDenominationString","coinAtomsString","doesSupportTransactionPrioritisation","Array","isArray","tickerAndProtocol","Cache","eventBus","noSessionEvents","_cache","Map","_eventDependentDataKeys","_noSessionEvents","_eventBus","_setupIntervalClearingExpired","cleaner","_iterator","_createForOfIteratorHelperLoose","keys","_step","done","item","get","ttlMs","addedMsTimestamp","now","bind","setInterval","put","set","putSessionDependentData","_putEventDependentData","putEventDependentData","events","_this","_loop","_step2","eventAndKeys","addEventListener","forEach","_iterator2","getLastUpdateTimestamp","_this$_cache$get$adde","_this$_cache$get","setLastUpdateTimestamp","addedTimestampMs","invalidate","invalidateContaining","keyPart","matchedKeys","from","filter","RegExp","test","clear","_sessionDependentDataKeys","putClientPersistentData","uniqueKey","getClientPersistentData","markCacheItemAsExpiredButDontRemove","_ttlMs","ttlFinalMs","EmailsApi","sendEmail","subject","location","host","serverEndpointEntity","axios","post","ExistingSwap","swapId","createdAt","expiresAt","confirmations","refundAddress","payToAddress","fromCoin","fromAmount","fromTransactionId","fromTransactionLink","toCoin","toAmount","toTransactionId","toTransactionLink","toAddress","partner","ExistingSwapWithFiatData","_ExistingSwap","_inheritsLoose","fromAmountFiat","toAmountFiat","fiatCurrencyCode","fiatCurrencyDecimals","fromExistingSwap","existingSwap","BaseSwapCreationInfo","fromAmountCoins","toAmountCoins","rawSwapData","min","fiatMin","max","fiatMax","durationMinutesRange","SwapProvider","initialize","getSwapCreationInfoTtlMs","getDepositCurrencies","getWithdrawalCurrencies","exceptCurrency","getIconUrl","coin","getCoinToUSDTRate","getSwapInfo","amountCoins","fromCoinToUsdRate","createSwap","clientIpAddress","getExistingSwapsDetailsAndStatus","swapIds","getCoinByTickerIfPresent","isAddressValidForAsset","asset","address","COMMON_ERRORS","REQUESTS_LIMIT_EXCEEDED","NO_SWAPS_REASONS","TOO_LOW","TOO_HIGH","NOT_SUPPORTED","CREATION_FAIL_REASONS","RETRIABLE_FAIL","SWAP_STATUSES","WAITING_FOR_PAYMENT","CONFIRMING","PAYMENT_RECEIVED","EXCHANGING","COMPLETED","REFUNDED","EXPIRED","FAILED","BANNED_PARTNERS","FALLBACK_ICON_URL","SwapspaceSwapProvider","_SwapProvider","apiKeysProxyUrl","customCoinBuilder","useRestrictedCoinsSet","network","_supportedCoins","_URL","_maxRateDigits","_customCoinBuilder","_this2","loggerSource","_fetchSupportedCurrenciesIfNeeded","_this2$_supportedCoin","coins","deposit","map","_e$response","reason","_this3","_this3$_supportedCoin","_item$coin","_exceptCurrency","withdrawal","_e$response2","_this4","coinOrTicker","_this$_supportedCoins2","_this$_supportedCoins3","_this$_supportedCoins","_item$coin2","_coin","iconURL","_this5","_this5$_supportedCoin","rawResponse","_rawResponse$data","_rawResponse$data2","defaultDecimalPlacesForCoinNotSupportedOOB","defaultMinConfirmationsForCoinNotSupportedOOB","contractAddress","_item$deposit","_item$withdrawal","_item$validationRegex","extraId","extraIdName","isPopular","popular","validationRegexp","flat","_putPopularCoinsFirst","sort","i1","i2","_this6","_this6$_supportedCoin","usdtTrc20","cached","standardSwapspaceFeeMultiplier","_item$coin3","_this7","lt","fromCoinSwapspaceDetails","_i$coin","toCoinSwapspaceDetails","_i$coin2","_response$data","options","exchangesSupportingThePair","exchange","exists","bannedPartner","fixed","availableExchanges","smallestMin","ex","isZero","reduce","prev","cur","greatestMax","gt","extraCoinsToFitMinMax","extraUsdToFitMinMax","plus","minus","_bestOpt$duration","sorted","op1","op2","bestOpt","duration","_e$response3","_this8","fromCurrency","fromNetwork","toCurrency","toNetwork","id","_this8$_supportedCoin","_this8$_supportedCoin2","toCurrencyExtraId","_item$coin4","requestData","rateId","userIp","refund","_result$from","_result$from2","_result$to","_result$to2","_result$from4","_result$from5","_result$to4","_result$to5","_result$to3","_result$from3","fromAddress","_e$response4","_e$response5","composeFailResult","texts422","text403","text","_mapSwapspaceStatusToRabbitStatus","isExpiredByTime","_this9","getNotFailingOn404","_error$response","all","responses","wo404","swaps","r","swap","index","_this9$_supportedCoin","_this9$_supportedCoin2","toUtcTimestamp","timeStr","parse","match","timestamps","toDigits","addressToSendCoinsToSwapspace","transactionHash","blockExplorerTransactionUrl","_e$response6","_e$response7","assetData","_i$coin3","corrected","_iteratorSymbol","Symbol","iterator","_settle","pact","_Pact","v","o","observer","onFulfilled","onRejected","callback","_isSettledPact","thenable","_forTo","array","check","_cycle","_forOf","step","next","_fixup","TypeError","values","SwapUtils","getInitialSwapData","swapProvider","defaultAmountUsd","coinUsdRate","coinAmountForDefaultUsdAmount","details","usdDecimals","safeHandleRequestsLimitExceeding","getExistingSwapsDetailsWithFiatAmounts","_temp5","_temp4","extendedSwaps","_temp3","_temp2","toNumber","fromCoinFiatRate","toConFiatRate","PublicSwapService","API_KEYS_PROXY_URL","_swapProvider","getDepositCurrenciesListForPublicSwap","_getCurrenciesListForPublicSwap","getWithdrawCurrenciesListForPublicSwap","withdraw","_result$coins","PUBLIC_SWAPS_COMMON_ERRORS","temp","getInitialPublicSwapData","PUBLIC_SWAP_DETAILS_FAIL_REASONS","PAIR_NOT_SUPPORTED","getPublicSwapDetails","_this6$_swapProvider$","_this6$_swapProvider$2","coinUsdtRate","_result$swapCreationI","_result$swapCreationI2","_fiatDecimalsCount","_details$rate","fromAmountBigNumber","AMOUNT_LESS_THAN_MIN_SWAPPABLE","AMOUNT_HIGHER_THAN_MAX_SWAPPABLE","swapCreationInfo","createPublicSwap","clientIp","_swapCreationInfo$fro","_swapCreationInfo$toC","_exit","_result7","EventBusInstance","dispatch","PUBLIC_SWAP_CREATED_EVENT","toReturn","_savePublicSwapIdLocally","_this7$_swapProvider$","_this7$_swapProvider$3","fromCoinUsdtRate","_this7$_swapProvider$2","_this7$_swapProvider$4","toCoinUsdtRate","getPublicExistingSwapDetailsAndStatus","getPublicSwapsHistory","_exit2","_temp7","_result9","_getPublicSwapIdsSavedLocally","_temp6","_await$_this9$getPubl","saved","ids","getAssetIconUrl","getAssetToUsdtRate","_this10","_result$rate"],"mappings":"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"}