-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy path32855.464f03e4.iframe.bundle.js
1 lines (1 loc) · 40 KB
/
32855.464f03e4.iframe.bundle.js
1
"use strict";(globalThis.webpackChunkmetamask_crx=globalThis.webpackChunkmetamask_crx||[]).push([[32855],{"./ui/components/app/currency-input/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>CurrencyInput});var react=__webpack_require__("./node_modules/react/index.js"),prop_types=__webpack_require__("./node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),es=__webpack_require__("./node_modules/react-redux/es/index.js"),component_library=__webpack_require__("./ui/components/component-library/index.ts"),design_system=__webpack_require__("./ui/helpers/constants/design-system.ts"),unit_input=__webpack_require__("./ui/components/ui/unit-input/index.js"),currency_display=__webpack_require__("./ui/components/ui/currency-display/index.js"),metamask=__webpack_require__("./ui/ducks/metamask/metamask.js"),networks=__webpack_require__("./shared/modules/selectors/networks.ts"),selectors=__webpack_require__("./ui/selectors/index.js"),common=__webpack_require__("./shared/constants/common.ts"),Numeric=__webpack_require__("./shared/modules/Numeric.ts"),fetch_with_cache=__webpack_require__("./shared/lib/fetch-with-cache.ts"),network=__webpack_require__("./shared/constants/network.ts"),time=__webpack_require__("./shared/constants/time.ts"),multichain=__webpack_require__("./ui/selectors/multichain.ts"),util=__webpack_require__("./app/scripts/lib/util.ts");function _array_like_to_array(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){reject(error);return}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)})}}function _iterable_to_array_limit(arr,i){var _s,_e,_i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}}function _non_iterable_rest(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(o){if("string"==typeof o)return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if("Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}}function _ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw TypeError("Generator is already executing.");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}}function useIsOriginalNativeTokenSymbol(chainId,ticker,type){var rpcUrl=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",_useState=_sliced_to_array((0,react.useState)(!1),2),isOriginalNativeSymbol=_useState[0],setIsOriginalNativeSymbol=_useState[1],useSafeChainsListValidation=(0,es.d4)(selectors.XVm),isLocalhost=function(urlString){var url=(0,util.Cq)(urlString);return null!==url&&("localhost"===url.hostname||"127.0.0.1"===url.hostname)},isEvm=(0,es.d4)(multichain.Bu),providerConfig=(0,es.d4)(multichain.UD);return(0,react.useEffect)(function(){function _getNativeTokenSymbol(){return(_getNativeTokenSymbol=_async_to_generator(function(networkId){var _matchedChain_nativeCurrency,mappedCurrencySymbol,mappedAsNetworkCollision,matchedChain,_matchedChain_nativeCurrency_symbol;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!isEvm)return setIsOriginalNativeSymbol(ticker===(null==providerConfig?void 0:providerConfig.ticker)),[2];_state.label=1;case 1:if(_state.trys.push([1,3,,4]),!useSafeChainsListValidation||isLocalhost(rpcUrl))return setIsOriginalNativeSymbol(!0),[2];if(mappedCurrencySymbol=network.Ow[chainId])return setIsOriginalNativeSymbol(mappedCurrencySymbol===ticker),[2];if((mappedAsNetworkCollision=network.w8[chainId])&&mappedAsNetworkCollision.some(function(network){return network.currencySymbol===ticker}))return setIsOriginalNativeSymbol(!0),[2];return[4,(0,fetch_with_cache.A)({url:network.Wn,allowStale:!0,cacheOptions:{cacheRefreshTime:time.d_},functionName:"getSafeChainsList"})];case 2:return setIsOriginalNativeSymbol((null!==(_matchedChain_nativeCurrency_symbol=null==(matchedChain=_state.sent().find(function(network){return network.chainId===parseInt(networkId,16)}))?void 0:null===(_matchedChain_nativeCurrency=matchedChain.nativeCurrency)||void 0===_matchedChain_nativeCurrency?void 0:_matchedChain_nativeCurrency.symbol)&&void 0!==_matchedChain_nativeCurrency_symbol?_matchedChain_nativeCurrency_symbol:null)===ticker),[3,4];case 3:return _state.sent(),setIsOriginalNativeSymbol(!1),[3,4];case 4:return[2]}})})).apply(this,arguments)}!function getNativeTokenSymbol(networkId){return _getNativeTokenSymbol.apply(this,arguments)}(chainId)},[isOriginalNativeSymbol,chainId,ticker,type,rpcUrl,useSafeChainsListValidation]),isOriginalNativeSymbol}var confirm_tx_util=__webpack_require__("./ui/helpers/utils/confirm-tx.util.ts"),useTokenExchangeRate=__webpack_require__("./ui/components/app/currency-input/hooks/useTokenExchangeRate.tsx");function useProcessNewDecimalValue(assetDecimals,isTokenPrimary,tokenToFiatConversionRate){return(0,react.useCallback)(function(newDecimalValue,isTokenPrimaryOverride){var newFiatDecimalValue,newTokenDecimalValue,truncateToDecimals=function(numeric){var maxDecimals=arguments.length>1&&void 0!==arguments[1]?arguments[1]:assetDecimals,digitsAfterDecimal=numeric.toString().split(".")[1]||"",maxPossibleDecimals=Math.min(maxDecimals,assetDecimals),digitsCutoff=Math.min(digitsAfterDecimal.length,maxPossibleDecimals);return numeric.toFixed(digitsCutoff)},numericDecimalValue=new Numeric.e(newDecimalValue,10);return(null!=isTokenPrimaryOverride?isTokenPrimaryOverride:isTokenPrimary)?(newFiatDecimalValue=tokenToFiatConversionRate?numericDecimalValue.times(tokenToFiatConversionRate).toFixed(2):void 0,newTokenDecimalValue=truncateToDecimals(numericDecimalValue)):(newFiatDecimalValue=numericDecimalValue.toFixed(2),newTokenDecimalValue=tokenToFiatConversionRate?truncateToDecimals(numericDecimalValue.divide(tokenToFiatConversionRate),6):void 0),{newFiatDecimalValue:newFiatDecimalValue,newTokenDecimalValue:newTokenDecimalValue}},[null==tokenToFiatConversionRate?void 0:tokenToFiatConversionRate.toString(),isTokenPrimary,assetDecimals])}try{useProcessNewDecimalValue.displayName="useProcessNewDecimalValue",useProcessNewDecimalValue.__docgenInfo={description:"A hook that creates a function which processes a new decimal value and returns the new fiat and token decimal values",displayName:"useProcessNewDecimalValue",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["ui/components/app/currency-input/hooks/useProcessNewDecimalValue.tsx#useProcessNewDecimalValue"]={docgenInfo:useProcessNewDecimalValue.__docgenInfo,name:"useProcessNewDecimalValue",path:"ui/components/app/currency-input/hooks/useProcessNewDecimalValue.tsx#useProcessNewDecimalValue"})}catch(__react_docgen_typescript_loader_error){}function useStateWithFirstTouch_array_like_to_array(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function useStateWithFirstTouch_array_with_holes(arr){if(Array.isArray(arr))return arr}function useStateWithFirstTouch_iterable_to_array_limit(arr,i){var _s,_e,_i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}}function useStateWithFirstTouch_non_iterable_rest(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function useStateWithFirstTouch_sliced_to_array(arr,i){return useStateWithFirstTouch_array_with_holes(arr)||useStateWithFirstTouch_iterable_to_array_limit(arr,i)||useStateWithFirstTouch_unsupported_iterable_to_array(arr,i)||useStateWithFirstTouch_non_iterable_rest()}function useStateWithFirstTouch_unsupported_iterable_to_array(o,minLen){if(o){if("string"==typeof o)return useStateWithFirstTouch_array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if("Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return useStateWithFirstTouch_array_like_to_array(o,minLen)}}var INITIAL_VALUE=Symbol("INITIAL_VALUE");function useStateWithFirstTouch(initialValue){var _useState=useStateWithFirstTouch_sliced_to_array((0,react.useState)(INITIAL_VALUE),2),rawValue=_useState[0];return[rawValue===INITIAL_VALUE?initialValue:rawValue,_useState[1],rawValue===INITIAL_VALUE]}try{useStateWithFirstTouch.displayName="useStateWithFirstTouch",useStateWithFirstTouch.__docgenInfo={description:"",displayName:"useStateWithFirstTouch",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["ui/components/app/currency-input/hooks/useStateWithFirstTouch.tsx#useStateWithFirstTouch"]={docgenInfo:useStateWithFirstTouch.__docgenInfo,name:"useStateWithFirstTouch",path:"ui/components/app/currency-input/hooks/useStateWithFirstTouch.tsx#useStateWithFirstTouch"})}catch(__react_docgen_typescript_loader_error){}function currency_input_array_like_to_array(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function currency_input_array_with_holes(arr){if(Array.isArray(arr))return arr}function currency_input_asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){reject(error);return}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function currency_input_async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){currency_input_asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){currency_input_asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)})}}function currency_input_iterable_to_array_limit(arr,i){var _s,_e,_i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}}function currency_input_non_iterable_rest(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function currency_input_sliced_to_array(arr,i){return currency_input_array_with_holes(arr)||currency_input_iterable_to_array_limit(arr,i)||currency_input_unsupported_iterable_to_array(arr,i)||currency_input_non_iterable_rest()}function currency_input_unsupported_iterable_to_array(o,minLen){if(o){if("string"==typeof o)return currency_input_array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if("Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return currency_input_array_like_to_array(o,minLen)}}function currency_input_ts_generator(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw TypeError("Generator is already executing.");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}}function CurrencyInput(param){var _ref,suffix,displayValue,hexValue=param.hexValue,isFiatPreferred=param.isFiatPreferred,onChange=param.onChange,onPreferenceToggle=param.onPreferenceToggle,swapIcon=param.swapIcon,_param_className=param.className,asset=param.asset,isSkeleton=param.isSkeleton,isMatchingUpstream=param.isMatchingUpstream,assetDecimals=isNaN(Number(null==asset?void 0:asset.decimals))?18:Number(null==asset?void 0:asset.decimals),preferredCurrency=(0,es.d4)(metamask.Zt),secondaryCurrency=(0,es.d4)(metamask.Fx),primarySuffix=(null==asset?void 0:asset.symbol)||preferredCurrency||common.sk.ETH,secondarySuffix=secondaryCurrency.toUpperCase(),isLongSymbol=((null==primarySuffix?void 0:primarySuffix.length)||0)>7,isFiatAvailable=(0,es.d4)(selectors.rrv),isTokenPrimary=!(isFiatAvailable&&isFiatPreferred),_useStateWithFirstTouch=currency_input_sliced_to_array(useStateWithFirstTouch("0"),3),tokenDecimalValue=_useStateWithFirstTouch[0],setTokenDecimalValue=_useStateWithFirstTouch[1],isInputUnchanged=_useStateWithFirstTouch[2],_useState=currency_input_sliced_to_array((0,react.useState)("0"),2),fiatDecimalValue=_useState[0],setFiatDecimalValue=_useState[1],chainId=(0,es.d4)(networks.gr),_useSelector=(0,es.d4)(networks.Iv),isOriginalNativeSymbol=useIsOriginalNativeTokenSymbol(chainId,_useSelector.ticker,_useSelector.type,_useSelector.rpcUrl),inputRef=(0,react.useRef)(),tokenToFiatConversionRate=(0,useTokenExchangeRate.A)(null==asset?void 0:asset.address),isNonZeroConversionRate=!!(null==tokenToFiatConversionRate?void 0:tokenToFiatConversionRate.toNumber()),processNewDecimalValue=useProcessNewDecimalValue(assetDecimals,isTokenPrimary,tokenToFiatConversionRate),isDisabled=void 0===onChange,swap=(_ref=currency_input_async_to_generator(function(){return currency_input_ts_generator(this,function(_state){switch(_state.label){case 0:return[4,onPreferenceToggle()];case 1:return _state.sent(),[2]}})}),function swap(){return _ref.apply(this,arguments)});(0,react.useEffect)(function(){!isTokenPrimary&&(isNonZeroConversionRate||onPreferenceToggle())},[isNonZeroConversionRate,isTokenPrimary,onPreferenceToggle]);var timeoutRef=(0,react.useRef)(null);return(0,react.useEffect)(function(){var decimalizedHexValue=new Numeric.e(hexValue,16).toBase(10).shiftedBy(assetDecimals).toString();if(Number(decimalizedHexValue)!==Number(tokenDecimalValue)){var _processNewDecimalValue=processNewDecimalValue(decimalizedHexValue,!!(isDisabled||isInputUnchanged||isMatchingUpstream)||void 0),newTokenDecimalValue=_processNewDecimalValue.newTokenDecimalValue,newFiatDecimalValue=_processNewDecimalValue.newFiatDecimalValue;setTokenDecimalValue(newTokenDecimalValue),setFiatDecimalValue(newFiatDecimalValue),timeoutRef.current&&clearTimeout(timeoutRef.current),timeoutRef.current=setTimeout(function(){var _inputRef_current_updateIsOverflowing,_inputRef_current;return null===(_inputRef_current=inputRef.current)||void 0===_inputRef_current?void 0:null===(_inputRef_current_updateIsOverflowing=_inputRef_current.updateIsOverflowing)||void 0===_inputRef_current_updateIsOverflowing?void 0:_inputRef_current_updateIsOverflowing.call(_inputRef_current)},500)}},[hexValue,null==asset?void 0:asset.address,processNewDecimalValue,isTokenPrimary,assetDecimals,isDisabled]),isSkeleton?react.createElement(component_library.az,{paddingRight:4,className:"currency-input__skeleton-container"},react.createElement(component_library.az,{width:design_system.Zf.Half,className:"currency-input__pulsing-bar"}),react.createElement(component_library.az,{width:design_system.Zf.OneThird,className:"currency-input__pulsing-bar"})):react.createElement(unit_input.A,{ref:inputRef,isDisabled:isDisabled,isFocusOnInput:!isDisabled,hideSuffix:isTokenPrimary&&isLongSymbol,dataTestId:"currency-input",suffix:isTokenPrimary?primarySuffix:secondarySuffix,onChange:function(newDecimalValue){var _processNewDecimalValue=processNewDecimalValue(newDecimalValue),newTokenDecimalValue=_processNewDecimalValue.newTokenDecimalValue,newFiatDecimalValue=_processNewDecimalValue.newFiatDecimalValue;setTokenDecimalValue(newTokenDecimalValue),setFiatDecimalValue(newFiatDecimalValue),onChange(new Numeric.e(newTokenDecimalValue,10).times(Math.pow(10,assetDecimals),10).toPrefixedHexString(),newTokenDecimalValue)},value:isTokenPrimary?tokenDecimalValue:fiatDecimalValue,className:void 0===_param_className?"":_param_className,actionComponent:isFiatAvailable&&tokenToFiatConversionRate?swapIcon?swapIcon(swap):isOriginalNativeSymbol?react.createElement("button",{className:"currency-input__swap-component","data-testid":"currency-swap",onClick:swap},react.createElement("i",{className:"fa fa-retweet fa-lg"})):null:void 0},isFiatAvailable&&tokenToFiatConversionRate&&isOriginalNativeSymbol?(isTokenPrimary?displayValue=(0,confirm_tx_util.vv)(new Numeric.e(fiatDecimalValue,10).toString(),secondaryCurrency):(suffix=primarySuffix,displayValue=new Numeric.e(tokenDecimalValue,10).toString()),react.createElement(currency_display.A,{hideLabel:isTokenPrimary||isLongSymbol,suffix:suffix,className:"currency-input__conversion-component",displayValue:displayValue})):null)}CurrencyInput.propTypes={hexValue:prop_types_default().string,isFiatPreferred:prop_types_default().bool,onChange:prop_types_default().func,onPreferenceToggle:prop_types_default().func,swapIcon:prop_types_default().func,className:prop_types_default().string,asset:prop_types_default().shape({address:prop_types_default().string,symbol:prop_types_default().string,decimals:prop_types_default().oneOfType([prop_types_default().string,prop_types_default().number]),isERC721:prop_types_default().bool}),isSkeleton:prop_types_default().bool,isMatchingUpstream:prop_types_default().bool},CurrencyInput.__docgenInfo={description:"Component that allows user to enter currency values as a number, and props receive a converted\nhex value in WEI. props.value, used as a default or forced value, should be a hex value, which\ngets converted into a decimal value depending on the currency (ETH or Fiat).\n\n@param options0\n@param options0.hexValue\n@param options0.isFiatPreferred\n@param options0.onChange\n@param options0.onPreferenceToggle\n@param options0.swapIcon\n@param options0.className\n@param options0.asset\n@param options0.isSkeleton\n@param options0.isMatchingUpstream",methods:[],displayName:"CurrencyInput",props:{className:{defaultValue:{value:"''",computed:!1},description:"",type:{name:"string"},required:!1},hexValue:{description:"",type:{name:"string"},required:!1},isFiatPreferred:{description:"",type:{name:"bool"},required:!1},onChange:{description:"",type:{name:"func"},required:!1},onPreferenceToggle:{description:"",type:{name:"func"},required:!1},swapIcon:{description:"",type:{name:"func"},required:!1},asset:{description:"",type:{name:"shape",value:{address:{name:"string",required:!1},symbol:{name:"string",required:!1},decimals:{name:"union",value:[{name:"string"},{name:"number"}],required:!1},isERC721:{name:"bool",required:!1}}},required:!1},isSkeleton:{description:"",type:{name:"bool"},required:!1},isMatchingUpstream:{description:"",type:{name:"bool"},required:!1}}}},"./ui/components/ui/unit-input/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>_unit_input_component__WEBPACK_IMPORTED_MODULE_0__.A});var _unit_input_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./ui/components/ui/unit-input/unit-input.component.js")},"./ui/components/ui/unit-input/unit-input.component.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>UnitInput});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),react_tippy__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/react-tippy/dist/react-tippy.js"),prop_types__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/prop-types/index.js"),prop_types__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__),classnames__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/classnames/index.js"),classnames__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);function _assert_this_initialized(self){if(void 0===self)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return self}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor))throw TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}function _define_property(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _get_prototype_of(o){return(_get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)})(o)}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw TypeError("Super expression must either be null or a function");subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:!0,configurable:!0}}),superClass&&_set_prototype_of(subClass,superClass)}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{},ownKeys=Object.keys(source);"function"==typeof Object.getOwnPropertySymbols&&(ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))),ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){return source=null!=source?source:{},Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))}),target}function _possible_constructor_return(self,call){return call&&("object"===_type_of(call)||"function"==typeof call)?call:_assert_this_initialized(self)}function _set_prototype_of(o,p){return(_set_prototype_of=Object.setPrototypeOf||function setPrototypeOf(o,p){return o.__proto__=p,o})(o,p)}function _type_of(obj){return obj&&"undefined"!=typeof Symbol&&obj.constructor===Symbol?"symbol":typeof obj}function _is_native_reflect_construct(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function _create_super(Derived){var hasNativeReflectConstruct=_is_native_reflect_construct();return function _createSuperInternal(){var result,Super=_get_prototype_of(Derived);return result=hasNativeReflectConstruct?Reflect.construct(Super,arguments,_get_prototype_of(this).constructor):Super.apply(this,arguments),_possible_constructor_return(this,result)}}function removeLeadingZeroes(str){return str.replace(RegExp("^0*(?=\\d)","u"),"")}var DECIMAL_INPUT_REGEX=RegExp("^\\d*(\\.|,)?\\d*$","u"),UnitInput=function(PureComponent){_inherits(UnitInput,PureComponent);var _super=_create_super(UnitInput);function UnitInput(){var _this;return _class_call_check(this,UnitInput),_this=_super.apply(this,arguments),_define_property(_assert_this_initialized(_this),"state",{value:_this.props.value,isOverflowing:!1}),_define_property(_assert_this_initialized(_this),"handleFocus",function(){["INPUT","TEXTAREA"].includes(document.activeElement.tagName)||_this.unitInput.focus()}),_define_property(_assert_this_initialized(_this),"handleInputFocus",function(param){"0"===param.target.value&&_this.setState(_object_spread_props(_object_spread({},_this.state),{isOverflowing:!1,value:""}))}),_define_property(_assert_this_initialized(_this),"handleInputBlur",function(param){var _this_unitInput_scrollTo,_this_unitInput,value=param.target.value;""===value&&_this.setState(_object_spread_props(_object_spread({},_this.state),{isOverflowing:!1,value:"0"})),_this.props.onBlur&&_this.props.onBlur(value),null===(_this_unitInput=_this.unitInput)||void 0===_this_unitInput||null===(_this_unitInput_scrollTo=_this_unitInput.scrollTo)||void 0===_this_unitInput_scrollTo||_this_unitInput_scrollTo.call(_this_unitInput,0,0)}),_define_property(_assert_this_initialized(_this),"handleChange",function(event){var userInput=event.target.value,value=userInput;if(userInput.length&&userInput.length>1&&(value=removeLeadingZeroes(userInput)),!_this.props.keyPressRegex.test(value)){event.preventDefault();return}_this.setState(_object_spread_props(_object_spread({},_this.state),{isOverflowing:_this.getIsOverflowing(),value:value})),_this.props.onChange(value)}),_define_property(_assert_this_initialized(_this),"handleOnKeyPress",function(e){DECIMAL_INPUT_REGEX.test(e.key)||e.preventDefault()}),_define_property(_assert_this_initialized(_this),"updateIsOverflowing",function(){_this.setState(_object_spread_props(_object_spread({},_this.state),{isOverflowing:_this.getIsOverflowing()}))}),_this}return _create_class(UnitInput,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var prevPropsValue=prevProps.value,propsValue=this.props.value,stateValue=this.state.value;prevPropsValue!==propsValue&&Number(propsValue)!==Number(stateValue)&&this.setState(_object_spread_props(_object_spread({},this.state),{value:propsValue}))}},{key:"componentDidMount",value:function componentDidMount(){this.props.isFocusOnInput&&document.addEventListener("keypress",this.handleFocus)}},{key:"componentWillUnmount",value:function componentWillUnmount(){document.removeEventListener("keypress",this.handleFocus)}},{key:"getInputWidth",value:function getInputWidth(value){var valueString=String(value),valueLength=valueString.length||1,decimalPointDeficit=valueString.match(RegExp("\\.","u"))?-.5:0;return"".concat(valueLength+decimalPointDeficit+.5,"ch")}},{key:"getIsOverflowing",value:function getIsOverflowing(){var isOverflowing=!1;if(this.unitInput){var _this_unitInput=this.unitInput,offsetWidth=_this_unitInput.offsetWidth;isOverflowing=_this_unitInput.scrollWidth-offsetWidth>4}return isOverflowing}},{key:"render",value:function render(){var _this=this,_this_props=this.props,className=_this_props.className,error=_this_props.error,placeholder=_this_props.placeholder,hideSuffix=_this_props.hideSuffix,suffix=_this_props.suffix,actionComponent=_this_props.actionComponent,children=_this_props.children,dataTestId=_this_props.dataTestId,isDisabled=_this_props.isDisabled,_this_state=this.state,value=_this_state.value,isOverflowing=_this_state.isOverflowing;return react__WEBPACK_IMPORTED_MODULE_0__.createElement("div",{className:classnames__WEBPACK_IMPORTED_MODULE_2___default()("unit-input",{"unit-input--error":error},className),onClick:this.handleFocus},react__WEBPACK_IMPORTED_MODULE_0__.createElement("div",{className:"unit-input__inputs"},react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_tippy__WEBPACK_IMPORTED_MODULE_1__.Tooltip,{title:value,disabled:!isOverflowing||!value,arrow:!0,hideOnClick:!1,className:"unit-input__input-container",style:{display:"inherit"}},react__WEBPACK_IMPORTED_MODULE_0__.createElement("input",{disabled:isDisabled,"data-testid":dataTestId,type:"number",dir:"ltr",className:classnames__WEBPACK_IMPORTED_MODULE_2___default()("unit-input__input"),value:value,placeholder:placeholder,onChange:this.handleChange,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,onKeyPress:this.handleOnKeyPress,min:0,step:"any",style:{width:this.getInputWidth(value)},ref:function(ref){_this.unitInput=ref},autoFocus:!0}),suffix&&!hideSuffix?react__WEBPACK_IMPORTED_MODULE_0__.createElement("div",{className:"unit-input__suffix"},suffix):null),children),actionComponent)}}]),UnitInput}(react__WEBPACK_IMPORTED_MODULE_0__.PureComponent);_define_property(UnitInput,"propTypes",{className:prop_types__WEBPACK_IMPORTED_MODULE_3___default().string,dataTestId:prop_types__WEBPACK_IMPORTED_MODULE_3___default().string,children:prop_types__WEBPACK_IMPORTED_MODULE_3___default().node,actionComponent:prop_types__WEBPACK_IMPORTED_MODULE_3___default().node,error:prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool,onChange:prop_types__WEBPACK_IMPORTED_MODULE_3___default().func,onBlur:prop_types__WEBPACK_IMPORTED_MODULE_3___default().func,placeholder:prop_types__WEBPACK_IMPORTED_MODULE_3___default().string,suffix:prop_types__WEBPACK_IMPORTED_MODULE_3___default().string,hideSuffix:prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool,value:prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default().string,prop_types__WEBPACK_IMPORTED_MODULE_3___default().number]),keyPressRegex:prop_types__WEBPACK_IMPORTED_MODULE_3___default().instanceOf(RegExp),isDisabled:prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool,isFocusOnInput:prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool}),_define_property(UnitInput,"defaultProps",{value:"",placeholder:"0",keyPressRegex:DECIMAL_INPUT_REGEX}),UnitInput.__docgenInfo={description:"Component that attaches a suffix or unit of measurement trailing user input, ex. 'ETH'. Also\nallows rendering a child component underneath the input to, for example, display conversions of\nthe shown suffix.",methods:[{name:"handleFocus",docblock:null,modifiers:[],params:[],returns:null},{name:"handleInputFocus",docblock:null,modifiers:[],params:[{name:"{ target: { value } }",optional:!1,type:null}],returns:null},{name:"handleInputBlur",docblock:null,modifiers:[],params:[{name:"{ target: { value } }",optional:!1,type:null}],returns:null},{name:"handleChange",docblock:null,modifiers:[],params:[{name:"event",optional:!1,type:null}],returns:null},{name:"handleOnKeyPress",docblock:null,modifiers:[],params:[{name:"e",optional:!1,type:null}],returns:null},{name:"updateIsOverflowing",docblock:null,modifiers:[],params:[],returns:null},{name:"getInputWidth",docblock:null,modifiers:[],params:[{name:"value",optional:!1,type:null}],returns:null},{name:"getIsOverflowing",docblock:null,modifiers:[],params:[],returns:null}],displayName:"UnitInput",props:{value:{defaultValue:{value:"''",computed:!1},description:"",type:{name:"union",value:[{name:"string"},{name:"number"}]},required:!1},placeholder:{defaultValue:{value:"'0'",computed:!1},description:"",type:{name:"string"},required:!1},keyPressRegex:{defaultValue:{value:"/^\\d*(\\.|,)?\\d*$/u",computed:!1},description:"",type:{name:"instanceOf",value:"RegExp"},required:!1},className:{description:"",type:{name:"string"},required:!1},dataTestId:{description:"",type:{name:"string"},required:!1},children:{description:"",type:{name:"node"},required:!1},actionComponent:{description:"",type:{name:"node"},required:!1},error:{description:"",type:{name:"bool"},required:!1},onChange:{description:"",type:{name:"func"},required:!1},onBlur:{description:"",type:{name:"func"},required:!1},suffix:{description:"",type:{name:"string"},required:!1},hideSuffix:{description:"",type:{name:"bool"},required:!1},isDisabled:{description:"",type:{name:"bool"},required:!1},isFocusOnInput:{description:"",type:{name:"bool"},required:!1}}}},"./ui/components/app/currency-input/hooks/useTokenExchangeRate.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>useTokenExchangeRate});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/index.js"),ethereumjs_util__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/ethereumjs-util/dist.browser/index.js"),react_redux__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/react-redux/es/index.js"),_shared_modules_selectors_networks__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./shared/modules/selectors/networks.ts"),_selectors__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./ui/selectors/index.js"),_shared_modules_Numeric__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./shared/modules/Numeric.ts"),_ducks_metamask_metamask__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./ui/ducks/metamask/metamask.js"),_helpers_utils_util__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./ui/helpers/utils/util.js");function _array_like_to_array(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _define_property(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _iterable_to_array_limit(arr,i){var _s,_e,_i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}}function _non_iterable_rest(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{},ownKeys=Object.keys(source);"function"==typeof Object.getOwnPropertySymbols&&(ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))),ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})),keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){return source=null!=source?source:{},Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))}),target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(o){if("string"==typeof o)return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if("Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}}var LOADING="loading",FAILED="failed";function useTokenExchangeRate(uncheckedTokenAddress){var tokenAddress=uncheckedTokenAddress?(0,ethereumjs_util__WEBPACK_IMPORTED_MODULE_1__.toChecksumAddress)(uncheckedTokenAddress):void 0,nativeCurrency=(0,react_redux__WEBPACK_IMPORTED_MODULE_2__.d4)(_ducks_metamask_metamask__WEBPACK_IMPORTED_MODULE_6__.Zt),chainId=(0,react_redux__WEBPACK_IMPORTED_MODULE_2__.d4)(_shared_modules_selectors_networks__WEBPACK_IMPORTED_MODULE_3__.gr),selectedNativeConversionRate=(0,react_redux__WEBPACK_IMPORTED_MODULE_2__.d4)(_ducks_metamask_metamask__WEBPACK_IMPORTED_MODULE_6__.fR),contractExchangeRates=(0,react_redux__WEBPACK_IMPORTED_MODULE_2__.d4)(_selectors__WEBPACK_IMPORTED_MODULE_4__.K_j,react_redux__WEBPACK_IMPORTED_MODULE_2__.bN),_useState=_sliced_to_array((0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({}),2),exchangeRates=_useState[0],setExchangeRates=_useState[1];return(0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function(){if(selectedNativeConversionRate){var nativeConversionRate=new _shared_modules_Numeric__WEBPACK_IMPORTED_MODULE_5__.e(selectedNativeConversionRate,10);if(!tokenAddress)return nativeConversionRate;if(!(tokenAddress&&[LOADING,FAILED].includes(exchangeRates[tokenAddress]))){var contractExchangeRate=contractExchangeRates[tokenAddress]||exchangeRates[tokenAddress];if(!contractExchangeRate){setExchangeRates(function(prev){return _object_spread_props(_object_spread({},prev),_define_property({},tokenAddress,LOADING))}),(0,_helpers_utils_util__WEBPACK_IMPORTED_MODULE_7__.qI)(nativeCurrency,[tokenAddress],chainId).then(function(addressToExchangeRate){setExchangeRates(function(prev){return _object_spread_props(_object_spread({},prev),_define_property({},tokenAddress,addressToExchangeRate[tokenAddress]||FAILED))})}).catch(function(){setExchangeRates(function(prev){return _object_spread_props(_object_spread({},prev),_define_property({},tokenAddress,FAILED))})});return}return new _shared_modules_Numeric__WEBPACK_IMPORTED_MODULE_5__.e(contractExchangeRate,10).times(nativeConversionRate)}}},[exchangeRates,chainId,nativeCurrency,tokenAddress,selectedNativeConversionRate,contractExchangeRates])}try{useTokenExchangeRate.displayName="useTokenExchangeRate",useTokenExchangeRate.__docgenInfo={description:"A hook that returns the exchange rate of the given token –– assumes native if no token address is passed.",displayName:"useTokenExchangeRate",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["ui/components/app/currency-input/hooks/useTokenExchangeRate.tsx#useTokenExchangeRate"]={docgenInfo:useTokenExchangeRate.__docgenInfo,name:"useTokenExchangeRate",path:"ui/components/app/currency-input/hooks/useTokenExchangeRate.tsx#useTokenExchangeRate"})}catch(__react_docgen_typescript_loader_error){}}}]);