diff --git a/.env.development b/.env.development index 3d6ba333..3bd1409a 100644 --- a/.env.development +++ b/.env.development @@ -1,7 +1,5 @@ REACT_APP_AUTO_CONNECT=true # 10 seconds REACT_APP_POLL_BALANCE_INTERVAL=10000 -# 10 seconds -REACT_APP_POLL_BLOCK_NUMBER_INTERVAL=10000 # goerli testnet REACT_APP_SUPPORTED_CHAIN_IDS=5 diff --git a/.env.production b/.env.production index 28264208..8acece38 100644 --- a/.env.production +++ b/.env.production @@ -1,6 +1,4 @@ REACT_APP_AUTO_CONNECT=true - # 1 minute - REACT_APP_POLL_BALANCE_INTERVAL=60000 # 30 seconds REACT_APP_POLL_BLOCK_NUMBER_INTERVAL=30000 # mainnet diff --git a/.env.testing b/.env.testing index f602a438..2b97f01f 100644 --- a/.env.testing +++ b/.env.testing @@ -1,6 +1,4 @@ REACT_APP_AUTO_CONNECT=true - # 30 seconds - REACT_APP_POLL_BALANCE_INTERVAL=30000 # 20 seconds REACT_APP_POLL_BLOCK_NUMBER_INTERVAL=20000 # goerli testnet diff --git a/src/__tests__/utils/blockchain/starknet.spec.js b/src/__tests__/utils/blockchain/starknet.spec.js new file mode 100644 index 00000000..ca875df9 --- /dev/null +++ b/src/__tests__/utils/blockchain/starknet.spec.js @@ -0,0 +1,32 @@ +import {ChainType, TransactionHashPrefix} from '../../../enums'; +import utils from '../../../utils'; + +describe('starknet', () => { + describe('getTransactionHash', () => { + it('should calc tx hash', () => { + const from_address = '0xcf98f0a8edc6a730e1ca6b64a2528c6be031cb12'; + const to_address = + '1384622289134235426972866085149619554404298343372540338336104355150443775597'; + const selector = + '1285101517810983806491589552491143496277809242732141897358598292095611420389'; + const nonce = '55'; + const payload = [ + '17466514784613283928575916580398045172482824287888203092305238190565527099', + '52145000000000', + '0' + ]; + + expect( + utils.blockchain.starknet.getTransactionHash( + TransactionHashPrefix.L1_HANDLER, + from_address, + to_address, + selector, + payload, + ChainType.GOERLI.id, + nonce + ) + ).toEqual('0x35ab0e4de971ac0736844ef36a05796dc41490c165373923c423f4b995983e8'); + }); + }); +}); diff --git a/src/__tests__/utils/date.spec.js b/src/__tests__/utils/date.spec.js index c33f6de0..eb37c374 100644 --- a/src/__tests__/utils/date.spec.js +++ b/src/__tests__/utils/date.spec.js @@ -1,4 +1,6 @@ -import {get24Time, getDate} from '../../utils'; +import utils from '../../utils'; + +const {get24Time, getDate} = utils.date; describe('getDate', () => { it('should get date', () => { diff --git a/src/__tests__/utils/hash.spec.js b/src/__tests__/utils/hash.spec.js index af417a88..a24e9303 100644 --- a/src/__tests__/utils/hash.spec.js +++ b/src/__tests__/utils/hash.spec.js @@ -1,32 +1,6 @@ -import {ChainType, TransactionHashPrefix} from '../../enums'; -import {hashEquals, txHash} from '../../utils'; +import utils from '../../utils'; -describe('txHash', () => { - it('should calc tx hash', () => { - const from_address = '0xcf98f0a8edc6a730e1ca6b64a2528c6be031cb12'; - const to_address = - '1384622289134235426972866085149619554404298343372540338336104355150443775597'; - const selector = '1285101517810983806491589552491143496277809242732141897358598292095611420389'; - const nonce = '55'; - const payload = [ - '17466514784613283928575916580398045172482824287888203092305238190565527099', - '52145000000000', - '0' - ]; - - expect( - txHash( - TransactionHashPrefix.L1_HANDLER, - from_address, - to_address, - selector, - payload, - ChainType.GOERLI.id, - nonce - ) - ).toEqual('0x35ab0e4de971ac0736844ef36a05796dc41490c165373923c423f4b995983e8'); - }); -}); +const {hashEquals} = utils.hash; describe('hashEquals', () => { it('should compare hashes', () => { diff --git a/src/__tests__/utils/object.spec.js b/src/__tests__/utils/object.spec.js index 2611e903..8f96cde9 100644 --- a/src/__tests__/utils/object.spec.js +++ b/src/__tests__/utils/object.spec.js @@ -1,4 +1,6 @@ -import {evaluate, findIndexById, getPropertyPath, toClasses} from '../../utils'; +import utils from '../../utils'; + +const {evaluate, findIndexById, getPropertyPath, toClasses} = utils.object; describe('getPropertyPath', () => { const obj = { diff --git a/src/__tests__/utils/number.spec.js b/src/__tests__/utils/parser.spec.js similarity index 98% rename from src/__tests__/utils/number.spec.js rename to src/__tests__/utils/parser.spec.js index 1f2c1f28..37ef3626 100644 --- a/src/__tests__/utils/number.spec.js +++ b/src/__tests__/utils/parser.spec.js @@ -1,11 +1,13 @@ -import { +import utils from '../../utils'; + +const { parseFromDecimals, parseFromFelt, parseFromUint256, parseToDecimals, parseToUint256, UNIT_MAP -} from '../../utils'; +} = utils.parser; describe('UNIT_MAP', () => { it('should init unit map', () => { diff --git a/src/__tests__/services/storage-manager.spec.js b/src/__tests__/utils/storage.spec.js similarity index 66% rename from src/__tests__/services/storage-manager.spec.js rename to src/__tests__/utils/storage.spec.js index 9eefc3ba..fdfb97fb 100644 --- a/src/__tests__/services/storage-manager.spec.js +++ b/src/__tests__/utils/storage.spec.js @@ -1,4 +1,6 @@ -import {StorageManager} from '../../services'; +import utils from '../../utils'; + +const {getItem, setItem} = utils.storage; class LocalStorageMock { constructor() { @@ -33,14 +35,14 @@ describe('StorageManager', () => { }); it('should return null for empty key', () => { - expect(StorageManager.getItem('test')).toBeNull(); + expect(getItem('test')).toBeNull(); }); it('should get item hash from local storage', () => { - StorageManager.setItem('testObject', testObject); - StorageManager.setItem('testArray', testArray); - StorageManager.setItem('testNumber', testNumber); - StorageManager.setItem('testString', testString); + setItem('testObject', testObject); + setItem('testArray', testArray); + setItem('testNumber', testNumber); + setItem('testString', testString); expect(localStorage.getItem('testObject')).toEqual( 'eyIwIjoiZXc9PSIsIjEiOiJJZz09IiwiMiI6IllRPT0iLCIzIjoiSWc9PSIsIjQiOiJPZz09IiwiNSI6Ik1RPT0iLCI2IjoiZlE9PSJ9' ); @@ -54,21 +56,21 @@ describe('StorageManager', () => { }); it('should get item from storage manager', () => { - StorageManager.setItem('testObject', testObject); - StorageManager.setItem('testArray', testArray); - StorageManager.setItem('testNumber', testNumber); - StorageManager.setItem('testString', testString); - expect(StorageManager.getItem('testObject')).toEqual(testObject); - expect(StorageManager.getItem('testArray')).toEqual(testArray); - expect(StorageManager.getItem('testNumber')).toEqual(testNumber); - expect(StorageManager.getItem('testString')).toEqual(testString); + setItem('testObject', testObject); + setItem('testArray', testArray); + setItem('testNumber', testNumber); + setItem('testString', testString); + expect(getItem('testObject')).toEqual(testObject); + expect(getItem('testArray')).toEqual(testArray); + expect(getItem('testNumber')).toEqual(testNumber); + expect(getItem('testString')).toEqual(testString); }); it('should backward compatible for saved arrays', () => { const jsonArray = JSON.stringify(testArray); localStorage.setItem('test', jsonArray); expect(localStorage.getItem('test')).toEqual(jsonArray); - expect(StorageManager.getItem('test')).toEqual(testArray); + expect(getItem('test')).toEqual(testArray); expect(localStorage.getItem('test')).toEqual( 'eyIwIjoiV3c9PSIsIjEiOiJldz09IiwiMiI6IklnPT0iLCIzIjoiWVE9PSIsIjQiOiJJZz09IiwiNSI6Ik9nPT0iLCI2IjoiTVE9PSIsIjciOiJmUT09IiwiOCI6IlhRPT0ifQ==' ); diff --git a/src/__tests__/utils/string.spec.js b/src/__tests__/utils/string.spec.js index ce74fb5e..e8ac381d 100644 --- a/src/__tests__/utils/string.spec.js +++ b/src/__tests__/utils/string.spec.js @@ -1,4 +1,6 @@ -import {capitalize} from '../../utils'; +import utils from '../../utils'; + +const {capitalize} = utils.string; describe('capitalize', () => { it('should capitalize string', () => { diff --git a/src/__tests__/utils/token.spec.js b/src/__tests__/utils/token.spec.js index f7470b0b..a6de7b7c 100644 --- a/src/__tests__/utils/token.spec.js +++ b/src/__tests__/utils/token.spec.js @@ -1,4 +1,6 @@ -import {isEth} from '../../utils'; +import utils from '../../utils'; + +const {isEth} = utils.token; describe('isEth', () => { it('should return true for eth symbol as string', () => { diff --git a/src/__tests__/utils/wallet.spec.js b/src/__tests__/utils/wallet.spec.js index 148116f8..2011a6e0 100644 --- a/src/__tests__/utils/wallet.spec.js +++ b/src/__tests__/utils/wallet.spec.js @@ -1,4 +1,6 @@ -import {formatBalance, shortenAddress} from '../../utils'; +import utils from '../../utils'; + +const {formatBalance, shortenAddress} = utils.wallet; describe('formatBalance', () => { it('should format balance to 5 digits precision', () => { diff --git a/src/api/bridge.js b/src/api/bridge.js index 7b038543..2934e38c 100644 --- a/src/api/bridge.js +++ b/src/api/bridge.js @@ -1,12 +1,11 @@ -import {parseFromDecimals, parseToDecimals, parseToFelt, parseToUint256} from '../utils'; -import {l1_callContract, l1_sendTransaction, l2_sendTransaction} from '../utils/contract'; +import utils from '../utils'; export const deposit = async ({recipient, amount, decimals, contract, options, emitter}) => { try { - return l1_sendTransaction( + return utils.blockchain.ethereum.sendTransaction( contract, 'deposit', - [parseToDecimals(amount, decimals), recipient], + [utils.parser.parseToDecimals(amount, decimals), recipient], options, emitter ); @@ -17,13 +16,13 @@ export const deposit = async ({recipient, amount, decimals, contract, options, e export const depositEth = async ({recipient, amount, contract, options, emitter}) => { try { - return l1_sendTransaction( + return utils.blockchain.ethereum.sendTransaction( contract, 'deposit', [recipient], { ...options, - value: parseToDecimals(amount) + value: utils.parser.parseToDecimals(amount) }, emitter ); @@ -34,10 +33,10 @@ export const depositEth = async ({recipient, amount, contract, options, emitter} export const withdraw = async ({recipient, amount, decimals, contract, emitter}) => { try { - return l1_sendTransaction( + return utils.blockchain.ethereum.sendTransaction( contract, 'withdraw', - [parseToDecimals(amount, decimals), recipient], + [utils.parser.parseToDecimals(amount, decimals), recipient], { from: recipient }, @@ -50,8 +49,8 @@ export const withdraw = async ({recipient, amount, decimals, contract, emitter}) export const maxDeposit = async ({decimals, contract}) => { try { - const maxDeposit = await l1_callContract(contract, 'maxDeposit'); - return parseFromDecimals(maxDeposit, decimals); + const maxDeposit = await utils.blockchain.ethereum.callContract(contract, 'maxDeposit'); + return utils.parser.parseFromDecimals(maxDeposit, decimals); } catch (ex) { return Promise.reject(ex); } @@ -59,9 +58,9 @@ export const maxDeposit = async ({decimals, contract}) => { export const initiateWithdraw = async ({recipient, amount, decimals, contract}) => { try { - return l2_sendTransaction(contract, 'initiate_withdraw', { - l1Recipient: parseToFelt(recipient), - amount: parseToUint256(amount, decimals) + return utils.blockchain.starknet.sendTransaction(contract, 'initiate_withdraw', { + l1Recipient: utils.parser.parseToFelt(recipient), + amount: utils.parser.parseToUint256(amount, decimals) }); } catch (ex) { return Promise.reject(ex); diff --git a/src/api/erc20.js b/src/api/erc20.js index 7a7ec91b..5f1336fa 100644 --- a/src/api/erc20.js +++ b/src/api/erc20.js @@ -1,11 +1,15 @@ import {TransactionStatus} from '../enums'; import {web3} from '../libs'; -import {parseFromDecimals, parseFromUint256} from '../utils'; -import {l1_callContract, l1_sendTransaction, l2_callContract} from '../utils/contract'; +import utils from '../utils'; export const approve = async ({spender, value, contract, options}) => { try { - return await l1_sendTransaction(contract, 'approve', [spender, value], options); + return await utils.blockchain.ethereum.sendTransaction( + contract, + 'approve', + [spender, value], + options + ); } catch (ex) { return Promise.reject(ex); } @@ -13,8 +17,11 @@ export const approve = async ({spender, value, contract, options}) => { export const allowance = async ({owner, spender, decimals, contract}) => { try { - const allow = await l1_callContract(contract, 'allowance', [owner, spender]); - return parseFromDecimals(allow, decimals); + const allow = await utils.blockchain.ethereum.callContract(contract, 'allowance', [ + owner, + spender + ]); + return utils.parser.parseFromDecimals(allow, decimals); } catch (ex) { return Promise.reject(ex); } @@ -23,16 +30,18 @@ export const allowance = async ({owner, spender, decimals, contract}) => { export const balanceOf = async ({account, decimals, contract}, isL1 = true) => { try { if (isL1) { - const balance = await l1_callContract(contract, 'balanceOf', [account]); - return parseFromDecimals(balance, decimals); + const balance = await utils.blockchain.ethereum.callContract(contract, 'balanceOf', [ + account + ]); + return utils.parser.parseFromDecimals(balance, decimals); } else { - const {balance} = await l2_callContract( + const {balance} = await utils.blockchain.starknet.callContract( contract, 'balanceOf', [{account}], TransactionStatus.PENDING.toLowerCase() ); - return parseFromUint256(balance, decimals); + return utils.parser.parseFromUint256(balance, decimals); } } catch (ex) { return Promise.reject(ex); @@ -42,7 +51,7 @@ export const balanceOf = async ({account, decimals, contract}, isL1 = true) => { export const ethBalanceOf = async account => { try { const balance = await web3.eth.getBalance(account); - return parseFromDecimals(balance); + return utils.parser.parseFromDecimals(balance); } catch (ex) { return Promise.reject(ex); } diff --git a/src/components/Containers/Footer/Footer.strings.js b/src/components/Containers/Footer/Footer.strings.js index 96622db6..47454e13 100644 --- a/src/components/Containers/Footer/Footer.strings.js +++ b/src/components/Containers/Footer/Footer.strings.js @@ -1,3 +1,3 @@ -import {getString} from '../../../utils'; +import utils from '../../../utils'; -export const RIGHTS_TXT = getString('containers.footer.rights_txt'); +export const RIGHTS_TXT = utils.getTranslation('containers.footer.rights_txt'); diff --git a/src/components/Containers/Header/Header.js b/src/components/Containers/Header/Header.js index db863b52..442a3719 100644 --- a/src/components/Containers/Header/Header.js +++ b/src/components/Containers/Header/Header.js @@ -2,7 +2,7 @@ import React from 'react'; import {ReactComponent as StarkGateLogo} from '../../../assets/img/starkgate.svg'; import {useL1Wallet, useL2Wallet, useWallets} from '../../../providers/WalletsProvider'; -import {toClasses} from '../../../utils'; +import utils from '../../../utils'; import {useBridgeActions} from '../../Features/Bridge/Bridge.hooks'; import {useIsL1, useIsL2} from '../../Features/Transfer/Transfer.hooks'; import {WalletButton} from '../../UI'; @@ -32,17 +32,17 @@ export const Header = () => { }; return ( -
-
-
+
+
+
{isConnected && ( -
{CHAIN_TXT(chainName)}
+
{CHAIN_TXT(chainName)}
)}
-
+
{isL1AccountConnected && ( - capitalize(evaluate(getString('containers.header.chain_txt'), {chainName})); + utils.string.capitalize( + utils.object.evaluate(utils.getTranslation('containers.header.chain_txt'), {chainName}) + ); diff --git a/src/components/Features/Account/Account.js b/src/components/Features/Account/Account.js index 9436e05b..d9b99c89 100644 --- a/src/components/Features/Account/Account.js +++ b/src/components/Features/Account/Account.js @@ -1,11 +1,11 @@ import PropTypes from 'prop-types'; import React from 'react'; -import {LINKS} from '../../../constants'; +import constants from '../../../config/constants'; import {useCompleteTransferToL1} from '../../../hooks'; import {useAccountTransfers} from '../../../providers/TransfersProvider'; import {useWallets} from '../../../providers/WalletsProvider'; -import {findIndexById} from '../../../utils'; +import utils from '../../../utils'; import { AccountAddress, BackButton, @@ -21,6 +21,8 @@ import {TransferLog} from '../TransferLog/TransferLog'; import styles from './Account.module.scss'; import {TITLE_TXT} from './Account.strings'; +const {LINKS} = constants; + export const Account = ({transferId}) => { const {showTransferMenu} = useBridgeActions(); const {account, chainId, resetWallet} = useWallets(); @@ -55,7 +57,7 @@ export const Account = ({transferId}) => { {isL2 && ( )} - + {renderTransfers()} diff --git a/src/components/Features/Account/Account.strings.js b/src/components/Features/Account/Account.strings.js index 75437b99..4e104e7e 100644 --- a/src/components/Features/Account/Account.strings.js +++ b/src/components/Features/Account/Account.strings.js @@ -1,3 +1,4 @@ -import {evaluate, getString} from '../../../utils'; +import utils from '../../../utils'; -export const TITLE_TXT = network => evaluate(getString('menus.account.title_txt'), {network}); +export const TITLE_TXT = network => + utils.object.evaluate(utils.getTranslation('menus.account.title_txt'), {network}); diff --git a/src/components/Features/Login/Login.js b/src/components/Features/Login/Login.js index 0430fedb..ebfec0dd 100644 --- a/src/components/Features/Login/Login.js +++ b/src/components/Features/Login/Login.js @@ -3,7 +3,7 @@ import React, {useEffect, useRef, useState} from 'react'; import {NetworkType, toChainName, WalletStatus, WalletType} from '../../../enums'; import {useConfig, useWalletHandlerProvider} from '../../../hooks'; import {useL1Wallet, useL2Wallet, useWallets} from '../../../providers/WalletsProvider'; -import {capitalize, toClasses} from '../../../utils'; +import utils from '../../../utils'; import {Menu, WalletLogin} from '../../UI'; import {useHideModal, useProgressModal} from '../ModalProvider/ModalProvider.hooks'; import {AUTO_CONNECT_TIMEOUT_DURATION, MODAL_TIMEOUT_DURATION} from './Login.constants'; @@ -82,9 +82,9 @@ export const Login = () => { if (error.name === 'ChainUnsupportedError') { const msg = error.message.replace(/\d+/g, match => { let msg = match; - const chainName = capitalize(toChainName(Number(match))); + const chainName = utils.string.capitalize(toChainName(Number(match))); if (chainName) { - msg += ` (${capitalize(toChainName(Number(match)))})`; + msg += ` (${utils.string.capitalize(toChainName(Number(match)))})`; } return msg; }); @@ -126,7 +126,7 @@ export const Login = () => { return ( -
+
{TITLE_TXT}

diff --git a/src/components/Features/Login/Login.strings.js b/src/components/Features/Login/Login.strings.js index 16b95243..b7c197b7 100644 --- a/src/components/Features/Login/Login.strings.js +++ b/src/components/Features/Login/Login.strings.js @@ -1,8 +1,8 @@ -import {evaluate, getString} from '../../../utils'; +import utils from '../../../utils'; -const {title_txt, subtitle_txt, download_txt, modal_txt} = getString('menus.login'); +const {title_txt, subtitle_txt, download_txt, modal_txt} = utils.getTranslation('menus.login'); export const TITLE_TXT = title_txt; export const DOWNLOAD_TEXT = download_txt; -export const SUBTITLE_TXT = networkName => evaluate(subtitle_txt, {networkName}); -export const MODAL_TXT = walletName => evaluate(modal_txt, {walletName}); +export const SUBTITLE_TXT = networkName => utils.object.evaluate(subtitle_txt, {networkName}); +export const MODAL_TXT = walletName => utils.object.evaluate(modal_txt, {walletName}); diff --git a/src/components/Features/ModalProvider/ModalProvider.strings.js b/src/components/Features/ModalProvider/ModalProvider.strings.js index 340c2566..e3bffdf1 100644 --- a/src/components/Features/ModalProvider/ModalProvider.strings.js +++ b/src/components/Features/ModalProvider/ModalProvider.strings.js @@ -1,3 +1,5 @@ -import {getString} from '../../../utils'; +import utils from '../../../utils'; -export const TRANSACTION_SUBMITTED_TITLE_TXT = getString('modals.transactionSubmitted.title_txt'); +export const TRANSACTION_SUBMITTED_TITLE_TXT = utils.getTranslation( + 'modals.transactionSubmitted.title_txt' +); diff --git a/src/components/Features/SelectToken/SelectToken.strings.js b/src/components/Features/SelectToken/SelectToken.strings.js index 4fef0f93..7a47146e 100644 --- a/src/components/Features/SelectToken/SelectToken.strings.js +++ b/src/components/Features/SelectToken/SelectToken.strings.js @@ -1,3 +1,3 @@ -import {getString} from '../../../utils'; +import utils from '../../../utils'; -export const TITLE_TXT = getString('menus.selectToken.title_txt'); +export const TITLE_TXT = utils.getTranslation('menus.selectToken.title_txt'); diff --git a/src/components/Features/ToastProvider/ToastProvider.js b/src/components/Features/ToastProvider/ToastProvider.js index 29c21a11..039325ef 100644 --- a/src/components/Features/ToastProvider/ToastProvider.js +++ b/src/components/Features/ToastProvider/ToastProvider.js @@ -13,10 +13,10 @@ import { } from '../../../enums'; import {useCompleteTransferToL1, usePrevious} from '../../../hooks'; import {useTransfers} from '../../../providers/TransfersProvider'; -import {getFullTime} from '../../../utils'; -import {useBridgeActions} from '../../Features/Bridge/Bridge.hooks'; -import {useIsL1, useIsL2} from '../../Features/Transfer/Transfer.hooks'; +import utils from '../../../utils'; import {ToastBody, TransferToast, CompleteTransferToL1Toast} from '../../UI'; +import {useBridgeActions} from '../Bridge/Bridge.hooks'; +import {useIsL1, useIsL2} from '../Transfer/Transfer.hooks'; import styles from './ToastProvider.module.scss'; import {ALPHA_DISCLAIMER_MSG} from './ToastProvider.strings'; @@ -162,7 +162,7 @@ export const TransferData = ({transfer, style}) => { style={style} /> - + ); }; diff --git a/src/components/Features/ToastProvider/ToastProvider.strings.js b/src/components/Features/ToastProvider/ToastProvider.strings.js index dcb2a054..02f64783 100644 --- a/src/components/Features/ToastProvider/ToastProvider.strings.js +++ b/src/components/Features/ToastProvider/ToastProvider.strings.js @@ -1,3 +1,3 @@ -import {getString} from '../../../utils'; +import utils from '../../../utils'; -export const ALPHA_DISCLAIMER_MSG = getString('toasts.alpha_disclaimer_msg'); +export const ALPHA_DISCLAIMER_MSG = utils.getTranslation('toasts.alpha_disclaimer_msg'); diff --git a/src/components/Features/Transfer/Transfer.strings.js b/src/components/Features/Transfer/Transfer.strings.js index 392f5ff4..144245b1 100644 --- a/src/components/Features/Transfer/Transfer.strings.js +++ b/src/components/Features/Transfer/Transfer.strings.js @@ -1,8 +1,11 @@ -import {evaluate, getString} from '../../../utils'; +import utils from '../../../utils'; -export const INSUFFICIENT_BALANCE_ERROR_MSG = getString( +export const INSUFFICIENT_BALANCE_ERROR_MSG = utils.getTranslation( 'menus.transfer.insufficient_balance_error_msg' ); export const MAX_AMOUNT_ERROR_MSG = (maxAmount, symbol) => - evaluate(getString('menus.transfer.max_amount_error_msg'), {maxAmount, symbol}); + utils.object.evaluate(utils.getTranslation('menus.transfer.max_amount_error_msg'), { + maxAmount, + symbol + }); diff --git a/src/components/Features/TransferLog/TransferLog.js b/src/components/Features/TransferLog/TransferLog.js index a1182408..db9d2ec6 100644 --- a/src/components/Features/TransferLog/TransferLog.js +++ b/src/components/Features/TransferLog/TransferLog.js @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React, {useEffect, useState} from 'react'; -import {LINKS} from '../../../constants'; +import constants from '../../../config/constants'; import { isOnChain, isPending, @@ -11,7 +11,7 @@ import { } from '../../../enums'; import {useColors} from '../../../hooks'; import {useWallets} from '../../../providers/WalletsProvider'; -import {getFullTime, toClasses} from '../../../utils'; +import utils from '../../../utils'; import {Button, CryptoLogo} from '../../UI'; import {CryptoLogoSize} from '../../UI/CryptoLogo/CryptoLogo.enums'; import {LinkButton} from '../../UI/LinkButton/LinkButton'; @@ -19,6 +19,8 @@ import {useTransferData} from '../Transfer/Transfer.hooks'; import styles from './TransferLog.module.scss'; import {COMPLETE_TRANSFER_BTN_TXT} from './TransferLog.strings'; +const {LINKS} = constants; + export const TransferLog = ({transfer, onCompleteTransferClick}) => { const {symbol, timestamp, name, amount, status, l1hash, l2hash} = transfer; const [sign, setSign] = useState(''); @@ -31,7 +33,7 @@ export const TransferLog = ({transfer, onCompleteTransferClick}) => { const renderTransferStatus = () => { return !isOnChain(status) ? ( -

+
{TransactionStatusFriendlyMessage[status]}
) : null; @@ -68,7 +70,7 @@ export const TransferLog = ({transfer, onCompleteTransferClick}) => {
{name} -
{`${getFullTime(timestamp)}`}
+
{`${utils.date.getFullTime(timestamp)}`}
diff --git a/src/components/Features/TransferLog/TransferLog.strings.js b/src/components/Features/TransferLog/TransferLog.strings.js index d06afed9..bde1cb8e 100644 --- a/src/components/Features/TransferLog/TransferLog.strings.js +++ b/src/components/Features/TransferLog/TransferLog.strings.js @@ -1,5 +1,5 @@ -import {getString} from '../../../utils'; +import utils from '../../../utils'; -export const COMPLETE_TRANSFER_BTN_TXT = getString( +export const COMPLETE_TRANSFER_BTN_TXT = utils.getTranslation( 'menus.account.transferLogContainer.transferLog.complete_transfer_btn_txt' ); diff --git a/src/components/UI/AccountAddress/AccountAddress.js b/src/components/UI/AccountAddress/AccountAddress.js index 35a3fa66..fd7a31de 100644 --- a/src/components/UI/AccountAddress/AccountAddress.js +++ b/src/components/UI/AccountAddress/AccountAddress.js @@ -3,7 +3,7 @@ import React, {useRef} from 'react'; import {ReactComponent as CopyIcon} from '../../../assets/svg/icons/copy.svg'; import {useAnimation} from '../../../hooks'; -import {toClasses} from '../../../utils'; +import utils from '../../../utils'; import {COPIED_ANIMATION_TIMEOUT_INTERVAL} from './AccountAddress.constants'; import styles from './AccountAddress.module.scss'; import {COPIED_MSG_TXT} from './AccountAddress.strings'; @@ -24,7 +24,7 @@ export const AccountAddress = ({address}) => { {address.length <= 42 ? address : `${address.substring(0, 42)}...`}
-
+
{COPIED_MSG_TXT}
diff --git a/src/components/UI/AccountAddress/AccountAddress.strings.js b/src/components/UI/AccountAddress/AccountAddress.strings.js index 00595350..18044439 100644 --- a/src/components/UI/AccountAddress/AccountAddress.strings.js +++ b/src/components/UI/AccountAddress/AccountAddress.strings.js @@ -1,3 +1,3 @@ -import {getString} from '../../../utils'; +import utils from '../../../utils'; -export const COPIED_MSG_TXT = getString('menus.account.copied_msg_txt'); +export const COPIED_MSG_TXT = utils.getTranslation('menus.account.copied_msg_txt'); diff --git a/src/components/UI/BackButton/BackButton.strings.js b/src/components/UI/BackButton/BackButton.strings.js index 46bc48a2..35101268 100644 --- a/src/components/UI/BackButton/BackButton.strings.js +++ b/src/components/UI/BackButton/BackButton.strings.js @@ -1,3 +1,3 @@ -import {getString} from '../../../utils'; +import utils from '../../../utils'; -export const BTN_TXT = getString('menus.back_btn_txt'); +export const BTN_TXT = utils.getTranslation('menus.back_btn_txt'); diff --git a/src/components/UI/Button/Button.js b/src/components/UI/Button/Button.js index ef0bf706..5ad3479a 100644 --- a/src/components/UI/Button/Button.js +++ b/src/components/UI/Button/Button.js @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React, {useState} from 'react'; -import {toClasses} from '../../../utils'; +import utils from '../../../utils'; import {Loading} from '../Loading/Loading'; import {LoadingSize} from '../Loading/Loading.enums'; import styles from './Button.module.scss'; @@ -35,7 +35,7 @@ export const Button = ({ return (