Copy disabled (too large)
Download .txt
Showing preview only (10,791K chars total). Download the full file to get everything.
Repository: Loopring/loopring-web-v2
Branch: released
Commit: 84d19a96c2ae
Files: 1323
Total size: 10.0 MB
Directory structure:
gitextract_p30q3z9e/
├── .claude/
│ └── settings.local.json
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── .yarnclean
├── .yarnrc
├── LICENSE
├── README.md
├── craco.config.cjs
├── lerna.json
├── package.json
├── packages/
│ ├── common-resources/
│ │ ├── .babelrc
│ │ ├── assets/
│ │ │ └── coin/
│ │ │ └── loopring.json
│ │ ├── index.ts
│ │ ├── mail.html
│ │ ├── package.json
│ │ ├── scripts/
│ │ │ ├── .gitignore
│ │ │ ├── READMD.md
│ │ │ ├── get_imgs.py
│ │ │ └── requirements.txt
│ │ ├── static-resources/
│ │ │ ├── index.ts
│ │ │ ├── src/
│ │ │ │ ├── constant/
│ │ │ │ │ ├── account.ts
│ │ │ │ │ ├── chart.ts
│ │ │ │ │ ├── firebase.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── loopring.ts
│ │ │ │ │ ├── market.ts
│ │ │ │ │ ├── miningOuterLinks.ts
│ │ │ │ │ ├── networks.ts
│ │ │ │ │ ├── notification.ts
│ │ │ │ │ ├── proLayout.ts
│ │ │ │ │ ├── router.ts
│ │ │ │ │ ├── sagaStatus.ts
│ │ │ │ │ ├── setting.ts
│ │ │ │ │ ├── social.ts
│ │ │ │ │ ├── table.ts
│ │ │ │ │ ├── tokenConfig.ts
│ │ │ │ │ ├── trade.ts
│ │ │ │ │ ├── vendor.ts
│ │ │ │ │ └── walletConnector.ts
│ │ │ │ ├── error/
│ │ │ │ │ ├── errorMap.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── i18n/
│ │ │ │ │ ├── en_US/
│ │ │ │ │ │ ├── common.ts
│ │ │ │ │ │ ├── error.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── landPage.ts
│ │ │ │ │ │ ├── layout.ts
│ │ │ │ │ │ ├── tables.ts
│ │ │ │ │ │ └── webEarn.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── zh_CN/
│ │ │ │ │ ├── common.ts
│ │ │ │ │ ├── error.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── landPage.ts
│ │ │ │ │ ├── layout.ts
│ │ │ │ │ ├── tables.ts
│ │ │ │ │ └── webEarn.ts
│ │ │ │ ├── loopring-interface/
│ │ │ │ │ ├── CoinInterface.ts
│ │ │ │ │ ├── FooterInterface.ts
│ │ │ │ │ ├── HeaderInterface.ts
│ │ │ │ │ ├── Investment.ts
│ │ │ │ │ ├── VendorInterface.ts
│ │ │ │ │ ├── WallectInterface.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── svg/
│ │ │ │ │ ├── Icon.tsx
│ │ │ │ │ ├── dropdownLogo.tsx
│ │ │ │ │ ├── earnLogo.tsx
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── network.tsx
│ │ │ │ │ ├── redPacketScope.tsx
│ │ │ │ │ ├── redPacketSvg.tsx
│ │ │ │ │ └── shareReferral.tsx
│ │ │ │ ├── themes/
│ │ │ │ │ ├── css/
│ │ │ │ │ │ ├── color-lib.ts
│ │ │ │ │ │ ├── global.tsx
│ │ │ │ │ │ └── reset.tsx
│ │ │ │ │ ├── fonts/
│ │ │ │ │ │ └── english/
│ │ │ │ │ │ └── LICENSE
│ │ │ │ │ ├── globalSetup.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ └── overrides/
│ │ │ │ │ ├── muTheme.ts
│ │ │ │ │ ├── overrides-date-pick.ts
│ │ │ │ │ ├── overrides-mui.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ └── utils/
│ │ │ │ ├── format_tools.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── log_tools.ts
│ │ │ │ ├── makeDom.ts
│ │ │ │ ├── obj_tools.ts
│ │ │ │ ├── types.tsx
│ │ │ │ └── util.ts
│ │ │ └── types.d.ts
│ │ ├── tsconfig.json
│ │ └── tsconfig.tsbuildinfo
│ ├── component-lib/
│ │ ├── .babelrc
│ │ ├── .eslintignore
│ │ ├── .eslintrc.json
│ │ ├── .gitignore
│ │ ├── .storybook/
│ │ │ ├── main.ts
│ │ │ └── preview.tsx
│ │ ├── .travis.yml
│ │ ├── README.md
│ │ ├── craco.config.cjs
│ │ ├── package.json
│ │ ├── rollup.config.js
│ │ ├── src/
│ │ │ ├── components/
│ │ │ │ ├── basic-lib/
│ │ │ │ │ ├── Icon.stories.tsx
│ │ │ │ │ ├── btns/
│ │ │ │ │ │ ├── BtnPercentage.tsx
│ │ │ │ │ │ ├── Button.stories.tsx
│ │ │ │ │ │ ├── Button.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── checkbox/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── color.stories.tsx
│ │ │ │ │ ├── display/
│ │ │ │ │ │ ├── SpaceBetweenBox.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── empty/
│ │ │ │ │ │ ├── Empty.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── form/
│ │ │ │ │ │ ├── Form.stories.tsx
│ │ │ │ │ │ ├── hooks/
│ │ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ │ ├── useFocusRef.ts
│ │ │ │ │ │ │ └── usePanelRef.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── input/
│ │ │ │ │ │ ├── CollectionInput.tsx
│ │ │ │ │ │ ├── DatePicker.tsx
│ │ │ │ │ │ ├── Default.tsx
│ │ │ │ │ │ ├── InputButton.tsx
│ │ │ │ │ │ ├── InputCode.tsx
│ │ │ │ │ │ ├── InputCoin.tsx
│ │ │ │ │ │ ├── InputMaxButton.tsx
│ │ │ │ │ │ ├── InputMaxCoin.tsx
│ │ │ │ │ │ ├── InputSearch.tsx
│ │ │ │ │ │ ├── InputSelect.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── TextareaWithCount.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── style.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── lists/
│ │ │ │ │ │ ├── CoinList.tsx
│ │ │ │ │ │ ├── CollectionItem.tsx
│ │ │ │ │ │ ├── FileListItem.tsx
│ │ │ │ │ │ ├── HeadMenuItem.tsx
│ │ │ │ │ │ ├── HeadToolbar.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── List.stories.tsx
│ │ │ │ │ │ ├── NFTList.tsx
│ │ │ │ │ │ ├── Notification.tsx
│ │ │ │ │ │ ├── SubMenuList.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── loading/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── media/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── nftImage.tsx
│ │ │ │ │ ├── panel/
│ │ │ │ │ │ ├── IPFSSourceUpload.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── Panel.stories.tsx
│ │ │ │ │ │ ├── QRCodeUpload.tsx
│ │ │ │ │ │ ├── SubMenu.tsx
│ │ │ │ │ │ ├── SwitchPanel.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── popover/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── Popover.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── popover.stories.tsx
│ │ │ │ │ ├── resource/
│ │ │ │ │ │ ├── hook/
│ │ │ │ │ │ │ └── useImage.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── table-pagination/
│ │ │ │ │ │ ├── TablePagination.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── tables/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── Table.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ ├── Formatters/
│ │ │ │ │ │ │ │ ├── CellActionsFormatter.tsx
│ │ │ │ │ │ │ │ ├── CellDepthFormatter.tsx
│ │ │ │ │ │ │ │ ├── CellExpanderFormatter.tsx
│ │ │ │ │ │ │ │ ├── ChildRowDeleteButton.tsx
│ │ │ │ │ │ │ │ ├── ImageFormatter.tsx
│ │ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ │ ├── HeaderRenderers/
│ │ │ │ │ │ │ │ ├── SortableHeaderCell.tsx
│ │ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ │ └── RowRenders/
│ │ │ │ │ │ │ ├── RowDepthFormatter.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── hook/
│ │ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ │ ├── useClickOutside.ts
│ │ │ │ │ │ │ ├── useCombinedRefs.ts
│ │ │ │ │ │ │ ├── useFocusRef.ts
│ │ │ │ │ │ │ └── useLatestFunc.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── table.stories.tsx
│ │ │ │ │ └── tags/
│ │ │ │ │ ├── Tags.stories.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── block/
│ │ │ │ │ ├── AmmCard.tsx
│ │ │ │ │ ├── AmmPairDetail.tsx
│ │ │ │ │ ├── AssetTitle.tsx
│ │ │ │ │ ├── Block.stories.tsx
│ │ │ │ │ ├── CollectionDetailView.tsx
│ │ │ │ │ ├── CollectionMedia.tsx
│ │ │ │ │ ├── DepthRaw.tsx
│ │ │ │ │ ├── DownloadPanel.tsx
│ │ │ │ │ ├── ETHStakingDetail.tsx
│ │ │ │ │ ├── ErrorBlock.tsx
│ │ │ │ │ ├── Interface.ts
│ │ │ │ │ ├── LoadingBlock.tsx
│ │ │ │ │ ├── MarketBlock.tsx
│ │ │ │ │ ├── NotificationPanel.tsx
│ │ │ │ │ ├── RedPacket.tsx
│ │ │ │ │ ├── Referral.tsx
│ │ │ │ │ ├── SettingPanel.tsx
│ │ │ │ │ ├── ShareSocialPanel.tsx
│ │ │ │ │ ├── TagIconList.tsx
│ │ │ │ │ ├── TradeRace.tsx
│ │ │ │ │ ├── TradeTitle.tsx
│ │ │ │ │ ├── Vip.tsx
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── nftMedia.tsx
│ │ │ │ ├── bottomRule/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── carousel/
│ │ │ │ │ ├── Carousel.tsx
│ │ │ │ │ ├── Interface.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── charts/
│ │ │ │ │ ├── constant.ts
│ │ │ │ │ ├── doughnutChart/
│ │ │ │ │ │ ├── DoughnutChart.stories.tsx
│ │ │ │ │ │ ├── DoughnutChart.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── scaleAreaChart/
│ │ │ │ │ ├── APRChart/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── DepthChart/
│ │ │ │ │ │ ├── ScaleAreaChart.stories.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── KlineChart/
│ │ │ │ │ │ ├── KlineChart.stories.tsx
│ │ │ │ │ │ ├── KlineChart.tsx
│ │ │ │ │ │ ├── KlineChart_min.stories.tsx
│ │ │ │ │ │ ├── data.ts
│ │ │ │ │ │ ├── data_min.ts
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── ScaleAreaChart.tsx
│ │ │ │ │ ├── TrendChart/
│ │ │ │ │ │ ├── ScaleAreaChart.stories.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── data.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── datetimerangepicker/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── footer/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── header/
│ │ │ │ │ ├── Header.tsx
│ │ │ │ │ ├── Interface.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── toolbar/
│ │ │ │ │ ├── Interface.ts
│ │ │ │ │ ├── WalletConnect.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── layout/
│ │ │ │ │ ├── AmmDetail.stories.tsx
│ │ │ │ │ ├── Error.stories.tsx
│ │ │ │ │ ├── layer2.stories.tsx
│ │ │ │ │ └── trade.stories.tsx
│ │ │ │ ├── modal/
│ │ │ │ │ ├── ClosureAnnouncementModal.tsx
│ │ │ │ │ ├── ModalPanelBase.tsx
│ │ │ │ │ ├── ModalPanels/
│ │ │ │ │ │ ├── AccountBase.tsx
│ │ │ │ │ │ ├── AddAsset.tsx
│ │ │ │ │ │ ├── BasicPanel.tsx
│ │ │ │ │ │ ├── BridgePanel.tsx
│ │ │ │ │ │ ├── CheckActiveStatus.tsx
│ │ │ │ │ │ ├── CheckImportCollection.tsx
│ │ │ │ │ │ ├── ClaimWithdraw.tsx
│ │ │ │ │ │ ├── ClaimWithdrawPanel.tsx
│ │ │ │ │ │ ├── CoinbaseSmartWalletModal.tsx
│ │ │ │ │ │ ├── Connect.tsx
│ │ │ │ │ │ ├── CreateAccount.tsx
│ │ │ │ │ │ ├── CreateRedPacketPanel.tsx
│ │ │ │ │ │ ├── DeployNFT.tsx
│ │ │ │ │ │ ├── Deposit.tsx
│ │ │ │ │ │ ├── DepositNFT.tsx
│ │ │ │ │ │ ├── DepositPanel.tsx
│ │ │ │ │ │ ├── DepositRecorder.tsx
│ │ │ │ │ │ ├── Dual.tsx
│ │ │ │ │ │ ├── EditContact.tsx
│ │ │ │ │ │ ├── ExportAccount.tsx
│ │ │ │ │ │ ├── FeeSelect.tsx
│ │ │ │ │ │ ├── ForceWithdraw.tsx
│ │ │ │ │ │ ├── ForceWithdrawPanel.tsx
│ │ │ │ │ │ ├── HadAccount.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── MintNFT.tsx
│ │ │ │ │ │ ├── ModalAccount.tsx
│ │ │ │ │ │ ├── NoAccount.tsx
│ │ │ │ │ │ ├── QRAddressPanel.tsx
│ │ │ │ │ │ ├── RedPacket.tsx
│ │ │ │ │ │ ├── SendAsset.tsx
│ │ │ │ │ │ ├── SendNFTAsset.tsx
│ │ │ │ │ │ ├── ThirdPanelReturn.tsx
│ │ │ │ │ │ ├── Transfer.tsx
│ │ │ │ │ │ ├── TransferPanel.tsx
│ │ │ │ │ │ ├── TransferToTaikoAccount.tsx
│ │ │ │ │ │ ├── TransferToTaikoAccountPanel.tsx
│ │ │ │ │ │ ├── UnlockAccount.tsx
│ │ │ │ │ │ ├── UpdateAccount.tsx
│ │ │ │ │ │ ├── Vault.tsx
│ │ │ │ │ │ ├── Withdraw.tsx
│ │ │ │ │ │ ├── WithdrawPanel.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── QRCode/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── QRCode.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── RedPacketPanels/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── RedPacketModal.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── Vault/
│ │ │ │ │ │ ├── VaultBorrowPanel.tsx
│ │ │ │ │ │ ├── VaultExitPanel.tsx
│ │ │ │ │ │ ├── VaultJoinPanel.tsx
│ │ │ │ │ │ ├── VaultLoanPanel.tsx
│ │ │ │ │ │ ├── VaultRepayPanel.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── WalletConnect/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── ModalWalletConnect.tsx
│ │ │ │ │ │ ├── ProviderMenu.tsx
│ │ │ │ │ │ ├── WalletConnectQRCode.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── WalletPanels/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── LockWallet.tsx
│ │ │ │ │ │ ├── ModalWallet.tsx
│ │ │ │ │ │ ├── WalletApprove.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── accountList_new.stories.tsx
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── setting/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── SettingFee.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ └── walletList.stories.tsx
│ │ │ │ ├── panel/
│ │ │ │ │ ├── FilterMarketsPanel.tsx
│ │ │ │ │ ├── Panel.stories.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── provider.tsx
│ │ │ │ ├── share/
│ │ │ │ │ ├── Interface.ts
│ │ │ │ │ ├── components/
│ │ │ │ │ │ └── SocialButton.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── styled.ts
│ │ │ │ ├── tableList/
│ │ │ │ │ ├── QuoteTable/
│ │ │ │ │ │ ├── MarketDetail.tsx
│ │ │ │ │ │ ├── MarketTable.tsx
│ │ │ │ │ │ ├── QuoteTable.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── ammRecordTable/
│ │ │ │ │ │ ├── AmmRecordTable.stories.tsx
│ │ │ │ │ │ ├── AmmRecordTable.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── ammTable/
│ │ │ │ │ │ ├── AmmTable.stories.tsx
│ │ │ │ │ │ ├── AmmTable.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ └── Filter.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── interface.ts
│ │ │ │ │ ├── assetsTable/
│ │ │ │ │ │ ├── AssetsDefiTable.tsx
│ │ │ │ │ │ ├── AssetsTable.tsx
│ │ │ │ │ │ ├── VaultAssetsTable.tsx
│ │ │ │ │ │ ├── VaultPositionsTable.tsx
│ │ │ │ │ │ ├── assetsTable.stories.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ ├── ActionMemo.tsx
│ │ │ │ │ │ │ ├── CoinIcons.tsx
│ │ │ │ │ │ │ ├── Filter.tsx
│ │ │ │ │ │ │ └── modal.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── btradeSwapTable/
│ │ │ │ │ │ ├── BtradeSwapTable.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── defiTxsTable/
│ │ │ │ │ │ ├── DefiStakingTable.tsx
│ │ │ │ │ │ ├── DefiStakingTxTable.tsx
│ │ │ │ │ │ ├── DefiTxsTable.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ └── ActionMemo.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── dualTable/
│ │ │ │ │ │ ├── DualTable.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── dualTxsTable/
│ │ │ │ │ │ ├── DualAssetTable.tsx
│ │ │ │ │ │ ├── DualTxsTable.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── investOverviewTable/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── InvestOverviewTable.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ ├── Filter.tsx
│ │ │ │ │ │ │ └── expends.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── myPoolTable/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── MyPoolTable.stories.tsx
│ │ │ │ │ │ ├── MyPoolTable.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ ├── ActionPop.tsx
│ │ │ │ │ │ │ └── Filter.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── nftTable/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── TsNFTTable.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ ├── Filter.tsx
│ │ │ │ │ │ │ └── modal.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── orderHistoryTable/
│ │ │ │ │ │ ├── OrderHistoryTable.tsx
│ │ │ │ │ │ ├── SingleOrderHistoryTable.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ ├── Filter.tsx
│ │ │ │ │ │ │ └── modal.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── poolsTable/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── PoolsTable.stories.tsx
│ │ │ │ │ │ ├── PoolsTable.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── redPacketTable/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── RedPacketBlindBoxReceiveTable.tsx
│ │ │ │ │ │ ├── RedPacketClaimTable.tsx
│ │ │ │ │ │ ├── RedPacketReceiveTable.tsx
│ │ │ │ │ │ ├── RedPacketRecodTable.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── textTooltip.tsx
│ │ │ │ │ ├── rewardTable/
│ │ │ │ │ │ ├── ReferralsTable.tsx
│ │ │ │ │ │ ├── RefundTable.tsx
│ │ │ │ │ │ ├── RewardTable.tsx
│ │ │ │ │ │ ├── RewardsTable.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── tableList.stories.tsx
│ │ │ │ │ ├── taikoFarmingTable/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── TaikoFarmingPortfolioTable.tsx
│ │ │ │ │ │ ├── TaikoTarmingTxRecordsTable.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── tradeNFTTable/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── TradeNFTTable.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ └── Filter.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── tradeRaceTable/
│ │ │ │ │ │ ├── TradeRaceTable.tsx
│ │ │ │ │ │ ├── TradeRaceTableConfig.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── tradeRroTable/
│ │ │ │ │ │ ├── TradePro.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── tradeTable.stories.tsx
│ │ │ │ │ ├── tradeTable/
│ │ │ │ │ │ ├── TradeTable.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ └── Filter.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── tradeTable.stories.tsx
│ │ │ │ │ ├── transactionsTable/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── TransactionTable.tsx
│ │ │ │ │ │ ├── components/
│ │ │ │ │ │ │ ├── Filter.tsx
│ │ │ │ │ │ │ └── modal.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ └── vaultTable/
│ │ │ │ │ ├── Interface.ts
│ │ │ │ │ ├── VaultTxTable.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── text-tooltip/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── toast/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── tradePanel/
│ │ │ │ ├── Amm/
│ │ │ │ │ ├── AmmPanel.tsx
│ │ │ │ │ ├── Interface.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── Deposit/
│ │ │ │ │ ├── DepositGroup.tsx
│ │ │ │ │ ├── DepositTitle.tsx
│ │ │ │ │ ├── Interface.tsx
│ │ │ │ │ ├── VendorMenu.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── ExportAccount/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Interface.ts
│ │ │ │ ├── ModalPanel.tsx
│ │ │ │ ├── Panel.stories.tsx
│ │ │ │ ├── Reset/
│ │ │ │ │ ├── ActiveAccountPanel.tsx
│ │ │ │ │ ├── ConfirmationPanel.tsx
│ │ │ │ │ ├── ResetPanel.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── Swap/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── components/
│ │ │ │ │ ├── AddressType.tsx
│ │ │ │ │ ├── AmmWrap/
│ │ │ │ │ │ ├── AmmDeposit.tsx
│ │ │ │ │ │ ├── AmmWithdraw.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── styled.ts
│ │ │ │ │ ├── BanxaConfirm.tsx
│ │ │ │ │ ├── BasicACoinInput.tsx
│ │ │ │ │ ├── BasicACoinTrade.tsx
│ │ │ │ │ ├── BasicANFTTrade.tsx
│ │ │ │ │ ├── CollectionAdvanceWrap.tsx
│ │ │ │ │ ├── CollectionManageWrap.tsx
│ │ │ │ │ ├── ContactSelection.tsx
│ │ │ │ │ ├── CreateCollectionWrap.tsx
│ │ │ │ │ ├── CreateRedPacketWrap.tsx
│ │ │ │ │ ├── DeFiWrap/
│ │ │ │ │ │ ├── DeFiStackOneSideWrap.tsx
│ │ │ │ │ │ ├── DeFiStackRedeemWrap.tsx
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── deFiWrap.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── DeployNFTWrap.tsx
│ │ │ │ │ ├── DepositConfirm.tsx
│ │ │ │ │ ├── DepositNFTWrap.tsx
│ │ │ │ │ ├── DepositWrap.tsx
│ │ │ │ │ ├── DualWrap/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── ModifyParameter.tsx
│ │ │ │ │ │ ├── ModifySetting.tsx
│ │ │ │ │ │ ├── dualDetail.tsx
│ │ │ │ │ │ ├── dualWrap.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── ExportAccountWrap.tsx
│ │ │ │ │ ├── ForceWithdrawConfirm.tsx
│ │ │ │ │ ├── ForceWithdrawWrap.tsx
│ │ │ │ │ ├── ImportCollectionWrap.tsx
│ │ │ │ │ ├── ImportRedPacketWrap.tsx
│ │ │ │ │ ├── Interface.ts
│ │ │ │ │ ├── MintAdvanceNFTWrap.tsx
│ │ │ │ │ ├── MintNFTBlock.tsx
│ │ │ │ │ ├── MintNFTConfirm.tsx
│ │ │ │ │ ├── RampConfirm.tsx
│ │ │ │ │ ├── ResetWrap.tsx
│ │ │ │ │ ├── Styled.ts
│ │ │ │ │ ├── SwapWrap/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── SwapMenuList.tsx
│ │ │ │ │ │ ├── SwapTradeWrap.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── TargetRedpacketWrap.tsx
│ │ │ │ │ ├── TransferConfirm.tsx
│ │ │ │ │ ├── TransferNFTBurn.tsx
│ │ │ │ │ ├── TransferWrap.tsx
│ │ │ │ │ ├── VaultWrap/
│ │ │ │ │ │ ├── Interface.ts
│ │ │ │ │ │ ├── VaultBorrow.tsx
│ │ │ │ │ │ ├── VaultJoin.tsx
│ │ │ │ │ │ ├── VaultRepay.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── styled.ts
│ │ │ │ │ │ └── utils.ts
│ │ │ │ │ ├── WithdrawConfirm.tsx
│ │ │ │ │ ├── WithdrawWrap.tsx
│ │ │ │ │ ├── hook/
│ │ │ │ │ │ ├── BasicACoinPanelHook.tsx
│ │ │ │ │ │ └── useAddressType.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── tool/
│ │ │ │ │ ├── Dialogs.tsx
│ │ │ │ │ ├── FeeList.tsx
│ │ │ │ │ ├── Property.tsx
│ │ │ │ │ ├── Refresh.tsx
│ │ │ │ │ ├── SlippagePanel.tsx
│ │ │ │ │ ├── ToolBarItems.tsx
│ │ │ │ │ ├── TradeMenuList.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── tradePro/
│ │ │ │ ├── Interface.ts
│ │ │ │ ├── hookCommon.tsx
│ │ │ │ ├── index.ts
│ │ │ │ ├── limitTrade.tsx
│ │ │ │ ├── marketTrade.tsx
│ │ │ │ └── stopLimitTrade.tsx
│ │ │ ├── index.ts
│ │ │ ├── react-app-env.d.ts
│ │ │ ├── reportWebVitals.ts
│ │ │ ├── setupTests.ts
│ │ │ ├── sharedPages/
│ │ │ │ ├── VaultPage/
│ │ │ │ │ ├── components/
│ │ │ │ │ │ ├── DashBoardPanel.tsx
│ │ │ │ │ │ ├── HomePanel.tsx
│ │ │ │ │ │ ├── ModalWrap.tsx
│ │ │ │ │ │ ├── TradePanel.tsx
│ │ │ │ │ │ ├── VaultPageUI.tsx
│ │ │ │ │ │ ├── VaultSwapView.tsx
│ │ │ │ │ │ ├── modals.tsx
│ │ │ │ │ │ └── useVaultSwapExtends.tsx
│ │ │ │ │ ├── hooks/
│ │ │ │ │ │ ├── useModals.ts
│ │ │ │ │ │ ├── useVaultDashBoard.tsx
│ │ │ │ │ │ ├── useVaultMarket.ts
│ │ │ │ │ │ ├── useVaultPage.ts
│ │ │ │ │ │ └── useVaultSwap.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ └── index.ts
│ │ │ ├── static.ts
│ │ │ ├── stores/
│ │ │ │ ├── index.ts
│ │ │ │ └── reducer/
│ │ │ │ ├── modals/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ └── reducer.ts
│ │ │ │ ├── settings/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ └── reducer.ts
│ │ │ │ └── toggle/
│ │ │ │ ├── hook.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── interface.ts
│ │ │ │ └── reducer.ts
│ │ │ ├── types/
│ │ │ │ └── lib.ts
│ │ │ └── utils/
│ │ │ └── closureAnnouncementUtils.ts
│ │ ├── tsconfig.json
│ │ └── tsconfig.test.json
│ ├── core/
│ │ ├── .babelrc
│ │ ├── .eslintignore
│ │ ├── .eslintrc.json
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── README.md
│ │ ├── package.json
│ │ ├── rollup.config.js
│ │ ├── src/
│ │ │ ├── TimeoutCheckProvider.tsx
│ │ │ ├── abi/
│ │ │ │ ├── erc20ABI.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── taikoDepositABI.ts
│ │ │ ├── api_wrapper/
│ │ │ │ ├── index.ts
│ │ │ │ └── wallet.ts
│ │ │ ├── component/
│ │ │ │ ├── BtnConnect.tsx
│ │ │ │ ├── NotificationItem.tsx
│ │ │ │ ├── index.ts
│ │ │ │ └── styled.ts
│ │ │ ├── defs/
│ │ │ │ └── index.ts
│ │ │ ├── hookConnect.tsx
│ │ │ ├── hooks/
│ │ │ │ ├── common/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── useAddrCheck.ts
│ │ │ │ │ ├── useAllowances.ts
│ │ │ │ │ ├── useBtnStatus.ts
│ │ │ │ │ ├── useCollectionImport.ts
│ │ │ │ │ ├── useCollectionManage.ts
│ │ │ │ │ ├── useDebounce.ts
│ │ │ │ │ ├── useGetOrderHistorys.ts
│ │ │ │ │ ├── useHookBtn.ts
│ │ │ │ │ ├── useInjectWeb3Modal.ts
│ │ │ │ │ ├── useIsHebao.ts
│ │ │ │ │ ├── useMarket.ts
│ │ │ │ │ ├── useMyCollection.ts
│ │ │ │ │ ├── useMyNFTCollection.ts
│ │ │ │ │ ├── useNFT.tsx
│ │ │ │ │ ├── useNotification.ts
│ │ │ │ │ ├── usePairMatch.ts
│ │ │ │ │ ├── useThrottle.ts
│ │ │ │ │ ├── useToast.ts
│ │ │ │ │ ├── useTrade.ts
│ │ │ │ │ └── useUserWallets.ts
│ │ │ │ ├── help/
│ │ │ │ │ ├── coinPairInit.ts
│ │ │ │ │ ├── connectStatusCallback.tsx
│ │ │ │ │ ├── formatPrice.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── makeCache.ts
│ │ │ │ │ ├── makeDefiSideStaking.ts
│ │ │ │ │ ├── makeDual.ts
│ │ │ │ │ ├── makeInvest.ts
│ │ │ │ │ ├── makeMarketTrend.ts
│ │ │ │ │ ├── makeTickView.ts
│ │ │ │ │ ├── makeUIAmmActivityMap.ts
│ │ │ │ │ ├── makeWallet.ts
│ │ │ │ │ ├── marketPairHelp.ts
│ │ │ │ │ ├── marketRedPacket.ts
│ │ │ │ │ ├── marketTable.ts
│ │ │ │ │ ├── parseRabbitConfig.ts
│ │ │ │ │ ├── providorConnect.ts
│ │ │ │ │ ├── useAmmTotalValue.ts
│ │ │ │ │ └── volumeToCount.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── rooters/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── useLocationChange.ts
│ │ │ │ └── useractions/
│ │ │ │ ├── hookAmmCommon.ts
│ │ │ │ ├── hookAmmExit.ts
│ │ │ │ ├── hookAmmJoin.ts
│ │ │ │ ├── hookSwap.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── useAccountModal.ts
│ │ │ │ ├── useActiveAccount.ts
│ │ │ │ ├── useBanxaConfirm.ts
│ │ │ │ ├── useBtrade.ts
│ │ │ │ ├── useCheckAccStatus.tsx
│ │ │ │ ├── useClaimConfirm.ts
│ │ │ │ ├── useCoinbaseWalletPassword.ts
│ │ │ │ ├── useCollectionAdvanceMeta.ts
│ │ │ │ ├── useContact.ts
│ │ │ │ ├── useContactAdd.tsx
│ │ │ │ ├── useCreateRedPacket.ts
│ │ │ │ ├── useDefiTrade.ts
│ │ │ │ ├── useDeposit.ts
│ │ │ │ ├── useDualEdit.ts
│ │ │ │ ├── useDualTrade.ts
│ │ │ │ ├── useEditCollection.tsx
│ │ │ │ ├── useExportAccount.ts
│ │ │ │ ├── useForceWithdraw.ts
│ │ │ │ ├── useNFTBurn.ts
│ │ │ │ ├── useNFTDeploy.ts
│ │ │ │ ├── useNFTDeposit.ts
│ │ │ │ ├── useNFTMintAdvance.ts
│ │ │ │ ├── useNFTTransfer.ts
│ │ │ │ ├── useNFTWithdraw.ts
│ │ │ │ ├── useRampConfirm.ts
│ │ │ │ ├── useRedpacket.ts
│ │ │ │ ├── useReset.ts
│ │ │ │ ├── useStakeTrade.ts
│ │ │ │ ├── useStakeTradeExit.ts
│ │ │ │ ├── useStakingAprTrend.ts
│ │ │ │ ├── useTaikoLock.ts
│ │ │ │ ├── useTransfer.ts
│ │ │ │ ├── useTransferToTaikoAccount.ts
│ │ │ │ ├── useUpdateAccount.ts
│ │ │ │ ├── useVendor.ts
│ │ │ │ ├── useWithdraw.ts
│ │ │ │ └── vault/
│ │ │ │ ├── index.ts
│ │ │ │ ├── useAccountInfo.ts
│ │ │ │ ├── useVaultBorrow.ts
│ │ │ │ ├── useVaultJoin.ts
│ │ │ │ ├── useVaultLoan.ts
│ │ │ │ ├── useVaultRedeem.ts
│ │ │ │ ├── useVaultRepay.ts
│ │ │ │ └── utils.ts
│ │ │ ├── index.ts
│ │ │ ├── modal/
│ │ │ │ ├── AccountL1Modal/
│ │ │ │ │ ├── hook.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── AccountModal/
│ │ │ │ │ ├── components/
│ │ │ │ │ │ ├── NFTDetail.tsx
│ │ │ │ │ │ └── QRCodeScanner.tsx
│ │ │ │ │ ├── hook.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── AmmPoolModal/
│ │ │ │ │ ├── components/
│ │ │ │ │ │ ├── ammPanel.tsx
│ │ │ │ │ │ ├── ammRecordPanel.tsx
│ │ │ │ │ │ └── chartAndInfo.tsx
│ │ │ │ │ ├── hooks.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── DualModal/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RedPacketModal/
│ │ │ │ │ ├── hook.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── WalletModal/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── react-app-env.d.ts
│ │ │ ├── reportWebVitals.ts
│ │ │ ├── services/
│ │ │ │ ├── account/
│ │ │ │ │ ├── accountServices.ts
│ │ │ │ │ ├── activateAccount.ts
│ │ │ │ │ ├── checkAccount.ts
│ │ │ │ │ ├── command.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── lockAccount.ts
│ │ │ │ │ ├── networkUpdate.ts
│ │ │ │ │ ├── resetAccount.ts
│ │ │ │ │ ├── unlockAccount.ts
│ │ │ │ │ └── useAccountHook.ts
│ │ │ │ ├── banxa/
│ │ │ │ │ ├── banxaService.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── offFaitService.ts
│ │ │ │ ├── claimServices/
│ │ │ │ │ ├── claimServices.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── collectionServices/
│ │ │ │ │ ├── collectionService.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── connect/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── useConnectHook.ts
│ │ │ │ ├── depositServices/
│ │ │ │ │ ├── depositServices.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── fee/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── useChargeFees.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── ipfs/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── ipfsService.ts
│ │ │ │ │ └── useIpfs.ts
│ │ │ │ ├── mintServices/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── mintService.ts
│ │ │ │ │ ├── useNFTMeta.ts
│ │ │ │ │ └── useNFTMint.ts
│ │ │ │ ├── qrcodeServices/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── qrCodeService.ts
│ │ │ │ │ └── useQrcodeScan.ts
│ │ │ │ ├── redpacket/
│ │ │ │ │ └── index.ts
│ │ │ │ └── socket/
│ │ │ │ ├── hook/
│ │ │ │ │ ├── useL2CommonSocket.ts
│ │ │ │ │ ├── useNotificationSocket.ts
│ │ │ │ │ ├── useWalletLayer2Socket.ts
│ │ │ │ │ └── useWalletLayer2WithNFTSocket.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── services/
│ │ │ │ │ ├── ammPoolService.ts
│ │ │ │ │ ├── bookService.ts
│ │ │ │ │ ├── btradeOrderbookService.ts
│ │ │ │ │ ├── l2CommonService.ts
│ │ │ │ │ ├── mixorderService.ts
│ │ │ │ │ ├── mixtradeService.ts
│ │ │ │ │ ├── notificationService.ts
│ │ │ │ │ ├── orderbookService.ts
│ │ │ │ │ ├── tickerService.ts
│ │ │ │ │ ├── tradeService.ts
│ │ │ │ │ └── walletLayer2Service.ts
│ │ │ │ └── socketUtil.ts
│ │ │ ├── storage/
│ │ │ │ └── index.ts
│ │ │ ├── stores/
│ │ │ │ ├── Amm/
│ │ │ │ │ ├── AmmActivityMap/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ ├── AmmMap/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── account/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── amount/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── config/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ └── reducer.ts
│ │ │ │ ├── contacts/
│ │ │ │ │ ├── hooks.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── global/
│ │ │ │ │ └── actions.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── invest/
│ │ │ │ │ ├── BtradeMap/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ ├── DefiMap/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ ├── DualMap/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ ├── InvestTokenTypeMap/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ ├── StakingMap/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ ├── VaultMap/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ ├── VaultTicker/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── localStore/
│ │ │ │ │ ├── coinbaseSmartWalletPersist/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── confirmation/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── favoriteMarket/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── favoriteVaultMarket/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── layer1Store/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── reducer.ts
│ │ │ │ │ │ └── saga.ts
│ │ │ │ │ ├── nftRefresh/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── offRamp/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── onchainHashInfo/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── redPacket/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── tradeProSettings/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ └── walletInfo/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ └── reducer.ts
│ │ │ │ ├── notify/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── redPacket/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── rootSaga.ts
│ │ │ │ ├── router/
│ │ │ │ │ ├── amm/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── modals/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── tradeBtrade/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── tradeDefi/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── tradeDual/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── tradeLite/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── tradePro/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ ├── tradeStake/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── interface.ts
│ │ │ │ │ │ └── reducer.ts
│ │ │ │ │ └── tradeVault/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ └── reducer.ts
│ │ │ │ ├── socket/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── system/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── targetRedpackt/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── ticker/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── token/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── tokenPrices/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── userRewards/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── vaultLayer2/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── walletL2Collection/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── walletL2NFTCollection/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── walletLayer1/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ ├── walletLayer2/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── interface.ts
│ │ │ │ │ ├── reducer.ts
│ │ │ │ │ └── saga.ts
│ │ │ │ └── walletLayer2NFT/
│ │ │ │ ├── hook.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── interface.ts
│ │ │ │ ├── reducer.ts
│ │ │ │ └── saga.ts
│ │ │ ├── types.d.ts
│ │ │ └── utils/
│ │ │ ├── .gitignore
│ │ │ ├── AESMd5.ts
│ │ │ ├── address.ts
│ │ │ ├── addressTypeMap.ts
│ │ │ ├── calculation.ts
│ │ │ ├── coinbaseSmartWallet.ts
│ │ │ ├── decimal.ts
│ │ │ ├── dt_tools.ts
│ │ │ ├── feeInfo.ts
│ │ │ ├── formatter_tool.ts
│ │ │ ├── genAvatar.ts
│ │ │ ├── getStateFnState.ts
│ │ │ ├── index.ts
│ │ │ ├── makeMeta.ts
│ │ │ ├── numberFormat.ts
│ │ │ ├── promise.ts
│ │ │ ├── readFileQrcode.ts
│ │ │ ├── retry.ts
│ │ │ ├── swap_utils.ts
│ │ │ ├── tryFn.ts
│ │ │ ├── validation.ts
│ │ │ ├── waitForTx.ts
│ │ │ └── web3_tools.ts
│ │ ├── tsconfig.json
│ │ └── tsconfig.test.json
│ ├── web-bridge/
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── craco.config.js
│ │ ├── electron-builder.env
│ │ ├── generate-react-cli.json
│ │ ├── jest.config.js
│ │ ├── jest.setup.js
│ │ ├── package.json
│ │ ├── public/
│ │ │ ├── electron.js
│ │ │ ├── index.html
│ │ │ ├── manifest.json
│ │ │ └── robots.txt
│ │ ├── src/
│ │ │ ├── App.tsx
│ │ │ ├── hook.ts
│ │ │ ├── hookAccountInit.ts
│ │ │ ├── index.tsx
│ │ │ ├── layouts/
│ │ │ │ ├── footer/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── header/
│ │ │ │ ├── hook.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── pages/
│ │ │ │ ├── DepositPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ErrorPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── LoadingPage/
│ │ │ │ └── index.tsx
│ │ │ ├── react-app-env.d.ts
│ │ │ ├── reportWebVitals.ts
│ │ │ ├── routers/
│ │ │ │ └── index.tsx
│ │ │ ├── setupTests.ts
│ │ │ └── types.d.ts
│ │ └── tsconfig.json
│ ├── web-developer/
│ │ └── public/
│ │ ├── badge.xml
│ │ ├── browserconfig.xml
│ │ ├── dark.css
│ │ ├── developer.css
│ │ ├── developer.js
│ │ ├── developer.scss
│ │ ├── footer.jsx
│ │ ├── index.html
│ │ ├── light.css
│ │ ├── manifest.json
│ │ ├── reset.css
│ │ ├── robots.txt
│ │ └── vercel.json
│ ├── web-earn/
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── .gitignore
│ │ ├── ADD_NEW_CHAIN.md
│ │ ├── README.md
│ │ ├── craco.config.js
│ │ ├── electron-builder.env
│ │ ├── generate-react-cli.json
│ │ ├── jest.config.js
│ │ ├── jest.setup.js
│ │ ├── package.json
│ │ ├── public/
│ │ │ ├── badge.xml
│ │ │ ├── browserconfig.xml
│ │ │ ├── electron.js
│ │ │ ├── index.html
│ │ │ ├── manifest.json
│ │ │ └── robots.txt
│ │ ├── src/
│ │ │ ├── App.tsx
│ │ │ ├── constant/
│ │ │ │ ├── index.ts
│ │ │ │ ├── router.ts
│ │ │ │ └── setting.ts
│ │ │ ├── hook.ts
│ │ │ ├── hookAccountInit.ts
│ │ │ ├── index.tsx
│ │ │ ├── layouts/
│ │ │ │ ├── footer/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── header/
│ │ │ │ ├── hook.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── pages/
│ │ │ │ ├── AssetPage/
│ │ │ │ │ ├── AssetPanel/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── HistoryPanel/
│ │ │ │ │ │ ├── hooks.ts
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── useDualAsset.tsx
│ │ │ │ │ ├── RewardsPanel/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── BtradeSwapPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EarnPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ErrorPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── IntroPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── InvestPage/
│ │ │ │ │ ├── DeFiPanel/
│ │ │ │ │ │ ├── DeFiTradePanel.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── DualPanel/
│ │ │ │ │ │ ├── BeginnerMode.tsx
│ │ │ │ │ │ ├── ChooseDualType.tsx
│ │ │ │ │ │ ├── DualListPanel.tsx
│ │ │ │ │ │ └── hook.ts
│ │ │ │ │ ├── LeverageETHPanel/
│ │ │ │ │ │ ├── TradePanel.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── MyLiquidityPanel/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── interface.ts
│ │ │ │ │ ├── OverviewPanel/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── PoolsPanel/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Layer2Page/
│ │ │ │ │ ├── ContactPanel/
│ │ │ │ │ │ ├── delete.tsx
│ │ │ │ │ │ ├── history.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── ForcewithdrawPanel/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── ReferralRewardsPanel/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── SecurityPanel/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── VipPanel/
│ │ │ │ │ │ ├── hooks.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── LoadingPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── MarkdownPage/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── investMarkdown.tsx
│ │ │ │ │ └── notifyMarkdown.tsx
│ │ │ │ ├── QuotePage/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── useMaket.ts
│ │ │ │ ├── TaikoLockPage/
│ │ │ │ │ ├── BannerPage.tsx
│ │ │ │ │ ├── LogInToCleanLrTaiko.tsx
│ │ │ │ │ ├── MintRedeemModal.tsx
│ │ │ │ │ ├── PendingTxsModal.tsx
│ │ │ │ │ ├── TaikoLockInput.tsx
│ │ │ │ │ ├── TxSubmitModal.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ └── TradeRacePage/
│ │ │ │ ├── hook.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── interface.ts
│ │ │ │ ├── rank.tsx
│ │ │ │ └── snow.css
│ │ │ ├── react-app-env.d.ts
│ │ │ ├── reportWebVitals.ts
│ │ │ ├── routers/
│ │ │ │ └── index.tsx
│ │ │ ├── setupTests.ts
│ │ │ └── types.d.ts
│ │ └── tsconfig.json
│ ├── web-guardian/
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── craco.config.js
│ │ ├── electron-builder.env
│ │ ├── generate-react-cli.json
│ │ ├── jest.config.js
│ │ ├── jest.setup.js
│ │ ├── package.json
│ │ ├── public/
│ │ │ ├── electron.js
│ │ │ ├── index.html
│ │ │ ├── manifest.json
│ │ │ └── robots.txt
│ │ ├── src/
│ │ │ ├── App.tsx
│ │ │ ├── common.ts
│ │ │ ├── hook.ts
│ │ │ ├── hookAccountInit.ts
│ │ │ ├── index.tsx
│ │ │ ├── layouts/
│ │ │ │ ├── footer/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── header/
│ │ │ │ ├── hook.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── pages/
│ │ │ │ ├── ErrorPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── LoadingPage/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── WalletPage/
│ │ │ │ ├── GuardianModal.tsx
│ │ │ │ ├── WalletHistory.tsx
│ │ │ │ ├── WalletProtector.tsx
│ │ │ │ ├── WalletValidationInfo.tsx
│ │ │ │ ├── hook.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── modal/
│ │ │ │ │ └── index.tsx
│ │ │ │ └── utils.ts
│ │ │ ├── react-app-env.d.ts
│ │ │ ├── reportWebVitals.ts
│ │ │ ├── routers/
│ │ │ │ └── index.tsx
│ │ │ ├── setupTests.ts
│ │ │ └── types.d.ts
│ │ └── tsconfig.json
│ ├── web-wallet/
│ │ └── public/
│ │ ├── badge.xml
│ │ ├── browserconfig.xml
│ │ ├── electron.js
│ │ ├── footer.jsx
│ │ ├── index.html
│ │ ├── manifest.json
│ │ ├── reset.css
│ │ ├── robots.txt
│ │ ├── wallet.css
│ │ ├── wallet.js
│ │ ├── wallet.scss
│ │ ├── wallet_dark.css
│ │ └── wallet_light.css
│ └── webapp/
│ ├── .babelrc
│ ├── .eslintrc.json
│ ├── .gitignore
│ ├── ADD_NEW_CHAIN.md
│ ├── README.md
│ ├── craco.config.js
│ ├── electron-builder.env
│ ├── generate-react-cli.json
│ ├── jest.config.js
│ ├── jest.setup.js
│ ├── package.json
│ ├── public/
│ │ ├── badge.xml
│ │ ├── browserconfig.xml
│ │ ├── electron.js
│ │ ├── index.html
│ │ ├── manifest.json
│ │ └── robots.txt
│ ├── src/
│ │ ├── App.tsx
│ │ ├── hook.ts
│ │ ├── hookAccountInit.ts
│ │ ├── index.tsx
│ │ ├── layouts/
│ │ │ ├── footer/
│ │ │ │ └── index.tsx
│ │ │ └── header/
│ │ │ ├── hook.tsx
│ │ │ └── index.tsx
│ │ ├── pages/
│ │ │ ├── AssetPage/
│ │ │ │ ├── AssetPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── HistoryPanel/
│ │ │ │ │ ├── hooks.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── useDualAsset.tsx
│ │ │ │ ├── RewardsPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── BtradeSwapPage/
│ │ │ │ └── index.tsx
│ │ │ ├── ErrorPage/
│ │ │ │ └── index.tsx
│ │ │ ├── FiatPage/
│ │ │ │ └── index.tsx
│ │ │ ├── InvestPage/
│ │ │ │ ├── DeFiPanel/
│ │ │ │ │ ├── DeFiTradePanel.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── DualPanel/
│ │ │ │ │ ├── BeginnerMode.tsx
│ │ │ │ │ ├── ChooseDualType.tsx
│ │ │ │ │ ├── DualListPanel.tsx
│ │ │ │ │ └── hook.tsx
│ │ │ │ ├── LeverageETHPanel/
│ │ │ │ │ ├── TradePanel.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── MyLiquidityPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── interface.ts
│ │ │ │ ├── OverviewPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── PoolsPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── StakePanel/
│ │ │ │ │ └── StackTradePanel.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── LandPage/
│ │ │ │ ├── Card.tsx
│ │ │ │ ├── HomePage.tsx
│ │ │ │ ├── LandPage.tsx
│ │ │ │ ├── WalletPage.tsx
│ │ │ │ ├── coins.json
│ │ │ │ ├── index.ts
│ │ │ │ └── style.tsx
│ │ │ ├── Layer2Page/
│ │ │ │ ├── ContactPanel/
│ │ │ │ │ ├── delete.tsx
│ │ │ │ │ ├── history.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ForcewithdrawPanel/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Notification/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ReferralRewardsPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SecurityPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── VipPanel/
│ │ │ │ │ ├── hooks.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── LoadingPage/
│ │ │ │ └── index.tsx
│ │ │ ├── MarkdownPage/
│ │ │ │ ├── index.tsx
│ │ │ │ ├── investMarkdown.tsx
│ │ │ │ └── notifyMarkdown.tsx
│ │ │ ├── MiningPage/
│ │ │ │ ├── hook.ts
│ │ │ │ └── index.tsx
│ │ │ ├── NFTPage/
│ │ │ │ ├── CollectionPanel/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── EditCollectionPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ImportCollectionPanel/
│ │ │ │ │ ├── CollectionManage.tsx
│ │ │ │ │ ├── ImportCollection.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── MintNFTPanel/
│ │ │ │ │ ├── hook.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── metaNFTPanel.tsx
│ │ │ │ ├── MyNFT/
│ │ │ │ │ ├── MyNFTCollectionList.tsx
│ │ │ │ │ ├── MyNFTList.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── useMyNFT.ts
│ │ │ │ ├── NFTDeposit/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NFThistory/
│ │ │ │ │ ├── hookHistory.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── components/
│ │ │ │ │ ├── CollectionItemPanel.tsx
│ │ │ │ │ ├── landingPanel.tsx
│ │ │ │ │ ├── titleNFTMobile.tsx
│ │ │ │ │ └── usePublicNFTs.ts
│ │ │ │ └── index.tsx
│ │ │ ├── ProTradePage/
│ │ │ │ ├── hookPro.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── panel/
│ │ │ │ │ ├── chart/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── klineConfig.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── market/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── orderTable/
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── spot/
│ │ │ │ │ │ ├── hookLimit.ts
│ │ │ │ │ │ ├── hookMarket.ts
│ │ │ │ │ │ ├── hookStopLimit.ts
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── stopLimit.tsx
│ │ │ │ │ ├── toolbar/
│ │ │ │ │ │ ├── hook.ts
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── walletInfo/
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── stopLimitInfo.tsx
│ │ │ │ ├── proService.ts
│ │ │ │ └── stopLimtPage.tsx
│ │ │ ├── QuotePage/
│ │ │ │ ├── hook.ts
│ │ │ │ ├── index.tsx
│ │ │ │ └── useMaket.ts
│ │ │ ├── RedPacketPage/
│ │ │ │ ├── CreateRedPacketPanel/
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── MyRedPacketPanel/
│ │ │ │ │ ├── hooks.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RedPacketClaimPanel/
│ │ │ │ │ ├── hooks.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RedPacketMarketPanel/
│ │ │ │ │ ├── hooks.ts
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── SwapPage/
│ │ │ │ └── index.tsx
│ │ │ └── TradeRacePage/
│ │ │ ├── hook.ts
│ │ │ ├── index.tsx
│ │ │ ├── interface.ts
│ │ │ ├── rank.tsx
│ │ │ └── snow.css
│ │ ├── react-app-env.d.ts
│ │ ├── reportWebVitals.ts
│ │ ├── routers/
│ │ │ └── index.tsx
│ │ ├── setupTests.ts
│ │ └── types.d.ts
│ └── tsconfig.json
├── tsconfig.build.json
└── tsconfig.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .claude/settings.local.json
================================================
{
"permissions": {
"allow": [
"Bash(rg:*)",
"Bash(grep:*)"
],
"deny": []
}
}
================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
**/build
/out
/dist
# misc
.DS_Store
.env.local
.env.test.local
**/.env.development
# .env.prod_for_dev
npm-debug.log*
yarn-debug.log*
yarn-error.log*
*.code-workspace
.vscode
openapitools.json
*.tgz
.idea/
.yarn/
testkey.txt
test_datadir
#yalc
.yalc
yalc.lock
.windsurfrules
================================================
FILE: .prettierignore
================================================
# Ignore artifacts:
.idea/**
.vscode/**
/node_modules
**/dist
**/build
**/node_modules
================================================
FILE: .prettierrc.json
================================================
{
"semi": false,
"tabWidth": 2,
"printWidth": 100,
"singleQuote": true,
"trailingComma": "all",
"jsxSingleQuote": true,
"bracketSpacing": true
}
================================================
FILE: .yarnclean
================================================
# test directories
__tests__
test
tests
powered-test
# test exceptions
!**/viem/**/test
!**/viem/**/test/**
# asset directories
docs
doc
website
images
# assets
# examples
example
examples
# code coverage directories
coverage
.nyc_output
# build scripts
Makefile
Gulpfile.js
Gruntfile.js
# configs
appveyor.yml
circle.yml
codeship-services.yml
codeship-steps.yml
wercker.yml
.tern-project
.gitattributes
.editorconfig
.*ignore
.eslintrc
.jshintrc
.flowconfig
.documentup.json
.yarn-metadata.json
.travis.yml
# misc
*.md
!@storybook/react/dist/esm/client/docs
================================================
FILE: .yarnrc
================================================
sass_binary_site "https://npm.taobao.org/mirrors/node-sass/"
phantomjs_cdnurl "https://npm.taobao.org/mirrors/phantomjs/"
electron_mirror "https://npm.taobao.org/mirrors/electron/"
electron_builder_binaries_mirror "https://mirrors.huaweicloud.com/electron-builder-binaries/"
#registry "https://registry.npm.taobao.org"
================================================
FILE: LICENSE
================================================
Licensor: Loopring Technology Limited
Licensed Work: Loopring-web/loopring-sdk
The Licensed Work is (c) 2022 Loopring Technology Limited
-----------------------------------------------------------------------------
Terms
The Licensor hereby grants you the right to copy, modify, create derivative
works, redistribute, and make limited-production use of the Licensed Work, on condition that Loopring L2 protocol/technology is supported on your platform that this Licensed Work is being used.
If your use of the Licensed Work does not comply with the requirements
currently in effect as described in this License, you must acquire a
full licensing agreement from the Licensor, or its affiliated entities,
or you must refrain from using the Licensed Work.
All copies of the original and modified Licensed Work, and derivative works
of the Licensed Work, are subject to this License. This License applies
separately for each version of the Licensed Work.
You must conspicuously display this License on each original or modified copy
of the Licensed Work. If you receive the Licensed Work in original or
modified form from a third party, the terms and conditions set forth in this
License apply to your use of that work.
Any use of the Licensed Work in violation of this License will automatically
terminate your rights under this License for the current and all other
versions of the Licensed Work.
This License does not grant you any right in any trademark or logo of
Licensor or its affiliates (provided that you may use a trademark or logo of
Licensor as expressly required by this License).
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
TITLE.
-----------------------------------------------------------------------------
================================================
FILE: README.md
================================================
<p align="center">
<a href="https://github.com/Loopring/loopring-web-v2" rel="noopener" target="_blank"><img width="150" src="https://loopring.org/images/logo.svg" alt="Loopring-website"></a>
</p>
<h1 align="center">Loopring Application</h1>
<div align="center">
<h2>Ethereum’s First zkRollup Layer2</h2>
<p>Fast, Secure, and 100x Lower Fees</p>
[](https://github.com/Loopring/loopring-web-v2/master/LICENSE)
[](https://www.npmjs.com/package/react-data-grid)
<!-- [](https://www.npmjs.com/package/react-data-grid) -->
</div>
## 🚀 Quick Start
```bash
// with yarn
yarn install
yarn up
cd ./packages/webapp
npm run dev
```
## 📚 Loopring UI component [StoryBook](https://static.loopring.io/storybook-static/)
```bash
cd ./packages/component-lib
npm run storybook
```
## 🏗 Framework Design

## 👉 [What is Loopring?](https://loopring.org/#/)
## 🫂 Community
- [Loopring Website](https://loopring.org/)
- [Loopring Exchange](https://loopring.io/#/layer2)
- [Loopring Reddit](https://www.reddit.com/r/loopringorg/)
- [Loopring Medium](https://medium.com/loopring-protocol)
- [Loopring Twitter](https://twitter.com/loopringorg)
- [Loopring Telegram](https://t.me/loopring_en)
## 👺 For Developer
- We appreciate any improvements or initiatives for Loopring Layer2 website, please view the source code
in `./packages/component-lib`.
- The project contains a separate lib "web3-provider", which is a third-party ETH web3 wallet provider service (
WalletConnect & metamask),
- You are welcome to reuse it or integrate your provider service with our website.
- Feel free to leave suggestions or ideas.
### 📒 API & Dependency
- [Web3-Provider](https://www.npmjs.com/package/@loopring-web/web3-provider)
- [Loopring-sdk](https://www.npmjs.com/package/@loopring-web/loopring-sdk)
- [APIs](https://docs.loopring.io/)
## 🙋 Protocol & Architecture
- [Whitepaper](https://loopring.org/resources/en_whitepaper.pdf)
- [Design Docs](https://github.com/LoopringSecondary/docs/wiki/Loopring3_Design)
## ❓[Help](https://desk.zoho.com/portal/loopring/en/home)
## 🔑 Security
- [Wallet](https://security.loopring.io/)
- [Protocol Audit](https://loopring.org/resources/loopring1.0_audit.pdf)
## Release Process
loopring.io, wallet.loopring.io, docs.loopring.io, earn.loopring.io, static.loopring.io, and loopring.io are now auto deployed using Vercel.
================================================
FILE: craco.config.cjs
================================================
const webpack = require('webpack')
const {addBeforeLoader, loaderByName, getLoader, addPlugins} = require('@craco/craco');
const CopyWebpackPlugin = require('copy-webpack-plugin')
// Try the environment variable, otherwise use root
const ASSET_PATH = process.env.ASSET_PATH || '/'
// const rewireLess = require('react-app-rewire-less')
// const { alias } = require('react-app-rewire-alias')
const path = require('path')
// const GitRevisionPlugin = require('git-revision-webpack-plugin')
// const gitRevisionPlugin = new GitRevisionPlugin()
const direct = './'
const packagesPath = './packages'
module.exports = function ({env}) {
const dev = env === 'development'
const prod = env === 'production'
return {
babel: {
presets: [ /* ... */],
plugins: [
[
"import",
{
libraryName: 'antd',
libraryDirectory: 'es',
style: true,
}
],
],
loaderOptions: { /* ... */},
loaderOptions: (babelLoaderOptions, {env, paths}) => {
const dev = env === 'development'
const prod = env === 'production'
// console.log(babelLoaderOptions)
return babelLoaderOptions;
},
},
webpack: {
alias: {
'@material-ui/core/Menu': '@mui/material/Menu',
'@material-ui/core': '@mui/material',
'@material-ui/core/Popover': '@mui/material/Popover',
process: "process/browser"
},
plugins: {
add: [
new CopyWebpackPlugin({
patterns: [
{
from: path.resolve(__dirname, packagesPath, 'common-resources', 'assets'),
to: './static',
toType: 'dir',
},
],
}),
new webpack.DefinePlugin({
'process.env.TIME':
'"' + new Date().toLocaleString('en-US', {timeZone: 'Asia/Shanghai'}) + '/SH"',
}),
new webpack.ProvidePlugin({
process: 'process/browser',
}),
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
}),
],
},
configure: (config, {env, paths}) => {
const dev = env === 'development'
const prod = env === 'production'
config.ignoreWarnings = [/Failed to parse source map/];
config.resolve.fallback = Object.assign(config.resolve.fallback ?? {}, {
"crypto": require.resolve("crypto-browserify"),
"crypto-js": require.resolve('crypto-js'),
"crypto-js/sha256": require.resolve('crypto-js/sha256'),
"stream": require.resolve("stream-browserify"),
"assert": require.resolve("assert/"),
"http": require.resolve("stream-http"),
"https": require.resolve("https-browserify"),
"os": require.resolve("os-browserify"),
"url": require.resolve("url/"),
"util": require.resolve("util"),
"buffer": require.resolve("buffer"),
"timers": require.resolve("timers-browserify"),
'process/browser': require.resolve('process/browser'),
"fs":false,
"path":false
})
config.node = {global: true}
console.log(config.node)
// node: { global: true, fs: 'empty'},
// config.packages({
// packages: [
// {
// name: 'crypto-js',
// location: 'path-to/bower_components/crypto-js',
// main: 'index'
// }
// ]
// });
var {isFound, match} = getLoader(config, loaderByName('babel-loader'));
if (isFound) {
console.log(match.loader)
match.loader.include = [
path.resolve(__dirname, packagesPath),
...[
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/@web3modal`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/@walletconnect`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/@metamask`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/@scure`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/@noble`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/@ethereumjs`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/micro-ftch`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/react-spring`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/@react-spring`,
),
path.resolve(
__dirname,
`${process.env.NODE_ENV === 'development' ? direct : direct}`,
`node_modules/@loopring-web/loopring-sdk`,
),
],
]
}
config.resolve.extensions.push('.html');
config.resolve.extensions.push('.md');
addBeforeLoader(config, loaderByName('babel-loader'), {
loader: 'html-loader',
test: /\.html$/i,
exclude: [/node_modules/, /index.html/i],
options: {
attrs: [':data-src'],
minimize: true,
removeComments: false,
collapseWhitespace: false,
},
});
addBeforeLoader(config, loaderByName('babel-loader'), {
test: /\.md$/,
use: 'raw-loader',
});
// }
return config;
},
},
};
};
================================================
FILE: lerna.json
================================================
{
"version": "independent",
"npmClient": "yarn",
"command": {
"publish": {
"ignoreChanges": [
"*.md"
]
}
},
"useWorkspaces": true,
"packages": [
"packages/*"
]
}
================================================
FILE: package.json
================================================
{
"name": "loopring-web",
"version": "1.3.0",
"author": "Loopring Dex Frontend Team",
"description": "dex web app new version",
"private": true,
"license": "SEE LICENSE IN LICENSE",
"engines": {
"node": "22.x"
},
"dependencies": {
"@coinbase/onchainkit": "^0.38.7",
"@emotion/react": "^11.4.1",
"@emotion/styled": "^11.3.0",
"@loopring-web/loopring-sdk": "3.9.23",
"@loopring-web/recharts": "^2.0.10",
"@loopring-web/web3-provider": "1.4.16",
"@mui/icons-material": "^5.16.6",
"@mui/lab": "5.0.0-alpha.45",
"@mui/material": "5.6.2",
"@ramp-network/ramp-instant-sdk": "^4.0.4",
"@react-buddy/ide-toolbox": "^2.3.1",
"@react-buddy/palette-mui": "^5.0.1",
"@react-spring/parallax": "^9.4.4",
"@reduxjs/toolkit": "^1.8.1",
"@reown/appkit": "1.7.2",
"@reown/appkit-adapter-ethers5": "1.7.2",
"@reown/appkit-adapter-wagmi": "^1.7.2",
"assert": "^2.0.0",
"bignumber.js": "9.1.1",
"bn.js": "^5.2.1",
"cids": "^1.1.9",
"clsx": "^1.1.1",
"crypto-browserify": "^3.12.0",
"crypto-js": "^4.1.1",
"d3-format": "2.0.0",
"d3-time-format": "3.0.0",
"decimal.js": "^10.4.3",
"dompurify": "^2.4.0",
"dotenv": "^8.2.0",
"dotenv-webpack": "^7.0.3",
"easy-template-string": "^1.0.1",
"echarts": "^5.2.2",
"echarts-for-react": "^3.0.2",
"ethers": "^5.5.4",
"ffjavascript": "^0.1.0",
"firebase": "^9.23.0",
"github-markdown-css": "^5.2.0",
"html5-qrcode": "2.3.4",
"i18next": "^23.2.3",
"immutable": "^4.0.0-rc.12",
"ipfs-http-client": "^56.0.2",
"jsqr": "^1.4.0",
"lottie-react": "^2.1.0",
"material-ui-popup-state": "^1.9.3",
"moment": "^2.29.1",
"polished": "^4.1.1",
"qr-code-styling": "^1.6.0-rc.1",
"react": "^18.2.0",
"react-beautiful-dnd": "^13.1.1",
"react-currency-input-field": "^3.3.1",
"react-data-grid": "^7.0.0-canary.49",
"react-dom": "^18.2.0",
"react-dropzone": "^12.0.4",
"react-financial-charts": "^2.0.1",
"react-grid-layout": "^1.3.0",
"react-i18next": "^11.8.12",
"react-markdown": "^8.0.7",
"react-redux": "^7.2.3",
"react-redux-firebase": "^3.11.0",
"react-resizable": "^3.0.5",
"react-router-dom": "^5.3.4",
"react-scripts": "5.0.1",
"react-scripts-rewired": "3.1.1",
"react-share": "^4.4.1",
"react-spring": "^9.7.1",
"react-swipeable-views": "^0.13.9",
"react-use": "^17.4.0",
"react-virtualized": "^9.22.5",
"react-virtuoso": "^1.8.6",
"redux-actions": "^2.6.5",
"redux-observable": "^1.2.0",
"redux-persist": "^6.0.0",
"redux-saga": "^1.2.3",
"rehype-raw": "^6.1.1",
"remark-gfm": "^3.0.0",
"rxjs": "^7.8.1",
"three": "^0.149.0",
"timers": "^0.1.1",
"timers-browserify": "^2.0.12",
"util": "^0.12.5",
"vconsole": "^3.15.1",
"viem": "^2.27.0",
"voca": "^1.4.1",
"wagmi": "^2.14.16",
"web-vitals": "^3.4.0"
},
"build": {
"files": [
"build/**/*",
"node_modules/**/*"
],
"publish": {
"provider": "custom",
"repo": "ssh://git@github.com/loopring/dexwebappv2",
"owner": "loopring dev"
}
},
"scripts": {
"clean": "yarn autoclean --force",
"docker": "cd ./packages/webapp; yarn build; cd devops docker-compose build",
"boot": "echo y | lerna clean; sleep 1; lerna bootstrap --force-local",
"up": "echo y | lerna clean; yarn",
"up2": "yarn unlink \"loopring-sdk'\"; echo y | lerna clean; yarn",
"reset": "npm config delete proxy; rm -rf node_modules/ yarn.lock; echo y | lerna clean; yarn",
"reset_proxy": "npm config set proxy=http://127.0.0.1:1087; yarn reset",
"dev": "cd ./packages/webapp; yarn dev",
"dev-bridge": "cd packages/web-bridge; yarn dev",
"dev-guardian": "cd packages/web-guardian; yarn dev",
"dev_earn": "cd packages/web-earn; yarn dev",
"build": "cd ./packages/webapp; yarn build",
"build-sb": "cd ./packages/component-lib; npm run build",
"build-bridge": "cd packages/web-bridge; yarn build",
"build-guardian": "cd packages/web-guardian; yarn build",
"build_dev": "cd ./packages/webapp; yarn build_dev",
"build_earn": "cd packages/web-earn; yarn build",
"deploy": "cd ./packages/webapp; yarn deploy",
"deploy:ipfs": "cd ./packages/webapp; yarn deploy:ipfs",
"sass": "node-sass packages/web-wallet/public/*.scss packages/web-wallet/public/*.css"
},
"browserslist": {
"production": [
"last 2 chrome version",
"last 2 firefox version",
"last 2 safari version"
],
"development": [
"last 2 chrome version",
"last 2 firefox version",
"last 2 safari version"
]
},
"workspaces": {
"packages": [
"packages/*"
],
"nohoist": [
"**/babel-loader",
"**/babel-eslint"
]
},
"prettier": {
"semi": false,
"tabWidth": 2,
"printWidth": 100,
"singleQuote": true,
"trailingComma": "all",
"jsxSingleQuote": true,
"bracketSpacing": true
},
"devDependencies": {
"@babel/core": "^7.13.14",
"@babel/eslint-parser": "^7.13.14",
"@babel/helper-builder-react-jsx": "^7.10.4",
"@babel/helper-builder-react-jsx-experimental": "^7.12.11",
"@babel/helper-explode-assignable-expression": "^7.18.6",
"@babel/helper-function-name": "^7.24.7",
"@babel/helper-split-export-declaration": "^7.24.7",
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
"@babel/plugin-proposal-private-property-in-object": "7.21.11",
"@babel/plugin-syntax-bigint": "^7.8.3",
"@babel/plugin-transform-exponentiation-operator": "^7.22.5",
"@babel/plugin-transform-typescript": "^7.22.5",
"@babel/preset-env": "^7.13.12",
"@babel/preset-react": "^7.13.13",
"@babel/preset-typescript": "^7.13.0",
"@craco/craco": "^7.1.0",
"@craco/types": "^7.1.0",
"@manaflair/redux-batch": "^1.0.0",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/react-hooks": "^5.1.0",
"@testing-library/user-event": "^12.1.10",
"@types/crypto-js": "^4.1.1",
"@types/dompurify": "^2.3.4",
"@types/ethereumjs-abi": "^0.6.3",
"@types/ethereumjs-tx": "^2.0.0",
"@types/jest": "^26.0.15",
"@types/lodash": "^4.14.168",
"@types/node": "^12.0.0",
"@types/qrcode-svg": "^1.1.1",
"@types/react": "^18.2.19",
"@types/react-beautiful-dnd": "^13.1.2",
"@types/react-dom": "^18.2.7",
"@types/react-grid-layout": "^1.1.2",
"@types/react-router-dom": "^5.1.7",
"@types/react-swipeable-views": "^0.13.0",
"@types/react-virtualized": "^9.21.11",
"@types/webpack": "^5.28.1",
"@typescript-eslint/eslint-plugin": "^5.59.9",
"@typescript-eslint/parser": "^4.33.0",
"JSONStream": "^1.3.5",
"babel-plugin-import": "^1.13.3",
"babel-plugin-named-exports-order": "^0.0.2",
"browserify-fs": "^1.0.0",
"buffer": "^6.0.3",
"copy-webpack-plugin": "6",
"craco": "^0.0.3",
"cross-env": "^7.0.3",
"crypto-browserify": "^3.12.0",
"csp-html-webpack-plugin": "^5.1.0",
"csv-parse": "^5.1.0",
"customize-cra": "^1.0.0",
"decimal.js": "^10.4.3",
"dotenv-cli": "^4.0.0",
"eslint": "^7.23.0",
"eslint-config-react-app": "^6.0.0",
"eslint-plugin-flowtype": "^5.4.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-react": "^7.24.0",
"eslint-plugin-react-hooks": "^1.7.0",
"generate-react-cli": "^5.2.3",
"git-revision-webpack-plugin": "^3.0.6",
"html-loader": "^0.5.5",
"html5-qrcode": "2.3.4",
"https-browserify": "^1.0.0",
"lerna": "^7.1.5",
"prettier": "2.8.8",
"process": "^0.11.10",
"prop-types": "^15.8.1",
"react-app-rewire-alias": "^0.2.0",
"react-app-rewired": "^2.2.1",
"react-router": "^5.2.1",
"storybook-addon-styled-component-theme": "^1.3.0",
"stream-browserify": "^3.0.0",
"truffle-privatekey-provider": "1.3.0",
"typescript": "^4.1.2",
"url": "^0.11.1",
"webpack": "5.88.2"
},
"resolutions": {
"bufferutil": "npm:-@0.0.1"
}
}
================================================
FILE: packages/common-resources/.babelrc
================================================
{
"presets": [
"@babel/typescript",
[
"@babel/env",
{
"modules": false
}
]
],
"plugins": [
"@babel/plugin-proposal-class-properties"
]
}
================================================
FILE: packages/common-resources/assets/coin/loopring.json
================================================
{"file":"loopring_431f2ed4.png","frames":{"0XBTC":{"x":0,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"1INCH":{"x":72,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"AAVE":{"x":144,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"AC":{"x":216,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ADX":{"x":288,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ALCX":{"x":360,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ALEND":{"x":432,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ALINK":{"x":504,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"AMP":{"x":576,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ANT":{"x":648,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"AUC":{"x":720,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":73,"sourceH":73},"AUSDC":{"x":793,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BADGER":{"x":865,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BAL":{"x":937,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BAND":{"x":1009,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BAT":{"x":1081,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BCDT":{"x":1153,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BCP":{"x":1225,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BEL":{"x":1297,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BERA":{"x":1369,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"BIT":{"x":1441,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BKT":{"x":1513,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BNB":{"x":1585,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"BNT":{"x":1657,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BOME":{"x":1729,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"BOR":{"x":1801,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BTC":{"x":1873,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"BTC2XFLI":{"x":1945,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":74,"sourceH":73},"BTU":{"x":2019,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BUSD":{"x":2091,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"BZRX":{"x":2163,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"CBBTC":{"x":2235,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"CDAI":{"x":2307,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"CEL":{"x":2379,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"CETH":{"x":2451,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"CIETH":{"x":2523,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"COMP":{"x":2595,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"CRV":{"x":2667,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"CUSDC":{"x":2739,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"CVT":{"x":2811,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"DAI":{"x":2883,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"DEFIL":{"x":2955,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"DEP":{"x":3027,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"DOGE":{"x":3099,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"DOUGH":{"x":3171,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"DPI":{"x":3243,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"DPR":{"x":3315,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"DXD":{"x":3387,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ENJ":{"x":3459,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ENS":{"x":3531,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ENTRP":{"x":3603,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ETH-1":{"x":3675,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ETH":{"x":3747,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ETHFI":{"x":3819,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"FARM":{"x":3891,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"FIN":{"x":3963,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"FLI":{"x":4035,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"FLX":{"x":4107,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":79,"sourceH":73},"FST":{"x":4186,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"FUSE":{"x":4258,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"GNO":{"x":4330,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"GRG":{"x":4402,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"GRID":{"x":4474,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"GRT":{"x":4546,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"HBTC":{"x":4618,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":73,"sourceH":73},"HEX":{"x":4691,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"HT":{"x":4763,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ICHI":{"x":4835,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"IDLE":{"x":4907,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"IMX":{"x":4979,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"INDEX":{"x":5051,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"JRT":{"x":5123,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"KAI":{"x":5195,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"KEEP":{"x":5267,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"KNC":{"x":5339,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"KP3R":{"x":5411,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"LDO":{"x":5483,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"LINK":{"x":5555,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"LQTY":{"x":5627,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"LRC":{"x":5699,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"LRTAIKO":{"x":5771,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"MANA":{"x":5843,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"MASK":{"x":5915,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"MATIC":{"x":5987,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"MCB":{"x":6059,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"MKR":{"x":6131,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"MOVD":{"x":6203,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"MTA":{"x":6275,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"NEC":{"x":6347,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"NEST":{"x":6419,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"NIOX":{"x":6491,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":75,"sourceH":73},"NMR":{"x":6566,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"OBTC":{"x":6638,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"OGN":{"x":6710,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"OMG":{"x":6782,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ONG":{"x":6854,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ORDI":{"x":6926,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"OVR":{"x":6998,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"PAX":{"x":7070,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"PBTC":{"x":7142,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"PEPE":{"x":7214,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"PLTC":{"x":7286,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"PNK":{"x":7358,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"PNT":{"x":7430,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"QCAD":{"x":7502,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RAI":{"x":7574,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":73,"sourceH":73},"REN":{"x":7647,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RENBTC":{"x":7719,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RENDOGE":{"x":7791,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"REP":{"x":7863,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"REPT":{"x":7935,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RETH":{"x":8007,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RFOX":{"x":8079,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RGT":{"x":8151,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RICE":{"x":8223,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RPL":{"x":8295,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RSPT":{"x":8367,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"RSR":{"x":8439,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SAND":{"x":8511,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SENT":{"x":8583,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SMARTCREDIT":{"x":8655,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SNT":{"x":8727,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SNX":{"x":8799,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SOL":{"x":8871,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"STAKE":{"x":8943,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SUSD":{"x":9015,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SUSHI":{"x":9087,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"SX":{"x":9159,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"TAIKO":{"x":9231,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"TEL":{"x":9303,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"TLOS":{"x":9375,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"TRB":{"x":9447,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"TRUMP":{"x":9519,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":53,"sourceH":72},"TRYB":{"x":9572,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":73,"sourceH":73},"TUSD":{"x":9645,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":73,"sourceH":73},"UBT":{"x":9718,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"UMA":{"x":9790,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"UNI":{"x":9862,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"USDC":{"x":9934,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"USDT":{"x":10006,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"VBZRX":{"x":10078,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"VETH":{"x":10150,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"VSP":{"x":10222,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"WBTC":{"x":10294,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"WETH":{"x":10366,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"WIF":{"x":10438,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"WNXM":{"x":10510,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"WOO":{"x":10582,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"WSTETH":{"x":10654,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"XRP":{"x":10726,"y":72,"w":72,"h":72,"offX":0,"offY":0,"sourceW":72,"sourceH":72},"YFI":{"x":10798,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"YFII":{"x":10870,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"YPIE":{"x":10942,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":72,"sourceH":73},"ZRX":{"x":11014,"y":72,"w":72,"h":73,"offX":0,"offY":0,"sourceW":73,"sourceH":73}}}
================================================
FILE: packages/common-resources/index.ts
================================================
export * from './static-resources'
================================================
FILE: packages/common-resources/mail.html
================================================
<div id='zohoSupportWebToCase' align='center'>
<form name='zsWebToCase_638510000000180873' id='zsWebToCase_638510000000180873'
action='https://desk.zoho.com/support/WebToCase' method='POST' onSubmit='return zsValidateMandatoryFields()'
enctype='multipart/form-data'><input type='hidden' name='xnQsjsdp'
value='edbsne3e0671907c01d4368bf22694c4645f0'/> <input type='hidden'
name='xmIwtLD'
value='edbsna177e6b86568a92d2e6f08fab3b80d5960bb314f2e20acd3f10783571e08dc71'/>
<input type='hidden' name='xJdfEaS' value=''/> <input type='hidden' name='actionType' value='Q2FzZXM='/> <input
type="hidden" id="property(module)" value="Cases"/> <input type="hidden" id="dependent_field_values_Cases"
value="{"JSON_VALUES":{},"JSON_SELECT_VALUES":{},"JSON_MAP_DEP_LABELS":[]}"/>
<input type='hidden' name='returnURL' value='https://loopring.io'/>
<section border='0' cellspacing='0' class='zsFormClass'>
<div class='inline-flex' >
<section colspan='2' class='zsFontClass' style="font-size: 20px; text-align: center; padding-bottom: 20px ">Loopring Help Center</section>
</div>
<br>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>First Name </label>
<section align='left' width='75%'><input type='text' maxlength='120' name='First Name' value=''/></section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>Last Name </label>
<section align='left' width='75%'><input type='text' maxlength='120' name='Contact Name' class='manfieldbdr'/></section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>Email </label>
<section align='left' width='75%'><input type='text' maxlength='120' name='Email' value='' class='manfieldbdr'/></section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>What's your ticket about? </label>
<section align='left' width='75%' class="custom-select">
<select name="What' s your ticket about?" value='' onchange="setDependent(this,
false)" id='CASECF1'>
<option value='Loopring zkRollup Layer2'>Loopring zkRollup Layer2</option>
<option value='Smart Wallet App'>Smart Wallet App</option>
<option value='Others'>Others</option>
</select></section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>What's your Ethereum address in question? </label>
<section align='left' width='75%'><input type='text' maxlength='120' name="What' s your Ethereum address in question?"
value='' />
</section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>What's your operation system? </label>
<section align='left' width='75%'><select name="What' s your operation system?" value='' onchange="setDependent(this,
false)" id='CASECF3'>
<option value='Windows'>Windows</option>
<option value='macOS'>macOS</option>
<option value='Linux or Unix'>Linux or Unix</option>
<option value='iOS'>iOS</option>
<option value='Android'>Android</option>
<option value='Others'>Others</option>
</select></section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>What's your browser - if this applies? </label>
<section align='left' width='75%'><input type='text' maxlength='120' name="What' s your browser - if this applies?"
value='' />
</section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>Subject </label>
<section align='left' width='75%'><input type='text' maxlength='255' name='Subject' value='' class='manfieldbdr'/>
</section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>Description </label>
<section align='left' width='75%' >
<textarea name='Description' maxlength='3000' width='250' height='300' rows="8" style="height: 80px">
</textarea>
</section>
</div>
<div class='inline-flex'>
<label class='zsFontClass ' width='25%' align='left'>Attachment </label>
<section align='left' width='75%'><span class="zsFontClass wtcuploadfile" id="zsBrowseAttachment">Attach files</span><input
class="wtcuploadinput" type='file' name='attachment_1' id='zsattachment_1' style='display:block;'
onclick='zsOpenFileBrowseAttachment(event)'
onchange='zsRenderBrowseFileAttachment(this.value, this)'/><input class="wtcuploadinput" type='file'
name='attachment_2'
id='zsattachment_2'
style='display:none;'
onclick='zsOpenFileBrowseAttachment(event)'
onchange='zsRenderBrowseFileAttachment(this.value, this)'/>
<input class="wtcuploadinput" type='file' name='attachment_3' id='zsattachment_3' style='display:none;'
onclick='zsOpenFileBrowseAttachment(event)' onchange='zsRenderBrowseFileAttachment(this.value, this)'/>
<input class="wtcuploadinput" type='file' name='attachment_4' id='zsattachment_4' style='display:none;'
onclick='zsOpenFileBrowseAttachment(event)' onchange='zsRenderBrowseFileAttachment(this.value, this)'/>
<input class="wtcuploadinput" type='file' name='attachment_5' id='zsattachment_5' style='display:none;'
onclick='zsOpenFileBrowseAttachment(event)' onchange='zsRenderBrowseFileAttachment(this.value, this)'/>
<div class="clboth"></div>
<span id='zsMaxSizeMessage' style='font-size: 12px;float: left; line-height: 20px'>Each of your file(s) can be up to 20MB in size.</span><span
id='zsMaxLimitMessage'
style='color:black;font-size: 12px;float: left;margin-left: 14px;display: none;'>You can attach as many as 5 files at a time.</span>
<div id='zsFileBrowseAttachments'></div>
</section>
</div>
<div class='inline-flex'>
<label class='zsFontClass' width='25%' align='left'>Captcha </label>
<section class="zsCaptchablock">
<div id='zsCaptchaLoading'>Loading...<br><br></div>
<div id='zsCaptcha' style='display:none; align-items: center'><img src='#' id='zsCaptchaUrl' name="zsCaptchaImage"><a
href="javascript:"
style='color:#00a3fe; cursor:pointer; margin-left:10px; vertical-align:middle;text-decoration: none;'
class='zsFontClass' onclick='zsRegenerateCaptcha()'>Refresh</a></div>
</section>
<div style="padding-top: 8px"><input type='text' name='zsWebFormCaptchaWord'/><input type='hidden' name='zsCaptchaSrc' value=''/></div>
<div class='inline-flex'>
<section style='padding: 11px 5px 0px 5px;' colspan='2' align='center' width='25%'><input type='submit'
id="zsSubmitButton_638510000000180873"
class='zsFontClass'
value='Submit'>
<input type='button' class='zsFontClass' value='Reset' onclick="zsResetWebForm('638510000000180873')">
</section>
</div>
<div class='inline-flex'>
<label width='25%' align='left'></label>
<section style='padding: 0px 5px;' align='left' width='75%'>
<div class='wb_FtCon wb_common'><span>powered by </span><a target='_blank' rel='noopener noreferrer'
href='https://zoho.com/desk'
class='wb_logoCon'><img class='wb_logo'
src='https://d1ydxa2xvtn0b5.cloudfront.net/app/images/portalLogo.de847024ebc0131731a3.png'/></a>
</div>
</section>
</div>
</div>
</section>
</form>
</div>
================================================
FILE: packages/common-resources/package.json
================================================
{
"name": "@loopring-web/common-resources",
"version": "1.0.0",
"description": "Common package for code sharing",
"main": "index.ts",
"build": {
"files": [
"build/**/*",
"node_modules/**/*"
],
"publish": {
"provider": "custom",
"repo": "https://github.com/Loopring/loopring-web-v2",
"owner": "Loopring Dev Team"
}
},
"scripts": {
"compile": "tsc -p tsconfig.json",
"build": "tsdx build",
"prepublishOnly": "NODE_ENV=production tsdx build"
},
"devDependencies": {
"tsc": "^2.0.4"
}
}
================================================
FILE: packages/common-resources/scripts/.gitignore
================================================
output*
*.zip
*.rar
*.tar*
================================================
FILE: packages/common-resources/scripts/READMD.md
================================================
require python 3.7+
pip install -r requirements.txt
================================================
FILE: packages/common-resources/scripts/get_imgs.py
================================================
#!/usr/bin/python
# -- encoding= utf8 --
import requests
import json
from eth_utils import to_checksum_address
import os
from PIL import Image
output_folder = 'output'
output_folder2 = 'output_resize'
output_folder_zapper = 'output_zapper'
output_folder2_zapper = 'output_resize_zapper'
SIZE = (36, 36)
def gen_imgs(tokenMap):
tokens = requests.get('https://api3.loopring.io/api/v3/exchange/tokens')
print(tokens.status_code)
tokenObjs = json.loads(tokens.text)
if not os.path.exists(output_folder):
os.makedirs(output_folder)
if not os.path.exists(output_folder2):
os.makedirs(output_folder2)
if not os.path.exists(output_folder_zapper):
os.makedirs(output_folder_zapper)
if not os.path.exists(output_folder2_zapper):
os.makedirs(output_folder2_zapper)
totalNum = len(tokenObjs)
count = 1
for tokenInfo in tokenObjs:
symbol = str(tokenInfo['symbol'])
address = str(tokenInfo['address'])
if not symbol.find('LP-') >= 0:
fileName = '{}.png'.format(symbol)
address = to_checksum_address(tokenInfo['address'])
lower_addr = address.lower()
filePath = os.path.join(output_folder, fileName)
filePath2 = os.path.join(output_folder_zapper, fileName)
try:
if not os.path.exists(filePath):
url = 'https://exchange.loopring.io/assets/images/ethereum/assets/{}/logo.png'.format(address)
r = requests.get(url)
if r.status_code == 200:
with open(filePath, "wb") as code:
code.write(r.content)
print('handling: {}/{}. {}'.format(count, totalNum, url))
else:
print('handling: {}/{}. {}. errorFile: {}'.format(count, totalNum, url, fileName))
else:
print('{}/{}. {} already existed!'.format(count, totalNum, fileName))
except:
print('handling: {}/{}. {} got error!'.format(count, totalNum, fileName))
#zapper
try:
if not os.path.exists(filePath2) and lower_addr in tokenMap:
tokenInfo = tokenMap[lower_addr]
url = tokenInfo['logoURI']
r = requests.get(url)
if r.status_code == 200:
with open(filePath2, "wb") as code:
code.write(r.content)
print('handling: {}/{}. {}'.format(count, totalNum, url))
else:
print('handling: {}/{}. {}. errorFile: {}'.format(count, totalNum, url, fileName))
else:
print('{}/{}. {} already existed!'.format(count, totalNum, fileName))
except:
print('handling: {}/{}. {} got error!'.format(count, totalNum, fileName))
else:
print('{}/{}. {} is a LP Token!'.format(count, totalNum, fileName))
count += 1
list = os.listdir(output_folder)
lst = []
for i in range(0, len(list)):
path = os.path.join(output_folder, list[i])
path2 = os.path.join(output_folder2, list[i])
im = Image.open(path)
if im.width != im.height:
lst.append(path)
im = im.resize(SIZE)
im.save(path2, 'PNG')
print('w!=h list:', lst)
def fetch_zapper():
zapperInfo = requests.get('https://zapper.fi/api/token-list')
print(zapperInfo.status_code)
print(zapperInfo.text)
tokenObjs = json.loads(zapperInfo.text)
tokens = tokenObjs['tokens']
tokenMap = {}
for token in tokens:
tokenMap[token['address']] = token
return tokenMap
if __name__ == '__main__':
tokenMap = fetch_zapper()
gen_imgs(tokenMap)
================================================
FILE: packages/common-resources/scripts/requirements.txt
================================================
requests==2.24.0
eth_utils==1.10.0
pillow==8.3.2
================================================
FILE: packages/common-resources/static-resources/index.ts
================================================
import i18n from './src/i18n'
export { i18n }
export * from './src/svg'
export * from './src/i18n'
export * from './src/error'
export * from './src/themes'
export * from './src/constant'
export * from './src/loopring-interface'
export * from './src/utils'
================================================
FILE: packages/common-resources/static-resources/src/constant/account.ts
================================================
import { StateBase } from './sagaStatus'
import { ConnectProviders } from '@loopring-web/web3-provider'
import { TokenType } from '../loopring-interface'
export enum AccountStatus {
UN_CONNECT = 'UN_CONNECT',
// CONNECT = 'CONNECT',
NO_ACCOUNT = 'NO_ACCOUNT',
DEPOSITING = 'DEPOSITING',
NOT_ACTIVE = 'NOT_ACTIVE',
LOCKED = 'LOCKED',
ACTIVATED = 'ACTIVATED',
ERROR_NETWORK = 'ERROR_NETWORK',
}
export enum fnType {
UN_CONNECT = 'UN_CONNECT',
NO_ACCOUNT = 'NO_ACCOUNT',
NOT_ACTIVE = 'NOT_ACTIVE',
LOCKED = 'LOCKED',
ACTIVATED = 'ACTIVATED',
DEFAULT = 'DEFAULT',
DEPOSITING = 'DEPOSITING',
CONNECT = 'CONNECT',
ERROR_NETWORK = 'ERROR_NETWORK',
}
export type Account = {
accAddress: string
qrCodeUrl: string
readyState: keyof typeof AccountStatus | 'unknown'
accountId: number
level: string
apiKey: string
frozen: boolean | undefined
eddsaKey: any
publicKey: any
keySeed: string
nonce: number | undefined
keyNonce: number | undefined
connectName: ConnectProviders
wrongChain?: boolean | undefined
isInCounterFactualStatus?: boolean
isContract1XAddress?: boolean
isContractAddress?: boolean
isCFAddress?: boolean
isContract?: boolean
_chainId?: 1 | 5 | 'unknown'
_accountIdNotActive?: number
_userOnModel?: boolean | undefined
__timer__: NodeJS.Timer | -1
hasUnknownCollection: undefined | boolean
}
export type AccountState = Account & StateBase
export type AccountFull = {
account: Account
resetAccount: () => void
updateAccount: (account: Partial<Account>) => void
} & StateBase
export type AssetsRawDataItem = {
token: {
type: TokenType
value: string
}
amount: string
available: string
locked: string
smallBalance: boolean
tokenValueDollar: number
name: string
withdrawAmount?: string
depositAmount?: string
precision: number
hideDepositButton?: boolean
}
export const ContactLimit = 1500
================================================
FILE: packages/common-resources/static-resources/src/constant/chart.ts
================================================
export enum ChartType {
Depth = 'Depth',
Trend = 'Trend',
Kline = 'Kline',
}
export enum ChartUnit {
W1 = '1W',
H1 = '1H',
D1 = '1D',
}
================================================
FILE: packages/common-resources/static-resources/src/constant/firebase.ts
================================================
export const firebaseIOConfig = {
apiKey: 'AIzaSyC484SNh-OZWco7o1xUC4UGVGVf0yZU__s',
authDomain: 'loopring-d0829.firebaseapp.com',
projectId: 'loopring-d0829',
storageBucket: 'loopring-d0829.appspot.com',
messagingSenderId: '372617031978',
appId: '1:372617031978:web:15a3f35c4adbd679dc6e53',
measurementId: 'G-5TWTDQ8J7J',
}
export const firebaseBridgeConfig = {
apiKey: 'AIzaSyC484SNh-OZWco7o1xUC4UGVGVf0yZU__s',
authDomain: 'loopring-d0829.firebaseapp.com',
projectId: 'loopring-d0829',
storageBucket: 'loopring-d0829.appspot.com',
messagingSenderId: '372617031978',
appId: '1:372617031978:web:bcc50f63d79ef868dc6e53',
measurementId: 'G-P4XEJ3CY0J',
}
================================================
FILE: packages/common-resources/static-resources/src/constant/index.ts
================================================
export * from './walletConnector'
export * from './setting'
export * from './market'
export * from './chart'
export * from './trade'
export * from './router'
export * from './table'
export * from './loopring'
export * from './account'
export * from './sagaStatus'
export * from './proLayout'
export * from './miningOuterLinks'
export * from './notification'
export * from './vendor'
export * from './firebase'
export * from './social'
export { SUPPORTING_NETWORKS } from './networks'
export { WITHDRAW_TOKEN_FILTER_LIST, mapSpecialTokenName } from './tokenConfig'
================================================
FILE: packages/common-resources/static-resources/src/constant/loopring.ts
================================================
export const imgConfig = {
file: 'loopring.png',
frames: {
'0XBTC': { x: 248, y: 282, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
'1INCH': { x: 207, y: 322, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
AAVE: { x: 166, y: 362, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
AC: { x: 125, y: 402, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ADX: { x: 84, y: 442, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ALCX: { x: 453, y: 82, w: 36, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ALEND: { x: 453, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ALINK: { x: 412, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
AMP: { x: 371, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ANT: { x: 248, y: 322, w: 36, h: 35, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
AUC: { x: 166, y: 478, w: 33, h: 32, offX: 3, offY: 2, sourceW: 37, sourceH: 36 },
AUSDC: { x: 330, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BADGER: { x: 125, y: 442, w: 37, h: 35, offX: 0, offY: 1, sourceW: 37, sourceH: 36 },
BAL: { x: 289, y: 202, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BAND: { x: 100, y: 482, w: 19, h: 26, offX: 9, offY: 5, sourceW: 37, sourceH: 36 },
BAT: { x: 248, y: 242, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BCDT: { x: 205, y: 442, w: 27, h: 36, offX: 5, offY: 0, sourceW: 37, sourceH: 36 },
BCP: { x: 207, y: 282, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BEL: { x: 166, y: 322, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BKT: { x: 125, y: 362, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BNT: { x: 84, y: 402, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BOR: { x: 43, y: 442, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BTC2XFLI: { x: 289, y: 242, w: 36, h: 36, offX: 1, offY: 0, sourceW: 38, sourceH: 36 },
BTU: { x: 456, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BUSD: { x: 412, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
BZRX: { x: 371, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
CDAI: { x: 330, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
CEL: { x: 289, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
CETH: { x: 248, y: 202, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
COMP: { x: 207, y: 242, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
CRV: { x: 166, y: 282, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
CUSDC: { x: 125, y: 322, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
CVT: { x: 409, y: 202, w: 33, h: 30, offX: 2, offY: 3, sourceW: 37, sourceH: 36 },
DAI: { x: 84, y: 362, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
DEP: { x: 370, y: 240, w: 31, h: 34, offX: 3, offY: 1, sourceW: 37, sourceH: 36 },
DOUGH: { x: 43, y: 402, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
DPI: { x: 2, y: 442, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
DPR: { x: 415, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
DXD: { x: 371, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ENJ: { x: 330, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ENTRP: { x: 236, y: 442, w: 21, h: 30, offX: 8, offY: 3, sourceW: 37, sourceH: 36 },
'ETH-1': { x: 289, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ETH: { x: 248, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
FARM: { x: 166, y: 442, w: 35, h: 32, offX: 1, offY: 2, sourceW: 37, sourceH: 36 },
FIN: { x: 207, y: 202, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
FLI: { x: 166, y: 242, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
FLX: { x: 2, y: 2, w: 40, h: 36, offX: 0, offY: 0, sourceW: 40, sourceH: 36 },
FUSE: { x: 207, y: 362, w: 35, h: 36, offX: 1, offY: 0, sourceW: 37, sourceH: 36 },
GNO: { x: 330, y: 202, w: 36, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
GRG: { x: 84, y: 322, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
GRID: { x: 43, y: 362, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
GRT: { x: 2, y: 402, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
HBTC: { x: 205, y: 402, w: 32, h: 36, offX: 2, offY: 0, sourceW: 37, sourceH: 36 },
HEX: { x: 452, y: 122, w: 37, h: 32, offX: 0, offY: 2, sourceW: 37, sourceH: 36 },
HT: { x: 374, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ICHI: { x: 330, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
IDLE: { x: 289, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
INDEX: { x: 241, y: 402, w: 24, h: 36, offX: 7, offY: 0, sourceW: 37, sourceH: 36 },
JRT: { x: 248, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
KAI: { x: 125, y: 481, w: 29, h: 29, offX: 4, offY: 3, sourceW: 37, sourceH: 36 },
KEEP: { x: 207, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
KNC: { x: 203, y: 482, w: 19, h: 26, offX: 9, offY: 5, sourceW: 37, sourceH: 36 },
KP3R: { x: 166, y: 202, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
LINK: { x: 125, y: 242, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
LRC: { x: 412, y: 122, w: 36, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
MASK: { x: 84, y: 282, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
MCB: { x: 63, y: 482, w: 33, h: 18, offX: 2, offY: 9, sourceW: 37, sourceH: 36 },
MKR: { x: 43, y: 322, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
MTA: { x: 2, y: 362, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
NEC: { x: 333, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
NEST: { x: 289, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
NIOX: { x: 411, y: 162, w: 33, h: 36, offX: 2, offY: 0, sourceW: 38, sourceH: 36 },
NMR: { x: 248, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
OBTC: { x: 207, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
OGN: { x: 166, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
OMG: { x: 125, y: 202, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ONG: { x: 84, y: 242, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
OVR: { x: 43, y: 282, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
PAX: { x: 2, y: 322, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
PBTC: { x: 292, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
PLTC: { x: 248, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
PNK: { x: 329, y: 242, w: 37, h: 34, offX: 0, offY: 1, sourceW: 37, sourceH: 36 },
PNT: { x: 207, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
QCAD: { x: 166, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RAI: { x: 166, y: 402, w: 35, h: 36, offX: 1, offY: 0, sourceW: 37, sourceH: 36 },
REN: { x: 125, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RENBTC: { x: 84, y: 202, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RENDOGE: { x: 43, y: 242, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
REP: { x: 2, y: 482, w: 23, h: 28, offX: 7, offY: 4, sourceW: 37, sourceH: 36 },
REPT: { x: 2, y: 282, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RFOX: { x: 251, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RGT: { x: 207, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RICE: { x: 166, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RPL: { x: 125, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RSPT: { x: 84, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
RSR: { x: 43, y: 202, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
SMARTCREDIT: { x: 2, y: 242, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
SNT: { x: 210, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
SNX: { x: 166, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
STAKE: { x: 125, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
SUSD: { x: 84, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
SUSHI: { x: 370, y: 202, w: 35, h: 34, offX: 1, offY: 1, sourceW: 37, sourceH: 36 },
SX: { x: 289, y: 282, w: 35, h: 34, offX: 1, offY: 1, sourceW: 37, sourceH: 36 },
TEL: { x: 43, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
TRB: { x: 2, y: 202, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
TRYB: { x: 169, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
TUSD: { x: 125, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
UBT: { x: 84, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
UMA: { x: 43, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
UNI: { x: 2, y: 162, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
USDC: { x: 371, y: 162, w: 36, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
USDT: { x: 128, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
VBZRX: { x: 84, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
VETH: { x: 43, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
VSP: { x: 2, y: 122, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
WBTC: { x: 87, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
WNXM: { x: 43, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
WOO: { x: 29, y: 482, w: 30, h: 21, offX: 3, offY: 8, sourceW: 37, sourceH: 36 },
YFI: { x: 2, y: 82, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
YFII: { x: 46, y: 2, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
YPIE: { x: 2, y: 42, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
ZRX: { x: 125, y: 282, w: 37, h: 36, offX: 0, offY: 0, sourceW: 37, sourceH: 36 },
},
}
================================================
FILE: packages/common-resources/static-resources/src/constant/market.ts
================================================
export enum FloatTag {
increase = 'increase',
decrease = 'decrease',
none = 'none',
}
export type MarketType = `${string}-${string}`
export type AMMMarketType = `AMM-${string}-${string}`
export type LPTokenType = `LP-${string}-${string}`
export const PrecisionTree = {
1: '0.1',
2: '0.01',
3: '0.001',
4: '0.0001',
5: '0.00001',
6: '0.000001',
7: '0.0000001',
8: '0.00000001',
9: '0.000000001',
10: '0.0000000001',
11: '0.00000000001',
12: '0.000000000001',
}
================================================
FILE: packages/common-resources/static-resources/src/constant/miningOuterLinks.ts
================================================
export const getMiningLinkList = (lan: string) => {
if (lan === 'cn') {
lan = 'zh'
}
return {
'BCDT-ETH': `https://loopring.io/#/embed/amm_mining_14_${lan}`,
'USDC-USDT': `https://loopring.io/#/embed/orderbook_mining_24_${lan}`,
'BKT-USDT': `https://loopring.io/#/embed/orderbook_mining_24_${lan}`,
}
}
================================================
FILE: packages/common-resources/static-resources/src/constant/networks.ts
================================================
export const SUPPORTING_NETWORKS = process.env.REACT_APP_CHAIN_IDS!.split(',')
================================================
FILE: packages/common-resources/static-resources/src/constant/notification.ts
================================================
/*
import { AMMMarketType, MarketType } from "./market";
*/
// import { CoinKey } from "../loopring-interface";
import { Account } from './account'
import { InvestAdvice } from '../loopring-interface'
import * as sdk from '@loopring-web/loopring-sdk'
/**
* export enum RuleType {
* AMM_MINING = "AMM_MINING",
* SWAP_VOLUME_RANKING = "SWAP_VOLUME_RANKING",
* ORDERBOOK_MINING = "ORDERBOOK_MINING",
* }
*/
export enum NOTIFY_COLOR {
default = 'default',
primary = 'primary',
secondary = 'secondary',
tertiary = 'tertiary',
}
export type INVEST_ITEM = {
name: string
version: string
type: string
bannerMobile: string
bannerLaptop: string
linkRule: string
startShow: number
endShow: number
link: string
}
export type NOTIFICATION_ITEM = {
version: string //localStore for visited should be unique
name: string
title: string
description1: string
description2: string
type: string
link: `#race-event/${number}/${number}/activities.${string}.json` | string
linkIos: string
linkAndroid: string
startShow: number
endShow: number
color: NOTIFY_COLOR
banner?: string
bannerDark?: string
webRouter?: string
webFlag: boolean
versionIosMin: string
versionIosMax: string
versionAndroidMin: string
versionAndroidMax: string
linkParam: string
}
export type ACTIVITY = NOTIFICATION_ITEM
export type CAMPAIGN_TAG = {
name: string
type?: 'activity' | 'protocol' | '' //options for Amm , activity|
startShow: number
endShow: number
iconSource: string
symbols: Array<string>
behavior: 'tooltips' | 'link'
content: string
webFlag: boolean
versionIosMin: string
versionIosMax: string
versionAndroidMin: string
versionAndroidMax: string
}
export enum SCENARIO {
ORDERBOOK = 'ORDERBOOK',
MARKET = 'MARKET',
AMM = 'AMM',
FIAT = 'FIAT',
SWAP = 'SWAP',
VAULT = 'VAULT',
}
export type CAMPAIGNTAGCONFIG = {
[key in SCENARIO]: CAMPAIGN_TAG[]
}
export type RedPacketConfig = {
timeRangeMaxInSecondsToken: number
timeRangeMaxInSecondsNFT: number
showNFT: boolean
showERC20Blindbox: boolean
}
export type NOTIFICATION = {
activities: ACTIVITY[]
activitiesInvest: ACTIVITY[]
notifications: NOTIFICATION_ITEM[]
invest: {
investAdvice: InvestAdvice[]
STAKE: InvestAdvice[]
}
account?: Account
chainId: sdk.ChainId
prev?: {
endDate: number
// prevMonth: string;
}
campaignTagConfig?: CAMPAIGNTAGCONFIG
redPacket: RedPacketConfig
}
export type Notify = Omit<NOTIFICATION, 'prev'>
export type NOTIFICATIONHEADER<N> = {
notifyMap: Notify
myNotifyMap: {
items: N[]
total: number
unReads: number
}
}
// export enum SCENARIO {
// orderbook = "orderbook",
// market = "market",
// Amm = "Amm",
// Fiat = "Fiat",
// swap = "swap",
// }
// export type CAMPAIGNTAGCONFIG ={
// [key in SCENARIO]: CAMPAIGN_TAG[];
// }
================================================
FILE: packages/common-resources/static-resources/src/constant/proLayout.ts
================================================
import { Layouts } from 'react-grid-layout'
export enum LayoutConfig {
basicLayout,
layout1,
layout2,
}
export const MarketRowHeight = 20
export enum BreakPoint {
xlg = 'xlg',
lg = 'lg',
md = 'md',
sm = 'sm',
xs = 'xs',
xxs = 'xxs',
}
export type ConfigLayout<P = typeof BreakPoint> = {
breakpoints: { [key in keyof P]: number }
cols: { [key in keyof P]: number }
layouts: {
[key in keyof P]: Array<{
i: string
x: number
y: number
w: number
h: number
minW: number
minH: number
}>
}
}
const basicLayout: ConfigLayout = {
breakpoints: { xlg: 1920, lg: 1600, md: 1200, sm: 960, xs: 768, xxs: 320 },
cols: { xlg: 24, lg: 24, md: 24, sm: 12, xs: 12, xxs: 6 },
layouts: {
xlg: [
{ i: 'toolbar', x: 0, y: 0, w: 24, h: 9, minW: 24, minH: 9 },
{ i: 'walletInfo', x: 0, y: 10, w: 4, h: 28, minW: 4, minH: 26 },
{ i: 'spot', x: 0, y: 14, w: 4, h: 115, minW: 4, minH: 70 },
{ i: 'market', x: 4, y: 10, w: 4, h: 88, minW: 4, minH: 58 },
{ i: 'chart', x: 8, y: 10, w: 12, h: 88, minW: 6, minH: 32 },
{ i: 'market2', x: 20, y: 10, w: 4, h: 88, minW: 4, minH: 36 },
{ i: 'orderTable', x: 4, y: 64, w: 20, h: 55, minW: 6, minH: 36 },
],
lg: [
{ i: 'toolbar', x: 0, y: 0, w: 24, h: 9, minW: 24, minH: 9 },
{ i: 'walletInfo', x: 0, y: 10, w: 4, h: 28, minW: 4, minH: 26 },
{ i: 'spot', x: 0, y: 26, w: 4, h: 89, minW: 4, minH: 70 },
{ i: 'market', x: 4, y: 10, w: 4, h: 73, minW: 4, minH: 58 },
{ i: 'chart', x: 8, y: 10, w: 12, h: 73, minW: 6, minH: 32 },
{ i: 'market2', x: 20, y: 10, w: 4, h: 73, minW: 4, minH: 58 },
{ i: 'orderTable', x: 4, y: 64, w: 20, h: 44, minW: 6, minH: 36 },
],
md: [
{ i: 'toolbar', x: 0, y: 0, w: 24, h: 9, minW: 24, minH: 9 },
{ i: 'walletInfo', x: 0, y: 10, w: 5, h: 28, minW: 4, minH: 26 },
{ i: 'spot', x: 0, y: 9, w: 5, h: 68, minW: 4, minH: 68 },
{ i: 'market', x: 5, y: 10, w: 5, h: 58, minW: 4, minH: 58 },
{ i: 'market2', x: 0, y: 0, w: 0, h: 0, minW: 0, minH: 0 },
{ i: 'chart', x: 10, y: 10, w: 14, h: 58, minW: 6, minH: 32 },
{ i: 'orderTable', x: 5, y: 64, w: 19, h: 38, minW: 6, minH: 36 },
],
sm: [
{ i: 'toolbar', x: 0, y: 0, w: 12, h: 9, minW: 12, minH: 9 },
{ i: 'walletInfo', x: 0, y: 10, w: 3, h: 28, minW: 3, minH: 22 },
{ i: 'spot', x: 0, y: 14, w: 3, h: 66, minW: 3, minH: 66 },
{ i: 'market', x: 3, y: 10, w: 3, h: 58, minW: 3, minH: 58 },
{ i: 'market2', x: 0, y: 0, w: 0, h: 0, minW: 0, minH: 0 },
{ i: 'chart', x: 6, y: 10, w: 6, h: 58, minW: 6, minH: 32 },
{ i: 'orderTable', x: 3, y: 64, w: 9, h: 36, minW: 6, minH: 36 },
],
xs: [
{ i: 'toolbar', w: 12, h: 17, x: 0, y: 0, minW: 6, minH: 9 },
{ i: 'walletInfo', w: 4, h: 48, x: 0, y: 121, minW: 3, minH: 22 },
{ i: 'spot', w: 4, h: 104, x: 0, y: 17, minW: 3, minH: 54 },
{ i: 'market', w: 4, h: 151, x: 4, y: 17, minW: 3, minH: 58 },
{ i: 'market2', w: 4, x: 8, y: 17, h: 151, minW: 3, minH: 58 },
{ i: 'chart', w: 12, h: 80, x: 0, y: 239, minW: 3, minH: 32 },
{ i: 'orderTable', w: 12, h: 71, x: 0, y: 168, minW: 5, minH: 36 },
],
xxs: [
{ i: 'toolbar', x: 0, y: 0, w: 6, h: 14, minW: 6, minH: 9 },
{ i: 'walletInfo', x: 0, y: 63, w: 3, h: 51, minW: 3, minH: 22 },
{ i: 'spot', x: 0, y: 9, w: 3, h: 103, minW: 3, minH: 54 },
{ i: 'market', x: 3, y: 9, w: 3, h: 154, minW: 3, minH: 58 },
{ i: 'market2', x: 0, y: 0, w: 0, h: 0, minW: 0, minH: 0 },
{ i: 'chart', x: 3, y: 125, w: 6, h: 80, minW: 3, minH: 32 },
{ i: 'orderTable', x: 0, y: 88, w: 6, h: 80, minW: 5, minH: 36 },
],
},
}
const stopLimitLayout: ConfigLayout = {
breakpoints: { xlg: 1920, lg: 1600, md: 1200, sm: 960, xs: 768, xxs: 320 },
cols: { xlg: 24, lg: 24, md: 24, sm: 12, xs: 12, xxs: 6 },
layouts: {
xlg: [
{ w: 24, h: 9, x: 0, y: 0, i: 'toolbar', minW: 24, minH: 9 },
{ w: 5, h: 79, x: 0, y: 9, i: 'spot', minW: 4, minH: 68 },
{ w: 7, h: 79, x: 5, y: 9, i: 'markdown', minW: 4, minH: 20 },
{ w: 12, h: 78, x: 12, y: 9, i: 'chart', minW: 6, minH: 32 },
{ w: 24, h: 36, x: 0, y: 88, i: 'orderTable', minW: 6, minH: 36 },
],
lg: [
{ w: 24, h: 9, x: 0, y: 0, i: 'toolbar', minW: 24, minH: 9 },
{ w: 5, h: 80, x: 0, y: 9, i: 'spot', minW: 4, minH: 68 },
{ w: 7, h: 44, x: 5, y: 9, i: 'markdown', minW: 4, minH: 20 },
{ w: 12, h: 44, x: 12, y: 9, i: 'chart', minW: 6, minH: 32 },
{ w: 19, h: 36, x: 5, y: 53, i: 'orderTable', minW: 6, minH: 36 },
],
md: [
{ i: 'toolbar', x: 0, y: 0, w: 24, h: 9, minW: 24, minH: 9 },
{ i: 'spot', x: 0, y: 10, w: 5, h: 81, minW: 4, minH: 68 },
{ i: 'markdown', x: 5, y: 10, w: 7, h: 44, minW: 4, minH: 20 },
{ i: 'chart', x: 12, y: 10, w: 12, h: 44, minW: 6, minH: 32 },
{ i: 'orderTable', x: 5, y: 53, w: 19, h: 37, minW: 6, minH: 32 },
],
sm: [
{ i: 'toolbar', x: 0, y: 0, w: 12, h: 9, minW: 12, minH: 9 },
// { i: "walletInfo", x: 0, y: 10, w: 3, h: 28, minW: 3, minH: 22 },
{ i: 'spot', x: 0, y: 10, w: 3, h: 94, minW: 3, minH: 66 },
{ i: 'markdown', x: 3, y: 10, w: 3, h: 58, minW: 3, minH: 20 },
// { i: "market2", x: 0, y: 0, w: 0, h: 0, minW: 0, minH: 0 },
{ i: 'chart', x: 6, y: 10, w: 6, h: 58, minW: 6, minH: 32 },
{ i: 'orderTable', x: 3, y: 64, w: 9, h: 36, minW: 6, minH: 36 },
],
xs: [
{ i: 'toolbar', w: 12, h: 17, x: 0, y: 0, minW: 6, minH: 9 },
{ i: 'spot', w: 3, h: 72, x: 0, y: 17, minW: 3, minH: 54 },
{ i: 'markdown', w: 3, h: 72, x: 3, y: 17, minW: 3, minH: 20 },
{ i: 'chart', w: 6, h: 72, x: 6, y: 17, minW: 3, minH: 32 },
{ i: 'orderTable', w: 12, h: 71, x: 0, y: 89, minW: 5, minH: 36 },
],
xxs: [
{ i: 'toolbar', w: 6, h: 14, x: 0, y: 0, minW: 6, minH: 9 },
{ i: 'spot', w: 3, h: 73, x: 0, y: 14, minW: 3, minH: 54 },
{ i: 'markdown', w: 3, h: 73, x: 3, y: 14, minW: 3, minH: 58 },
{ i: 'chart', w: 6, h: 80, x: 0, y: 167, minW: 3, minH: 32 },
{ i: 'orderTable', w: 6, h: 80, x: 0, y: 87, minW: 5, minH: 36 },
],
},
}
export const layoutConfigs: Array<ConfigLayout> = [basicLayout]
export const stopLimitLayoutConfigs: Array<ConfigLayout> = [stopLimitLayout]
export type LayoutConfigInfo = {
currentBreakpoint: BreakPoint
mounted: boolean
layouts: Layouts
compactType: 'vertical' | 'horizontal' | null | undefined
}
================================================
FILE: packages/common-resources/static-resources/src/constant/router.ts
================================================
import AutorenewIcon from '@mui/icons-material/Autorenew';
import {
AssetsIcon,
ContactIcon,
ImageIcon,
L2MyLiquidityIcon,
MintIcon,
ProfileIcon,
RewardIcon,
SecurityIcon,
VipIcon,
AmmIcon,
BlockTradeIcon,
CreateNFTIcon,
DualInvestIcon,
ETHStakingIcon,
FiatIcon,
LRCStakingIcon,
LeverageETHIcon,
MyCollectionIcon,
MyNFTIcon,
OrderBookIcon,
OverviewIcon,
StopLimitIcon,
SwapIcon,
VaultHomeIcon,
VaultDashboardIcon,
VaultTradeIcon2,
} from '../svg'
import { HeaderMenuItemInterface, HeaderMenuTabStatus, InvestAdvice } from '../loopring-interface'
import { AddAssetList, InvestAssetRouter, InvestMapType, SendAssetList } from './trade'
import { Earnlite, ExchangePro, WalletSite, LOOPRING_DOC, hideDefiEntry } from './setting'
import { ChainId } from '@loopring-web/loopring-sdk'
export const FEED_BACK_LINK = 'https://desk.zoho.com/portal/loopring/en/home'
export const headerRoot = 'Landing-page'
export const SoursURL = 'https://static.loopring.io/assets/'
export const GUARDIAN_URL = 'https://guardian.loopring.io'
export const LoopringIPFSSite = 'ipfs.loopring.io'
export const LoopringIPFSSiteProtocol = 'https'
export const IPFS_LOOPRING_URL = `${LoopringIPFSSiteProtocol}://${LoopringIPFSSite}`
export const IPFS_HEAD_URL = 'ipfs://'
export const IPFS_HEAD_URL_REG = /^ipfs:\/\/(ipfs\/)?/i
export const IPFS_LOOPRING_SITE = 'https://ipfs.loopring.io/ipfs/' // sdk.LOOPRING_URLs.IPFS_META_URL; //`${IPFS_LOOPRING_URL}/ipfs/`;
export const BANXA_URLS = {
1: 'https://loopring.banxa.com',
11155111: 'https://loopring.banxa-sandbox.com',
}
export const LOOPRING_DOCUMENT = 'https://loopring.io/#/document/'
export enum RouterPath {
trade = '/trade',
lite = '/trade/lite',
pro = '/trade/pro',
stoplimit = '/trade/stoplimit',
btrade = '/trade/btrade',
fiat = '/trade/fiat',
markets = '/markets',
mining = '/mining',
redPacket = '/redPacket',
l2assets = '/l2assets',
l2records = '/l2assets/history',
l2assetsDetail = '/l2assets/assets',
layer2 = '/layer2',
nft = '/nft',
invest = '/invest',
investBalance = '/invest/balance',
vault = '/portal',
//404? loading
loading = '/loading',
}
export enum InvestType {
MyBalance = 0,
AmmPool = 1,
DeFi = 2,
Overview = 3,
Dual = 4,
Stack = 5,
LeverageETH = 6,
}
export const InvestRouter = [
'balance',
'ammpool',
'defi',
'overview',
'dual',
'stakelrc',
'leverageETH',
]
//
//
export enum Layer2RouterID {
security = 'security',
vip = 'vip',
contact = 'contact',
referralrewards = 'referralrewards',
forcewithdraw = 'forcewithdraw',
notification = 'notification',
}
// export enum ProfileKey {
// security = 'security',
// vip = 'vip',
// contact = 'contact',
// referralrewards = 'referralrewards',
// forcewithdraw = 'forcewithdraw',
// notification = 'notification',
// }
export const Profile = {
security: [
{
icon: SecurityIcon,
router: { path: `${RouterPath.layer2}/${Layer2RouterID.security}` },
label: {
id: 'security',
i18nKey: 'labelSecurity',
},
},
],
vip: [
{
icon: VipIcon,
router: { path: `${RouterPath.layer2}/${Layer2RouterID.vip}` },
label: {
id: 'vip',
i18nKey: 'labelVipPanel',
},
},
],
contact: [
{
icon: ContactIcon,
router: { path: `${RouterPath.layer2}/${Layer2RouterID.contact}` },
label: {
id: 'contact',
i18nKey: 'labelContactsPanel',
},
},
],
referralrewards: [
{
icon: RewardIcon,
router: { path: `${RouterPath.layer2}/${Layer2RouterID.referralrewards}` },
label: {
id: 'referralrewards',
i18nKey: 'labelReferralReward',
},
},
],
}
export enum ButtonComponentsMap {
Download = 'Download',
Notification = 'Notification',
Setting = 'Setting',
ProfileMenu = 'ProfileMenu',
WalletConnect = 'WalletConnect',
TestNet = 'TestNet',
ColorSwitch = 'ColorSwitch',
}
export const toolBarAvailableItem: ButtonComponentsMap[] = [
ButtonComponentsMap.Notification,
ButtonComponentsMap.Setting,
ButtonComponentsMap.ProfileMenu,
ButtonComponentsMap.WalletConnect,
ButtonComponentsMap.TestNet,
]
// export enum GuardianToolBarComponentsMap {
// Notification,
// TestNet,
// WalletConnect,
// }
export const GuardianToolBarAvailableItem: ButtonComponentsMap[] = [
ButtonComponentsMap.Notification,
ButtonComponentsMap.TestNet,
ButtonComponentsMap.WalletConnect,
]
export let headerGuardianToolBarData: {
[key in ButtonComponentsMap]?: {
buttonComponent: ButtonComponentsMap
handleClick?: (props: any) => void
[key: string]: any
}
} = {
[ButtonComponentsMap.Notification]: {
buttonComponent: ButtonComponentsMap.Notification,
label: 'labelNotification',
},
[ButtonComponentsMap.TestNet]: { buttonComponent: ButtonComponentsMap.TestNet },
[ButtonComponentsMap.WalletConnect]: {
buttonComponent: ButtonComponentsMap.WalletConnect,
label: 'labelConnectWallet',
accountState: undefined,
handleClick: undefined,
},
}
export let headerToolBarData: {
[key in ButtonComponentsMap]?: {
buttonComponent: ButtonComponentsMap
handleClick?: (props: any) => void
[key: string]: any
}
} = {
[ButtonComponentsMap.Notification]: {
buttonComponent: ButtonComponentsMap.Notification,
label: 'labelNotification',
},
[ButtonComponentsMap.Setting]: {
buttonComponent: ButtonComponentsMap.Setting,
label: 'labelSetting',
},
[ButtonComponentsMap.ProfileMenu]: {
buttonComponent: ButtonComponentsMap.ProfileMenu,
i18nDescription: 'labelProfile',
readyState: undefined,
},
[ButtonComponentsMap.WalletConnect]: {
buttonComponent: ButtonComponentsMap.WalletConnect,
label: 'labelConnectWallet',
accountState: undefined,
handleClick: undefined,
},
}
export let headerToolBarDataMobile: {
[key in ButtonComponentsMap]?: {
buttonComponent: ButtonComponentsMap
handleClick?: (props: any) => void
[key: string]: any
}
} = {
// [ButtonComponentsMap.Download]: {
// buttonComponent: ButtonComponentsMap.Download,
// url: WalletSite,
// },
// [ButtonComponentsMap.Notification]: {
// buttonComponent: ButtonComponentsMap.Notification,
// label: 'labelNotification',
// },
// [ButtonComponentsMap.Setting]: {
// buttonComponent: ButtonComponentsMap.Setting,
// label: 'labelSetting',
// },
[ButtonComponentsMap.ProfileMenu]: {
buttonComponent: ButtonComponentsMap.ProfileMenu,
i18nDescription: 'labelProfile',
readyState: undefined,
},
[ButtonComponentsMap.WalletConnect]: {
buttonComponent: ButtonComponentsMap.WalletConnect,
label: 'labelConnectWallet',
accountState: undefined,
handleClick: undefined,
},
}
// export const toolBarMobileAvailableItem = [
// ButtonComponentsMap.Download,
// ButtonComponentsMap.Notification,
// ButtonComponentsMap.Setting,
// ButtonComponentsMap.WalletConnect,
// ]
export enum RouterMainKey {
lite = 'lite',
pro = 'pro',
stoplimit = 'stoplimit',
btrade = 'btrade',
fiat = 'fiat',
markets = 'markets',
mining = 'mining',
redPacket = 'redPacket',
l2assets = 'l2assets',
layer2 = 'layer2',
nft = 'nft',
invest = 'invest',
earn = 'earn',
vault = 'portal',
}
export enum NFTSubRouter {
transactionNFT = 'transactionNFT',
mintNFTLanding = 'mintNFTLanding',
mintNFT = 'mintNFT',
mintNFTAdvance = 'mintNFTAdvance',
depositNFT = 'depositNFT',
myCollection = 'myCollection',
addCollection = 'addCollection',
editCollection = 'editCollection',
addLegacyCollection = 'addLegacyCollection',
importLegacyCollection = 'importLegacyCollection',
assetsNFT = 'assetsNFT',
}
export let layer2ItemData: Array<HeaderMenuItemInterface> = [
{
label: {
id: 'lite',
i18nKey: 'labelClassic',
description: 'labelClassicDescription',
icon: SwapIcon,
},
router: { path: RouterPath.lite + '/${pair}' },
},
{
label: {
id: 'pro',
i18nKey: 'labelAdvanced',
description: 'labelAdvancedDescription',
icon: OrderBookIcon,
},
router: { path: RouterPath.pro + '/${pair}' },
},
{
label: {
id: 'stopLimit',
i18nKey: 'labelStopLimit',
description: 'labelStopLimitDescription',
icon: StopLimitIcon,
},
router: { path: RouterPath.stoplimit + '/${pair}' },
},
// {
// label: {
// id: 'btrade',
// i18nKey: 'labelBtradeTrade',
// description: 'labelBtradeTradeDescription',
// icon: BlockTradeIcon,
// },
// router: { path: RouterPath.btrade + '/${pair}' },
// },
// {
// label: {
// id: 'fiat',
// i18nKey: 'labelFiat',
// description: 'labelFiatDescription',
// icon: FiatIcon,
// },
// router: { path: RouterPath.fiat },
// },
]
export enum VaultKey {
VAULT_HOME = 'portalHome',
VAULT_DASHBOARD = 'portalDashboard',
VAULT_TRADE = 'portalTrade',
}
export let vaultItemData: Array<HeaderMenuItemInterface> = [
{
label: {
id: VaultKey.VAULT_DASHBOARD,
i18nKey: 'labelVaultDashboard',
description: 'labelVaultDashboardDes',
icon: VaultDashboardIcon,
},
router: { path: RouterPath.vault + `/${VaultKey.VAULT_DASHBOARD}` },
},
{
label: {
id: VaultKey.VAULT_HOME,
i18nKey: 'labelVaultHome',
description: 'labelVaultHomeDes',
icon: VaultHomeIcon,
},
router: { path: RouterPath.vault + `/${VaultKey.VAULT_HOME}` },
},
{
label: {
id: VaultKey.VAULT_TRADE,
i18nKey: 'labelVaultTradeTabTitle',
description: 'labelVaultTradeTabDes',
icon: AutorenewIcon,
},
router: { path: RouterPath.vault + `/${VaultKey.VAULT_TRADE}` },
},
]
export const orderDisableList = ['Liquidity', 'Markets', 'Trading', 'Mining']
export const ammDisableList = ['Liquidity']
export const headerMenuLandingData: Array<HeaderMenuItemInterface> = [
...(!hideDefiEntry ? [{
label: {
id: 'loopringLite',
i18nKey: 'labelNavEarn',
description: 'labelNavEarnDes',
},
router: { path: Earnlite },
logo: {
dark: SoursURL + 'images/landing_page_nav_earn_dark.png',
light: SoursURL + 'images/landing_page_nav_earn_light.png',
}
}] : []),
{
label: {
id: 'loopringPro',
i18nKey: 'labelNavPro',
description: 'labelNavProDes',
},
router: { path: ExchangePro },
logo: {
dark: SoursURL + 'images/landing_page_nav_pro_dark.png',
light: SoursURL + 'images/landing_page_nav_pro_light.png',
}
},
...(!hideDefiEntry ? [{
label: {
id: 'wallet',
i18nKey: 'labelNavWallet',
description: 'labelNavWalletDes',
},
router: { path: WalletSite },
logo: {
dark: SoursURL + 'images/landing_page_nav_wallet_dark.png',
light: SoursURL + 'images/landing_page_nav_wallet_light.png',
}
}] : []),
{
label: {
id: 'doc',
i18nKey: 'labelNavDoc',
description: 'labelNavDocDes',
},
router: { path: LOOPRING_DOC },
logo: {
dark: SoursURL + 'images/landing_page_nav_doc_dark.png',
light: SoursURL + 'images/landing_page_nav_doc_light.png',
}
},
]
export const subMenuLayer2 = {
assetsGroup: [
{
icon: AssetsIcon,
router: { path: RouterPath.l2assetsDetail },
label: {
id: 'assets',
i18nKey: 'labelAssets',
},
},
],
profileGroup: [
{
icon: ProfileIcon,
router: { path: `${RouterPath.layer2}/${Layer2RouterID.security}` },
label: {
id: 'security',
i18nKey: 'labelSecurity',
},
},
{
icon: VipIcon,
router: { path: `${RouterPath.layer2}/${Layer2RouterID.vip}` },
label: {
id: 'vip',
i18nKey: 'labelVipPanel',
},
},
],
}
export const subMenuInvest = [
// {
// icon: L2MyLiquidityIcon,
// router: { path: `${RouterPath.invest}/${InvestRouter[InvestType.Overview]}` },
// label: {
// id: 'overview',
// i18nKey: 'labelInvestOverview',
// description: 'labelInvestOverviewDes',
// icon: OverviewIcon,
// },
// },
// {
// icon: L2MyLiquidityIcon,
// router: { path: `${RouterPath.invest}/${InvestAssetRouter.DUAL}` },
// label: {
// id: 'dual',
// i18nKey: 'labelInvestDual',
// description: 'labelInvestDualDes',
// icon: DualInvestIcon,
// },
// },
{
icon: L2MyLiquidityIcon,
router: { path: `${RouterPath.invest}/${InvestAssetRouter.STAKE}` },
label: {
id: 'defi',
i18nKey: 'labelInvestDefi',
description: 'labelInvestDefiDes',
icon: ETHStakingIcon,
},
},
{
icon: L2MyLiquidityIcon,
router: { path: `${RouterPath.invest}/${InvestAssetRouter.LEVERAGEETH}` },
label: {
id: 'leverageeth',
i18nKey: 'labelInvestLeverageETH',
description: 'labelInvestLeverageETHDes',
icon: LeverageETHIcon,
},
},
{
icon: L2MyLiquidityIcon,
router: { path: `${RouterPath.invest}/${InvestAssetRouter.AMM}` },
label: {
id: 'ammpool',
i18nKey: 'labelInvestAmm',
description: 'labelInvestAmmDes',
icon: AmmIcon,
},
},
// {
// icon: L2MyLiquidityIcon,
// router: { path: `${RouterPath.invest}/${InvestAssetRouter.STAKELRC}` },
// label: {
// id: 'stackonesided',
// i18nKey: 'labelInvestStakeLRC',
// description: 'labelInvestStakeLRCDes',
// icon: LRCStakingIcon,
// },
// },
]
// export enum INVEST_TAB {
// pools = 'pools',
// lido = 'lido',
// staking = 'staking',
// dual = 'dual',
// leverageETH = 'leverageETH',
// }
export const INVEST_TABS = [
{ tab: InvestAssetRouter.DUAL, label: 'labelInvestDualTitle' },
{ tab: InvestAssetRouter.STAKE, label: 'labelInvestDefiTitle' },
{ tab: InvestAssetRouter.LEVERAGEETH, label: 'labelLeverageETHTitle' },
{ tab: InvestAssetRouter.AMM, label: 'labelLiquidityPageTitle' },
{ tab: InvestAssetRouter.STAKELRC, label: 'labelInvestLRCTitle' },
]
export const DEFI_CONFIG = {
products: {
TAIKOHEKLA: [] as string[],
TAIKO: [] as string[],
ETHEREUM: ['LIDO', 'ROCKETPOOL'],
GOERLI: ['ROCKETPOOL'],
SEPOLIA: ['LIDO'],
ARBGOERLI: ['ROCKETPOOL'],
BASE: [],
BASESEPOLIA: [],
},
MARKETS: {
TAIKOHEKLA: [] as string[],
TAIKO: [] as string[],
ETHEREUM: ['RETH-ETH', 'WSTETH-ETH'],
GOERLI: ['RETH-ETH'],
SEPOLIA: ['WSTETH-ETH'],
ARBGOERLI: ['RETH-ETH'],
BASE: [],
BASESEPOLIA: [],
},
}
export const LEVERAGE_ETH_CONFIG = {
coins: {
TAIKOHEKLA: [] as string[],
TAIKO: [] as string[],
ETHEREUM: ['CIETH'],
GOERLI: ['WSTETH'],
SEPOLIA: ['WSTETH'],
ARBGOERLI: ['WSTETH'],
BASE: ['WSTETH'],
BASESEPOLIA: ['WSTETH'],
},
types: {
TAIKOHEKLA: [] as string[],
TAIKO: [] as string[],
ETHEREUM: ['cian'],
GOERLI: ['lido'],
SEPOLIA: ['lido'],
ARBGOERLI: ['lido'],
BASE: [],
BASESEPOLIA: [],
},
products: {
TAIKOHEKLA: [] as string[],
TAIKO: [] as string[],
ETHEREUM: ['CIAN'],
GOERLI: ['LIDO'],
SEPOLIA: ['LIDO'],
ARBGOERLI: ['LIDO'],
BASE: ['LIDO'],
BASESEPOLIA: ['LIDO'],
},
MARKETS: {
TAIKOHEKLA: [] as string[],
TAIKO: [] as string[],
ETHEREUM: ['CIETH-ETH'],
GOERLI: ['WSTETH-ETH'],
SEPOLIA: ['WSTETH-ETH'],
ARBGOERLI: ['WSTETH-ETH'],
BASE: [],
BASESEPOLIA: [],
},
// ['LIDO,ROCKETPOOL', 'CIAN'] : ['ROCKETPOOL', 'LIDO']
}
export const DUAL_CONFIG = {
products: {
TAIKOHEKLA: ['PIONEX'] as string[],
TAIKO: ['PIONEX'] as string[],
ETHEREUM: ['PIONEX'],
GOERLI: ['PIONEX'],
SEPOLIA: ['PIONEX'],
ARBGOERLI: ['PIONEX'],
BASE: ['PIONEX'],
BASESEPOLIA: ['PIONEX'],
},
}
export const subMenuNFT = {
NFTGroup: [
{
icon: AssetsIcon,
router: { path: `${RouterPath.nft}/${NFTSubRouter.assetsNFT}` },
label: {
id: 'assetsNFT',
i18nKey: 'labelMyAssetsNFT',
description: 'labelMyAssetsNFTDes',
icon: MyNFTIcon,
},
},
// {
// icon: MintIcon,
// router: { path: `${RouterPath.nft}/${NFTSubRouter.mintNFTLanding}` },
// label: {
// id: 'mintNFT',
// i18nKey: 'labelMintNFT',
// description: 'labelMintNFTDes',
// icon: CreateNFTIcon,
// },
// },
{
icon: ImageIcon,
router: { path: `${RouterPath.nft}/${NFTSubRouter.myCollection}` },
label: {
id: 'collection',
i18nKey: 'labelMyCollection',
description: 'labelMyCollectionDes',
icon: MyCollectionIcon,
},
},
],
}
export const FOOTER_LIST_MAP = {
About: [
{
linkName: 'Org', // loopring.org
linkHref: 'https://loopring.org',
},
{
linkName: 'Terms', //Terms of service
linkHref: 'https://loopring.io/#/document/terms_en.md',
},
{
linkName: 'Privacy', //Privacy policy
linkHref: LOOPRING_DOCUMENT + 'privacy_en.md',
},
{
linkName: 'Risks', //Risks Disclosure
linkHref: LOOPRING_DOCUMENT + 'risks_en.md',
},
],
Platform: [
{
linkName: 'Fees', //Fees
linkHref: LOOPRING_DOCUMENT + 'dex_fees_en.md',
},
{
linkName: 'VIP', //VIP
linkHref: 'https://medium.loopring.io/introducing-loopring-vip-tiers-c6f73d753bac',
},
{
linkName: 'Referrals', //Referrals
linkHref:
'https://medium.loopring.io/loopring-exchange-launches-referral-program-c61777f072d1',
},
],
}
export const MEDIA_LIST = [
{
linkName: 'Discord', //color={"inherit"} fontSize={"large"}
linkHref: 'https://discord.com/invite/KkYccYp',
},
{
linkName: 'Twitter',
linkHref: 'https://twitter.com/loopringorg',
},
{
linkName: 'Youtube',
linkHref: 'https://www.youtube.com/c/Loopring',
},
{
linkName: 'Medium',
linkHref: 'https://medium.com/loopring-protocol',
},
]
export const headerMenuData: Array<HeaderMenuItemInterface> = [
{
label: {
id: 'home',
i18nKey: 'labelHome',
},
router: { path: `/pro` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'L2Assets',
i18nKey: 'labelAssets',
},
router: { path: `${RouterPath.l2assets}` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'Markets',
i18nKey: 'labelMarkets',
},
router: { path: `${RouterPath.markets}` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'Trade',
i18nKey: 'labelTrade',
},
status: HeaderMenuTabStatus.default,
child: layer2ItemData,
},
{
label: {
id: 'Invest',
i18nKey: 'labelInvest',
},
router: { path: `${RouterPath.invest}/${InvestRouter[InvestType.Overview]}` },
status: HeaderMenuTabStatus.default,
child: subMenuInvest,
},
// {
// label: {
// id: 'vault',
// i18nKey: 'labelVault',
// description: 'labelVaultDescription',
// },
// router: { path: `${RouterPath.vault}` },
// status: HeaderMenuTabStatus.default,
// child: vaultItemData,
// },
{
label: {
id: 'NFT',
i18nKey: 'labelNFT',
},
router: { path: `${RouterPath.nft}` },
status: HeaderMenuTabStatus.default,
child: subMenuNFT,
},
]
export const ammAdvice: InvestAdvice = {
type: InvestMapType.AMM,
router: `${RouterPath.invest}/${InvestAssetRouter.AMM}`,
banner: SoursURL + 'images/icon-amm.svg',
titleI18n: 'labelInvestAmm',
desI18n: 'labelInvestAmmDes',
notification: '',
enable: true,
}
export const defiAdvice: InvestAdvice = {
type: InvestMapType.STAKE,
router: `${RouterPath.invest}/${InvestAssetRouter.STAKE}`,
notification: '',
banner: SoursURL + 'images/icon-lido.svg',
titleI18n: 'labelInvestDefi',
desI18n: 'labelInvestDefiDes',
enable: true,
}
export const defiWSTETHAdvice: InvestAdvice = {
type: InvestMapType.STAKE,
router: `${RouterPath.invest}/${InvestAssetRouter.STAKE}/WSTETH`,
notification: '',
banner: SoursURL + 'images/icon-lido2.svg',
titleI18n: 'labelInvestWSTETH',
desI18n: 'labelInvestWSTETHDes',
enable: true,
project: 'Lido',
market: 'WSTETH-ETH',
}
export const defiRETHAdvice: InvestAdvice = {
type: InvestMapType.STAKE,
router: `${RouterPath.invest}/${InvestAssetRouter.STAKE}/RETH`,
notification: '',
banner: SoursURL + 'images/icon-pocket.svg',
titleI18n: 'labelInvestRETH',
desI18n: 'labelInvestRETHDes',
enable: true,
project: 'Rocket Pool',
market: 'RETH-ETH',
}
export const dualAdvice: InvestAdvice = {
type: InvestMapType.DUAL,
router: `${RouterPath.invest}/${InvestAssetRouter.DUAL}`,
notification: '',
banner: SoursURL + 'images/icon-dual.svg',
titleI18n: 'labelInvestDual',
desI18n: 'labelInvestDualDes',
enable: true,
}
export const stakeAdvice: InvestAdvice = {
type: InvestMapType.STAKELRC,
router: `${RouterPath.invest}/${InvestAssetRouter.STAKELRC}`,
notification: '',
banner: SoursURL + 'images/icon-stake-lrc.svg',
titleI18n: 'labelInvestStakeLRC',
desI18n: 'labelInvestStakeLRCDes',
enable: true,
}
export const leverageETHAdvice: InvestAdvice = {
type: InvestMapType.LEVERAGEETH,
router: `${RouterPath.invest}/${InvestAssetRouter.LEVERAGEETH}`,
notification: '',
banner: SoursURL + 'images/icon-leverage-ETH.svg',
titleI18n: 'labelInvestLeverageETH',
desI18n: 'labelInvestLeverageETHDes',
enable: true,
project: 'Leveraged ETH Staking',
market: 'CIETH-ETH',
}
export const DEFI_ADVICE_MAP = {
WSTETH: defiWSTETHAdvice,
RETH: defiRETHAdvice,
CIETH: leverageETHAdvice,
}
export enum RecordTabIndex {
Transactions = 'Transactions',
Trades = 'Trades',
AmmRecords = 'AmmRecords',
Orders = 'Orders',
DefiRecords = 'DefiRecords',
DualRecords = 'DualRecords',
SideStakingRecords = 'SideStakingRecords',
BtradeSwapRecords = 'BtradeSwapRecords',
StopLimitRecords = 'StopLimitRecords',
leverageETHRecords = 'leverageETHRecords',
VaultRecords = 'VaultRecords',
TaikoLockRecords = 'TaikoLockRecords',
}
export enum AssetTabIndex {
Tokens = 'Tokens',
Invests = 'Invests',
RedPacket = 'RedPacket',
Rewards = 'Rewards',
}
export enum RedPacketRouterIndex {
create = 'create',
records = 'records',
markets = 'markets',
}
export enum RedPacketRecordsTabIndex {
Received = 'Received',
Send = 'Send',
NFTReceived = 'NFTReceived',
NFTSend = 'NFTSend',
BlindBoxReceived = 'BlindBoxReceived',
BlindBoxSend = 'BlindBoxSend',
NFTsUnClaimed = 'NFTsUnClaimed',
BlindBoxUnClaimed = 'BlindBoxUnClaimed',
}
export enum TabOrderIndex {
orderOpenTable = 'orderOpenTable',
orderHistoryTable = 'orderHistoryTable',
}
export const headerMenuDataMap: { [key: string]: HeaderMenuItemInterface[] } = {
TAIKOHEKLA:[
{
label: {
id: 'home',
i18nKey: 'labelHome',
},
router: { path: `/pro` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'L2Assets',
i18nKey: 'labelAssets',
},
router: { path: `${RouterPath.l2assets}` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'Markets',
i18nKey: 'labelMarkets',
},
router: { path: `${RouterPath.markets}` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'Trade',
i18nKey: 'labelTrade',
},
status: HeaderMenuTabStatus.default,
child: [
{
label: {
id: 'lite',
i18nKey: 'labelClassic',
description: 'labelClassicDescription',
icon: SwapIcon,
},
router: { path: RouterPath.lite + '/${pair}' },
},
{
label: {
id: 'pro',
i18nKey: 'labelAdvanced',
description: 'labelAdvancedDescription',
icon: OrderBookIcon,
},
router: { path: RouterPath.pro + '/${pair}' },
},
{
label: {
id: 'stopLimit',
i18nKey: 'labelStopLimit',
description: 'labelStopLimitDescription',
icon: StopLimitIcon,
},
router: { path: RouterPath.stoplimit + '/${pair}' },
},
// {
// label: {
// id: 'btrade',
// i18nKey: 'labelBtradeTrade',
// description: 'labelBtradeTradeDescription',
// icon: BlockTradeIcon,
// },
// router: { path: RouterPath.btrade + '/${pair}' },
// },
]
},
{
label: {
id: 'vault',
i18nKey: 'labelVault',
description: 'labelVaultDescription',
},
router: { path: `${RouterPath.vault}` },
status: HeaderMenuTabStatus.default,
child: vaultItemData,
},
{
label: {
id: 'Invest',
i18nKey: 'labelInvest',
},
router: { path: `${RouterPath.invest}/${InvestRouter[InvestType.Overview]}` },
status: HeaderMenuTabStatus.default,
child: [
// {
// icon: L2MyLiquidityIcon,
// router: { path: `${RouterPath.invest}/${InvestRouter[InvestType.Overview]}` },
// label: {
// id: 'overview',
// i18nKey: 'labelInvestOverview',
// description: 'labelInvestOverviewDes',
// icon: OverviewIcon,
// },
// },
{
icon: L2MyLiquidityIcon,
router: { path: `${RouterPath.invest}/${InvestAssetRouter.DUAL}` },
label: {
id: 'dual',
i18nKey: 'labelInvestDual',
description: 'labelInvestDualDes',
icon: DualInvestIcon,
},
},
{
icon: L2MyLiquidityIcon,
router: { path: `${RouterPath.invest}/${InvestAssetRouter.AMM}` },
label: {
id: 'ammpool',
i18nKey: 'labelInvestAmm',
description: 'labelInvestAmmDes',
icon: AmmIcon,
},
},
] as HeaderMenuItemInterface[]
},
],
TAIKO:[
{
label: {
id: 'home',
i18nKey: 'labelHome',
},
router: { path: `/pro` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'L2Assets',
i18nKey: 'labelAssets',
},
router: { path: `${RouterPath.l2assets}` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'Markets',
i18nKey: 'labelMarkets',
},
router: { path: `${RouterPath.markets}` },
status: HeaderMenuTabStatus.default,
},
{
label: {
id: 'Trade',
i18nKey: 'labelTrade',
},
status: HeaderMenuTabStatus.default,
child: [
{
label: {
id: 'lite',
i18nKey: 'labelClassic',
description: 'labelClassicDescription',
icon: SwapIcon,
},
router: { path: RouterPath.lite + '/${pair}' },
},
{
label: {
id: 'pro',
i18nKey: 'labelAdvanced',
description: 'labelAdvancedDescription',
icon: OrderBookIcon,
},
router: { path: RouterPath.pro + '/${pair}' },
},
{
label: {
id: 'stopLimit',
i18nKey: 'labelStopLimit',
description: 'labelStopLimitDescription',
icon: StopLimitIcon,
},
router: { path: RouterPath.stoplimit + '/${pair}' },
},
// {
// label: {
// id: 'btrade',
// i18nKey: 'labelBtradeTrade',
// description: 'labelBtradeTradeDescription',
// icon: BlockTradeIcon,
// },
// router: { path: RouterPath.btrade + '/${pair}' },
// },
]
},
{
label: {
id: 'vault',
i18nKey: 'labelVault',
description: 'labelVaultDescription',
},
router: { path: `${RouterPath.vault}` },
status: HeaderMenuTabStatus.default,
child: vaultItemData,
},
{
label: {
id: 'Invest',
i18nKey: 'labelInvest',
},
router: { path: `${RouterPath.invest}/${InvestRouter[InvestType.Overview]}` },
status: HeaderMenuTabStatus.default,
child: [
// {
// icon: L2MyLiquidityIcon,
// router: { path: `${RouterPath.invest}/${InvestRouter[InvestType.Overview]}` },
// label: {
// id: 'overview',
// i18nKey: 'labelInvestOverview',
// description: 'labelInvestOverviewDes',
// icon: OverviewIcon,
// },
// },
{
icon: L2MyLiquidityIcon,
router: { path: `${RouterPath.invest}/${InvestAssetRouter.DUAL}` },
label: {
id: 'dual',
i18nKey: 'labelInvestDual',
description: 'labelInvestDualDes',
icon: DualInvestIcon,
},
},
{
icon: L2MyLiquidityIcon,
router: { path: `${RouterPath.invest}/${InvestAssetRouter.AMM}` },
label: {
id: 'ammpool',
i18nKey: 'labelInvestAmm',
description: 'labelInvestAmmDes',
icon: AmmIcon,
},
},
] as HeaderMenuItemInterface[]
},
],
ETHEREUM: headerMenuData,
GOERLI: headerMenuData,
SEPOLIA: headerMenuData,
ARBGOERLI: headerMenuData,
BASE: headerMenuData,
BASESEPOLIA: headerMenuData,
}
export const TokenPriceBase = {
TAIKOHEKLA: '0x931c7ada32c20b9d565cab616fe9976154e29809',
TAIKO: '0x07d83526730c7438048d55a4fc0b850e2aab6f0b',
ETHEREUM: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
GOERLI: '0xd4e71c4bb48850f5971ce40aa428b09f242d3e8a',
SEPOLIA: '0xa7bc5a2731803be668090125b5074555f91cbc9d',
ARBGOERLI: '0xd4e71c4bb48850f5971ce40aa428b09f242d3e8a',
BASE: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
BASESEPOLIA: '0x5cc6b635bb68976e4ae3d0546ba0f20f66872a72',
}
export const RecordMap: { [key: string]: RecordTabIndex[] } = {
TAIKOHEKLA: [
RecordTabIndex.Transactions,
RecordTabIndex.Trades,
RecordTabIndex.Orders,
RecordTabIndex.StopLimitRecords,
RecordTabIndex.AmmRecords,
RecordTabIndex.DefiRecords,
RecordTabIndex.DualRecords,
RecordTabIndex.SideStakingRecords,
RecordTabIndex.BtradeSwapRecords,
RecordTabIndex.leverageETHRecords,
RecordTabIndex.VaultRecords,
],
TAIKO: [
RecordTabIndex.Transactions,
RecordTabIndex.Trades,
RecordTabIndex.Orders,
RecordTabIndex.StopLimitRecords,
RecordTabIndex.AmmRecords,
RecordTabIndex.DefiRecords,
RecordTabIndex.DualRecords,
RecordTabIndex.SideStakingRecords,
RecordTabIndex.BtradeSwapRecords,
RecordTabIndex.leverageETHRecords,
RecordTabIndex.VaultRecords,
],
ETHEREUM: [
RecordTabIndex.Transactions,
RecordTabIndex.Trades,
RecordTabIndex.Orders,
RecordTabIndex.StopLimitRecords,
RecordTabIndex.AmmRecords,
RecordTabIndex.DefiRecords,
RecordTabIndex.DualRecords,
RecordTabIndex.SideStakingRecords,
RecordTabIndex.BtradeSwapRecords,
RecordTabIndex.leverageETHRecords,
RecordTabIndex.VaultRecords,
],
GOERLI: [
RecordTabIndex.Transactions,
RecordTabIndex.Trades,
RecordTabIndex.Orders,
RecordTabIndex.StopLimitRecords,
RecordTabIndex.AmmRecords,
RecordTabIndex.DefiRecords,
RecordTabIndex.DualRecords,
RecordTabIndex.SideStakingRecords,
RecordTabIndex.BtradeSwapRecords,
RecordTabIndex.leverageETHRecords,
RecordTabIndex.VaultRecords,
],
SEPOLIA: [
RecordTabIndex.Transactions,
RecordTabIndex.Trades,
RecordTabIndex.Orders,
RecordTabIndex.StopLimitRecords,
RecordTabIndex.AmmRecords,
RecordTabIndex.DefiRecords,
RecordTabIndex.DualRecords,
RecordTabIndex.SideStakingRecords,
RecordTabIndex.BtradeSwapRecords,
RecordTabIndex.leverageETHRecords,
RecordTabIndex.VaultRecords,
],
ARBGOERLI: [
RecordTabIndex.Transactions,
RecordTabIndex.Trades,
RecordTabIndex.Orders,
RecordTabIndex.StopLimitRecords,
RecordTabIndex.AmmRecords,
RecordTabIndex.DefiRecords,
RecordTabIndex.DualRecords,
RecordTabIndex.SideStakingRecords,
RecordTabIndex.BtradeSwapRecords,
RecordTabIndex.leverageETHRecords,
RecordTabIndex.VaultRecords,
],
BASE: [
RecordTabIndex.Transactions,
RecordTabIndex.Trades,
RecordTabIndex.Orders,
RecordTabIndex.StopLimitRecords,
RecordTabIndex.DefiRecords,
RecordTabIndex.DualRecords,
RecordTabIndex.SideStakingRecords,
RecordTabIndex.BtradeSwapRecords,
RecordTabIndex.leverageETHRecords,
RecordTabIndex.VaultRecords,
],
BASESEPOLIA: [
RecordTabIndex.Transactions,
RecordTabIndex.Trades,
RecordTabIndex.Orders,
RecordTabIndex.StopLimitRecords,
RecordTabIndex.DefiRecords,
RecordTabIndex.DualRecords,
RecordTabIndex.SideStakingRecords,
RecordTabIndex.BtradeSwapRecords,
RecordTabIndex.leverageETHRecords,
RecordTabIndex.VaultRecords,
],
}
export const AddAssetListMap = {
TAIKOHEKLA: [
AddAssetList.FromMyL1.key,
AddAssetList.BuyWithCard.key,
AddAssetList.FromOtherL2.key,
AddAssetList.FromOtherL1.key,
AddAssetList.FromExchange.key,
AddAssetList.FromAnotherNet.key,
AddAssetList.FromExchange.key,
],
TAIKO: [
AddAssetList.FromMyL1.key,
AddAssetList.BuyWithCard.key,
AddAssetList.FromOtherL2.key,
AddAssetList.FromOtherL1.key,
AddAssetList.FromExchange.key,
AddAssetList.FromAnotherNet.key,
AddAssetList.FromExchange.key,
],
ETHEREUM: [
AddAssetList.FromMyL1.key,
AddAssetList.BuyWithCard.key,
AddAssetList.FromOtherL2.key,
AddAssetList.FromOtherL1.key,
AddAssetList.FromExchange.key,
AddAssetList.FromAnotherNet.key,
],
GOERLI: [
AddAssetList.FromMyL1.key,
AddAssetList.BuyWithCard.key,
AddAssetList.FromOtherL2.key,
AddAssetList.FromOtherL1.key,
AddAssetList.FromExchange.key,
AddAssetList.FromAnotherNet.key,
],
SEPOLIA: [
AddAssetList.FromMyL1.key,
AddAssetList.BuyWithCard.key,
AddAssetList.FromOtherL2.key,
AddAssetList.FromOtherL1.key,
AddAssetList.FromExchange.key,
AddAssetList.FromAnotherNet.key,
],
ARBGOERLI: [
AddAssetList.FromMyL1.key,
AddAssetList.BuyWithCard.key,
AddAssetList.FromOtherL2.key,
AddAssetList.FromOtherL1.key,
AddAssetList.FromExchange.key,
AddAssetList.FromAnotherNet.key,
],
BASE: [
AddAssetList.FromMyL1.key,
AddAssetList.BuyWithCard.key,
AddAssetList.FromOtherL2.key,
AddAssetList.FromOtherL1.key,
AddAssetList.FromExchange.key,
AddAssetList.FromAnotherNet.key,
],
BASESEPOLIA: [
AddAssetList.FromMyL1.key,
AddAssetList.BuyWithCard.key,
AddAssetList.FromOtherL2.key,
AddAssetList.FromOtherL1.key,
AddAssetList.FromExchange.key,
AddAssetList.FromAnotherNet.key,
],
}
export const SendAssetListMap = {
TAIKOHEKLA: [
SendAssetList.SendAssetToMyL1.key,
SendAssetList.SendAssetToL2.key,
SendAssetList.SendAssetToOtherL1.key,
],
TAIKO: [
SendAssetList.SendAssetToMyL1.key,
SendAssetList.SendAssetToL2.key,
SendAssetList.SendAssetToOtherL1.key,
],
ETHEREUM: [
SendAssetList.SendAssetToMyL1.key,
SendAssetList.SendAssetToL2.key,
SendAssetList.SendAssetToOtherL1.key,
SendAssetList.SendAssetToTaikoAccount.key,
SendAssetList.SendAssetToAnotherNet.key,
],
SEPOLIA: [
SendAssetList.SendAssetToMyL1.key,
SendAssetList.SendAssetToL2.key,
SendAssetList.SendAssetToOtherL1.key,
SendAssetList.SendAssetToTaikoAccount.key,
SendAssetList.SendAssetToAnotherNet.key,
],
BASE: [
SendAssetList.SendAssetToMyL1.key,
SendAssetList.SendAssetToL2.key,
SendAssetList.SendAssetToOtherL1.key,
SendAssetList.SendAssetToTaikoAccount.key,
SendAssetList.SendAssetToAnotherNet.key,
],
BASESEPOLIA: [
SendAssetList.SendAssetToMyL1.key,
SendAssetList.SendAssetToL2.key,
SendAssetList.SendAssetToOtherL1.key,
SendAssetList.SendAssetToTaikoAccount.key,
SendAssetList.SendAssetToAnotherNet.key,
],
}
export const AssetL2TabIndex = {
TAIKOHEKLA: [AssetTabIndex.Tokens],
TAIKO: [AssetTabIndex.Tokens],
ETHEREUM: [
AssetTabIndex.Tokens,
AssetTabIndex.Invests,
// AssetTabIndex.RedPacket,
AssetTabIndex.Rewards,
],
GOERLI: [
AssetTabIndex.Tokens,
AssetTabIndex.Invests,
// AssetTabIndex.RedPacket,
AssetTabIndex.Rewards,
],
SEPOLIA: [
AssetTabIndex.Tokens,
AssetTabIndex.Invests,
// AssetTabIndex.RedPacket,
AssetTabIndex.Rewards,
],
ARBGOERLI: [
AssetTabIndex.Tokens,
AssetTabIndex.Invests,
// AssetTabIndex.RedPacket,
AssetTabIndex.Rewards,
],
BASE: [
AssetTabIndex.Tokens,
AssetTabIndex.Invests,
// AssetTabIndex.RedPacket,
AssetTabIndex.Rewards,
],
BASESEPOLIA: [
AssetTabIndex.Tokens,
AssetTabIndex.Invests,
// AssetTabIndex.RedPacket,
AssetTabIndex.Rewards,
],
}
export const RouterAllowIndex = {
TAIKOHEKLA: [
RouterMainKey.lite,
RouterMainKey.pro,
RouterMainKey.stoplimit,
RouterMainKey.btrade,
RouterMainKey.fiat,
RouterMainKey.markets,
RouterMainKey.mining,
RouterMainKey.redPacket,
RouterMainKey.l2assets,
RouterMainKey.layer2,
RouterMainKey.nft,
RouterMainKey.invest,
RouterMainKey.vault,
],
TAIKO: [
RouterMainKey.lite,
RouterMainKey.pro,
RouterMainKey.stoplimit,
RouterMainKey.btrade,
RouterMainKey.fiat,
RouterMainKey.markets,
RouterMainKey.mining,
RouterMainKey.redPacket,
RouterMainKey.l2assets,
RouterMainKey.layer2,
RouterMainKey.nft,
RouterMainKey.invest,
RouterMainKey.vault,
],
ETHEREUM: [
RouterMainKey.lite,
RouterMainKey.pro,
RouterMainKey.stoplimit,
RouterMainKey.btrade,
RouterMainKey.fiat,
RouterMainKey.markets,
RouterMainKey.mining,
RouterMainKey.redPacket,
RouterMainKey.l2assets,
RouterMainKey.layer2,
RouterMainKey.nft,
RouterMainKey.invest,
RouterMainKey.vault,
],
GOERLI: [
RouterMainKey.lite,
RouterMainKey.pro,
RouterMainKey.stoplimit,
RouterMainKey.btrade,
RouterMainKey.fiat,
RouterMainKey.markets,
RouterMainKey.mining,
RouterMainKey.redPacket,
RouterMainKey.l2assets,
RouterMainKey.layer2,
RouterMainKey.nft,
RouterMainKey.invest,
RouterMainKey.vault,
],
SEPOLIA: [
RouterMainKey.lite,
RouterMainKey.pro,
RouterMainKey.stoplimit,
RouterMainKey.btrade,
RouterMainKey.fiat,
RouterMainKey.markets,
RouterMainKey.mining,
RouterMainKey.redPacket,
RouterMainKey.l2assets,
RouterMainKey.layer2,
RouterMainKey.nft,
RouterMainKey.invest,
RouterMainKey.vault,
],
ARBGOERLI: [
RouterMainKey.lite,
RouterMainKey.pro,
RouterMainKey.stoplimit,
RouterMainKey.btrade,
RouterMainKey.fiat,
RouterMainKey.markets,
RouterMainKey.mining,
RouterMainKey.redPacket,
RouterMainKey.l2assets,
RouterMainKey.layer2,
RouterMainKey.nft,
RouterMainKey.invest,
],
BASE: [
RouterMainKey.lite,
RouterMainKey.pro,
RouterMainKey.stoplimit,
RouterMainKey.btrade,
RouterMainKey.fiat,
RouterMainKey.markets,
RouterMainKey.mining,
RouterMainKey.redPacket,
RouterMainKey.l2assets,
RouterMainKey.layer2,
RouterMainKey.nft,
RouterMainKey.invest,
RouterMainKey.vault,
],
BASESEPOLIA: [
RouterMainKey.lite,
RouterMainKey.pro,
RouterMainKey.stoplimit,
RouterMainKey.btrade,
RouterMainKey.fiat,
RouterMainKey.markets,
RouterMainKey.mining,
RouterMainKey.redPacket,
RouterMainKey.l2assets,
RouterMainKey.layer2,
RouterMainKey.nft,
RouterMainKey.invest,
RouterMainKey.vault,
],
}
export const ProfileIndex = {
TAIKOHEKLA: [
Layer2RouterID.security,
],
TAIKO: [
Layer2RouterID.security,
],
ETHEREUM: [
Layer2RouterID.security,
Layer2RouterID.forcewithdraw,
Layer2RouterID.vip,
Layer2RouterID.contact,
Layer2RouterID.referralrewards,
Layer2RouterID.notification,
],
GOERLI: [
Layer2RouterID.security,
Layer2RouterID.forcewithdraw,
Layer2RouterID.vip,
Layer2RouterID.contact,
Layer2RouterID.referralrewards,
Layer2RouterID.notification,
],
SEPOLIA: [
Layer2RouterID.security,
Layer2RouterID.forcewithdraw,
Layer2RouterID.vip,
Layer2RouterID.contact,
Layer2RouterID.referralrewards,
Layer2RouterID.notification,
],
ARBGOERLI: [
Layer2RouterID.security,
Layer2RouterID.forcewithdraw,
Layer2RouterID.vip,
Layer2RouterID.contact,
Layer2RouterID.referralrewards,
],
BASE: [
Layer2RouterID.security,
],
BASESEPOLIA: [
Layer2RouterID.security,
],
}
export const L1L2_NAME_DEFINED = {
TAIKOHEKLA: {
layer2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Layer 3',
l1ChainName: 'Taiko Hekla',
loopringL2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Loopring L3',
l2Symbol: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'L3',
l1Symbol: 'Taiko Hekla',
ethereumL1: 'Taiko Hekla',
loopringLayer2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Loopring Layer 3',
L1Token: 'ETH',
L2Token: 'TAIKO',
},
TAIKO: {
layer2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Layer 3',
l1ChainName: 'Taiko',
loopringL2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Loopring L3',
l2Symbol: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'L3',
l1Symbol: 'Taiko',
ethereumL1: 'Taiko',
loopringLayer2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Loopring Layer 3',
L1Token: 'ETH',
L2Token: 'TAIKO',
},
ETHEREUM: {
layer2: 'Layer 2',
l1ChainName: 'Ethereum',
loopringL2: 'Loopring L2',
l2Symbol: 'L2',
l1Symbol: 'L1',
ethereumL1: 'Ethereum L1',
loopringLayer2: 'Loopring Layer 2',
L1Token: 'ETH',
L2Token: 'LRC',
},
GOERLI: {
layer2: 'Layer 2',
l1ChainName: 'Ethereum',
loopringL2: 'Loopring L2',
l2Symbol: 'L2',
l1Symbol: 'L1',
ethereumL1: 'Ethereum L1',
loopringLayer2: 'Loopring Layer 2',
L1Token: 'ETH',
L2Token: 'LRC',
},
SEPOLIA: {
layer2: 'Layer 2',
l1ChainName: 'Ethereum',
loopringL2: 'Loopring L2',
l2Symbol: 'L2',
l1Symbol: 'L1',
ethereumL1: 'Ethereum L1',
loopringLayer2: 'Loopring Layer 2',
L1Token: 'ETH',
L2Token: 'LRC',
},
ARBGOERLI: {
layer2: 'Layer 2',
l1ChainName: 'Ethereum',
loopringL2: 'Loopring L2',
l2Symbol: 'L2',
l1Symbol: 'L1',
ethereumL1: 'Ethereum L1',
loopringLayer2: 'Loopring Layer 2',
L1Token: 'ETH',
L2Token: 'LRC',
},
BASE: {
layer2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Layer 3',
l1ChainName: 'BASE',
loopringL2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Loopring L3',
l2Symbol: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'L3',
l1Symbol: 'L1',
ethereumL1: 'BASE',
loopringLayer2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Loopring Layer 3',
L1Token: 'ETH',
L2Token: 'ETH',
},
BASESEPOLIA: {
layer2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Layer 3',
l1ChainName: 'BASE',
loopringL2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Loopring L3',
l2Symbol: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'L3',
l1Symbol: 'L1',
ethereumL1: 'BASE',
loopringLayer2: process.env.REACT_APP_NAME === 'loopring defi' ? 'Loopring DeFi' : 'Loopring Layer 3',
L1Token: 'ETH',
L2Token: 'ETH',
},
}
export const SPECIAL_ACTIVATION_NETWORKS = [
ChainId.TAIKO,
ChainId.TAIKOHEKLA,
ChainId.BASE,
ChainId.SEPOLIA,
ChainId.BASESEPOLIA,
]
================================================
FILE: packages/common-resources/static-resources/src/constant/sagaStatus.ts
================================================
import { ErrorObject } from '../error'
export enum SagaStatus {
UNSET = 'UNSET',
PENDING = 'PENDING',
ERROR = 'ERROR', // success failed timeout is Done
DONE = 'DONE', // success failed timeout is Done
}
export type StateBase = {
status: SagaStatus
errorMessage?: ErrorObject | null
}
================================================
FILE: packages/common-resources/static-resources/src/constant/setting.ts
================================================
import { IsMobile } from '../utils'
import { NetworkItemInfo } from '../loopring-interface'
import * as sdk from '@loopring-web/loopring-sdk'
import { mainnet, sepolia, base, baseSepolia, taiko, taikoHekla, Chain } from 'viem/chains'
export enum UpColor {
green = 'green',
red = 'red',
}
export const SlippageTolerance: Array<0.1 | 0.5 | 1 | string> = [0.1, 0.5, 1]
export const SlippageBtradeTolerance: Array<0.1 | 0.5 | 1 | string> = [0.1, 0.5, 1]
export type RowConfigType = {
rowHeight?: number
rowHeaderHeight?: number
minHeight?: number
}
export const RowConfig = {
rowHeight: IsMobile.any() ? 48 : 44,
rowHeaderHeight: IsMobile.any() ? 48 : 44,
minHeight: 350,
}
export const RowInvestConfig = {
rowHeight: IsMobile.any() ? 48 : 56,
rowHeaderHeight: IsMobile.any() ? 48 : 56,
minHeight: 350,
}
export const RowDualInvestConfig = {
rowHeight: IsMobile.any() ? 48 : 72,
rowHeaderHeight: IsMobile.any() ? 48 : 72,
minHeight: 350,
}
export const DirectionTag = '\u2192'
export const FeeChargeOrderDefaultMap = new Map([
[sdk.ChainId.MAINNET, ['ETH', 'USDT', 'LRC', 'DAI', 'USDC']],
[sdk.ChainId.TAIKO, ['ETH', 'USDT', 'LRC', 'USDC', 'TAIKO']],
[sdk.ChainId.SEPOLIA, ['ETH', 'USDT', 'LRC', 'DAI']],
[sdk.ChainId.TAIKOHEKLA, ['ETH', 'USDT', 'LRC', 'TAIKO']],
[sdk.ChainId.BASE, ['ETH', 'USDT', 'LRC', 'USDC']],
[sdk.ChainId.BASESEPOLIA, ['ETH', 'USDT', 'LRC', 'USDC']],
])
export const HEADER_HEIGHT = 64
export const LandPageHeightConfig = {
headerHeight: 64,
whiteHeight: 32,
maxHeight: 836,
minHeight: 800,
}
export const Lang = {
en_US: 'en',
zh_CN: 'zh',
}
export const Explorer = 'https://explorer.loopring.io/'
export const Bridge = 'https://bridge.loopring.io/#/'
export const ExchangeIO = 'https://loopring.io'
export const Exchange = 'https://loopring.io/#/'
export const ExchangePro = window.location.origin + '/#/pro'
export const Earnlite = 'https://defi.loopring.io/#/'
export const WalletSite = 'https://wallet.loopring.io'
export const LOOPRING_DOC = 'https://docs.loopring.io'
export const YEAR_FROMATE = 'YYYY'
export const DAY_FORMAT = 'MM/DD'
export const MINUTE_FORMAT = 'HH:mm'
export const DAY_MINUTE_FORMAT = `${DAY_FORMAT} ${MINUTE_FORMAT}`
export const DAT_STRING_FORMAT = 'MMM DD [UTC]Z'
export const DAT_STRING_FORMAT_S = 'MMM DD'
export const SECOND_FORMAT = `${MINUTE_FORMAT}:ss`
export const YEAR_DAY_FORMAT = `${YEAR_FROMATE}/${DAY_FORMAT}`
export const YEAR_DAY_MINUTE_FORMAT = `${YEAR_DAY_FORMAT} ${MINUTE_FORMAT}`
export const YEAR_DAY_SECOND_FORMAT = `${YEAR_DAY_FORMAT} ${SECOND_FORMAT}`
export const MINT_STRING_FORMAT = `${MINUTE_FORMAT} ${DAT_STRING_FORMAT}`
export const UNIX_TIMESTAMP_FORMAT = 'x'
export const sizeNFTConfig = (size: 'large' | 'medium' | 'small') => {
switch (size) {
case 'large':
return {
wrap_xs: 12,
wrap_md: 4,
wrap_lg: 4,
avatar: 40,
contentHeight: 80,
}
break
case 'small':
return {
wrap_xs: 6,
wrap_md: 3,
wrap_lg: 2,
avatar: 28,
contentHeight: 60,
}
break
case 'medium':
return {
wrap_xs: 6,
wrap_md: 3,
wrap_lg: 3,
avatar: 38,
contentHeight: 72,
}
break
}
}
export enum TradeBtnStatus {
AVAILABLE = 'AVAILABLE',
DISABLED = 'DISABLED',
LOADING = 'LOADING',
}
export const { NetworkMap, ChainTests, MapChainId, ChainIdExtends } = (
process.env.REACT_APP_RPC_OTHERS?.split(',') ?? []
).reduce(
({ NetworkMap, ChainTests, MapChainId, ChainIdExtends }, item: string, index: number) => {
let [_name, isTest] = process.env[`REACT_APP_RPC_CHAINNAME_${item}`]?.split('|') ?? [
`unknown${item}`,
]
const name = _name.toUpperCase()
ChainIdExtends[name] = Number(item)
MapChainId[item] = name
// MapChainIdMap.set(Number(item), name);
// myLog("MapChainIdMap", item, MapChainIdMap);
if (isTest) {
ChainTests.push(Number(item))
}
NetworkMap[Number(item)] = {
label: _name,
chainId: index.toString(),
// RPC: process.env[`REACT_APP_RPC_URL_${item}`] ?? "",
isTest: isTest ? true : false,
walletType: name,
}
return { NetworkMap, ChainTests, MapChainId, ChainIdExtends }
},
{
MapChainId: {
1: 'ETHEREUM',
5: 'GOERLI',
421613: 'ARBGOERLI',
11155111: 'SEPOLIA',
167009: 'TAIKOHEKLA',
167000: 'TAIKO',
8453: 'BASE',
84532: 'BASESEPOLIA',
},
NetworkMap: {
1: {
label: 'Ethereum',
chainId: '1',
isTest: false,
walletType: 'ETHEREUM',
},
5: {
label: 'Görli',
chainId: '5',
isTest: true,
walletType: 'GOERLI',
},
11155111: {
label: 'Sepolia',
chainId: '11155111',
isTest: true,
walletType: 'SEPOLIA',
},
167009: {
label: 'Taiko Hekla',
chainId: '167009',
isTest: true,
walletType: 'Taiko Hekla',
},
167000: {
label: 'Taiko',
chainId: '167000',
isTest: false,
walletType: 'TAIKO',
},
8453: {
label: 'Base',
chainId: '8453',
isTest: false,
walletType: 'BASE',
},
84532: {
label: 'Base Sepolia',
chainId: '84532',
isTest: true,
walletType: 'BASESEPOLIA',
},
},
ChainTests: [11155111, 5, 167009, 84532],
ChainIdExtends: {
NONETWORK: 'unknown',
},
} as {
ChainTests: number[]
MapChainId: { [key: string]: string }
NetworkMap: { [key: number]: NetworkItemInfo }
ChainIdExtends: { [key: string]: number | string }
},
)
if (window) {
// @ts-ignore
window.__ChainIdExtends = ChainIdExtends
// @ts-ignore
window.__MapChainId = MapChainId
}
export const HEBAO_CONTRACT_MAP = [
['V3_0_0', sdk.AddressType.LOOPRING_HEBAO_CONTRACT_3_0_0],
['V2_2_0', sdk.AddressType.LOOPRING_HEBAO_CONTRACT_2_2_0],
['V2_1_0', sdk.AddressType.LOOPRING_HEBAO_CONTRACT_2_1_0],
['V2_0_0', sdk.AddressType.LOOPRING_HEBAO_CONTRACT_2_0_0],
['V1_2_0', sdk.AddressType.LOOPRING_HEBAO_CONTRACT_1_2_0],
['V1_1_6', sdk.AddressType.LOOPRING_HEBAO_CONTRACT_1_1_6],
]
export type ContactType = Pick<sdk.GetContactsResponse, 'contacts'>['contacts'][0]
export type CoinSource = {
x: number
y: number
w: number
h: number
offX: number
offY: number
sourceW: number
sourceH: number
simpleName?: string
}
export enum TableFilterParams {
all = 'all',
favourite = 'favourite',
ranking = 'ranking',
}
export type Contact = {
contactName: string
// name?: string
address?: string
addressType?: (typeof sdk.AddressType)[sdk.AddressTypeKeys]
ens?: string
} & Partial<sdk.CreateContactRequest>
export enum ToastType {
success = 'success',
error = 'error',
warning = 'warning',
info = 'info',
}
export const SEND_TO_TAIKO_NETWORK_MAP = new Map([
[sdk.ChainId.SEPOLIA, sdk.ChainId.TAIKOHEKLA],
[sdk.ChainId.MAINNET, sdk.ChainId.TAIKO],
])
export const CHAIN_ID_TO_VIEW_CHAIN = new Map<sdk.ChainId, Chain>([
[sdk.ChainId.SEPOLIA, sepolia],
[sdk.ChainId.MAINNET, mainnet],
[sdk.ChainId.TAIKOHEKLA, taikoHekla],
[sdk.ChainId.TAIKO, taiko],
[sdk.ChainId.BASE, base],
[sdk.ChainId.BASESEPOLIA, baseSepolia],
])
export const coinbaseSmartWalletChains = [sdk.ChainId.BASE, sdk.ChainId.BASESEPOLIA]
export const hideDefiEntry = process.env.REACT_APP_HIDE_DEFI_ENTRY === 'true'
================================================
FILE: packages/common-resources/static-resources/src/constant/social.ts
================================================
import * as Social from 'react-share'
import { DiscordSvg } from '../svg';
import { createElement } from 'react';
import { ExchangeIO } from './setting';
import { IPFSHTTPClient } from 'ipfs-http-client';
import { IPFS_LOOPRING_SITE } from './router';
import { myLog } from '../utils';
export enum SOCIAL_NAME_KEYS {
Facebook = 'Facebook',
WhatsApp = 'WhatsApp',
Twitter = 'Twitter',
Telegram = 'Telegram',
Email = 'Email',
Pinterest = 'Pinterest',
Discord = 'Discord'
}
// Object.values(SOCIAL_NAME_KEYS)
export const SOCIAL_COMPONENT_MAP = {
[ SOCIAL_NAME_KEYS.Facebook ]: {
SocialNetworkName: SOCIAL_NAME_KEYS.Facebook,
SocialComponent: Social.FacebookShareButton,
SocialIcon: Social.FacebookIcon,
},
[ SOCIAL_NAME_KEYS.WhatsApp ]: {
SocialNetworkName: SOCIAL_NAME_KEYS.WhatsApp,
SocialComponent: Social.WhatsappShareButton,
SocialIcon: Social.WhatsappIcon,
},
[ SOCIAL_NAME_KEYS.Twitter ]: {
SocialNetworkName: SOCIAL_NAME_KEYS.Twitter,
SocialComponent: Social.TwitterShareButton,
SocialIcon: Social.TwitterIcon,
},
[ SOCIAL_NAME_KEYS.Telegram ]: {
SocialNetworkName: SOCIAL_NAME_KEYS.Telegram,
SocialComponent: Social.TelegramShareButton,
SocialIcon: Social.TelegramIcon,
},
[ SOCIAL_NAME_KEYS.Email ]: {
SocialNetworkName: SOCIAL_NAME_KEYS.Email,
SocialComponent: Social.EmailShareButton,
SocialIcon: Social.EmailIcon,
},
[ SOCIAL_NAME_KEYS.Pinterest ]: {
SocialNetworkName: SOCIAL_NAME_KEYS.Pinterest,
SocialComponent: Social.PinterestShareButton,
SocialIcon: Social.PinterestIcon,
},
[ SOCIAL_NAME_KEYS.Discord ]: {
SocialNetworkName: SOCIAL_NAME_KEYS.Discord,
SocialComponent: createElement(''),
SocialIcon: DiscordSvg,
}
}
export const SOCIAL_LIST = [
SOCIAL_COMPONENT_MAP[ SOCIAL_NAME_KEYS.Facebook ],
SOCIAL_COMPONENT_MAP[ SOCIAL_NAME_KEYS.Twitter ],
SOCIAL_COMPONENT_MAP[ SOCIAL_NAME_KEYS.Email ],
]
// export const SOCIAL_WITH_TITLE = new Set([
// SOCIAL_NAME_KEYS.Facebook,
// // SOCIAL_NAME_KEYS.Discord,
// SOCIAL_NAME_KEYS.Twitter,
// SOCIAL_NAME_KEYS.Email,
// // SOCIAL_NAME_KEYS.
// // SOCIAL_NAME_KEYS.telegram,
// // SOCIAL_NAME_KEYS.pinterest,
// ])
export const shareOnTwitter = async (message: string, image: string, ipfs?: IPFSHTTPClient, url: string = ExchangeIO) => {
let ipfsUrl = ''
if (ipfs) {
const {cid} = await ipfs.add(Buffer.from(image.replace(/^data:image\/(png|jpeg|jpg);base64,/, ''), 'base64'))
ipfsUrl = `${IPFS_LOOPRING_SITE}${cid}`;
}
myLog('ipfsUrl', ipfsUrl)
const tweetText = encodeURIComponent(`${message}\n\nImage: ${ipfsUrl}\n\nWebsite: ${url}`);
const twitterUrl = `https://twitter.com/intent/tweet?text=${tweetText}`;
window.open(twitterUrl, '_blank');
};
export const shareOnFacebook = async (message: string, image: string, ipfs?: IPFSHTTPClient, url: string = ExchangeIO) => {
let ipfsUrl = ''
if (ipfs) {
const {cid} = await ipfs.add(Buffer.from(image.replace(/^data:image\/(png|jpeg|jpg);base64,/, ''), 'base64'))
ipfsUrl = `${IPFS_LOOPRING_SITE}${cid}`;
}
myLog('ipfsUrl', ipfsUrl)
const facebookUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(
url
)}"e=${encodeURIComponent(message)}&picture=${encodeURIComponent(
`${ipfsUrl}`
)}`;
window.open(facebookUrl, '_blank');
}
export const shareViaEmail = async (message: string, image: string, ipfs?: IPFSHTTPClient, _width = '315', _height = '440') => {
const emailSubject = encodeURIComponent("Join me at Loopring and earn exclusive rewards");
// let ipfsUrl = ''
// if (ipfs) {
// const {cid} = await ipfs.add(Buffer.from(image.replace(/^data:image\/(png|jpeg|jpg);base64,/, ''), 'base64'))
// ipfsUrl = `${IPFS_LOOPRING_SITE}${cid}`;
// }
// myLog('ipfsUrl', ipfsUrl)
// </br> <img src="${ipfsUrl}" alt="" width="${width}" height="${height}" />
const emailBody = encodeURIComponent(
`${message}`
);
const mailtoUrl = `mailto:?subject=${emailSubject}&body=${emailBody}`;
window.open(mailtoUrl, '_blank');
};
export const shareDownload = (name: string, url: Blob | string) => {
const link = document.createElement('a');
link.href = typeof url === "string" ? url : URL.createObjectURL(url);
link.download = name;
link.click();
// const facebookUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(
// window.location.href
// )}"e=${encodeURIComponent(message)}&picture=${encodeURIComponent(
// `${image}`
// )}`;
// window.open(facebookUrl, '_blank');
}
export const shareOnDiscord = (message: string, image: string) => {
const discordShareUrl = `https://discord.com/api/oauth2/authorize?client_id=YOUR_BOT_CLIENT_ID&scope=bot&permissions=0&response_type=code&redirect_uri=${encodeURIComponent(
window.location.href
)}&state=${encodeURIComponent(
JSON.stringify({message, image: `${image}`})
)}`;
window.open(discordShareUrl, '_blank');
};
================================================
FILE: packages/common-resources/static-resources/src/constant/table.ts
================================================
export enum TableType {
filter = 'filter',
page = 'page',
}
================================================
FILE: packages/common-resources/static-resources/src/constant/tokenConfig.ts
================================================
const SPECIAL_TOKEN_NAME_MAP = new Map(
[
['LRTAIKO', 'lrTAIKO'],
]
);
export const WITHDRAW_TOKEN_FILTER_LIST = ['LRTAIKO']
export const mapSpecialTokenName = (original: string) => {
return SPECIAL_TOKEN_NAME_MAP.get(original) || original
}
================================================
FILE: packages/common-resources/static-resources/src/constant/trade.ts
================================================
import {
CollectionMeta,
DeFiCalcData,
DeFiSideCalcData,
DeFiSideRedeemCalcData,
FeeInfo,
IBData,
LuckyRedPacketItem,
} from '../loopring-interface'
import * as sdk from '@loopring-web/loopring-sdk'
import { MarketType } from './market'
import { VendorProviders } from './vendor'
export enum DeFiChgType {
coinSell = 'coinSell',
coinBuy = 'coinBuy',
exchange = 'exchange',
}
export type WithdrawType =
| sdk.OffchainNFTFeeReqType.NFT_WITHDRAWAL
| sdk.OffchainFeeReqType.OFFCHAIN_WITHDRAWAL
| sdk.OffchainFeeReqType.FAST_OFFCHAIN_WITHDRAWAL
export type WithdrawTypes = {
// @ts-ignore
[sdk.OffchainFeeReqType.FAST_OFFCHAIN_WITHDRAWAL]: 'Fast'
// @ts-ignore
[sdk.OffchainFeeReqType.OFFCHAIN_WITHDRAWAL]: 'Standard'
}
// export type PriceTagType = '$' | '¥'
export enum CurrencyToTag {
USD = 'USD',
CNY = 'CNY',
JPY = 'JPY',
AUD = 'AUD',
CAD = 'CAD',
HKD = 'HKD',
EUR = 'EUR',
KRW = 'KRW',
GBP = 'GBP',
}
export enum PriceTag {
USD = '$',
CNY = '¥',
JPY = '¥',
AUD = 'A$',
CAD = 'C$',
HKD = 'HKD',
EUR = '€',
KRW = '₩',
GBP = '£',
}
export enum TradeTypes {
Buy = 'Buy',
Sell = 'Sell',
}
export enum TradeStatus {
// Filled = 'Filled',
// Cancelled = 'Cancelled',
// Succeeded = 'Succeeded',
Processing = 'processing',
Processed = 'processed',
Cancelling = 'cancelling',
Cancelled = 'cancelled',
Expired = 'expired',
Waiting = 'waiting',
}
export type TxInfo = {
hash: string
timestamp?: number | undefined
status?: 'pending' | 'success' | 'failed' | undefined
[key: string]: any
}
export interface AccountHashInfo {
depositHashes: { [key: string]: TxInfo[] }
vaultBorrowHashes: { [key: string]: TxInfo[] }
showHadUnknownCollection: { [key: string]: boolean }
}
export interface NFTHashInfo {
nftDataHashes: { [key: string]: Required<TxInfo> }
}
export enum Layer1Action {
GuardianLock = 'GuardianLock',
NFTDeploy = 'NFTDeploy',
}
// GuardianLock
export type Layer1ActionHistory = {
[key: string]: {
[key in keyof typeof Layer1Action]?: { [key: string]: number }
// NFTDeploy?: { [key: string]: number };
}
}
export type ChainHashInfos = {
[key in sdk.ChainId extends string ? string : string]: AccountHashInfo
}
export type NFTHashInfos = {
[key in sdk.ChainId extends string ? string : string]: NFTHashInfo
}
export type LAYER1_ACTION_HISTORY = {
[key in sdk.ChainId extends string ? string : string]: Layer1ActionHistory
} & { __timer__: -1 | NodeJS.Timeout }
export type MetaProperty = {
key: string
value: string
}
export type MetaDataProperty = { [key: string]: string }
export type AttributesProperty = {
trait_type: string
value: string
}
export type NFTMETA = {
image: string
name: string
royaltyPercentage: number // 0 - 10 for UI
description: string
collection_metadata: string
properties?: Array<MetaProperty>
animationUrl?: string
attributes?: AttributesProperty[]
}
export enum Media {
Audio = 'Audio',
Image = 'Image',
Video = 'Video',
Media3D = 'Media3D',
}
export type NFTWholeINFO<Co = CollectionMeta> = sdk.NFTTokenInfo &
sdk.UserNFTBalanceInfo &
NFTMETA & {
nftBalance?: number
nftIdView?: string
pendingOnSync: boolean
fee?: FeeInfo
isFailedLoadMeta?: boolean
etherscanBaseUrl: string
__mediaType__?: Media
// collectionMeta?: Partial<Co>;
preference?: {
favourite: boolean
hide: boolean
}
collectionInfo?: Co
}
export type MintTradeNFT<I> = {
balance?: number
fee?: FeeInfo
cid?: string
nftId?: string
nftBalance?: number
nftIdView?: string
royaltyPercentage?: number
// tokenAddress?:string;
} & Partial<IBData<I>> &
Partial<Omit<sdk.NFTTokenInfo, 'creatorFeeBips' | 'nftData'>>
export type MintReadTradeNFT<I> = {
balance?: number
fee?: FeeInfo
readonly cid?: string
readonly nftId?: string
readonly nftIdView?: string
readonly nftBalance?: number
readonly royaltyPercentage?: number
} & Partial<IBData<I>> &
Partial<Omit<sdk.NFTTokenInfo, 'creatorFeeBips' | 'nftData'>>
export type TradeNFT<I, Co> = MintTradeNFT<I> &
Partial<NFTWholeINFO<Co>> & {
isApproved?: boolean
collectionMeta?: CollectionMeta
}
export enum NFT_TYPE_STRING {
ERC721 = 'ERC721',
ERC1155 = 'ERC1155',
}
export const EmptyValueTag = '--'
export const HiddenTag = '*****'
export const DEAULT_NFTID_STRING =
'0x0000000000000000000000000000000000000000000000000000000000000000'
export const MINT_LIMIT = 100000
export const SUBMIT_PANEL_CHECK = 1000
export const SUBMIT_PANEL_AUTO_CLOSE = 8000
export const SUBMIT_PANEL_QUICK_AUTO_CLOSE = 3000
export const SUBMIT_PANEL_DOUBLE_QUICK_AUTO_CLOSE = 1000
export const TOAST_TIME = 3000
export const PROPERTY_LIMIT = 64
export const PROPERTY_KET_LIMIT = 20
export const STAKING_INVEST_LIMIT = 5
export const PROPERTY_Value_LIMIT = 40
export const REDPACKET_ORDER_LIMIT = 10000
export const REDPACKET_ORDER_NFT_LIMIT = 20000
export const EXCLUSIVE_REDPACKET_ORDER_LIMIT_WHITELIST = 10000
export const EXCLUSIVE_REDPACKET_ORDER_LIMIT = 50
export const BLINDBOX_REDPACKET_LIMIT = 10000
export const VAULT_MARKET_REFRESH = 60000
export const LOOPRING_TAKE_NFT_META_KET = {
name: 'name',
image: 'image',
royaltyPercentage: 'royaltyPercentage',
description: 'description',
properties: 'properties',
}
export type LOOPRING_NFT_METADATA = {
[key in keyof typeof LOOPRING_TAKE_NFT_META_KET]?: string | undefined
}
export const NFTLimit = 12,
CollectionLimit = 12,
RedPacketLimit = 12
export const AddAssetList = {
FromMyL1: {
key: 'FromMyL1',
svgIcon: 'IncomingIcon',
enableKey: 'deposit',
},
BuyWithCard: {
key: 'BuyWithCard',
svgIcon: 'CardIcon',
enableKey: 'legal',
},
FromOtherL2: {
key: 'FromOtherL2',
svgIcon: 'L2l2Icon',
enableKey: null,
},
FromOtherL1: {
key: 'FromOtherL1',
svgIcon: 'OutputIcon',
enableKey: null,
},
FromExchange: {
key: 'FromExchange',
svgIcon: 'ExchangeAIcon',
enableKey: null,
},
FromAnotherNet: {
key: 'FromAnotherNet',
svgIcon: 'AnotherIcon',
enableKey: null,
},
}
type SendAssetListType = Record<
string,
{
key: string
svgIcon: string
enableKey?: string | null
type: 'sameLayer' | 'crossLayer' | 'crossChain'
cornerTag?: 'Loopring' | '3rd party'
description?: string
}
>
export const SendAssetList: SendAssetListType = {
SendAssetToMyL1: {
key: 'SendToMyL1',
svgIcon: 'IncomingIcon',
enableKey: 'withdraw',
type: 'crossLayer',
},
SendAssetToL2: {
key: 'SendTOL2',
svgIcon: 'L2l2Icon',
enableKey: 'transfer',
type: 'sameLayer',
},
SendAssetToOtherL1: {
key: 'SendToOtherL1',
svgIcon: 'L1l2Icon',
enableKey: 'withdraw',
type: 'crossLayer',
},
SendAssetToAnotherNet: {
key: 'SendAssetToAnotherNet',
svgIcon: 'AnotherIcon',
enableKey: 'withdraw',
type: 'crossChain',
cornerTag: '3rd party'
},
SendAssetToTaikoAccount: {
key: 'SendAssetToTaikoAccount',
svgIcon: 'AnotherIcon',
enableKey: 'transferToTaikoAccount',
type: 'crossChain',
cornerTag: 'Loopring',
},
}
export const SendNFTAssetList: SendAssetListType = {
SendAssetToMyL1: {
key: 'SendToMyL1',
svgIcon: 'IncomingIcon',
enableKey: 'withdrawNFT',
type: 'crossLayer',
},
SendAssetToL2: {
key: 'SendTOL2',
svgIcon: 'L2l2Icon',
enableKey: 'transferNFT',
type: 'sameLayer',
},
SendAssetToOtherL1: {
key: 'SendToOtherL1',
svgIcon: 'L1l2Icon',
enableKey: 'withdrawNFT',
type: 'crossLayer',
},
}
export enum AddressError {
NoError = 'NoError',
EmptyAddr = 'EmptyAddr',
InvalidAddr = 'InvalidAddr',
ENSResolveFailed = 'ENSResolveFailed',
IsNotLoopringContract = 'IsNotLoopringContract',
TimeOut = 'TimeOut',
}
export enum WALLET_TYPE {
EOA = 'EOA',
Loopring = 'Loopring',
OtherSmart = 'OtherSmart',
Exchange = 'Exchange',
}
export enum EXCHANGE_TYPE {
NonExchange = 'NonExchange',
Binance = 'Binance',
Huobi = 'Huobi',
Coinbase = 'Coinbase',
Others = 'Others',
}
export type AddressItemType<T> = {
value: T
label: string
description: string
disabled?: boolean
maxWidth?: string | number
}
export const defaultSlipage = 0.1
export const defaultBlockTradeSlipage = 0.1
export type ForexMap<C = CurrencyToTag> = { [k in keyof C]?: number }
export const enum InvestMapType {
Token = 'Token',
AMM = 'AMM',
STAKE = 'STAKE',
DUAL = 'DUAL',
STAKELRC = 'STAKELRC',
LEVERAGEETH = 'LEVERAGEETH',
}
export const enum InvestAssetRouter {
AMM = 'ammpool',
STAKE = 'defi',
DUAL = 'dual',
STAKELRC = 'stakelrc',
LEVERAGEETH = 'leverageETH',
// BTradeInvest = "BTradeInvest",
}
export const InvestOpenType = [
InvestMapType.AMM,
InvestMapType.STAKE,
InvestMapType.DUAL,
InvestMapType.STAKELRC,
InvestMapType.LEVERAGEETH,
]
export const enum InvestDuration {
Flexible = 'Flexible',
Duration = 'Duration',
All = 'All',
}
export type InvestItem = {
type: InvestMapType
i18nKey: `labelInvestType_${InvestMapType}` | ''
apr: [start: number, end: number]
durationType: InvestDuration
duration: string
}
export type InvestDetail = {
token: sdk.TokenInfo
apr: [start: number, end: number]
durationType: InvestDuration
duration: string
}
export enum CreateCollectionStep {
// CreateTokenAddress,
// Loading,
// CreateTokenAddressFailed,
ChooseMethod,
ChooseMintMethod,
ChooseCollectionEdit,
// AdvancePanel,
// CommonPanel,
}
export type TradeDefi<C> = {
type: string
market?: MarketType // eg: ETH-LRC, Pair from loopring market
isStoB: boolean
sellVol: string
buyVol: string
sellToken: sdk.TokenInfo
buyToken: sdk.TokenInfo
deFiCalcData?: DeFiCalcData<C>
fee: string
feeRaw: string
depositPrice?: string
withdrawPrice?: string
maxSellVol?: string
maxBuyVol?: string
maxFeeBips?: number
miniSellVol?: string
request?: sdk.DefiOrderRequest
defiBalances?: { [key: string]: string }
lastInput?: DeFiChgType
withdrawFeeBips?: number
defaultFee: string
}
export type TradeStake<C> = {
sellToken: sdk.TokenInfo
sellVol: string
deFiSideCalcData?: DeFiSideCalcData<C>
request?: {
accountId: number
hash: string
token: sdk.TokenVolumeV3
}
}
export type RedeemStake<C> = {
sellToken: sdk.TokenInfo
sellVol?: string
deFiSideRedeemCalcData: DeFiSideRedeemCalcData<C>
request?: {
accountId: number
hash: string
token: sdk.TokenVolumeV3
}
}
export type L2CollectionFilter = {
isMintable?: boolean
isLegacy?: boolean
tokenAddress?: string
owner?: string
}
export type MyNFTFilter = {
favourite?: boolean
hidden?: boolean
}
export enum MY_NFT_VIEW {
LIST_COLLECTION = 'byCollection',
LIST_NFT = 'byList',
}
export const LIVE_FEE_TIMES = 60000
export const L1_UPDATE = 15000
export type DualCurrentPrice = {
quote: string
base: string
precisionForPrice: number
currentPrice?: number
quoteUnit: string
}
export type DualViewBase = {
apy: `${string}%`
settleRatio: string //targetPrice
term: string
strike: string
isUp: boolean
expireTime: number
currentPrice: DualCurrentPrice
productId: string
sellSymbol: string
buySymbol: string
amount?: string
enterTime?: number
stepLength?: string
quote?: string
outSymbol?: string
outAmount?: string
side?: string
status?: string
statusColor?: string
maxDuration?: number
autoStatus?: string
autoIcon?: JSX.Element
autoContent?: string
newStrike?: string
deliveryPrice?: string | undefined
__raw__?: any
}
export type DualViewInfo = DualViewBase & {
__raw__: {
info: sdk.DualProductAndPrice
index: sdk.DualIndex
rule: sdk.DualRulesCoinsInfo
}
}
export type ClaimToken = sdk.UserBalanceInfo & {
isNft?: boolean
nftTokenInfo?: sdk.UserNFTBalanceInfo
luckyTokenHash?: string
}
export type DualViewOrder = DualViewBase & {
__raw__: {
order: sdk.UserDualTxsHistory
}
}
export enum TRADE_TYPE {
TOKEN = 'TOKEN',
NFT = 'NFT',
}
export enum CLAIM_TYPE {
redPacket = 'redPacket',
lrcStaking = 'lrcStaking',
allToken = 'allToken',
}
export type BanxaOrder = {
id: string
account_id: string
account_reference: string
order_type: 'CRYPTO-SELL'
payment_type: string | null
ref: number | null
fiat_code: string
fiat_amount: number
coin_code: string
coin_amount: number
wallet_address: string | null
wallet_address_tag: string | null
fee: number | null
fee_tax: number | null
payment_fee: number | null
payment_fee_tax: number | null
commission: number | null
tx_hash: string | null
tx_confirms: number | null
created_date: string
created_at: string
status: string
completed_at: string | null
merchant_fee: number | null
merchant_commission: number | null
meta_data: string | null
blockchain: { id: number; code: 'LRC'; description: 'Loopring ' | null }
}
export const LuckyRedPacketList: LuckyRedPacketItem[] = [
{
labelKey: 'labelLuckyRandomToken',
desKey: 'labelRedPacketsSplitLuckyDetail',
tags: [
'showInNormal',
'enableInNFTS',
'enableInERC20',
'defaultForERC20',
'defaultForNFT',
'enableInBlindBox',
],
value: {
value: 1,
partition: sdk.LuckyTokenAmountType.RANDOM,
mode: sdk.LuckyTokenClaimType.COMMON,
},
},
{
labelKey: 'labelLuckyRandomToken',
desKey: 'labelRedPacketsSplitLuckyDetail',
tags: ['defaultForBlindBox', 'enableInBlindBox', 'showInBlindBox', 'defaultForFromNFT'],
value: {
value: 4,
partition: sdk.LuckyTokenAmountType.RANDOM,
mode: sdk.LuckyTokenClaimType.BLIND_BOX,
},
},
{
labelKey: 'labelLuckyCommonToken',
desKey: 'labelLuckyCommonTokenDes',
tags: ['showInNormal', 'showInBlindBox', 'enableInNFTS', 'enableInERC20'],
value: {
value: 2,
partition: sdk.LuckyTokenAmountType.AVERAGE,
mode: sdk.LuckyTokenClaimType.COMMON,
},
},
{
labelKey: 'labelLuckyRelayToken',
desKey: 'labelLuckyRelayTokenDes',
tags: ['showInNormal', 'showInBlindBox', 'enableInERC20', 'disabledForExclusive'],
value: {
value: 0,
partition: sdk.LuckyTokenAmountType.RANDOM,
mode: sdk.LuckyTokenClaimType.RELAY,
},
},
]
export const QRCODE_REGION_ID = 'qrcodeRegionId'
export type ACCOUNT_ADDRESS = string
export type TX_HASH = string
export type RedPacketHashItems = {
[key: TX_HASH]: {
claim: string
luckToken: sdk.LuckyTokenItemForReceive
blindboxClaimed: any
}
}
export type RedPacketHashInfo = {
[key: ACCOUNT_ADDRESS]: RedPacketHashItems
}
export type RedPacketHashInfos = {
[key in sdk.ChainId extends string ? string : string]: RedPacketHashInfo
}
export enum OffRampStatus {
// waitingForPayment = "waitingForPayment",
watingForCreateOrder = 'watingForCreateOrder',
waitingForWithdraw = 'waitingForWithdraw',
expired = 'expired',
cancel = 'cancel',
done = 'done',
refund = 'refund',
}
export type OffRampHashItem = {
orderId: string
chainId: sdk.ChainId
address: string
product: VendorProviders
status: OffRampStatus
wallet_address?: string | undefined
checkout_iframe?: string
account_reference?: string
[key: string]: any
}
export type OffRampHashItemObj = {
pending: OffRampHashItem
payments: OffRampHashItem[]
}
export type OffRampHashItems<T = VendorProviders> = {
[K in keyof T]: OffRampHashItemObj
}
export type OffRampHashInfo = {
[key: ACCOUNT_ADDRESS]: OffRampHashItems
}
export type OffRampHashInfos = {
[key in sdk.ChainId extends string ? string : string]: OffRampHashInfo
}
export enum RedPacketOrderType {
TOKEN = 'TOKEN',
NFT = 'NFT',
BlindBox = 'BlindBox',
FromNFT = 'FromNFT',
}
export type RedPacketOrderData<I> = {
tradeType: RedPacketOrderType
isNFT: boolean
tradeValue?: number
fee: FeeInfo | undefined
__request__: any
target?: {
redpacketHash: string
addressListString: string
popupChecked: boolean
maxSendCount: number
sentAddresses?: string[]
}
showNFT: boolean
type: any
} & Partial<IBData<I>> &
Partial<NFTWholeINFO> &
Partial<sdk.LuckyTokenItemForSendV3>
export enum TabTokenTypeIndex {
ERC20 = 'ERC20',
NFT = 'NFT',
}
export interface SnackbarMessage {
message: string
key: number | string
svgIcon?: string
}
export const BTRDE_PRE = 'BTRADE-'
export enum TradeProType {
sell = 'sell',
buy = 'buy',
}
export enum TradeBaseType {
price = 'price',
quote = 'quote',
base = 'base',
tab = 'tab',
slippage = 'slippage',
stopPrice = 'stopPrice',
checkMarketPrice = 'checkMarketPrice',
}
export type AmmHistoryItem = {
close: number
timeStamp: number
}
export enum LocalStorageConfigKey {
tokenMap = 'tokenMap',
ammpools = 'ammpools',
markets = 'markets',
btradeMarkets = 'btradeMarkets',
vaultMarkets = 'vaultMarkets',
vaultTokenMap = 'vaultTokenMap',
exchangeInfo = 'exchangeInfo',
disableWithdrawTokenList = 'disableWithdrawTokenList',
}
export enum DualStep {
ChooseType = 'ChooseType',
ShowBase = 'ShowBase',
ShowSellBuy = 'ShowSellBuy',
ShowQuote = 'ShowQuote',
ShowList = 'ShowList',
}
export enum DualViewType {
DualGain = 'DualGain',
DualDip = 'DualDip',
DualBegin = 'DualBegin',
DualBTC = 'DualBTC',
All = 'All',
}
export const DualGain = [
// { step: DualStep.ChooseType, type: 'Card' },
{ step: DualStep.ShowBase, type: 'Tab', labelKey: 'labelDualChooseTokenDUAL_BASE' },
{},
{ step: DualStep.ShowQuote, type: 'Tab', labelKey: 'labelDualChooseTargetPriceDUAL_BASE' },
]
export const DualDip = [
// { step: DualStep.ChooseType, type: 'Card' },
{ step: DualStep.ShowBase, type: 'Tab', labelKey: 'labelDualChooseTokenDUAL_CURRENCY' },
{},
{ step: DualStep.ShowQuote, type: 'Tab', labelKey: 'labelDualChooseTargetPriceDUAL_CURRENCY' },
]
export const DualBegin = [
{ step: DualStep.ShowBase, type: 'Tab', labelKey: 'labelDualBeginnerStep1Title' },
{ step: DualStep.ChooseType, type: 'Tab', labelKey: 'labelDualBeginnerSellHigh' },
{ step: DualStep.ShowQuote, type: 'Tab', labelKey: 'labelDualBeginnerStep3Title' },
]
export const DualBTC = [
{ step: DualStep.ShowBase, type: 'Tab', labelKey: 'labelDualChooseTokenDUAL_BASE' },
{},
{ step: DualStep.ShowQuote, type: 'Tab', labelKey: 'labelDualBeginnerStep3Title' },
]
export type VaultMarketExtends = { enabled: boolean | 'isFormLocal' } & Omit<
sdk.VaultMarket,
'enabled'
> & {
vaultMarket: string
originalBaseSymbol: string
originalQuoteSymbol: string
}
export enum VaultLoanType {
Borrow = 'Borrow',
Repay = 'Repay',
}
export enum AmmPanelType {
Join = 0,
Exit = 1,
}
export enum DualInvestConfirmType {
USDCOnly = 'USDCOnly',
all = 'all',
}
export enum VaultAction {
VaultJoin = 'VaultJoin',
VaultExit = 'VaultExit',
VaultLoan = 'VaultLoan',
VaultSwap = 'VaultSwap',
}
export enum VaultSwapStep {
Edit = 'Edit',
Borrow = 'Borrow',
Swap = 'Swap',
Swaping = 'Swaping',
}
================================================
FILE: packages/common-resources/static-resources/src/constant/vendor.ts
================================================
export enum VendorProviders {
Ramp = 'Ramp',
Banxa = 'Banxa',
}
// export const vendorList: VendorItem[] = [
// {
// key: VendorProviders.Ramp,
// svgIcon: "RampIcon",
// // handleSelect: () => {},
// },
// {
// key: VendorProviders.Banxa,
// svgIcon: "BanxaIcon",
// flag: {
// startDate: Date.now() - 100, //1649688436000,
// endDate: 1650844800000,
// tag: "🔥",
// highLight: "lableBanxaFeeFree",
// },
// // handleSelect: () => {},
// },
// ];
export const VendorList = {
Ramp: {
key: VendorProviders.Ramp,
svgIcon: 'RampIcon',
// handleSelect: () => {},
},
Banxa: {
key: VendorProviders.Banxa,
svgIcon: 'BanxaIcon',
flag: {
startDate: 1649635200000,
endDate: 1650844800000,
tag: '🔥',
highLight: 'labelBanxaFeeFree',
},
// handleSelect: () => {},
},
}
================================================
FILE: packages/common-resources/static-resources/src/constant/walletConnector.ts
================================================
import { GatewayItem } from '../loopring-interface'
import { SoursURL } from './router'
import { ConnectProviders } from '@loopring-web/web3-provider'
export enum GatewaySort {
MetaMask,
WalletConnect,
GameStop,
Coinbase,
WalletConnectV1,
}
const gatewayMap = new Map<GatewaySort, GatewayItem>() // = [
gatewayMap.set(GatewaySort.MetaMask, {
key: ConnectProviders.MetaMask,
keyi18n: ConnectProviders.MetaMask,
imgSrc: SoursURL + 'svg/meta-mask.svg',
})
gatewayMap.set(GatewaySort.WalletConnect, {
key: ConnectProviders.WalletConnect,
keyi18n: ConnectProviders.WalletConnect,
imgSrc: SoursURL + 'svg/wallet-connect.svg',
})
gatewayMap.set(GatewaySort.GameStop, {
key: ConnectProviders.GameStop,
keyi18n: ConnectProviders.GameStop,
imgSrc: SoursURL + 'svg/gs.svg',
})
gatewayMap.set(GatewaySort.Coinbase, {
key: ConnectProviders.Coinbase,
keyi18n: ConnectProviders.Coinbase,
imgSrc: SoursURL + 'svg/coinbase-wallet.svg',
})
gatewayMap.set(GatewaySort.WalletConnectV1, {
key: (ConnectProviders.WalletConnectV1 + 'V1') as ConnectProviders,
keyi18n: ConnectProviders.WalletConnectV1 + 'V1',
imgSrc: SoursURL + 'svg/wallet-connect.svg',
})
export const gatewayList: GatewayItem[] = [...gatewayMap.keys()].reduce((prev, key) => {
// @ts-ignore
prev[key as any] = gatewayMap.get(key as any)
return prev
}, [] as GatewayItem[])
================================================
FILE: packages/common-resources/static-resources/src/error/errorMap.tsx
================================================
import { Trans } from 'react-i18next'
import { Link } from '@mui/material'
export const ErrorMap = {
ERROR_UNKNOWN: {
id: 'ERROR_UNKNOWN',
messageKey: 'errorUnknown',
},
ERROR_ON_FROM_SUBMIT: {
id: 'ERROR_ON_FROM_SUBMIT',
messageKey: 'errorOnFromSubmit',
},
ERROR_WRONG_ACCOUNT: {
id: 'ERROR_WRONG_ACCOUNT',
messageKey: 'errorWrongAccount',
},
ERROR_WRONG_TOKEN: {
id: 'ERROR_WRONG_TOKEN',
messageKey: 'errorWrongToken',
},
ERROR_WRONG_APIKEY: {
id: 'ERROR_WRONG_APIKEY',
messageKey: 'errorWrongApikey',
},
ERROR_WRONG_BALANCE: {
id: 'ERROR_WRONG_BALANCE',
messageKey: 'errorWrongBalance',
},
ERROR_WRONG_MIN: {
id: 'ERROR_WRONG_BALANCE',
messageKey: 'errorWrongBalance',
},
ERROR_MINIMUM_ORDER: {
id: 'ERROR_MINIMUM_ORDER',
messageKey: 'errorMinimumOrder',
},
ERROR_MAXIMUM_ORDER: {
id: 'ERROR_MAXIMUM_ORDER',
messageKey: 'errorMaximumOrder',
},
ERROR_ON_FROZEN: {
id: 'ERROR_ON_FROZEN',
messageKey: 'errorOnFrozen',
},
ERROR_ON_FEE: {
id: 'ERROR_ON_FEE',
messageKey: 'errorAboutFee',
},
ERROR_PROVIDER_ERROR: {
id: 'ERROR_PROVIDER_ERROR',
messageKey: 'errorProviderError',
options: {},
},
ERROR_ON_STORAGE_ID: {
id: 'ERROR_ON_STORAGE_ID',
messageKey: 'errorOnStorageId',
options: {},
},
ERROR_ON_NO_RECIPIENT: {
id: 'ERROR_ON_NO_RECIPIENT',
messageKey: 'errorOnNoRecipient',
options: {},
},
ERROR_INVALID_HASH: {
id: 'ERROR_INVALID_HASH',
messageKey: 'errorInvalidHash',
options: {},
},
ERROR_ON_CANCEL_ORDERS: {
id: 'ERROR_ON_CANCEL_ORDERS',
messageKey: 'errorOnCancelOrders',
options: {},
},
ERROR_ON_GAS: {
id: 'ERROR_ON_GAS',
messageKey: 'errorOnGas',
options: {},
},
ERROR_NO_MARKET: {
id: 'ERROR_NO_MARKET',
messageKey: 'errorNoMarket',
options: {},
},
ERROR_INVALID_ORDER_ID: {
id: 'ERROR_INVALID_ORDER_ID',
messageKey: 'errorInvalidOrderId',
options: {},
},
ERROR_ON_RATE: {
id: 'ERROR_ON_RATE',
messageKey: 'errorOnRate',
options: {},
},
ERROR_FOR_EXIST_ORDER: {
id: 'ERROR_FOR_EXIST_ORDER',
messageKey: 'errorForExistOrder',
options: {},
},
ERROR_ORDER_EXPIRED: {
id: 'ERROR_ORDER_EXPIRED',
messageKey: 'errorOrderExpired',
options: {},
},
LOADING_WHOLE_SITE: {
id: 'LOADING_WHOLE_SITE',
messageKey: 'errorLoading',
},
NO_SUPPORT_PAIR: {
id: 'NO_SUPPORT_PAIR',
messageKey: 'no support base/quote pair!',
},
NO_SDK: {
id: 'NO_SDK',
messageKey: 'errorBase',
},
TIME_OUT: {
id: 'TIME_OUT',
messageKey: 'errorTimeout',
},
NO_NETWORK_ERROR: {
id: 'NO_NETWORK_ERROR',
messageKey: 'errorMessageNoNetwork',
},
NO_TOKEN_MAP: {
id: 'NO_TOKEN_MAP',
messageKey: 'errorMessageTokenMapIsEmpty',
},
NO_ENOUGH_BALANCE: {
id: 'NO_ENOUGH_BALANCE',
messageKey: 'errorTokenNotEnough',
},
NO_TOKEN_KEY_LIST: {
id: 'NO_TOKEN_KEY_LIST',
messageKey: 'errorRequiredTokenKeyList',
},
GET_X_TOKEN_TICKER_ERROR: {
id: 'NO_TOKEN_KEY_LIST',
messageKey: 'errorRequiredTokenKeyList',
options: {},
},
BUILD_AMM_MAP_WITH_TICKER: {
id: 'BUILD_AMM_MAP_WITH_TICKER',
messageKey: 'errorBase',
options: {},
},
TRADE_LITE_SET_PAIR_ERROR: {
id: 'TRADE_LITE_SET_PAIR_ERROR',
messageKey: 'errorBase',
options: {},
},
SOCKET_ERROR: {
id: 'SOCKET_ERROR',
messageKey: 'errorBase',
options: {},
},
TRADE_404: {
id: '404',
messageKey: 'error404',
options: {},
},
NTF_ID_ENCODE_ERROR: {
id: 'NTF_ID_ENCODE_ERROR',
messageKey: 'NTF_ID_ENCODE_ERROR',
options: {},
},
PROVIDER_ERROR: {
id: 'PROVIDER_ERROR',
messageKey: 'errorDisableOtherWalletForCurrent',
options: {},
},
GENERATE_EDDSA: {
id: 'GENERATE_EDDSA',
messageKey: 'errorGenerateEddsa',
options: {},
},
DATA_NOT_READY: {
id: 'DATA_NOT_READY',
messageKey: 'errorDataNotReady',
options: {},
},
PROVIDER_NOT_INSTALL_GME: {
id: 'PROVIDER_NOT_INSTALL_GME',
messageKey: 'errorNotInstallGME',
options: {
link: (
<Trans i18nKey={'errorLinKWalletApp'} ns={'error'}>
<Link
target='_blank'
rel='noopener noreferrer'
href={'https://wallet.gamestop.com/wallets'}
>
app market
</Link>
</Trans>
),
},
},
NO_IPFS_INSTANCE: {
id: 'NO_IPFS_INSTANCE',
messageKey: 'errorNoIpfsInstance',
options: {},
},
ADD_IPFS_ERROR: {
id: 'ADD_IPFS_ERROR',
messageKey: 'errorAddIpfsError',
options: {},
},
CREATE_IPFS_ERROR: {
id: 'CREATE_IPFS_ERROR',
messageKey: 'errorCreateIpfsError',
options: {},
},
NOT_SAME_IPFS_RESOURCE: {
id: 'NOT_SAME_IPFS_RESOURCE',
messageKey: 'errorNotSameIpfsResource',
options: {},
},
IPFS_CID_TO_NFTID_ERROR: {
id: 'IPFS_CID_TO_NFTID_ERROR',
messageKey: 'errorIpfsDidToNftidError',
options: {},
},
ERROR_MINT_OVERLAP: {
id: 'ERROR_MINT_OVERLAP',
messageKey: 'errorMintOverlap',
options: {},
},
ERROR_JSON_STRINGIFY: {
id: 'ERROR_JSON_STRINGIFY',
messageKey: 'errorJSONStringify',
options: {},
},
ERROR_COLLECTION_METADATA_NO_TILEURI: {
id: 'ERROR_COLLECTION_METADATA_NO_TILEURI',
messageKey: 'errorCollectionMetadataNoTileUri',
options: {},
},
ERROR_COLLECTION_NO_NAME: {
id: 'ERROR_COLLECTION_NO_NAME',
messageKey: 'errorCollectionNoName',
options: {},
},
ERROR_COLLECTION_SAME_NAME: {
id: 'ERROR_COLLECTION_SAME_NAME',
messageKey: 'errorCollectionSameName',
options: {},
},
ERROR_COLLECTION_EMPTY: {
id: 'ERROR_COLLECTION_EMPTY',
messageKey: 'errorCollectionEmpty',
options: {},
},
ERROR_COLLECTION_NOT_READABLE: {
id: 'ERROR_COLLECTION_NOT_READABLE',
messageKey: 'errorCollectionNotReadable',
options: {},
},
ERROR_COLLECTION_INFO: {
id: 'ERROR_COLLECTION_INFO',
messageKey: 'errorCollectionInfo',
options: {},
},
ERROR_COLLECTION_NO_SUPPORT: {
id: 'ERROR_COLLECTION_NO_SUPPORT',
messageKey: 'errorCollectionNoSupport',
options: {},
},
ERROR_ON_REFRESH: {
id: 'ERROR_ON_REFRESH',
messageKey: 'errorOnRefresh',
options: {},
},
IPFS_TIME_OUT: {
id: 'IPFS_TIME_OUT',
messageKey: 'errorIpfsTimeout',
},
ERROR_RAMP_NO_INSTANCE: {
id: 'ERROR_RAMP_NO_INSTANCE',
messageKey: 'errorRampNoInstance',
options: {},
},
ERROR_DUAL_EXPIRED: {
id: 'ERROR_DUAL_EXPIRED',
messageKey: 'errorDualExpired',
options: {},
},
ERROR_PRIVATE_KEY: {
id: 'ERROR_PRIVATE_KEY',
messageKey: 'errorPrivateKey',
options: {},
},
ERROR_NO_RESPONSE: {
id: 'ERROR_NO_RESPONSE',
messageKey: 'errorNoResponse',
options: {},
},
ERROR_REDPACKET_EMPTY: {
id: 'ERROR_REDPACKET_EMPTY',
messageKey: 'errorRedpacketEmpty',
options: {},
},
ERROR_REDPACKET_CLAIMED: {
id: 'ERROR_REDPACKET_CLAIMED',
messageKey: 'errorRedpacketClaimed',
options: {},
},
ERROR_REDPACKET_CLAIM_OUT: {
id: 'ERROR_REDPACKET_CLAIM_OUT',
messageKey: 'errorRedpacketClaimOut',
options: {},
},
ERROR_REDPACKET_CLAIM_TIMEOUT: {
id: 'ERROR_REDPACKET_CLAIM_TIMEOUT',
messageKey: 'errorRedpacketClaimTimeOut',
options: {},
},
ERROR_OFF_RAMP_EXPIRED: {
id: 'ERROR_OFF_RAMP_EXPIRED',
messageKey: 'errorOffRampExpired',
},
PROVIDER_ERROR_UNKNOWN: {
id: 'PROVIDER_ERROR_UNKNOWN',
messageKey: 'errorProviderErrorUnknown',
},
GUARDIAN_ROUTER_ERROR: {
id: 'GUARDIAN_ROUTER_ERROR',
messageKey: 'errorGuardianRouterError',
},
ERROR_SWITCH_ETHEREUM: {
id: 'ERROR_SWITCH_ETHEREUM',
messageKey: 'errorSwitchEthereum',
},
ERROR_NO_GAMESTOP_EXTENSION: {
id: 'ERROR_NO_GAMESTOP_EXTENSION',
messageKey: 'errorNoGamestopExtension',
},
ERROR_ETHEREUM_NOT_METAMASK: {
id: 'ERROR_ETHEREUM_NOT_METAMASK',
messageKey: 'errorEthereumNotMetamask',
},
ERROR_GAMESTOP_NO_CHAIN_CHANGE: {
id: 'ERROR_GAMESTOP_NO_CHAIN_CHANGE',
messageKey: 'errorGamestopNoChainChange',
},
ERROR_ADDRESS_CHECK_ERROR: {
id: 'ERROR_ADDRESS_CHECK_ERROR',
messageKey: 'errorAddressCheckError',
},
ERROR_CONTACT_EXISTED: { id: 'ERROR_CONTACT_EXISTED', messageKey: 'errorContactExisted' },
ERROR_CONTACT_NAME_EXISTED: {
id: 'ERROR_CONTACT_NAME_EXISTED',
messageKey: 'errorContactNameExisted',
},
ERROR_CONTACT_LIMIT_REACHED: {
id: 'ERROR_CONTACT_LIMIT_REACHED',
messageKey: 'errorContactLimit',
},
ERROR_CONTACT_NAME_OVER_LIMIT: {
id: 'ERROR_CONTACT_NAME_OVER_LIMIT',
messageKey: 'errorContactOverLimit',
},
ERROR_ORDER_FAILED: {
id: 'ERROR_ORDER_FAILED',
messageKey: 'errorOrderFailed',
},
ERROR_ADDRESS_BURN_NFT:{
id: 'ERROR_ADDRESS_BURN_NFT',
messageKey: 'errorAddressBurnNft',
}
}
export enum UIERROR_CODE {
NO_NETWORK_ERROR = 700000,
UNKNOWN = 700001,
PROVIDER_ERROR = 700002,
PROVIDER_ERROR_UNKNOWN = 700003,
PROVIDER_NOT_INSTALL_GME = 700004,
DATA_NOT_READY = 700005,
GENERATE_EDDSA = 700006,
NO_IPFS_INSTANCE = 700007,
ADD_IPFS_ERROR = 700008,
CREATE_IPFS_ERROR = 700009,
NOT_SAME_IPFS_RESOURCE = 700010,
IPFS_CID_TO_NFTID_ERROR = 700011,
TIME_OUT = 700012,
ERROR_JSON_STRINGIFY = 700013,
ERROR_COLLECTION_METADATA_NO_TILEURI = 700014,
ERROR_COLLECTION_NO_NAME = 700015,
ERROR_COLLECTION_INFO = 700016,
ERROR_COLLECTION_EMPTY = 700017,
ERROR_COLLECTION_NO_SUPPORT = 700018,
ERROR_COLLECTION_NOT_READABLE = 700019,
IPFS_TIME_OUT = 700020,
ERROR_ON_FEE_UI = 700021,
ERROR_PRIVATE_KEY = 700022,
ERROR_NO_RESPONSE = 700023,
ERROR_REDPACKET_EMPTY = 700024,
ERROR_ORDER_FAILED = 700205,
ERROR_RAMP_NO_INSTANCE = 700100,
ERROR_OFF_RAMP_EXPIRED = 700101,
ERROR_ADDRESS_CHECK_ERROR = 700102,
ERROR_ADDRESS_BURN_NFT = 700103,
ERROR_WALLECTCONNECT_MANUALLY_CLOSE = 700201,
ERROR_GAMESTOP_NO_CHAIN_CHANGE = 700202,
ERROR_DUAL_EXPIRED = 115003,
ERROR_REDPACKET_CLAIMED = 113002,
ERROR_REDPACKET_CLAIM_OUT = 113006,
ERROR_REDPACKET_CLAIM_TIMEOUT = 113000,
ERROR_SWITCH_ETHEREUM = 700202,
ERROR_NO_GAMESTOP_EXTENSION = 700203,
ERROR_ETHEREUM_NOT_METAMASK = 700204,
ERROR_CONTACT_EXISTED = 124001,
ERROR_CONTACT_NAME_EXISTED = 124002,
ERROR_CONTACT_LIMIT_REACHED = 124003,
ERROR_CONTACT_NAME_OVER_LIMIT = 124004,
}
export type ErrorObject = {
from?: string
timestamp?: number
messageKey: string
[key: string]: any
}
export const SDK_ERROR_MAP_TO_UI = {
700000: ErrorMap.NO_NETWORK_ERROR,
700001: ErrorMap.ERROR_UNKNOWN, //UI Unknown error =>
700002: ErrorMap.ERROR_PROVIDER_ERROR,
700003: ErrorMap.PROVIDER_ERROR_UNKNOWN,
700004: ErrorMap.PROVIDER_NOT_INSTALL_GME,
700005: ErrorMap.DATA_NOT_READY,
700006: ErrorMap.GENERATE_EDDSA,
700007: ErrorMap.NO_IPFS_INSTANCE,
700008: ErrorMap.ADD_IPFS_ERROR,
700009: ErrorMap.CREATE_IPFS_ERROR,
700010: ErrorMap.NOT_SAME_IPFS_RESOURCE,
700011: ErrorMap.IPFS_CID_TO_NFTID_ERROR,
700012: ErrorMap.TIME_OUT,
700013: ErrorMap.ERROR_JSON_STRINGIFY,
700014: ErrorMap.ERROR_COLLECTION_METADATA_NO_TILEURI,
700015: ErrorMap.ERROR_COLLECTION_NO_NAME,
700016: ErrorMap.ERROR_COLLECTION_INFO,
700017: ErrorMap.ERROR_COLLECTION_EMPTY,
700018: ErrorMap.ERROR_COLLECTION_NO_SUPPORT,
700019: ErrorMap.ERROR_COLLECTION_NOT_READABLE,
700020: ErrorMap.IPFS_TIME_OUT,
700021: ErrorMap.ERROR_ON_FEE,
700022: ErrorMap.ERROR_PRIVATE_KEY,
700023: ErrorMap.ERROR_NO_RESPONSE,
700024: ErrorMap.ERROR_REDPACKET_EMPTY,
700205: ErrorMap.ERROR_ORDER_FAILED,
700100: ErrorMap.ERROR_RAMP_NO_INSTANCE,
700101: ErrorMap.ERROR_OFF_RAMP_EXPIRED,
700202: ErrorMap.ERROR_SWITCH_ETHEREUM,
700103: ErrorMap.ERROR_ADDRESS_BURN_NFT,
700203: ErrorMap.ERROR_NO_GAMESTOP_EXTENSION,
700204: ErrorMap.ERROR_ETHEREUM_NOT_METAMASK,
700102: ErrorMap.ERROR_ADDRESS_CHECK_ERROR,
100000: ErrorMap.ERROR_UNKNOWN, //Unknown error =>
100001: ErrorMap.ERROR_ON_FROM_SUBMIT, //Invalid argument
101001: ErrorMap.ERROR_WRONG_ACCOUNT, //The address was not found
101002: ErrorMap.ERROR_WRONG_ACCOUNT, //User not found
102001: ErrorMap.ERROR_ON_FROM_SUBMIT, //Exchange ID is incorrect
102002: ErrorMap.ERROR_WRONG_TOKEN, //Unsupported TokenId in the order
102003: ErrorMap.ERROR_WRONG_ACCOUNT, //Invalid account ID
102004: ErrorMap.ERROR_INVALID_ORDER_ID, //Invalid order ID
102005: ErrorMap.ERROR_NO_MARKET, //Market does not support
102006: ErrorMap.ERROR_ON_RATE, //Illegal rate field
102007: ErrorMap.ERROR_FOR_EXIST_ORDER, //Order already exists
102008: ErrorMap.ERROR_ORDER_EXPIRED, //Order has expired
102010: ErrorMap.ERROR_WRONG_APIKEY, //Order is missing signature information
102011: ErrorMap.ERROR_WRONG_BALANCE, //Insufficient user balance
102012: ErrorMap.ERROR_MINIMUM_ORDER, //The order amount is too small
102014: ErrorMap.ERROR_ON_FROZEN, //Failed to freeze the amount, please try again later
102020: ErrorMap.ERROR_MAXIMUM_ORDER, //Exceeded the maximum order amount
102021: ErrorMap.ERROR_ON_FROM_SUBMIT, // Nonce is invalid
102022: ErrorMap.ERROR_ON_FROM_SUBMIT, //Transfer sender is invalid
102023: ErrorMap.ERROR_ON_FROM_SUBMIT, //Transfer receiver is invalid
102024: ErrorMap.ERROR_ON_FEE, //Fee token is unsupported
102025: ErrorMap.ERROR_ON_FEE, //Fee token is unsupported//Transfer token isnt consistent with fee token
102027: ErrorMap.ERROR_ON_FROM_SUBMIT, //Submit order failed
102028: ErrorMap.ERROR_ON_STORAGE_ID, //No Available storage id
102030: ErrorMap.ERROR_ON_STORAGE_ID, //Invalid storage id
102032: ErrorMap.ERROR_ON_NO_RECIPIENT, //Invalid recipient
102117: ErrorMap.ERROR_ON_CANCEL_ORDERS, //No orders to cancel
102118: ErrorMap.ERROR_ON_CANCEL_ORDERS, //Failed to cancel orders, please try again later
102119: ErrorMap.ERROR_INVALID_HASH, //Invalid hash
102120: ErrorMap.ERROR_ON_FROM_SUBMIT, //Order is not valid
102122: ErrorMap.ERROR_ON_CANCEL_ORDERS, //Order already in cancel
104001: ErrorMap.ERROR_WRONG_APIKEY, //Empty ApiKey
102040: ErrorMap.ERROR_MINT_OVERLAP, //mint record with the same nft token address and token id already exists
104002: ErrorMap.ERROR_WRONG_APIKEY, //Invalid ApiKey
104003: ErrorMap.ERROR_WRONG_ACCOUNT, //Invalid Account ID
104004: ErrorMap.ERROR_ON_FROM_SUBMIT, //No signature information provided
104005: ErrorMap.ERROR_ON_FROM_SUBMIT, //Wrong signature information
104208: ErrorMap.ERROR_UNKNOWN, //Unknown error in Ethereum node
104209: ErrorMap.ERROR_UNKNOWN, //Partial batch operation failed
105001: ErrorMap.ERROR_ON_GAS, //Failed to get recommended gas
107001: ErrorMap.ERROR_WRONG_ACCOUNT, //User ID cannot be empty
107002: ErrorMap.ERROR_INVALID_HASH, //Order Hash cannot be empty
107003: ErrorMap.ERROR_ON_FROM_SUBMIT, //Order does not exist
108000: ErrorMap.ERROR_NO_MARKET, //Unsupported market
102127: ErrorMap.ERROR_COLLECTION_SAME_NAME,
108001: ErrorMap.ERROR_ON_FROM_SUBMIT, //Unsupported depth level
113002: ErrorMap.ERROR_REDPACKET_CLAIMED, // REDPACKET_CLAIMED
113006: ErrorMap.ERROR_REDPACKET_CLAIM_OUT, // REDPACKET_COUNT_OUT
113000: ErrorMap.ERROR_REDPACKET_CLAIM_TIMEOUT, // REDPACKET_CLAIM_TIMEOUT
114001: ErrorMap.ERROR_ON_FEE, //Fee token not support
114002: ErrorMap.ERROR_ON_FEE, //Fee amount invalid, need refresh the fee. App need refresh fee less than every 15 mins
122001: ErrorMap.ERROR_ON_REFRESH,
124001: ErrorMap.ERROR_CONTACT_EXISTED,
124002: ErrorMap.ERROR_CONTACT_NAME_EXISTED,
124003: ErrorMap.ERROR_CONTACT_LIMIT_REACHED,
124004: ErrorMap.ERROR_CONTACT_NAME_OVER_LIMIT,
115003: ErrorMap.ERROR_DUAL_EXPIRED,
}
================================================
FILE: packages/common-resources/static-resources/src/error/index.ts
================================================
export * from './errorMap'
export type ErrorType = {
id: string
messageKey: string
message?: string
options?: any
}
export type ErrorWithCodeType = {
id: string
code: number
message: string
messageKey?: string
options?: any
}
export class CustomError extends Error {
constructor(error: ErrorType) {
// Pass remaining arguments (including vendor specific ones) to parent constructor
super(error.id)
// Maintains proper stack trace for where our error was thrown (only available on V8)
if (Error.captureStackTrace) {
Error.captureStackTrace(this, CustomError)
}
this.name = error.id
this.message = error?.message ?? error.id
this._date = Date.now()
this._messageKey = error.messageKey
this._options = error.options
// Custom debugging information
// this.foo = foo
// this.date = new Date()
}
private _options: any
get options(): any {
return this._options
}
private _date: number
get date(): number {
return this._date
}
private _messageKey: string
get messageKey(): string {
return this._messageKey
}
}
export class CustomErrorWithCode extends Error {
constructor(error: ErrorWithCodeType) {
// Pass remaining arguments (including vendor specific ones) to parent constructor
super(error.id)
// Maintains proper stack trace for where our error was thrown (only available on V8)
if (Error.captureStackTrace) {
Error.captureStackTrace(this, CustomError)
}
this.name = error.id
this._code = error.code
this.message = error.message
this._date = Date.now()
this._messageKey = error.messageKey ?? error.message
// this._options = error.options;
// Custom debugging information '
// this.foo = foo
// this.date = new Date()
}
private _code: number
get code(): number {
return this._code
}
private _options: any
get options(): any {
return this._options
}
private _date: number
get date(): number {
return this._date
}
private _messageKey: string
get messageKey(): string {
return this._messageKey
}
}
================================================
FILE: packages/common-resources/static-resources/src/i18n/en_US/common.ts
================================================
/* eslint-disable max-len */
export default {
labelErrorTitle: 'Error Detail: ',
labelNoContent: 'No Content',
labelError: 'Error',
tokenEnter: 'Enter Token',
tokenEnterPaymentToken: '',
tokenMax: 'Available: ',
tokenNFTMaxMINT: 'Max:',
tokenHave: 'Available:',
tokenEnterReceiveToken: '',
tokenSelectToken: 'Select Token',
tokenExchange: 'exchange',
tokenNotEnough: 'Insufficient {{belong}} balance',
tokenSearchCoin: 'Search Token Symbol',
swapTitle: 'Swap',
swapTolerance: 'Slippage Tolerance',
labelSwapToleranceTooltips:
'Your trade will revert if the price changes unfavorably by more than this percentage.',
swapPriceImpact: 'Price Impact',
labelSwapPriceImpactTooltips:
'The difference between market price and estimated price due to trade size',
swapMinReceive: 'Minimum Received',
swapMinReceiveS: 'Min. Received',
labelSwapMinReceiveTooltips:
'The pool price changes dynamically, the price you see when placing an order may be inconsistent with the final transaction price; also the received amount needs to deduct the fees from converted amount. The protocol can guarantee that the received token is at least this amount.',
swapFee: 'Trading Fee',
swapFeeS: 'Est. Fee',
labelSwapFeeTooltips:
'The trading fee is determined by your VIP level and the size of your trade. Small trades (below ~$100) incur a higher fee. Please review the fee before confirming.',
swapBtn: 'swap',
goBack: 'go back',
resetTitle: 'Reset {{layer2}} Keypair',
restLabelEnterToken: 'Select Reset cause token',
labelResetDescription:
'Each account on {{loopringL2}} needs an EdDSA private key (the account key) to sign off-chain (aka {{layer2}}) requests. You can reset the EdDSA keypair at any time.',
resetFee: 'Fee {{count}} GAS ≈ ${{price}}',
resetLabelBtn: 'Reset',
labelActiveEnterToken: 'Select payment token',
labelActiveAccountDescription:
'You need to have enough balance for {{layer2}} creation as below.',
labelActiveAccountFee: 'Fee {{count}} GAS ≈ ${{price}}',
labelActiveAccountBtn: 'Activate Account',
depositLabelEnterToken: 'Select Layer 1 Token',
labelDepositDescription:
'Once your deposit is confirmed on {{l1ChainName}}, \n it will be added to your balance within 2 minutes.',
labelDepositAndActiveDescription:
'Make a deposit to activate your {{loopringL2}} account. Once your deposit is <1>confirmed on {{l1ChainName}}</1>, it will be added to your balance within <3>2 minutes</3>.',
depositLabelRefer: 'Referral address, Account ID or ENS. (Optional)',
depositLabelPlaceholder: 'address, Account ID or ENS',
withdrawDescription:
'Your withdrawal will be processed in the next batch,\n which usually takes 30 minutes to 2 hours.\n (There will be a large delay if the {{l1ChainName}} gas price exceeds 500 GWei.)',
withdrawTypeLabelFast: 'Fast ~15 seconds',
withdrawTypeLabelStandard: 'Standard ~25 minutes',
labelConnectWallet: 'Connect wallet',
labelCustomer: 'Custom',
labelChange24h: '{{timeUnit}} Change',
labelDepth: 'Depth',
labelTrend: 'Price',
label1W: 'W1',
label1H: 'H1',
label1D: 'D1',
labelCopyAddress: 'Copy',
labelDisconnect: 'Disconnect',
labelLockLayer2: 'Lock',
labelUnLockLayer2: 'Sign in First',
labelSwitchAccount: 'Switch',
labelViewEth: 'View on Etherscan',
labelQRCode: 'View QR Code',
labelShowAccountInfo: 'Show account information',
labelAssetTitle: '{{loopringL2}} Total Assets',
labelAssetMobileTitle: '{{l2Symbol}} Assets',
labelShowAccount: 'Show or Hide Assets',
labelLevel: 'VIP Level',
labelOrderbook: 'Order book',
labelSetPublicKey: 'Set EdDSA Public Key',
labelTitleSecurity: 'Security',
labelTitleResetL2Keypair: 'Reset {{loopringL2}} Keypair',
labelBtnReset: 'Reset',
labelHadChangPassword: 'You changed your keypair {{passDay}} ago.',
labelTitleForceWithdraw: 'Force Withdraw',
labelBtnForceWithdraw: 'Force Withdraw',
labelTitleExportAccount: 'Export Account',
labelDescriptionExportAccount:
'In order to access the {{loopringL2}} APIs, you will need to export a security key.',
labelBtnExportAccount: 'Export Account',
labelDownloadViewMore: 'View More',
labelTitlePreferences: 'Preferences',
labelTitleLayout: 'Custom Setting',
whichColorIsUp: '<0>{{up}} up</0> and <2>{{down}} down</2> ',
labelTradeFeeLevel: 'Your Trading Fee Level:',
labelLanguage: 'Language',
labelCurrency: 'Currency',
currencySetting: 'Currency',
labelColors: 'Colors',
labelTheme: 'Dark Theme',
labelthemeLight: 'Light theme',
labelthemeDark: 'Dark theme',
labelgreen: 'green',
labelred: 'red',
langZH: 'Chinese',
langEN: 'English',
labelUSDollar: 'USD',
labelCNYYuan: 'CNY',
labelMaker: 'Maker',
labelTaker: 'Taker',
labelAssetsTitle: 'Assets',
labelVolume: 'volume',
labelAmount: 'Amount',
labelLiquidityDeposit: 'Subscribe',
labelLiquidityWithdraw: 'Redeem',
labelAvailable: 'Available:',
labelTokenAmount: 'Amount',
labelRemoveLiquidityBtn: 'Remove Liquidity',
labelAddLiquidityBtn: 'Add Liquidity',
labelEndLiquidityBtn: 'Ended',
labelTradePanelHideOtherPairs: 'Hide other pairs',
labelLPTokens: 'LP Tokens',
labelMyLPToken: 'My Liquidity Token',
labelMyLPAToken: 'My {{symbol}}',
labelMyLPBToken: 'My {{symbol}}',
labelMyLPAmountFor: 'My Ratio',
labelTrade: 'Trade',
labelAmmList: 'AMM List',
labelMyPoolShare: 'My Pool Share',
labelFee: 'Fee',
labelLPTotal: 'Total ',
labelReward: 'Rewards',
labelMyReward: 'My Rewards',
labelDate: 'Date',
labelBack: 'Back',
labelAPR: 'APR',
label24Volume: '24h Volume',
label24VolumeSimple: '24h Vol',
labelTVL: 'TVL',
labelAmmTotalToken: 'Tokens in AMM',
labelNoActiveEvent: 'No event',
labelNew: 'New',
labelAccount: 'Account',
labelAll: 'All',
labelMe: 'My Liquidity',
labelMyTrade: 'My Trades',
labelRecent: 'Market Trades',
labelMyAmm: 'My AMM Liquidity',
labelMyAmmRecord: 'My AMM Records',
labelCurrentActivities: 'Current Activities',
labelPastActivities: 'Past Activities',
labelTotalPositionValue: 'Total Investment',
labelFeeRewards: 'Fee Rewards',
labelMiningRewards: 'Mining Rewards',
labelLiquidityValue: 'Liquidity Value',
labelCopyAddClip: 'Address Copied to Clipboard!',
labelPleaseInputWalletAddress: 'Please input address / ENS / Account ID',
labelEmptyDefault: 'No data to display',
labelUnlockAccount: 'Unlock Account',
labelLockWallet: 'Lock Wallet',
labelAssetsDistribution: 'Assets Distribution',
labelTotalAssets: 'Assets Trend',
labelTxnPageTitle: 'Deposit/Withdraw',
labelTradePageTitle: 'Trade History',
labelAmmPageTitle: 'AMM Records',
labelSwapSuccess: 'Swap successful!',
labelOrderProcessing: 'Order Placed!',
labelSwapFailed: 'Swap failed!',
labelJoinAmmSuccess: 'Successfully joined AMM Pool!',
labelJoinAmmFailed: 'Failed to join AMM Pool!',
labelExitAmmSuccess: 'Successfully exited the AMM Pool!',
labelExitAmmFailed: 'Failed to exit the AMM Pool!',
labelConnectBy: 'Connected with <1>{{connectBy}}</1>',
labelWrongNetwork: 'Wrong network',
labelActivatedAccountDeposit: 'Please deposit to activate your {{layer2}} account',
labelActivatedAccountNotSupport: 'Your wallet does not support {{loopringL2}}',
labelActivatedAccountNotSupportDes:
'Please connect with a different wallet or download the Loopring Wallet mobile app.',
labelNotAllowForSmartWalletTitle: 'Apologize',
labelProcessing: 'Processing',
labelProviderProcessing: 'Connect Wallet with {{name}}...',
labelProviderCommonProcessDescribe:
'Please click the ‘Approve’ button on the Wallet Extension popup window. If the wallet popup window is dismissed, please manually click <5></5> on your browser toolbar.',
labelWalletConnectProcessDescribe: 'Please wait for WalletConnect provider to confirm processing',
labelWalletConnectQRCode: 'Please scan the QR code with a WalletConnect compatible application',
labelSuccessConnect: 'Successfully Connected with {{providerName}}',
labelSuccessConnectDescribe: 'Congratulations, Connection Successful!',
labelCopyClipBoard: 'Copy',
labelCopyManually: 'Manually Selected & Copy:',
labelRejectOrError: 'Request was rejected or some unknown error occurred, please retry',
labelWalletConnectProcessDescribe2: 'Please click ‘Approve’ on your device.',
labelUnlockProcessing: 'Unlocking {{layer2}}...',
labelFailedConnect: 'Connection Failed',
labelRejectConnect: 'Connection request was rejected',
// labelTokenAccess:'Waiting to approve {{symbol}} access!',
labelTokenAccess: 'Waiting for approval',
labelFailedTokenAccess: 'Failed to approve {{symbol}} access!',
labelNFTTokenFailedAccess: 'Failed to approve NFT access!',
labelSuccessTokenAccess: 'Congratulations, you have {{symbol}} access!',
labelSuccessUnlockDescribe: 'Congratulations, Successfully Unlocked!',
labelSuccessUnlock: 'Unlock Successful!',
labelActivateAccount: 'Activate Account',
labelClose: 'Close',
labelRetry: 'Retry',
labelTryNext: 'Sign Again',
labelQuotePageFavourite: 'Favourites',
labelQuotePageAll: 'All',
labelQuotePageTradeRanking: 'Tournaments',
labelFailedUnlock: 'Unlock Failed',
labelFailedUpdateAcc: 'Update Account Failed',
labelUpdateAccSigWarning:
'Your Wallet does not support current sig function, it will try another one.',
labelUpdateAccUserDenied: 'Signature request was rejected!',
labelCreateLayer2Title: 'Create {{layer2}} Account',
labelCreateAccount: 'Create {{layer2}} Account',
labelUpdateAccount: 'Sign in Account',
labelTryAnother: 'Try Another Sig Method',
labelCancel: 'Cancel',
describeTitleNoAccount:
"As {{l1ChainName}}'s first ever zkRollup, Loopring {{layer2}} allows you to avoid costly gas fees and network congestion with the same security as mainnet - 100x cheaper and faster.",
describeTitleOpenAccounting:
'Your deposit has been submitted to {{l1ChainName}}.\n Please wait...',
describeTitleOnErrorNetwork:
'Your current network is not supported by Loopring!\n Please change network via {{connectName}}.',
describeTitleNotActive:
"As {{l1ChainName}}'s first ever zkRollup, Loopring {{layer2}} allows you to avoid costly gas fees and network congestion with the same security as mainnet - 100x cheaper and faster.",
describeTitleConnectToWallet:
"As {{l1ChainName}}'s first ever zkRollup, Loopring {{layer2}} allows you to avoid costly gas fees and network congestion with the same security as mainnet - 100x cheaper and faster.",
describeWhatIsGuardian: 'What is a Loopring guardian',
describeTitleConnectToWalletAsGuardian: 'Connect a wallet to assign it as a guardian!',
describeTitleLocked: 'Unlock your account to view your assets.',
labelLiquidityPageTitle: 'AMM Pools',
labelMinReceive: 'Minimum Received Amount',
labelFilter: 'Search',
labelMiningPageTitle: 'Loopring Liquidity Mining',
labelMiningPageViceTitle: 'Earn rewards for contributing to Loopring liquidity.',
labelMiningActiveDate: 'Active Date',
labelMiningLiquidity: 'Liquidity',
labelMiningActivityReward: 'Activity Reward',
labelMiningMyShare: 'My Share',
labelMiningMyReward: 'My Reward',
labelMiningPlaceOrderBtn: 'Place Order',
labelMiningViewDetails: 'View details',
labelMiningMaxSpread: 'Max Spread',
labelMiningReward: 'Reward',
labelCookiesAgree: 'Agree',
labelLimitMin: 'Minimum of {{arg}}',
labelAmmMinAnd: 'and',
labelLimitMinUnknown: 'Order too small',
labelLimitMax: 'Maximum of {{arg}}',
labelOrderSmall: 'Order too small (>= 100.5LRC)',
labelEnterAmount: 'Enter amount',
labelAgreeLoopringTxt: 'Allow Loopring to use Cookies.',
labelLayer2HistoryTransactions: 'Transfer',
labelLayer2HistoryTrades: 'Trades',
labelLayer2HistoryAmmRecords: 'AMM Records',
labelTxnDetailHeader: 'Transaction',
labelDTxnDetailHeader: 'Deposit Record',
labelWTxnDetailHeader: 'Withdraw Record',
labelTTxnDetailHeader: 'Transfer Record',
labelTxnDetailHash: '{{layer2}} Hash',
labelTxnDetailHashLv1: 'Eth Hash',
labelTxnDetailStatus: 'Status',
labelTxnDetailTime: 'Time',
labelTxnDetailFrom: 'From',
labelTxnDetailTo: 'To',
labelTxnDetailAmount: 'Amount',
labelTxnDetailFee: 'Fee',
labelTxnDetailMemo: 'Memo',
labelTxnDetailProcessed: 'PROCESSED',
labelTxnDetailProcessing: 'PROCESSING',
labelTxnDetailFailed: 'FAILED',
labelAgreeConfirm: 'Agree',
labelDisAgreeConfirm: 'Disagree',
labelImpactAgree: 'Type "AGREE" to confirm.',
labelImpactTitle: 'Swap Requires Confirmation',
labelPriceExtraGreat:
'The price you set is {{compare}} than 20% of the market price. Are you sure you want to complete this order?',
labelPriceCompareGreat: 'Greater',
labelPriceCompareLess: 'Less',
labelImpactExtraGreat:
'Your transaction amount will affect the pool price by <1>{{value}}</1>. Are you sure you want to swap?',
labelCalculating: 'Calculating...',
labelFeeCalculating: 'Calculating fee...',
labelAmmMyTransactions: 'My Transactions',
labelAmmAllTransactions: 'All Transactions',
labelWaitForAuth: 'Waiting for signature',
labelSignDenied: 'Signature request was rejected',
labelFirstSignDenied: "Your wallet doesn't support this signature method",
labelUpdateAccountSuccess: 'Congratulations!',
labelUpdateAccountSuccess2: 'You have successfully sign in your {{loopringL2}} account!',
labelResetAccountSuccess: 'Congratulations!',
labelResetAccountSuccess2: 'You have successfully reset your {{loopringL2}} account keypair!',
labelUpdateAccountSubmit: 'Activating Tx submitted.',
labelUnlockAccountSuccess: 'Unlock successful!',
labelUnlockAccountFailed: 'Unlock failed!',
labelNotSupportTitle: 'Information',
labelNotAllowTrade:
'Unfortunately we are unable to provide Order and AMM Deposit services due to your IP address as per our Terms of Use.',
labelKnown: 'OK',
labelResetAccount: 'Reset {{layer2}} Account',
labelExportAccount: 'Export Account',
labelExportAccountNoPhotos: 'No Photos',
labelExportAccountDescription: 'Please keep your API key secure.',
labelExportAccountCopy: 'Copy',
labelExportAccountSuccess: 'Export Account successful!',
labelExportAccountFailed: 'Export Account has failed!',
// labelCreateAccountApproveWaitForAuth: 'Waiting for <1>{{symbol}}</1> Approve...',
labelCreateAccountApproveDenied: 'Signature request was rejected',
labelAmmSwitch: 'switch',
labelCreateAccountDepositDenied: 'Signature request was rejected',
labelSlippageAlert:
'Your slippage tolerance is rather high which could result in less tokens received.',
labelOrderGroup: 'Order Records',
labelOrderTableOpenOrder: 'Open Order',
labelOrderTableOrderHistory: 'Order History',
labelResetLayout: 'Reset Layout',
labelResetMobileLayout: 'Reset',
labelBtnFix: 'reset',
labelProSell: 'Sell',
labelProBuy: 'Buy',
labelProLimit: 'Limit',
labelProMarket: 'Market',
labelProPrice: 'Price',
labelProBaseLabel: 'Amount',
labelProQuoteLabel: 'Total',
labelProLimitBtn: '{{tradeType}} {{symbol}}',
labelProMarketBtn: '{{tradeType}} {{symbol}}',
labelProOrderbook: 'Orderbook',
labelProTrades: 'Trades',
labelProToolbar24hChange: '24h Change',
labelProToolbar24hHigh: '24h High',
labelProToolbar24hLow: '24h Low',
labelProToolbar24hBaseVol: '24h Volume({{symbol}})',
labelProToolbar24hQuoteVol: '24h Volume({{symbol}})',
labelErrorPricePrecisionLimit: '{{symbol}} price only allows {{decimal}} decimals.',
labelDepthPrice: 'Price({{symbol}})',
labelDepthAmount: 'Accum({{symbol}})',
labelDepthTotal: 'Accumulation',
labelProChartTitle: 'Chart',
labelProTimeDefault: 'Time(1m)',
labelProTime1m: '1m',
labelProTime5m: '5m',
labelProTime15m: '15m',
labelProTime30m: '30m',
labelProTime1H: '1H',
labelProTime2H: '2H',
labelProTime4H: '4H',
labelProTime12H: '12H',
labelProTime1D: '1D',
labelProTime1W: '1W',
labelProTime1M: '1M',
labelProChartTradingView: 'Candlestick',
labelProChartDepth: 'Depth',
labelProOrderPrice: 'Order Price',
labelProOrderTotalAmount: 'Accumulative Amount',
labelSwapCancelled: 'Swap is cancelled.',
labelSuccessfully: 'Success',
labelWarning: 'Warning',
labelFailure: 'Failure',
labelPrompt: 'Prompt',
// labelSwapCancelled: 'Swap is cancelled.',
// labelWarning: 'Warning',
// labelFailure: 'Failure',
// labelPrompt: 'Prompt',
labelComingSoon: 'Coming Soon',
labelTradeProHideOtherPairs: 'Hide other trading pairs',
labelCancelAllOrders: 'Confirm cancelling all orders?',
labelConfirm: 'Confirm',
labelSettingFee: 'Token Order for Fees',
descriptionSettingFee:
'Change the token priority order to adjust which tokens will be used for fees first.',
labelBtnEdit: 'Edit',
labelSettingChargeFeeOrder: 'Token Order for Fees',
labelDesSettingChargeFeeOrder: '{{loopringL2}} will use this token order when processing fees.',
labelReset: 'Reset',
labelQueryFeeOK: 'Save',
depositLimit:
'Limit Orders \n Used to set the maximum or minimum price \n at which you are willing to buy or sell.',
depositMarket: 'Market Orders \n Used to buy or sell immediately \n at the current market price.',
labelTransactions: 'Transactions',
labelMyRewards: 'My Rewards',
labelClearAll: 'Clear All',
labelProviderAgree: 'I have read, understand, and agree to the <1> Terms of Service </1>.',
labelNFTName: 'Name:',
labelNFTDetail: 'Details',
labelNFTTokenStandard: 'Token Standard:',
labelNFTTokenMinted: 'Token Minted:',
labelNFTDescription: 'Description:',
labelNFTDate: 'Date:',
labelNFTDeployContract: 'Deploy Contract',
labelNFTSend: 'Send:',
labelNFTDeploy: 'Deploy:',
labelNFTDeploying: 'Deploying',
labelNFTMyNFT: 'My NFTs - Collection: {{collection}}',
labelNFTTokenID: 'ID:',
labelNFTTYPE: 'Token Standard:',
labelNFTRoyaltyPercentage: 'Royalty (%):',
labelNFTID: 'ID:',
labelNFTMinter: 'Minter:',
labelNFTMetadata: 'Metadata:',
labelNFTMint: 'Create NFT',
labelNFTCreateCollection: '+ Create Collection',
labelNFTTitleMyNFT: 'My NFTs',
labelNFTTOTAL: 'Amount:',
labelInformation: 'Notification',
labelNoticeForProvider:
'Loopring currently supports the following wallet connections: {{name}}. Please make sure to use one of these when attempting to connect.',
labelIKnow: 'OK',
labelYes: 'Yes',
labelNo: 'No',
labelNoticeForNoMetaNFT:
'Your NFT does not contain Metadata or media information. \n Are you sure you still wish to {{ method }} this NFT?',
labelAgreeConfirmNotShowAgain: 'I know & not show again',
labelInvalidCID: 'Invalid CID. CIDv0 is start with `Qm`, CIDv1 only works for dag-pb',
labelInvalidAddress: 'Invalid address, ENS',
labelInvalidisCFAddress: 'Loopring Counterfactual wallet is disabled {{way}} {{token}}',
labelInvalidisContract1XAddress: 'Loopring wallet 1.x is disabled {{way}} {{token}}',
labelInvalidisContractAddress: '{{way}} of {{token}} to Contract wallet is not available',
labelInvalidisLoopringAddress:
'This address does not yet have an active {{loopringL2}}, {{way}} of {{token}} is disabled!',
labelInvalidisSameAddress: 'Cannot {{way}} to your own address.',
labelTradeRaceRanking: 'Trading Leaderboard',
labelTradeRaceYourRanking: 'Your ranking',
labelTradeRaceGoTrading: 'Go to trade',
labelTradeReadRule: 'Read Rules',
labelTradeRaceRewards: 'Rewards',
labelTradeRaceRules: 'Activity Rules',
labelTradeRaceStart: 'Activity ends in:',
labelTradeRaceReady: 'Activity starts in:',
labelTradeRaceEnd: 'Activity has ended',
labelDay: 'Days',
labelHours: 'Hours',
labelMinutes: 'Minutes',
labelSeconds: 'Seconds',
labelIsNotFeeToken: 'Please deposit {{symbols}}, or {{lastSymbol}} to activate your {{loopringL2}} account.',
labelIsETHDepositAlert: 'Please reserve enough ETH in your account to pay for gas!',
labelIsNotEnoughFeeToken:
'Please deposit enough token to cover the activation fee: {{fee}} {{symbol}}. Remaining token will appear in your asset after activation',
depositNFTAddressLabelPlaceholder: 'please input NFT contract address...',
mintNFTAddressLabelPlaceholder:
'(CIDv0 or dag-pb CIDv1) eg: QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR',
depositNFTIdLabelPlaceholder: 'please input NFT id...',
nftDepositDescription:
'Creates a smart contract on {{ethereumL1}}, \n which requires a gas fee. NFTs minted \nhere remain on {{loopringL2}} until deployed.',
labelNFTDescribe: 'Description:',
labelNFTTitle: 'Amount',
labelNFTDepositInputTitle: 'Amount:',
labelNFTTId: 'NFT Token ID:',
labelNFTCid: 'IPFS CIDv0 or dag-pb CIDv1:(Store Metadata Information)',
labelNFTType: 'Token Standard:',
labelNFTAccess: 'Allow Loopring to spend {{symbol}}',
labelDeployDenied: 'Signature request was rejected',
labelNFTTokenDeployWaitForAuth: 'Allow Loopring to deploy {{symbol}}?',
labelDeployFailed: 'Deploy of {{symbol}} has failed!',
labelDeploySubmit: 'Deploy of {{symbol}} has been submitted!',
labelMint: 'Mint',
labelMintDenied: 'Signature request was rejected',
labelNFTTokenMintWaitForAuth: 'Allow Loopring to Create {{symbol}}?',
labelMintFailed: 'Create of {{symbol}} has failed!',
labelMintSuccess: 'Create of {{symbol}} has been submitted!',
labelNFTMintBtn: 'Create NFT',
labelNFTMintNoMetaBtn: 'Wrong Metadata',
labelNFTMintNoMetaDetail:
'Your NFT metadata should identify <1>name, image, and royalty_percentage (integer from 0 to 10)</1>.',
nftDeployDescription: 'Deploy Collection',
nftDeployTitle: 'Deploy Contract',
nftMintTitle: 'Create NFT',
nftMintBtn: 'Create NFT',
labelMintInProgress: 'Processing...',
labelNFTDeployBtn: 'Deploy Contract',
labelNFTDeployBroker: 'Deploy Broker:',
labelDeployInProgress: 'Processing...',
labelNFTDeployTitle: 'Deploy Contract',
labelVendor: 'Buy with Card',
labelLock: 'Lock',
labelWalletToWallet:
'The connected wallet is a contract address which cannot be used (Except Recover Wallet). If you are connecting a mobile Loopring Smart Wallet, you can protect it and manage guardians within the app.',
labelWalletAddAsGuardian: 'Add a guardian',
labelWalletInputGuardianCode: 'Input 6 digital Code and Approve',
l
gitextract_p30q3z9e/ ├── .claude/ │ └── settings.local.json ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── .yarnclean ├── .yarnrc ├── LICENSE ├── README.md ├── craco.config.cjs ├── lerna.json ├── package.json ├── packages/ │ ├── common-resources/ │ │ ├── .babelrc │ │ ├── assets/ │ │ │ └── coin/ │ │ │ └── loopring.json │ │ ├── index.ts │ │ ├── mail.html │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── .gitignore │ │ │ ├── READMD.md │ │ │ ├── get_imgs.py │ │ │ └── requirements.txt │ │ ├── static-resources/ │ │ │ ├── index.ts │ │ │ ├── src/ │ │ │ │ ├── constant/ │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── chart.ts │ │ │ │ │ ├── firebase.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── loopring.ts │ │ │ │ │ ├── market.ts │ │ │ │ │ ├── miningOuterLinks.ts │ │ │ │ │ ├── networks.ts │ │ │ │ │ ├── notification.ts │ │ │ │ │ ├── proLayout.ts │ │ │ │ │ ├── router.ts │ │ │ │ │ ├── sagaStatus.ts │ │ │ │ │ ├── setting.ts │ │ │ │ │ ├── social.ts │ │ │ │ │ ├── table.ts │ │ │ │ │ ├── tokenConfig.ts │ │ │ │ │ ├── trade.ts │ │ │ │ │ ├── vendor.ts │ │ │ │ │ └── walletConnector.ts │ │ │ │ ├── error/ │ │ │ │ │ ├── errorMap.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── i18n/ │ │ │ │ │ ├── en_US/ │ │ │ │ │ │ ├── common.ts │ │ │ │ │ │ ├── error.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── landPage.ts │ │ │ │ │ │ ├── layout.ts │ │ │ │ │ │ ├── tables.ts │ │ │ │ │ │ └── webEarn.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── zh_CN/ │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── error.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── landPage.ts │ │ │ │ │ ├── layout.ts │ │ │ │ │ ├── tables.ts │ │ │ │ │ └── webEarn.ts │ │ │ │ ├── loopring-interface/ │ │ │ │ │ ├── CoinInterface.ts │ │ │ │ │ ├── FooterInterface.ts │ │ │ │ │ ├── HeaderInterface.ts │ │ │ │ │ ├── Investment.ts │ │ │ │ │ ├── VendorInterface.ts │ │ │ │ │ ├── WallectInterface.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── svg/ │ │ │ │ │ ├── Icon.tsx │ │ │ │ │ ├── dropdownLogo.tsx │ │ │ │ │ ├── earnLogo.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── network.tsx │ │ │ │ │ ├── redPacketScope.tsx │ │ │ │ │ ├── redPacketSvg.tsx │ │ │ │ │ └── shareReferral.tsx │ │ │ │ ├── themes/ │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── color-lib.ts │ │ │ │ │ │ ├── global.tsx │ │ │ │ │ │ └── reset.tsx │ │ │ │ │ ├── fonts/ │ │ │ │ │ │ └── english/ │ │ │ │ │ │ └── LICENSE │ │ │ │ │ ├── globalSetup.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ └── overrides/ │ │ │ │ │ ├── muTheme.ts │ │ │ │ │ ├── overrides-date-pick.ts │ │ │ │ │ ├── overrides-mui.ts │ │ │ │ │ └── utils.ts │ │ │ │ └── utils/ │ │ │ │ ├── format_tools.ts │ │ │ │ ├── index.ts │ │ │ │ ├── log_tools.ts │ │ │ │ ├── makeDom.ts │ │ │ │ ├── obj_tools.ts │ │ │ │ ├── types.tsx │ │ │ │ └── util.ts │ │ │ └── types.d.ts │ │ ├── tsconfig.json │ │ └── tsconfig.tsbuildinfo │ ├── component-lib/ │ │ ├── .babelrc │ │ ├── .eslintignore │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── .storybook/ │ │ │ ├── main.ts │ │ │ └── preview.tsx │ │ ├── .travis.yml │ │ ├── README.md │ │ ├── craco.config.cjs │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── basic-lib/ │ │ │ │ │ ├── Icon.stories.tsx │ │ │ │ │ ├── btns/ │ │ │ │ │ │ ├── BtnPercentage.tsx │ │ │ │ │ │ ├── Button.stories.tsx │ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── checkbox/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── color.stories.tsx │ │ │ │ │ ├── display/ │ │ │ │ │ │ ├── SpaceBetweenBox.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── empty/ │ │ │ │ │ │ ├── Empty.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── form/ │ │ │ │ │ │ ├── Form.stories.tsx │ │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── useFocusRef.ts │ │ │ │ │ │ │ └── usePanelRef.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── input/ │ │ │ │ │ │ ├── CollectionInput.tsx │ │ │ │ │ │ ├── DatePicker.tsx │ │ │ │ │ │ ├── Default.tsx │ │ │ │ │ │ ├── InputButton.tsx │ │ │ │ │ │ ├── InputCode.tsx │ │ │ │ │ │ ├── InputCoin.tsx │ │ │ │ │ │ ├── InputMaxButton.tsx │ │ │ │ │ │ ├── InputMaxCoin.tsx │ │ │ │ │ │ ├── InputSearch.tsx │ │ │ │ │ │ ├── InputSelect.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── TextareaWithCount.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── style.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── lists/ │ │ │ │ │ │ ├── CoinList.tsx │ │ │ │ │ │ ├── CollectionItem.tsx │ │ │ │ │ │ ├── FileListItem.tsx │ │ │ │ │ │ ├── HeadMenuItem.tsx │ │ │ │ │ │ ├── HeadToolbar.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── List.stories.tsx │ │ │ │ │ │ ├── NFTList.tsx │ │ │ │ │ │ ├── Notification.tsx │ │ │ │ │ │ ├── SubMenuList.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── loading/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── media/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── nftImage.tsx │ │ │ │ │ ├── panel/ │ │ │ │ │ │ ├── IPFSSourceUpload.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── Panel.stories.tsx │ │ │ │ │ │ ├── QRCodeUpload.tsx │ │ │ │ │ │ ├── SubMenu.tsx │ │ │ │ │ │ ├── SwitchPanel.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── popover/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── Popover.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── popover.stories.tsx │ │ │ │ │ ├── resource/ │ │ │ │ │ │ ├── hook/ │ │ │ │ │ │ │ └── useImage.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── table-pagination/ │ │ │ │ │ │ ├── TablePagination.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── tables/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── Table.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── Formatters/ │ │ │ │ │ │ │ │ ├── CellActionsFormatter.tsx │ │ │ │ │ │ │ │ ├── CellDepthFormatter.tsx │ │ │ │ │ │ │ │ ├── CellExpanderFormatter.tsx │ │ │ │ │ │ │ │ ├── ChildRowDeleteButton.tsx │ │ │ │ │ │ │ │ ├── ImageFormatter.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── HeaderRenderers/ │ │ │ │ │ │ │ │ ├── SortableHeaderCell.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── RowRenders/ │ │ │ │ │ │ │ ├── RowDepthFormatter.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── hook/ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── useClickOutside.ts │ │ │ │ │ │ │ ├── useCombinedRefs.ts │ │ │ │ │ │ │ ├── useFocusRef.ts │ │ │ │ │ │ │ └── useLatestFunc.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── table.stories.tsx │ │ │ │ │ └── tags/ │ │ │ │ │ ├── Tags.stories.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── block/ │ │ │ │ │ ├── AmmCard.tsx │ │ │ │ │ ├── AmmPairDetail.tsx │ │ │ │ │ ├── AssetTitle.tsx │ │ │ │ │ ├── Block.stories.tsx │ │ │ │ │ ├── CollectionDetailView.tsx │ │ │ │ │ ├── CollectionMedia.tsx │ │ │ │ │ ├── DepthRaw.tsx │ │ │ │ │ ├── DownloadPanel.tsx │ │ │ │ │ ├── ETHStakingDetail.tsx │ │ │ │ │ ├── ErrorBlock.tsx │ │ │ │ │ ├── Interface.ts │ │ │ │ │ ├── LoadingBlock.tsx │ │ │ │ │ ├── MarketBlock.tsx │ │ │ │ │ ├── NotificationPanel.tsx │ │ │ │ │ ├── RedPacket.tsx │ │ │ │ │ ├── Referral.tsx │ │ │ │ │ ├── SettingPanel.tsx │ │ │ │ │ ├── ShareSocialPanel.tsx │ │ │ │ │ ├── TagIconList.tsx │ │ │ │ │ ├── TradeRace.tsx │ │ │ │ │ ├── TradeTitle.tsx │ │ │ │ │ ├── Vip.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── nftMedia.tsx │ │ │ │ ├── bottomRule/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── carousel/ │ │ │ │ │ ├── Carousel.tsx │ │ │ │ │ ├── Interface.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── charts/ │ │ │ │ │ ├── constant.ts │ │ │ │ │ ├── doughnutChart/ │ │ │ │ │ │ ├── DoughnutChart.stories.tsx │ │ │ │ │ │ ├── DoughnutChart.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── scaleAreaChart/ │ │ │ │ │ ├── APRChart/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── DepthChart/ │ │ │ │ │ │ ├── ScaleAreaChart.stories.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── KlineChart/ │ │ │ │ │ │ ├── KlineChart.stories.tsx │ │ │ │ │ │ ├── KlineChart.tsx │ │ │ │ │ │ ├── KlineChart_min.stories.tsx │ │ │ │ │ │ ├── data.ts │ │ │ │ │ │ ├── data_min.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ScaleAreaChart.tsx │ │ │ │ │ ├── TrendChart/ │ │ │ │ │ │ ├── ScaleAreaChart.stories.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── data.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── datetimerangepicker/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── footer/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── header/ │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── Interface.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── toolbar/ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ ├── WalletConnect.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── layout/ │ │ │ │ │ ├── AmmDetail.stories.tsx │ │ │ │ │ ├── Error.stories.tsx │ │ │ │ │ ├── layer2.stories.tsx │ │ │ │ │ └── trade.stories.tsx │ │ │ │ ├── modal/ │ │ │ │ │ ├── ClosureAnnouncementModal.tsx │ │ │ │ │ ├── ModalPanelBase.tsx │ │ │ │ │ ├── ModalPanels/ │ │ │ │ │ │ ├── AccountBase.tsx │ │ │ │ │ │ ├── AddAsset.tsx │ │ │ │ │ │ ├── BasicPanel.tsx │ │ │ │ │ │ ├── BridgePanel.tsx │ │ │ │ │ │ ├── CheckActiveStatus.tsx │ │ │ │ │ │ ├── CheckImportCollection.tsx │ │ │ │ │ │ ├── ClaimWithdraw.tsx │ │ │ │ │ │ ├── ClaimWithdrawPanel.tsx │ │ │ │ │ │ ├── CoinbaseSmartWalletModal.tsx │ │ │ │ │ │ ├── Connect.tsx │ │ │ │ │ │ ├── CreateAccount.tsx │ │ │ │ │ │ ├── CreateRedPacketPanel.tsx │ │ │ │ │ │ ├── DeployNFT.tsx │ │ │ │ │ │ ├── Deposit.tsx │ │ │ │ │ │ ├── DepositNFT.tsx │ │ │ │ │ │ ├── DepositPanel.tsx │ │ │ │ │ │ ├── DepositRecorder.tsx │ │ │ │ │ │ ├── Dual.tsx │ │ │ │ │ │ ├── EditContact.tsx │ │ │ │ │ │ ├── ExportAccount.tsx │ │ │ │ │ │ ├── FeeSelect.tsx │ │ │ │ │ │ ├── ForceWithdraw.tsx │ │ │ │ │ │ ├── ForceWithdrawPanel.tsx │ │ │ │ │ │ ├── HadAccount.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── MintNFT.tsx │ │ │ │ │ │ ├── ModalAccount.tsx │ │ │ │ │ │ ├── NoAccount.tsx │ │ │ │ │ │ ├── QRAddressPanel.tsx │ │ │ │ │ │ ├── RedPacket.tsx │ │ │ │ │ │ ├── SendAsset.tsx │ │ │ │ │ │ ├── SendNFTAsset.tsx │ │ │ │ │ │ ├── ThirdPanelReturn.tsx │ │ │ │ │ │ ├── Transfer.tsx │ │ │ │ │ │ ├── TransferPanel.tsx │ │ │ │ │ │ ├── TransferToTaikoAccount.tsx │ │ │ │ │ │ ├── TransferToTaikoAccountPanel.tsx │ │ │ │ │ │ ├── UnlockAccount.tsx │ │ │ │ │ │ ├── UpdateAccount.tsx │ │ │ │ │ │ ├── Vault.tsx │ │ │ │ │ │ ├── Withdraw.tsx │ │ │ │ │ │ ├── WithdrawPanel.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── QRCode/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── QRCode.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── RedPacketPanels/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── RedPacketModal.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Vault/ │ │ │ │ │ │ ├── VaultBorrowPanel.tsx │ │ │ │ │ │ ├── VaultExitPanel.tsx │ │ │ │ │ │ ├── VaultJoinPanel.tsx │ │ │ │ │ │ ├── VaultLoanPanel.tsx │ │ │ │ │ │ ├── VaultRepayPanel.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── WalletConnect/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── ModalWalletConnect.tsx │ │ │ │ │ │ ├── ProviderMenu.tsx │ │ │ │ │ │ ├── WalletConnectQRCode.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── WalletPanels/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── LockWallet.tsx │ │ │ │ │ │ ├── ModalWallet.tsx │ │ │ │ │ │ ├── WalletApprove.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── accountList_new.stories.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── setting/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── SettingFee.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── walletList.stories.tsx │ │ │ │ ├── panel/ │ │ │ │ │ ├── FilterMarketsPanel.tsx │ │ │ │ │ ├── Panel.stories.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── provider.tsx │ │ │ │ ├── share/ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── SocialButton.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── styled.ts │ │ │ │ ├── tableList/ │ │ │ │ │ ├── QuoteTable/ │ │ │ │ │ │ ├── MarketDetail.tsx │ │ │ │ │ │ ├── MarketTable.tsx │ │ │ │ │ │ ├── QuoteTable.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ammRecordTable/ │ │ │ │ │ │ ├── AmmRecordTable.stories.tsx │ │ │ │ │ │ ├── AmmRecordTable.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ammTable/ │ │ │ │ │ │ ├── AmmTable.stories.tsx │ │ │ │ │ │ ├── AmmTable.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ └── Filter.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── interface.ts │ │ │ │ │ ├── assetsTable/ │ │ │ │ │ │ ├── AssetsDefiTable.tsx │ │ │ │ │ │ ├── AssetsTable.tsx │ │ │ │ │ │ ├── VaultAssetsTable.tsx │ │ │ │ │ │ ├── VaultPositionsTable.tsx │ │ │ │ │ │ ├── assetsTable.stories.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── ActionMemo.tsx │ │ │ │ │ │ │ ├── CoinIcons.tsx │ │ │ │ │ │ │ ├── Filter.tsx │ │ │ │ │ │ │ └── modal.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── btradeSwapTable/ │ │ │ │ │ │ ├── BtradeSwapTable.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── defiTxsTable/ │ │ │ │ │ │ ├── DefiStakingTable.tsx │ │ │ │ │ │ ├── DefiStakingTxTable.tsx │ │ │ │ │ │ ├── DefiTxsTable.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ └── ActionMemo.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── dualTable/ │ │ │ │ │ │ ├── DualTable.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── dualTxsTable/ │ │ │ │ │ │ ├── DualAssetTable.tsx │ │ │ │ │ │ ├── DualTxsTable.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── investOverviewTable/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── InvestOverviewTable.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── Filter.tsx │ │ │ │ │ │ │ └── expends.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── myPoolTable/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── MyPoolTable.stories.tsx │ │ │ │ │ │ ├── MyPoolTable.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── ActionPop.tsx │ │ │ │ │ │ │ └── Filter.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── nftTable/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── TsNFTTable.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── Filter.tsx │ │ │ │ │ │ │ └── modal.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── orderHistoryTable/ │ │ │ │ │ │ ├── OrderHistoryTable.tsx │ │ │ │ │ │ ├── SingleOrderHistoryTable.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── Filter.tsx │ │ │ │ │ │ │ └── modal.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── poolsTable/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── PoolsTable.stories.tsx │ │ │ │ │ │ ├── PoolsTable.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── redPacketTable/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── RedPacketBlindBoxReceiveTable.tsx │ │ │ │ │ │ ├── RedPacketClaimTable.tsx │ │ │ │ │ │ ├── RedPacketReceiveTable.tsx │ │ │ │ │ │ ├── RedPacketRecodTable.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── textTooltip.tsx │ │ │ │ │ ├── rewardTable/ │ │ │ │ │ │ ├── ReferralsTable.tsx │ │ │ │ │ │ ├── RefundTable.tsx │ │ │ │ │ │ ├── RewardTable.tsx │ │ │ │ │ │ ├── RewardsTable.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── tableList.stories.tsx │ │ │ │ │ ├── taikoFarmingTable/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── TaikoFarmingPortfolioTable.tsx │ │ │ │ │ │ ├── TaikoTarmingTxRecordsTable.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── tradeNFTTable/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── TradeNFTTable.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ └── Filter.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── tradeRaceTable/ │ │ │ │ │ │ ├── TradeRaceTable.tsx │ │ │ │ │ │ ├── TradeRaceTableConfig.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── tradeRroTable/ │ │ │ │ │ │ ├── TradePro.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── tradeTable.stories.tsx │ │ │ │ │ ├── tradeTable/ │ │ │ │ │ │ ├── TradeTable.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ └── Filter.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── tradeTable.stories.tsx │ │ │ │ │ ├── transactionsTable/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── TransactionTable.tsx │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── Filter.tsx │ │ │ │ │ │ │ └── modal.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── vaultTable/ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ ├── VaultTxTable.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── text-tooltip/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── toast/ │ │ │ │ │ └── index.tsx │ │ │ │ └── tradePanel/ │ │ │ │ ├── Amm/ │ │ │ │ │ ├── AmmPanel.tsx │ │ │ │ │ ├── Interface.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Deposit/ │ │ │ │ │ ├── DepositGroup.tsx │ │ │ │ │ ├── DepositTitle.tsx │ │ │ │ │ ├── Interface.tsx │ │ │ │ │ ├── VendorMenu.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ExportAccount/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── Interface.ts │ │ │ │ ├── ModalPanel.tsx │ │ │ │ ├── Panel.stories.tsx │ │ │ │ ├── Reset/ │ │ │ │ │ ├── ActiveAccountPanel.tsx │ │ │ │ │ ├── ConfirmationPanel.tsx │ │ │ │ │ ├── ResetPanel.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── Swap/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── AddressType.tsx │ │ │ │ │ ├── AmmWrap/ │ │ │ │ │ │ ├── AmmDeposit.tsx │ │ │ │ │ │ ├── AmmWithdraw.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── styled.ts │ │ │ │ │ ├── BanxaConfirm.tsx │ │ │ │ │ ├── BasicACoinInput.tsx │ │ │ │ │ ├── BasicACoinTrade.tsx │ │ │ │ │ ├── BasicANFTTrade.tsx │ │ │ │ │ ├── CollectionAdvanceWrap.tsx │ │ │ │ │ ├── CollectionManageWrap.tsx │ │ │ │ │ ├── ContactSelection.tsx │ │ │ │ │ ├── CreateCollectionWrap.tsx │ │ │ │ │ ├── CreateRedPacketWrap.tsx │ │ │ │ │ ├── DeFiWrap/ │ │ │ │ │ │ ├── DeFiStackOneSideWrap.tsx │ │ │ │ │ │ ├── DeFiStackRedeemWrap.tsx │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── deFiWrap.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── DeployNFTWrap.tsx │ │ │ │ │ ├── DepositConfirm.tsx │ │ │ │ │ ├── DepositNFTWrap.tsx │ │ │ │ │ ├── DepositWrap.tsx │ │ │ │ │ ├── DualWrap/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── ModifyParameter.tsx │ │ │ │ │ │ ├── ModifySetting.tsx │ │ │ │ │ │ ├── dualDetail.tsx │ │ │ │ │ │ ├── dualWrap.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ExportAccountWrap.tsx │ │ │ │ │ ├── ForceWithdrawConfirm.tsx │ │ │ │ │ ├── ForceWithdrawWrap.tsx │ │ │ │ │ ├── ImportCollectionWrap.tsx │ │ │ │ │ ├── ImportRedPacketWrap.tsx │ │ │ │ │ ├── Interface.ts │ │ │ │ │ ├── MintAdvanceNFTWrap.tsx │ │ │ │ │ ├── MintNFTBlock.tsx │ │ │ │ │ ├── MintNFTConfirm.tsx │ │ │ │ │ ├── RampConfirm.tsx │ │ │ │ │ ├── ResetWrap.tsx │ │ │ │ │ ├── Styled.ts │ │ │ │ │ ├── SwapWrap/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── SwapMenuList.tsx │ │ │ │ │ │ ├── SwapTradeWrap.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── TargetRedpacketWrap.tsx │ │ │ │ │ ├── TransferConfirm.tsx │ │ │ │ │ ├── TransferNFTBurn.tsx │ │ │ │ │ ├── TransferWrap.tsx │ │ │ │ │ ├── VaultWrap/ │ │ │ │ │ │ ├── Interface.ts │ │ │ │ │ │ ├── VaultBorrow.tsx │ │ │ │ │ │ ├── VaultJoin.tsx │ │ │ │ │ │ ├── VaultRepay.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── styled.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── WithdrawConfirm.tsx │ │ │ │ │ ├── WithdrawWrap.tsx │ │ │ │ │ ├── hook/ │ │ │ │ │ │ ├── BasicACoinPanelHook.tsx │ │ │ │ │ │ └── useAddressType.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── tool/ │ │ │ │ │ ├── Dialogs.tsx │ │ │ │ │ ├── FeeList.tsx │ │ │ │ │ ├── Property.tsx │ │ │ │ │ ├── Refresh.tsx │ │ │ │ │ ├── SlippagePanel.tsx │ │ │ │ │ ├── ToolBarItems.tsx │ │ │ │ │ ├── TradeMenuList.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ └── tradePro/ │ │ │ │ ├── Interface.ts │ │ │ │ ├── hookCommon.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── limitTrade.tsx │ │ │ │ ├── marketTrade.tsx │ │ │ │ └── stopLimitTrade.tsx │ │ │ ├── index.ts │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ ├── setupTests.ts │ │ │ ├── sharedPages/ │ │ │ │ ├── VaultPage/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── DashBoardPanel.tsx │ │ │ │ │ │ ├── HomePanel.tsx │ │ │ │ │ │ ├── ModalWrap.tsx │ │ │ │ │ │ ├── TradePanel.tsx │ │ │ │ │ │ ├── VaultPageUI.tsx │ │ │ │ │ │ ├── VaultSwapView.tsx │ │ │ │ │ │ ├── modals.tsx │ │ │ │ │ │ └── useVaultSwapExtends.tsx │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── useModals.ts │ │ │ │ │ │ ├── useVaultDashBoard.tsx │ │ │ │ │ │ ├── useVaultMarket.ts │ │ │ │ │ │ ├── useVaultPage.ts │ │ │ │ │ │ └── useVaultSwap.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── interface.ts │ │ │ │ │ └── utils.ts │ │ │ │ └── index.ts │ │ │ ├── static.ts │ │ │ ├── stores/ │ │ │ │ ├── index.ts │ │ │ │ └── reducer/ │ │ │ │ ├── modals/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ └── reducer.ts │ │ │ │ ├── settings/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ └── reducer.ts │ │ │ │ └── toggle/ │ │ │ │ ├── hook.ts │ │ │ │ ├── index.ts │ │ │ │ ├── interface.ts │ │ │ │ └── reducer.ts │ │ │ ├── types/ │ │ │ │ └── lib.ts │ │ │ └── utils/ │ │ │ └── closureAnnouncementUtils.ts │ │ ├── tsconfig.json │ │ └── tsconfig.test.json │ ├── core/ │ │ ├── .babelrc │ │ ├── .eslintignore │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── README.md │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── TimeoutCheckProvider.tsx │ │ │ ├── abi/ │ │ │ │ ├── erc20ABI.ts │ │ │ │ ├── index.ts │ │ │ │ └── taikoDepositABI.ts │ │ │ ├── api_wrapper/ │ │ │ │ ├── index.ts │ │ │ │ └── wallet.ts │ │ │ ├── component/ │ │ │ │ ├── BtnConnect.tsx │ │ │ │ ├── NotificationItem.tsx │ │ │ │ ├── index.ts │ │ │ │ └── styled.ts │ │ │ ├── defs/ │ │ │ │ └── index.ts │ │ │ ├── hookConnect.tsx │ │ │ ├── hooks/ │ │ │ │ ├── common/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAddrCheck.ts │ │ │ │ │ ├── useAllowances.ts │ │ │ │ │ ├── useBtnStatus.ts │ │ │ │ │ ├── useCollectionImport.ts │ │ │ │ │ ├── useCollectionManage.ts │ │ │ │ │ ├── useDebounce.ts │ │ │ │ │ ├── useGetOrderHistorys.ts │ │ │ │ │ ├── useHookBtn.ts │ │ │ │ │ ├── useInjectWeb3Modal.ts │ │ │ │ │ ├── useIsHebao.ts │ │ │ │ │ ├── useMarket.ts │ │ │ │ │ ├── useMyCollection.ts │ │ │ │ │ ├── useMyNFTCollection.ts │ │ │ │ │ ├── useNFT.tsx │ │ │ │ │ ├── useNotification.ts │ │ │ │ │ ├── usePairMatch.ts │ │ │ │ │ ├── useThrottle.ts │ │ │ │ │ ├── useToast.ts │ │ │ │ │ ├── useTrade.ts │ │ │ │ │ └── useUserWallets.ts │ │ │ │ ├── help/ │ │ │ │ │ ├── coinPairInit.ts │ │ │ │ │ ├── connectStatusCallback.tsx │ │ │ │ │ ├── formatPrice.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── makeCache.ts │ │ │ │ │ ├── makeDefiSideStaking.ts │ │ │ │ │ ├── makeDual.ts │ │ │ │ │ ├── makeInvest.ts │ │ │ │ │ ├── makeMarketTrend.ts │ │ │ │ │ ├── makeTickView.ts │ │ │ │ │ ├── makeUIAmmActivityMap.ts │ │ │ │ │ ├── makeWallet.ts │ │ │ │ │ ├── marketPairHelp.ts │ │ │ │ │ ├── marketRedPacket.ts │ │ │ │ │ ├── marketTable.ts │ │ │ │ │ ├── parseRabbitConfig.ts │ │ │ │ │ ├── providorConnect.ts │ │ │ │ │ ├── useAmmTotalValue.ts │ │ │ │ │ └── volumeToCount.ts │ │ │ │ ├── index.ts │ │ │ │ ├── rooters/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useLocationChange.ts │ │ │ │ └── useractions/ │ │ │ │ ├── hookAmmCommon.ts │ │ │ │ ├── hookAmmExit.ts │ │ │ │ ├── hookAmmJoin.ts │ │ │ │ ├── hookSwap.ts │ │ │ │ ├── index.ts │ │ │ │ ├── useAccountModal.ts │ │ │ │ ├── useActiveAccount.ts │ │ │ │ ├── useBanxaConfirm.ts │ │ │ │ ├── useBtrade.ts │ │ │ │ ├── useCheckAccStatus.tsx │ │ │ │ ├── useClaimConfirm.ts │ │ │ │ ├── useCoinbaseWalletPassword.ts │ │ │ │ ├── useCollectionAdvanceMeta.ts │ │ │ │ ├── useContact.ts │ │ │ │ ├── useContactAdd.tsx │ │ │ │ ├── useCreateRedPacket.ts │ │ │ │ ├── useDefiTrade.ts │ │ │ │ ├── useDeposit.ts │ │ │ │ ├── useDualEdit.ts │ │ │ │ ├── useDualTrade.ts │ │ │ │ ├── useEditCollection.tsx │ │ │ │ ├── useExportAccount.ts │ │ │ │ ├── useForceWithdraw.ts │ │ │ │ ├── useNFTBurn.ts │ │ │ │ ├── useNFTDeploy.ts │ │ │ │ ├── useNFTDeposit.ts │ │ │ │ ├── useNFTMintAdvance.ts │ │ │ │ ├── useNFTTransfer.ts │ │ │ │ ├── useNFTWithdraw.ts │ │ │ │ ├── useRampConfirm.ts │ │ │ │ ├── useRedpacket.ts │ │ │ │ ├── useReset.ts │ │ │ │ ├── useStakeTrade.ts │ │ │ │ ├── useStakeTradeExit.ts │ │ │ │ ├── useStakingAprTrend.ts │ │ │ │ ├── useTaikoLock.ts │ │ │ │ ├── useTransfer.ts │ │ │ │ ├── useTransferToTaikoAccount.ts │ │ │ │ ├── useUpdateAccount.ts │ │ │ │ ├── useVendor.ts │ │ │ │ ├── useWithdraw.ts │ │ │ │ └── vault/ │ │ │ │ ├── index.ts │ │ │ │ ├── useAccountInfo.ts │ │ │ │ ├── useVaultBorrow.ts │ │ │ │ ├── useVaultJoin.ts │ │ │ │ ├── useVaultLoan.ts │ │ │ │ ├── useVaultRedeem.ts │ │ │ │ ├── useVaultRepay.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ ├── modal/ │ │ │ │ ├── AccountL1Modal/ │ │ │ │ │ ├── hook.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── AccountModal/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── NFTDetail.tsx │ │ │ │ │ │ └── QRCodeScanner.tsx │ │ │ │ │ ├── hook.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── AmmPoolModal/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── ammPanel.tsx │ │ │ │ │ │ ├── ammRecordPanel.tsx │ │ │ │ │ │ └── chartAndInfo.tsx │ │ │ │ │ ├── hooks.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── DualModal/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── RedPacketModal/ │ │ │ │ │ ├── hook.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── WalletModal/ │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ ├── services/ │ │ │ │ ├── account/ │ │ │ │ │ ├── accountServices.ts │ │ │ │ │ ├── activateAccount.ts │ │ │ │ │ ├── checkAccount.ts │ │ │ │ │ ├── command.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── lockAccount.ts │ │ │ │ │ ├── networkUpdate.ts │ │ │ │ │ ├── resetAccount.ts │ │ │ │ │ ├── unlockAccount.ts │ │ │ │ │ └── useAccountHook.ts │ │ │ │ ├── banxa/ │ │ │ │ │ ├── banxaService.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── offFaitService.ts │ │ │ │ ├── claimServices/ │ │ │ │ │ ├── claimServices.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── collectionServices/ │ │ │ │ │ ├── collectionService.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── connect/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useConnectHook.ts │ │ │ │ ├── depositServices/ │ │ │ │ │ ├── depositServices.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── fee/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useChargeFees.ts │ │ │ │ ├── index.ts │ │ │ │ ├── ipfs/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── ipfsService.ts │ │ │ │ │ └── useIpfs.ts │ │ │ │ ├── mintServices/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mintService.ts │ │ │ │ │ ├── useNFTMeta.ts │ │ │ │ │ └── useNFTMint.ts │ │ │ │ ├── qrcodeServices/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── qrCodeService.ts │ │ │ │ │ └── useQrcodeScan.ts │ │ │ │ ├── redpacket/ │ │ │ │ │ └── index.ts │ │ │ │ └── socket/ │ │ │ │ ├── hook/ │ │ │ │ │ ├── useL2CommonSocket.ts │ │ │ │ │ ├── useNotificationSocket.ts │ │ │ │ │ ├── useWalletLayer2Socket.ts │ │ │ │ │ └── useWalletLayer2WithNFTSocket.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services/ │ │ │ │ │ ├── ammPoolService.ts │ │ │ │ │ ├── bookService.ts │ │ │ │ │ ├── btradeOrderbookService.ts │ │ │ │ │ ├── l2CommonService.ts │ │ │ │ │ ├── mixorderService.ts │ │ │ │ │ ├── mixtradeService.ts │ │ │ │ │ ├── notificationService.ts │ │ │ │ │ ├── orderbookService.ts │ │ │ │ │ ├── tickerService.ts │ │ │ │ │ ├── tradeService.ts │ │ │ │ │ └── walletLayer2Service.ts │ │ │ │ └── socketUtil.ts │ │ │ ├── storage/ │ │ │ │ └── index.ts │ │ │ ├── stores/ │ │ │ │ ├── Amm/ │ │ │ │ │ ├── AmmActivityMap/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ ├── AmmMap/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── account/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── amount/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── config/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ └── reducer.ts │ │ │ │ ├── contacts/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── global/ │ │ │ │ │ └── actions.ts │ │ │ │ ├── index.ts │ │ │ │ ├── invest/ │ │ │ │ │ ├── BtradeMap/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ ├── DefiMap/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ ├── DualMap/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ ├── InvestTokenTypeMap/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ ├── StakingMap/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ ├── VaultMap/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ ├── VaultTicker/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── localStore/ │ │ │ │ │ ├── coinbaseSmartWalletPersist/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── confirmation/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── favoriteMarket/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── favoriteVaultMarket/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── layer1Store/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── reducer.ts │ │ │ │ │ │ └── saga.ts │ │ │ │ │ ├── nftRefresh/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── offRamp/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── onchainHashInfo/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── redPacket/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── tradeProSettings/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ └── walletInfo/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ └── reducer.ts │ │ │ │ ├── notify/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── redPacket/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── rootSaga.ts │ │ │ │ ├── router/ │ │ │ │ │ ├── amm/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── modals/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── tradeBtrade/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── tradeDefi/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── tradeDual/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── tradeLite/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── tradePro/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ ├── tradeStake/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ │ └── tradeVault/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ └── reducer.ts │ │ │ │ ├── socket/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── system/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── targetRedpackt/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── ticker/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── token/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── tokenPrices/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── userRewards/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── vaultLayer2/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── walletL2Collection/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── walletL2NFTCollection/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── walletLayer1/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ ├── walletLayer2/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interface.ts │ │ │ │ │ ├── reducer.ts │ │ │ │ │ └── saga.ts │ │ │ │ └── walletLayer2NFT/ │ │ │ │ ├── hook.ts │ │ │ │ ├── index.ts │ │ │ │ ├── interface.ts │ │ │ │ ├── reducer.ts │ │ │ │ └── saga.ts │ │ │ ├── types.d.ts │ │ │ └── utils/ │ │ │ ├── .gitignore │ │ │ ├── AESMd5.ts │ │ │ ├── address.ts │ │ │ ├── addressTypeMap.ts │ │ │ ├── calculation.ts │ │ │ ├── coinbaseSmartWallet.ts │ │ │ ├── decimal.ts │ │ │ ├── dt_tools.ts │ │ │ ├── feeInfo.ts │ │ │ ├── formatter_tool.ts │ │ │ ├── genAvatar.ts │ │ │ ├── getStateFnState.ts │ │ │ ├── index.ts │ │ │ ├── makeMeta.ts │ │ │ ├── numberFormat.ts │ │ │ ├── promise.ts │ │ │ ├── readFileQrcode.ts │ │ │ ├── retry.ts │ │ │ ├── swap_utils.ts │ │ │ ├── tryFn.ts │ │ │ ├── validation.ts │ │ │ ├── waitForTx.ts │ │ │ └── web3_tools.ts │ │ ├── tsconfig.json │ │ └── tsconfig.test.json │ ├── web-bridge/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── README.md │ │ ├── craco.config.js │ │ ├── electron-builder.env │ │ ├── generate-react-cli.json │ │ ├── jest.config.js │ │ ├── jest.setup.js │ │ ├── package.json │ │ ├── public/ │ │ │ ├── electron.js │ │ │ ├── index.html │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── hook.ts │ │ │ ├── hookAccountInit.ts │ │ │ ├── index.tsx │ │ │ ├── layouts/ │ │ │ │ ├── footer/ │ │ │ │ │ └── index.tsx │ │ │ │ └── header/ │ │ │ │ ├── hook.tsx │ │ │ │ └── index.tsx │ │ │ ├── pages/ │ │ │ │ ├── DepositPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ErrorPage/ │ │ │ │ │ └── index.tsx │ │ │ │ └── LoadingPage/ │ │ │ │ └── index.tsx │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ ├── routers/ │ │ │ │ └── index.tsx │ │ │ ├── setupTests.ts │ │ │ └── types.d.ts │ │ └── tsconfig.json │ ├── web-developer/ │ │ └── public/ │ │ ├── badge.xml │ │ ├── browserconfig.xml │ │ ├── dark.css │ │ ├── developer.css │ │ ├── developer.js │ │ ├── developer.scss │ │ ├── footer.jsx │ │ ├── index.html │ │ ├── light.css │ │ ├── manifest.json │ │ ├── reset.css │ │ ├── robots.txt │ │ └── vercel.json │ ├── web-earn/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── ADD_NEW_CHAIN.md │ │ ├── README.md │ │ ├── craco.config.js │ │ ├── electron-builder.env │ │ ├── generate-react-cli.json │ │ ├── jest.config.js │ │ ├── jest.setup.js │ │ ├── package.json │ │ ├── public/ │ │ │ ├── badge.xml │ │ │ ├── browserconfig.xml │ │ │ ├── electron.js │ │ │ ├── index.html │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── constant/ │ │ │ │ ├── index.ts │ │ │ │ ├── router.ts │ │ │ │ └── setting.ts │ │ │ ├── hook.ts │ │ │ ├── hookAccountInit.ts │ │ │ ├── index.tsx │ │ │ ├── layouts/ │ │ │ │ ├── footer/ │ │ │ │ │ └── index.tsx │ │ │ │ └── header/ │ │ │ │ ├── hook.tsx │ │ │ │ └── index.tsx │ │ │ ├── pages/ │ │ │ │ ├── AssetPage/ │ │ │ │ │ ├── AssetPanel/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── HistoryPanel/ │ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── useDualAsset.tsx │ │ │ │ │ ├── RewardsPanel/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── BtradeSwapPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EarnPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ErrorPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── IntroPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── InvestPage/ │ │ │ │ │ ├── DeFiPanel/ │ │ │ │ │ │ ├── DeFiTradePanel.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── DualPanel/ │ │ │ │ │ │ ├── BeginnerMode.tsx │ │ │ │ │ │ ├── ChooseDualType.tsx │ │ │ │ │ │ ├── DualListPanel.tsx │ │ │ │ │ │ └── hook.ts │ │ │ │ │ ├── LeverageETHPanel/ │ │ │ │ │ │ ├── TradePanel.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── MyLiquidityPanel/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── interface.ts │ │ │ │ │ ├── OverviewPanel/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── PoolsPanel/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Layer2Page/ │ │ │ │ │ ├── ContactPanel/ │ │ │ │ │ │ ├── delete.tsx │ │ │ │ │ │ ├── history.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ForcewithdrawPanel/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ReferralRewardsPanel/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── SecurityPanel/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── VipPanel/ │ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── LoadingPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── MarkdownPage/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── investMarkdown.tsx │ │ │ │ │ └── notifyMarkdown.tsx │ │ │ │ ├── QuotePage/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useMaket.ts │ │ │ │ ├── TaikoLockPage/ │ │ │ │ │ ├── BannerPage.tsx │ │ │ │ │ ├── LogInToCleanLrTaiko.tsx │ │ │ │ │ ├── MintRedeemModal.tsx │ │ │ │ │ ├── PendingTxsModal.tsx │ │ │ │ │ ├── TaikoLockInput.tsx │ │ │ │ │ ├── TxSubmitModal.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── TradeRacePage/ │ │ │ │ ├── hook.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── interface.ts │ │ │ │ ├── rank.tsx │ │ │ │ └── snow.css │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ ├── routers/ │ │ │ │ └── index.tsx │ │ │ ├── setupTests.ts │ │ │ └── types.d.ts │ │ └── tsconfig.json │ ├── web-guardian/ │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── README.md │ │ ├── craco.config.js │ │ ├── electron-builder.env │ │ ├── generate-react-cli.json │ │ ├── jest.config.js │ │ ├── jest.setup.js │ │ ├── package.json │ │ ├── public/ │ │ │ ├── electron.js │ │ │ ├── index.html │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── common.ts │ │ │ ├── hook.ts │ │ │ ├── hookAccountInit.ts │ │ │ ├── index.tsx │ │ │ ├── layouts/ │ │ │ │ ├── footer/ │ │ │ │ │ └── index.tsx │ │ │ │ └── header/ │ │ │ │ ├── hook.tsx │ │ │ │ └── index.tsx │ │ │ ├── pages/ │ │ │ │ ├── ErrorPage/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── LoadingPage/ │ │ │ │ │ └── index.tsx │ │ │ │ └── WalletPage/ │ │ │ │ ├── GuardianModal.tsx │ │ │ │ ├── WalletHistory.tsx │ │ │ │ ├── WalletProtector.tsx │ │ │ │ ├── WalletValidationInfo.tsx │ │ │ │ ├── hook.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── modal/ │ │ │ │ │ └── index.tsx │ │ │ │ └── utils.ts │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ ├── routers/ │ │ │ │ └── index.tsx │ │ │ ├── setupTests.ts │ │ │ └── types.d.ts │ │ └── tsconfig.json │ ├── web-wallet/ │ │ └── public/ │ │ ├── badge.xml │ │ ├── browserconfig.xml │ │ ├── electron.js │ │ ├── footer.jsx │ │ ├── index.html │ │ ├── manifest.json │ │ ├── reset.css │ │ ├── robots.txt │ │ ├── wallet.css │ │ ├── wallet.js │ │ ├── wallet.scss │ │ ├── wallet_dark.css │ │ └── wallet_light.css │ └── webapp/ │ ├── .babelrc │ ├── .eslintrc.json │ ├── .gitignore │ ├── ADD_NEW_CHAIN.md │ ├── README.md │ ├── craco.config.js │ ├── electron-builder.env │ ├── generate-react-cli.json │ ├── jest.config.js │ ├── jest.setup.js │ ├── package.json │ ├── public/ │ │ ├── badge.xml │ │ ├── browserconfig.xml │ │ ├── electron.js │ │ ├── index.html │ │ ├── manifest.json │ │ └── robots.txt │ ├── src/ │ │ ├── App.tsx │ │ ├── hook.ts │ │ ├── hookAccountInit.ts │ │ ├── index.tsx │ │ ├── layouts/ │ │ │ ├── footer/ │ │ │ │ └── index.tsx │ │ │ └── header/ │ │ │ ├── hook.tsx │ │ │ └── index.tsx │ │ ├── pages/ │ │ │ ├── AssetPage/ │ │ │ │ ├── AssetPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── HistoryPanel/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useDualAsset.tsx │ │ │ │ ├── RewardsPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── BtradeSwapPage/ │ │ │ │ └── index.tsx │ │ │ ├── ErrorPage/ │ │ │ │ └── index.tsx │ │ │ ├── FiatPage/ │ │ │ │ └── index.tsx │ │ │ ├── InvestPage/ │ │ │ │ ├── DeFiPanel/ │ │ │ │ │ ├── DeFiTradePanel.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── DualPanel/ │ │ │ │ │ ├── BeginnerMode.tsx │ │ │ │ │ ├── ChooseDualType.tsx │ │ │ │ │ ├── DualListPanel.tsx │ │ │ │ │ └── hook.tsx │ │ │ │ ├── LeverageETHPanel/ │ │ │ │ │ ├── TradePanel.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── MyLiquidityPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── interface.ts │ │ │ │ ├── OverviewPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── PoolsPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── StakePanel/ │ │ │ │ │ └── StackTradePanel.tsx │ │ │ │ └── index.tsx │ │ │ ├── LandPage/ │ │ │ │ ├── Card.tsx │ │ │ │ ├── HomePage.tsx │ │ │ │ ├── LandPage.tsx │ │ │ │ ├── WalletPage.tsx │ │ │ │ ├── coins.json │ │ │ │ ├── index.ts │ │ │ │ └── style.tsx │ │ │ ├── Layer2Page/ │ │ │ │ ├── ContactPanel/ │ │ │ │ │ ├── delete.tsx │ │ │ │ │ ├── history.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ForcewithdrawPanel/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── Notification/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── ReferralRewardsPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── SecurityPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── VipPanel/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── LoadingPage/ │ │ │ │ └── index.tsx │ │ │ ├── MarkdownPage/ │ │ │ │ ├── index.tsx │ │ │ │ ├── investMarkdown.tsx │ │ │ │ └── notifyMarkdown.tsx │ │ │ ├── MiningPage/ │ │ │ │ ├── hook.ts │ │ │ │ └── index.tsx │ │ │ ├── NFTPage/ │ │ │ │ ├── CollectionPanel/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── EditCollectionPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── ImportCollectionPanel/ │ │ │ │ │ ├── CollectionManage.tsx │ │ │ │ │ ├── ImportCollection.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── MintNFTPanel/ │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── metaNFTPanel.tsx │ │ │ │ ├── MyNFT/ │ │ │ │ │ ├── MyNFTCollectionList.tsx │ │ │ │ │ ├── MyNFTList.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useMyNFT.ts │ │ │ │ ├── NFTDeposit/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── NFThistory/ │ │ │ │ │ ├── hookHistory.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── CollectionItemPanel.tsx │ │ │ │ │ ├── landingPanel.tsx │ │ │ │ │ ├── titleNFTMobile.tsx │ │ │ │ │ └── usePublicNFTs.ts │ │ │ │ └── index.tsx │ │ │ ├── ProTradePage/ │ │ │ │ ├── hookPro.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── panel/ │ │ │ │ │ ├── chart/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── klineConfig.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── market/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── orderTable/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── spot/ │ │ │ │ │ │ ├── hookLimit.ts │ │ │ │ │ │ ├── hookMarket.ts │ │ │ │ │ │ ├── hookStopLimit.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── stopLimit.tsx │ │ │ │ │ ├── toolbar/ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── walletInfo/ │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── stopLimitInfo.tsx │ │ │ │ ├── proService.ts │ │ │ │ └── stopLimtPage.tsx │ │ │ ├── QuotePage/ │ │ │ │ ├── hook.ts │ │ │ │ ├── index.tsx │ │ │ │ └── useMaket.ts │ │ │ ├── RedPacketPage/ │ │ │ │ ├── CreateRedPacketPanel/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── MyRedPacketPanel/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── RedPacketClaimPanel/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── RedPacketMarketPanel/ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── SwapPage/ │ │ │ │ └── index.tsx │ │ │ └── TradeRacePage/ │ │ │ ├── hook.ts │ │ │ ├── index.tsx │ │ │ ├── interface.ts │ │ │ ├── rank.tsx │ │ │ └── snow.css │ │ ├── react-app-env.d.ts │ │ ├── reportWebVitals.ts │ │ ├── routers/ │ │ │ └── index.tsx │ │ ├── setupTests.ts │ │ └── types.d.ts │ └── tsconfig.json ├── tsconfig.build.json └── tsconfig.json
SYMBOL INDEX (1571 symbols across 491 files)
FILE: craco.config.cjs
constant ASSET_PATH (line 7) | const ASSET_PATH = process.env.ASSET_PATH || '/'
FILE: packages/common-resources/scripts/get_imgs.py
function gen_imgs (line 24) | def gen_imgs(tokenMap):
function fetch_zapper (line 109) | def fetch_zapper():
FILE: packages/common-resources/static-resources/src/constant/account.ts
type AccountStatus (line 5) | enum AccountStatus {
type fnType (line 16) | enum fnType {
type Account (line 28) | type Account = {
type AccountState (line 54) | type AccountState = Account & StateBase
type AccountFull (line 55) | type AccountFull = {
type AssetsRawDataItem (line 61) | type AssetsRawDataItem = {
FILE: packages/common-resources/static-resources/src/constant/chart.ts
type ChartType (line 1) | enum ChartType {
type ChartUnit (line 7) | enum ChartUnit {
FILE: packages/common-resources/static-resources/src/constant/market.ts
type FloatTag (line 1) | enum FloatTag {
type MarketType (line 7) | type MarketType = `${string}-${string}`
type AMMMarketType (line 8) | type AMMMarketType = `AMM-${string}-${string}`
type LPTokenType (line 9) | type LPTokenType = `LP-${string}-${string}`
FILE: packages/common-resources/static-resources/src/constant/networks.ts
constant SUPPORTING_NETWORKS (line 2) | const SUPPORTING_NETWORKS = process.env.REACT_APP_CHAIN_IDS!.split(',')
FILE: packages/common-resources/static-resources/src/constant/notification.ts
type NOTIFY_COLOR (line 17) | enum NOTIFY_COLOR {
type INVEST_ITEM (line 24) | type INVEST_ITEM = {
type NOTIFICATION_ITEM (line 36) | type NOTIFICATION_ITEM = {
type ACTIVITY (line 59) | type ACTIVITY = NOTIFICATION_ITEM
type CAMPAIGN_TAG (line 60) | type CAMPAIGN_TAG = {
type SCENARIO (line 76) | enum SCENARIO {
type CAMPAIGNTAGCONFIG (line 84) | type CAMPAIGNTAGCONFIG = {
type RedPacketConfig (line 87) | type RedPacketConfig = {
type NOTIFICATION (line 93) | type NOTIFICATION = {
type Notify (line 111) | type Notify = Omit<NOTIFICATION, 'prev'>
type NOTIFICATIONHEADER (line 112) | type NOTIFICATIONHEADER<N> = {
FILE: packages/common-resources/static-resources/src/constant/proLayout.ts
type LayoutConfig (line 3) | enum LayoutConfig {
type BreakPoint (line 11) | enum BreakPoint {
type ConfigLayout (line 20) | type ConfigLayout<P = typeof BreakPoint> = {
type LayoutConfigInfo (line 150) | type LayoutConfigInfo = {
FILE: packages/common-resources/static-resources/src/constant/router.ts
constant FEED_BACK_LINK (line 35) | const FEED_BACK_LINK = 'https://desk.zoho.com/portal/loopring/en/home'
constant GUARDIAN_URL (line 38) | const GUARDIAN_URL = 'https://guardian.loopring.io'
constant IPFS_LOOPRING_URL (line 41) | const IPFS_LOOPRING_URL = `${LoopringIPFSSiteProtocol}://${LoopringIPFSS...
constant IPFS_HEAD_URL (line 42) | const IPFS_HEAD_URL = 'ipfs://'
constant IPFS_HEAD_URL_REG (line 43) | const IPFS_HEAD_URL_REG = /^ipfs:\/\/(ipfs\/)?/i
constant IPFS_LOOPRING_SITE (line 44) | const IPFS_LOOPRING_SITE = 'https://ipfs.loopring.io/ipfs/' // sdk.LOOPR...
constant BANXA_URLS (line 45) | const BANXA_URLS = {
constant LOOPRING_DOCUMENT (line 49) | const LOOPRING_DOCUMENT = 'https://loopring.io/#/document/'
type RouterPath (line 51) | enum RouterPath {
type InvestType (line 73) | enum InvestType {
type Layer2RouterID (line 93) | enum Layer2RouterID {
type ButtonComponentsMap (line 153) | enum ButtonComponentsMap {
type RouterMainKey (line 268) | enum RouterMainKey {
type NFTSubRouter (line 285) | enum NFTSubRouter {
type VaultKey (line 348) | enum VaultKey {
constant INVEST_TABS (line 538) | const INVEST_TABS = [
constant DEFI_CONFIG (line 547) | const DEFI_CONFIG = {
constant LEVERAGE_ETH_CONFIG (line 569) | const LEVERAGE_ETH_CONFIG = {
constant DUAL_CONFIG (line 613) | const DUAL_CONFIG = {
constant FOOTER_LIST_MAP (line 660) | const FOOTER_LIST_MAP = {
constant MEDIA_LIST (line 696) | const MEDIA_LIST = [
constant DEFI_ADVICE_MAP (line 848) | const DEFI_ADVICE_MAP = {
type RecordTabIndex (line 854) | enum RecordTabIndex {
type AssetTabIndex (line 869) | enum AssetTabIndex {
type RedPacketRouterIndex (line 876) | enum RedPacketRouterIndex {
type RedPacketRecordsTabIndex (line 881) | enum RedPacketRecordsTabIndex {
type TabOrderIndex (line 892) | enum TabOrderIndex {
constant L1L2_NAME_DEFINED (line 1577) | const L1L2_NAME_DEFINED = {
constant SPECIAL_ACTIVATION_NETWORKS (line 1668) | const SPECIAL_ACTIVATION_NETWORKS = [
FILE: packages/common-resources/static-resources/src/constant/sagaStatus.ts
type SagaStatus (line 3) | enum SagaStatus {
type StateBase (line 10) | type StateBase = {
FILE: packages/common-resources/static-resources/src/constant/setting.ts
type UpColor (line 6) | enum UpColor {
type RowConfigType (line 12) | type RowConfigType = {
constant HEADER_HEIGHT (line 41) | const HEADER_HEIGHT = 64
constant LOOPRING_DOC (line 59) | const LOOPRING_DOC = 'https://docs.loopring.io'
constant YEAR_FROMATE (line 61) | const YEAR_FROMATE = 'YYYY'
constant DAY_FORMAT (line 62) | const DAY_FORMAT = 'MM/DD'
constant MINUTE_FORMAT (line 63) | const MINUTE_FORMAT = 'HH:mm'
constant DAY_MINUTE_FORMAT (line 64) | const DAY_MINUTE_FORMAT = `${DAY_FORMAT} ${MINUTE_FORMAT}`
constant DAT_STRING_FORMAT (line 65) | const DAT_STRING_FORMAT = 'MMM DD [UTC]Z'
constant DAT_STRING_FORMAT_S (line 66) | const DAT_STRING_FORMAT_S = 'MMM DD'
constant SECOND_FORMAT (line 68) | const SECOND_FORMAT = `${MINUTE_FORMAT}:ss`
constant YEAR_DAY_FORMAT (line 69) | const YEAR_DAY_FORMAT = `${YEAR_FROMATE}/${DAY_FORMAT}`
constant YEAR_DAY_MINUTE_FORMAT (line 70) | const YEAR_DAY_MINUTE_FORMAT = `${YEAR_DAY_FORMAT} ${MINUTE_FORMAT}`
constant YEAR_DAY_SECOND_FORMAT (line 71) | const YEAR_DAY_SECOND_FORMAT = `${YEAR_DAY_FORMAT} ${SECOND_FORMAT}`
constant MINT_STRING_FORMAT (line 72) | const MINT_STRING_FORMAT = `${MINUTE_FORMAT} ${DAT_STRING_FORMAT}`
constant UNIX_TIMESTAMP_FORMAT (line 73) | const UNIX_TIMESTAMP_FORMAT = 'x'
type TradeBtnStatus (line 105) | enum TradeBtnStatus {
constant HEBAO_CONTRACT_MAP (line 207) | const HEBAO_CONTRACT_MAP = [
type ContactType (line 216) | type ContactType = Pick<sdk.GetContactsResponse, 'contacts'>['contacts'][0]
type CoinSource (line 218) | type CoinSource = {
type TableFilterParams (line 230) | enum TableFilterParams {
type Contact (line 236) | type Contact = {
type ToastType (line 243) | enum ToastType {
constant SEND_TO_TAIKO_NETWORK_MAP (line 250) | const SEND_TO_TAIKO_NETWORK_MAP = new Map([
constant CHAIN_ID_TO_VIEW_CHAIN (line 255) | const CHAIN_ID_TO_VIEW_CHAIN = new Map<sdk.ChainId, Chain>([
FILE: packages/common-resources/static-resources/src/constant/social.ts
type SOCIAL_NAME_KEYS (line 9) | enum SOCIAL_NAME_KEYS {
constant SOCIAL_COMPONENT_MAP (line 22) | const SOCIAL_COMPONENT_MAP = {
constant SOCIAL_LIST (line 60) | const SOCIAL_LIST = [
FILE: packages/common-resources/static-resources/src/constant/table.ts
type TableType (line 1) | enum TableType {
FILE: packages/common-resources/static-resources/src/constant/tokenConfig.ts
constant SPECIAL_TOKEN_NAME_MAP (line 1) | const SPECIAL_TOKEN_NAME_MAP = new Map(
constant WITHDRAW_TOKEN_FILTER_LIST (line 8) | const WITHDRAW_TOKEN_FILTER_LIST = ['LRTAIKO']
FILE: packages/common-resources/static-resources/src/constant/trade.ts
type DeFiChgType (line 14) | enum DeFiChgType {
type WithdrawType (line 20) | type WithdrawType =
type WithdrawTypes (line 25) | type WithdrawTypes = {
type CurrencyToTag (line 34) | enum CurrencyToTag {
type PriceTag (line 46) | enum PriceTag {
type TradeTypes (line 58) | enum TradeTypes {
type TradeStatus (line 63) | enum TradeStatus {
type TxInfo (line 75) | type TxInfo = {
type AccountHashInfo (line 82) | interface AccountHashInfo {
type NFTHashInfo (line 88) | interface NFTHashInfo {
type Layer1Action (line 92) | enum Layer1Action {
type Layer1ActionHistory (line 98) | type Layer1ActionHistory = {
type ChainHashInfos (line 105) | type ChainHashInfos = {
type NFTHashInfos (line 109) | type NFTHashInfos = {
type LAYER1_ACTION_HISTORY (line 112) | type LAYER1_ACTION_HISTORY = {
type MetaProperty (line 116) | type MetaProperty = {
type MetaDataProperty (line 120) | type MetaDataProperty = { [key: string]: string }
type AttributesProperty (line 121) | type AttributesProperty = {
type NFTMETA (line 126) | type NFTMETA = {
type Media (line 137) | enum Media {
type NFTWholeINFO (line 144) | type NFTWholeINFO<Co = CollectionMeta> = sdk.NFTTokenInfo &
type MintTradeNFT (line 162) | type MintTradeNFT<I> = {
type MintReadTradeNFT (line 173) | type MintReadTradeNFT<I> = {
type TradeNFT (line 184) | type TradeNFT<I, Co> = MintTradeNFT<I> &
type NFT_TYPE_STRING (line 190) | enum NFT_TYPE_STRING {
constant DEAULT_NFTID_STRING (line 197) | const DEAULT_NFTID_STRING =
constant MINT_LIMIT (line 199) | const MINT_LIMIT = 100000
constant SUBMIT_PANEL_CHECK (line 200) | const SUBMIT_PANEL_CHECK = 1000
constant SUBMIT_PANEL_AUTO_CLOSE (line 201) | const SUBMIT_PANEL_AUTO_CLOSE = 8000
constant SUBMIT_PANEL_QUICK_AUTO_CLOSE (line 202) | const SUBMIT_PANEL_QUICK_AUTO_CLOSE = 3000
constant SUBMIT_PANEL_DOUBLE_QUICK_AUTO_CLOSE (line 203) | const SUBMIT_PANEL_DOUBLE_QUICK_AUTO_CLOSE = 1000
constant TOAST_TIME (line 204) | const TOAST_TIME = 3000
constant PROPERTY_LIMIT (line 206) | const PROPERTY_LIMIT = 64
constant PROPERTY_KET_LIMIT (line 207) | const PROPERTY_KET_LIMIT = 20
constant STAKING_INVEST_LIMIT (line 208) | const STAKING_INVEST_LIMIT = 5
constant REDPACKET_ORDER_LIMIT (line 210) | const REDPACKET_ORDER_LIMIT = 10000
constant REDPACKET_ORDER_NFT_LIMIT (line 211) | const REDPACKET_ORDER_NFT_LIMIT = 20000
constant EXCLUSIVE_REDPACKET_ORDER_LIMIT_WHITELIST (line 212) | const EXCLUSIVE_REDPACKET_ORDER_LIMIT_WHITELIST = 10000
constant EXCLUSIVE_REDPACKET_ORDER_LIMIT (line 213) | const EXCLUSIVE_REDPACKET_ORDER_LIMIT = 50
constant BLINDBOX_REDPACKET_LIMIT (line 214) | const BLINDBOX_REDPACKET_LIMIT = 10000
constant VAULT_MARKET_REFRESH (line 216) | const VAULT_MARKET_REFRESH = 60000
constant LOOPRING_TAKE_NFT_META_KET (line 217) | const LOOPRING_TAKE_NFT_META_KET = {
type LOOPRING_NFT_METADATA (line 224) | type LOOPRING_NFT_METADATA = {
type SendAssetListType (line 265) | type SendAssetListType = Record<
type AddressError (line 333) | enum AddressError {
type WALLET_TYPE (line 342) | enum WALLET_TYPE {
type EXCHANGE_TYPE (line 349) | enum EXCHANGE_TYPE {
type AddressItemType (line 357) | type AddressItemType<T> = {
type ForexMap (line 368) | type ForexMap<C = CurrencyToTag> = { [k in keyof C]?: number }
type InvestMapType (line 370) | const enum InvestMapType {
type InvestAssetRouter (line 379) | const enum InvestAssetRouter {
type InvestDuration (line 396) | const enum InvestDuration {
type InvestItem (line 402) | type InvestItem = {
type InvestDetail (line 409) | type InvestDetail = {
type CreateCollectionStep (line 416) | enum CreateCollectionStep {
type TradeDefi (line 427) | type TradeDefi<C> = {
type TradeStake (line 450) | type TradeStake<C> = {
type RedeemStake (line 461) | type RedeemStake<C> = {
type L2CollectionFilter (line 472) | type L2CollectionFilter = {
type MyNFTFilter (line 478) | type MyNFTFilter = {
type MY_NFT_VIEW (line 483) | enum MY_NFT_VIEW {
constant LIVE_FEE_TIMES (line 488) | const LIVE_FEE_TIMES = 60000
constant L1_UPDATE (line 489) | const L1_UPDATE = 15000
type DualCurrentPrice (line 491) | type DualCurrentPrice = {
type DualViewBase (line 498) | type DualViewBase = {
type DualViewInfo (line 527) | type DualViewInfo = DualViewBase & {
type ClaimToken (line 534) | type ClaimToken = sdk.UserBalanceInfo & {
type DualViewOrder (line 539) | type DualViewOrder = DualViewBase & {
type TRADE_TYPE (line 545) | enum TRADE_TYPE {
type CLAIM_TYPE (line 550) | enum CLAIM_TYPE {
type BanxaOrder (line 556) | type BanxaOrder = {
constant QRCODE_REGION_ID (line 636) | const QRCODE_REGION_ID = 'qrcodeRegionId'
type ACCOUNT_ADDRESS (line 638) | type ACCOUNT_ADDRESS = string
type TX_HASH (line 639) | type TX_HASH = string
type RedPacketHashItems (line 640) | type RedPacketHashItems = {
type RedPacketHashInfo (line 647) | type RedPacketHashInfo = {
type RedPacketHashInfos (line 650) | type RedPacketHashInfos = {
type OffRampStatus (line 654) | enum OffRampStatus {
type OffRampHashItem (line 664) | type OffRampHashItem = {
type OffRampHashItemObj (line 675) | type OffRampHashItemObj = {
type OffRampHashItems (line 679) | type OffRampHashItems<T = VendorProviders> = {
type OffRampHashInfo (line 682) | type OffRampHashInfo = {
type OffRampHashInfos (line 685) | type OffRampHashInfos = {
type RedPacketOrderType (line 689) | enum RedPacketOrderType {
type RedPacketOrderData (line 696) | type RedPacketOrderData<I> = {
type TabTokenTypeIndex (line 715) | enum TabTokenTypeIndex {
type SnackbarMessage (line 720) | interface SnackbarMessage {
constant BTRDE_PRE (line 726) | const BTRDE_PRE = 'BTRADE-'
type TradeProType (line 728) | enum TradeProType {
type TradeBaseType (line 733) | enum TradeBaseType {
type AmmHistoryItem (line 743) | type AmmHistoryItem = {
type LocalStorageConfigKey (line 747) | enum LocalStorageConfigKey {
type DualStep (line 758) | enum DualStep {
type DualViewType (line 765) | enum DualViewType {
type VaultMarketExtends (line 795) | type VaultMarketExtends = { enabled: boolean | 'isFormLocal' } & Omit<
type VaultLoanType (line 804) | enum VaultLoanType {
type AmmPanelType (line 809) | enum AmmPanelType {
type DualInvestConfirmType (line 814) | enum DualInvestConfirmType {
type VaultAction (line 819) | enum VaultAction {
type VaultSwapStep (line 826) | enum VaultSwapStep {
FILE: packages/common-resources/static-resources/src/constant/vendor.ts
type VendorProviders (line 1) | enum VendorProviders {
FILE: packages/common-resources/static-resources/src/constant/walletConnector.ts
type GatewaySort (line 5) | enum GatewaySort {
FILE: packages/common-resources/static-resources/src/error/errorMap.tsx
type UIERROR_CODE (line 372) | enum UIERROR_CODE {
type ErrorObject (line 420) | type ErrorObject = {
constant SDK_ERROR_MAP_TO_UI (line 426) | const SDK_ERROR_MAP_TO_UI = {
FILE: packages/common-resources/static-resources/src/error/index.ts
type ErrorType (line 3) | type ErrorType = {
type ErrorWithCodeType (line 9) | type ErrorWithCodeType = {
class CustomError (line 17) | class CustomError extends Error {
method constructor (line 18) | constructor(error: ErrorType) {
method options (line 39) | get options(): any {
method date (line 45) | get date(): number {
method messageKey (line 51) | get messageKey(): string {
class CustomErrorWithCode (line 56) | class CustomErrorWithCode extends Error {
method constructor (line 57) | constructor(error: ErrorWithCodeType) {
method code (line 78) | get code(): number {
method options (line 84) | get options(): any {
method date (line 90) | get date(): number {
method messageKey (line 96) | get messageKey(): string {
FILE: packages/common-resources/static-resources/src/i18n/index.ts
type LanguageType (line 8) | enum LanguageType {
type languageMap (line 13) | enum languageMap {
type LanguageKeys (line 17) | type LanguageKeys = keyof typeof LanguageType
FILE: packages/common-resources/static-resources/src/loopring-interface/CoinInterface.ts
type CoinKey (line 6) | type CoinKey<R> = keyof R
type PairKey (line 7) | type PairKey<P> = keyof P
type IBData (line 9) | interface IBData<R> {
type IBDataMax (line 15) | interface IBDataMax<R> extends IBData<R> {
type CoinInfo (line 19) | interface CoinInfo<R> {
type WalletCoin (line 29) | interface WalletCoin<R> {
type CoinMap (line 36) | type CoinMap<R, I = CoinInfo<R>> = {
type FeeInfo (line 42) | interface FeeInfo {
type TokenType (line 57) | enum TokenType {
type PairMap (line 66) | type PairMap<
type WalletMap (line 77) | type WalletMap<R, I extends WalletCoin<R> = WalletCoin<R>> = {
type TradeCalcData (line 81) | type TradeCalcData<T> = {
type SwapTradeCalcData (line 114) | type SwapTradeCalcData<T> = TradeCalcData<T> & {
type BtradeType (line 137) | enum BtradeType {
type BtradeTradeCalcData (line 142) | type BtradeTradeCalcData<T> = TradeCalcData<T> & {
type VaultTradeCalcData (line 158) | type VaultTradeCalcData<T> = Omit<BtradeTradeCalcData<T>, 'btradeType' |...
type TradeCalcProData (line 170) | type TradeCalcProData<T> = {
type AmmJoinData (line 199) | type AmmJoinData<C extends IBData<I>, I = any> = {
type AmmExitData (line 209) | type AmmExitData<C extends IBData<I>, I = any> = {
type DeFiCalcData (line 218) | type DeFiCalcData<T> = {
type DeFiSideCalcData (line 225) | type DeFiSideCalcData<T, R = sdk.STACKING_PRODUCT> = {
type RedeemInfo (line 235) | type RedeemInfo = sdk.StakeInfoOrigin &
type DeFiSideRedeemCalcData (line 246) | type DeFiSideRedeemCalcData<T, _R = RedeemInfo> = {
type DualTrade (line 250) | type DualTrade<R> = IBData<R> & {
type DualCalcData (line 257) | type DualCalcData<R, B = DualTrade<any>> = sdk.CalDualResult & {
type AmmInData (line 268) | type AmmInData<T> = {
type AmmDetailBase (line 286) | type AmmDetailBase<T> = {
type AmmDetail (line 321) | type AmmDetail<T> = AmmDetailBase<T> & {
type AmmCardProps (line 334) | type AmmCardProps<T> = AmmDetail<T> & {
type AmmActivity (line 352) | type AmmActivity<I> = {
type Amount (line 367) | type Amount<T> = {
type TradeBasic (line 378) | type TradeBasic<T> = {
type Trade (line 386) | type Trade<T> = TradeBasic<T> & {
type AmmTrade (line 391) | type AmmTrade<T> = TradeBasic<T> & {
type AmmRecord (line 396) | type AmmRecord<T> = TradeBasic<T> & {
type OrderTrade (line 400) | type OrderTrade<T> = TradeBasic<T> & {
type AmmDetailExtend (line 407) | type AmmDetailExtend<ACD, T> = {
type AmmDetailExtendProps (line 411) | type AmmDetailExtendProps<ACD, T> = AmmDetailExtend<ACD, T> & {
type MyAmmLP (line 415) | type MyAmmLP<T> = {
type TradeFloat (line 444) | type TradeFloat = {
type EXPLORE_TYPE (line 461) | enum EXPLORE_TYPE {
type CollectionMeta (line 490) | type CollectionMeta = sdk.CollectionMeta & {
type CollectionMetaJSON (line 495) | type CollectionMetaJSON = {
type CollectionMetaKey (line 506) | enum CollectionMetaKey {
type MakeMeta (line 520) | type MakeMeta<Co = CollectionMeta> = (props: { collection: Co; domain: s...
type GET_IPFS_STRING (line 524) | type GET_IPFS_STRING = (url: string | undefined, basicURl: string) => st...
type RedPacketSend (line 526) | type RedPacketSend = {
type LuckyRedPacketItem (line 536) | type LuckyRedPacketItem = {
type TickerNew (line 547) | type TickerNew<R = sdk.DatacenterTokenInfoSimple> = R & {
type TickerNewMap (line 557) | type TickerNewMap<R> = {
type Ticker (line 561) | type Ticker = TradeFloat & {
type NetworkItemInfo (line 572) | type NetworkItemInfo = {
type VaultLoanData (line 584) | type VaultLoanData<T> = {
type VaultBorrowData (line 588) | type VaultBorrowData<
type VaultRepayData (line 609) | type VaultRepayData<T> = {
type VaultJoinData (line 623) | type VaultJoinData<I = any, T = IBData<I>> = {
type VaultExitData (line 642) | type VaultExitData<I = any, T = IBData<I>> = {
FILE: packages/common-resources/static-resources/src/loopring-interface/FooterInterface.ts
type FooterInterface (line 1) | type FooterInterface = {
FILE: packages/common-resources/static-resources/src/loopring-interface/HeaderInterface.ts
type HeaderMenuTabStatus (line 1) | enum HeaderMenuTabStatus {
type HeaderMenuItemInterface (line 7) | interface HeaderMenuItemInterface {
FILE: packages/common-resources/static-resources/src/loopring-interface/Investment.ts
type InvestAdvice (line 3) | type InvestAdvice = {
FILE: packages/common-resources/static-resources/src/loopring-interface/VendorInterface.ts
type VendorItem (line 4) | interface VendorItem {
FILE: packages/common-resources/static-resources/src/loopring-interface/WallectInterface.ts
type WalletStatus (line 3) | enum WalletStatus {
type GatewayItem (line 14) | interface GatewayItem {
FILE: packages/common-resources/static-resources/src/svg/Icon.tsx
type DepthColor (line 3) | type DepthColor = {
FILE: packages/common-resources/static-resources/src/svg/redPacketSvg.tsx
type RedPacketQRPropsExtends (line 289) | type RedPacketQRPropsExtends = {
type ColorConfig (line 301) | type ColorConfig = {
type ColorCssConfig (line 310) | type ColorCssConfig = {
FILE: packages/common-resources/static-resources/src/svg/shareReferral.tsx
type ShareReferralSvgProps (line 4) | type ShareReferralSvgProps = {
FILE: packages/common-resources/static-resources/src/themes/css/color-lib.ts
type ColorBaseInterface (line 202) | type ColorBaseInterface = typeof ColorDarkDefault
FILE: packages/common-resources/static-resources/src/themes/css/global.tsx
type SvgSize (line 26) | enum SvgSize {
FILE: packages/common-resources/static-resources/src/themes/globalSetup.ts
constant FORMAT_STRING_LEN (line 6) | const FORMAT_STRING_LEN = 10
FILE: packages/common-resources/static-resources/src/themes/interface.ts
type ThemeType (line 4) | enum ThemeType {
type TextFieldPropsSizeOverrides (line 10) | interface TextFieldPropsSizeOverrides {
type InputBasePropsSizeOverrides (line 14) | interface InputBasePropsSizeOverrides {
type ThemeKeys (line 22) | type ThemeKeys = keyof typeof ThemeType
type LoopringTheme (line 23) | type LoopringTheme = Theme & {
type AvatarCoinProps (line 51) | type AvatarCoinProps = AvatarProps & {
type Theme (line 62) | interface Theme extends LoopringTheme {}
FILE: packages/common-resources/static-resources/src/utils/format_tools.ts
function isAddress (line 7) | function isAddress(value: any): string | false {
function getShowStr (line 14) | function getShowStr(
type DepthData (line 32) | type DepthData = {
type DepthViewData (line 43) | type DepthViewData = {
function genABViewDataAccumulated (line 51) | function genABViewDataAccumulated({
function depth2ViewDataAccumulated (line 108) | function depth2ViewDataAccumulated({
type DepthDataNew (line 185) | type DepthDataNew = {
function genABViewData (line 198) | function genABViewData({
function getMaxAmt (line 257) | function getMaxAmt(askInfoSlice: sdk.ABInfo[], bidInfoSlice: sdk.ABInfo[...
function depth2ViewData (line 272) | function depth2ViewData({
FILE: packages/common-resources/static-resources/src/utils/obj_tools.ts
function copyToClipBoard (line 3) | async function copyToClipBoard(text: string) {
FILE: packages/common-resources/static-resources/src/utils/types.tsx
type Values (line 1) | type Values<T extends {}> = T[keyof T]
type Tuplize (line 3) | type Tuplize<T extends {}[]> = Pick<T, Exclude<keyof T, Extract<keyof {}...
type _OneOf (line 5) | type _OneOf<T extends {}> = Values<{
type OneOf (line 11) | type OneOf<T extends {}[]> = _OneOf<Tuplize<T>>
type Complete (line 13) | type Complete<T> = {
type Required (line 17) | type Required<T> = {
type RequireOne (line 21) | type RequireOne<T, K extends keyof T> = {
FILE: packages/common-resources/static-resources/src/utils/util.ts
constant DOT (line 4) | const DOT = '.'
function abbreviateNumber (line 6) | function abbreviateNumber(value: number, precision?: number) {
function getShortAddr (line 61) | function getShortAddr(address: string, isMobile?: boolean): string | '' {
function type (line 285) | function type(value: any) {
FILE: packages/common-resources/static-resources/types.d.ts
type Window (line 4) | interface Window {
FILE: packages/component-lib/.storybook/main.ts
function findBabelRules (line 17) | function findBabelRules(config): any {
function getAbsolutePath (line 34) | function getAbsolutePath(value: string): any {
FILE: packages/component-lib/src/components/basic-lib/btns/Button.tsx
function ScrollTop (line 73) | function ScrollTop({
FILE: packages/component-lib/src/components/basic-lib/btns/Interface.ts
type ButtonProps (line 9) | type ButtonProps = MuButtonPros & {
type BtnInfo (line 18) | type BtnInfo = {
type BtnInfoProps (line 25) | type BtnInfoProps = {
type BtnPercentageProps (line 29) | interface BtnPercentageProps extends SliderProps {
type BtnPercentageDraggableProps (line 38) | interface BtnPercentageDraggableProps extends BtnPercentageProps {
type TGItemJSXInterface (line 42) | interface TGItemJSXInterface {
type TGItemData (line 51) | interface TGItemData {
type ToggleButtonGroupProps (line 58) | type ToggleButtonGroupProps = MuToggleButtonGroupProps & {
FILE: packages/component-lib/src/components/basic-lib/checkbox/index.tsx
type CustomCheckBoxProps (line 7) | type CustomCheckBoxProps = {
FILE: packages/component-lib/src/components/basic-lib/display/SpaceBetweenBox.tsx
type SpaceBetweenProps (line 3) | type SpaceBetweenProps = {
FILE: packages/component-lib/src/components/basic-lib/empty/Empty.tsx
type EmptyProps (line 6) | type EmptyProps = {
FILE: packages/component-lib/src/components/basic-lib/form/hooks/useFocusRef.ts
function useFocusRef (line 3) | function useFocusRef<T extends HTMLInputElement>({
FILE: packages/component-lib/src/components/basic-lib/form/hooks/usePanelRef.ts
function usePanelRef (line 3) | function usePanelRef<T extends HTMLInputElement>({
FILE: packages/component-lib/src/components/basic-lib/form/input/CollectionInput.tsx
type CollectionInputProps (line 75) | type CollectionInputProps<Co> = {
FILE: packages/component-lib/src/components/basic-lib/form/input/DatePicker.tsx
type DateRangePickerProps (line 33) | type DateRangePickerProps = {} & Omit<MuDateRangePickerProps<Date>, 'ren...
type DatePickerProps (line 99) | type DatePickerProps = Omit<MuDatePickerProps, 'renderInput'> & {
type DateTimePickerProps (line 133) | type DateTimePickerProps = Omit<MuDateTimePickerProps, 'renderInput'>
FILE: packages/component-lib/src/components/basic-lib/form/input/InputButton.tsx
function _InputButton (line 20) | function _InputButton<T extends Partial<IBData<C>>, C, I extends CoinInf...
FILE: packages/component-lib/src/components/basic-lib/form/input/InputCoin.tsx
function _InputCoin (line 17) | function _InputCoin<T extends IBData<C>, C, I extends CoinInfo<C>>(
FILE: packages/component-lib/src/components/basic-lib/form/input/InputMaxButton.tsx
function _InputMaxButton (line 18) | function _InputMaxButton<T extends Partial<IBData<C>>, C, I extends Coin...
FILE: packages/component-lib/src/components/basic-lib/form/input/InputMaxCoin.tsx
function _InputMaxCoin (line 17) | function _InputMaxCoin<T extends IBDataMax<C>, C, I extends CoinInfo<C>>(
FILE: packages/component-lib/src/components/basic-lib/form/input/InputSearch.tsx
type InputSearchProps (line 14) | type InputSearchProps = {
FILE: packages/component-lib/src/components/basic-lib/form/input/InputSelect.tsx
function _InputSelect (line 10) | function _InputSelect<C, I extends string = CoinKey<C>>(
FILE: packages/component-lib/src/components/basic-lib/form/input/Interface.ts
type defaultProps (line 5) | type defaultProps<T, R, I> = {
type InputButtonProps (line 44) | type InputButtonProps<T, R, I> = defaultProps<T, R, I> & {
type InputSize (line 71) | enum InputSize {
type InputCoinProps (line 76) | type InputCoinProps<T, R, I> = defaultProps<T, R, I> & {
type InputSelectProps (line 81) | type InputSelectProps<T, I = CoinKey<T>> = {
type useFocusRefProps (line 101) | type useFocusRefProps<I> = {
FILE: packages/component-lib/src/components/basic-lib/lists/CoinList.tsx
function _CoinMenu (line 11) | function _CoinMenu<C, I extends CoinInfo<C>>(
FILE: packages/component-lib/src/components/basic-lib/lists/Interface.ts
type MuiMenuItemProps (line 18) | type MuiMenuItemProps = muMenuItemProps & {
type BasicListItem (line 22) | type BasicListItem = {
type NotificationItem (line 30) | type NotificationItem = {
type BasicHeaderItem (line 38) | type BasicHeaderItem = {
type HeadMenuType (line 42) | type HeadMenuType<I extends BasicHeaderItem> = {
type MenuItemLink (line 55) | type MenuItemLink<I extends BasicHeaderItem> = HeadMenuType<I> & {
type MenuItemProps (line 62) | type MenuItemProps<I extends BasicHeaderItem> = HeadMenuType<I> & {
type SubMenuListProps (line 67) | type SubMenuListProps<I> = {
type CoinItemProps (line 72) | interface CoinItemProps<C> extends ListItemProps {
type CoinMenuProps (line 82) | type CoinMenuProps<R, I> = {
type CollectionListProps (line 99) | type CollectionListProps<Co> = {
type CollectionItemProps (line 115) | type CollectionItemProps<Co> = {
FILE: packages/component-lib/src/components/basic-lib/lists/NFTList.tsx
type NFTItemBasicProps (line 44) | type NFTItemBasicProps = {
FILE: packages/component-lib/src/components/basic-lib/loading/index.tsx
type LoadingProps (line 4) | type LoadingProps = {
FILE: packages/component-lib/src/components/basic-lib/media/Interface.ts
type NftImageProps (line 4) | type NftImageProps = {
FILE: packages/component-lib/src/components/basic-lib/panel/IPFSSourceUpload.tsx
constant TYPES (line 32) | const TYPES = ['image/jpeg', 'image/jpg', 'image/gif', 'image/png']
type IpfsFile (line 98) | type IpfsFile = {
constant IPFS_INIT (line 112) | const IPFS_INIT: Partial<IpfsFile> = {
FILE: packages/component-lib/src/components/basic-lib/panel/Interface.ts
type PanelContent (line 1) | type PanelContent<T extends string> = {
type SwitchPanelProps (line 6) | type SwitchPanelProps<T extends string> = {
FILE: packages/component-lib/src/components/basic-lib/panel/SwitchPanel.tsx
function _SwitchPanel (line 150) | function _SwitchPanel<T extends string>(
FILE: packages/component-lib/src/components/basic-lib/popover/Interface.ts
type PopoverType (line 7) | enum PopoverType {
type HorizonLeft (line 12) | type HorizonLeft = {
type HorizonRight (line 16) | type HorizonRight = {
type PopoverWrapProps (line 23) | type PopoverWrapProps = {
FILE: packages/component-lib/src/components/basic-lib/popover/Popover.tsx
constant DEFAULT_ANCHOR_ORIGIN (line 15) | const DEFAULT_ANCHOR_ORIGIN: PopoverOrigin = {
constant DEFAULT_TRANSFORM_ORIGIN (line 20) | const DEFAULT_TRANSFORM_ORIGIN: PopoverOrigin = {
FILE: packages/component-lib/src/components/basic-lib/table-pagination/TablePagination.tsx
type PaginationProps (line 17) | type PaginationProps = {
FILE: packages/component-lib/src/components/basic-lib/tables/Interface.ts
type DataGridProps (line 10) | type DataGridProps<R, SR> = Omit<RdgDataGridProps<R, SR>, 'rows' | 'colu...
type Column (line 12) | type Column<R, SR> = RdgColumns<R, SR> & {
type TableProps (line 16) | type TableProps<R, SR> = {
FILE: packages/component-lib/src/components/basic-lib/tables/Table.tsx
type TableWrapperStyledProps (line 15) | interface TableWrapperStyledProps {
type ExtraTableProps (line 231) | type ExtraTableProps = {
FILE: packages/component-lib/src/components/basic-lib/tables/components/Formatters/CellDepthFormatter.tsx
type IDepthRendererProps (line 23) | interface IDepthRendererProps<R, SR> extends CellRendererProps<R, SR> {
FILE: packages/component-lib/src/components/basic-lib/tables/components/Formatters/CellExpanderFormatter.tsx
type CellExpanderFormatterProps (line 16) | interface CellExpanderFormatterProps {
function CellExpanderFormatter (line 22) | function CellExpanderFormatter({
FILE: packages/component-lib/src/components/basic-lib/tables/components/Formatters/ChildRowDeleteButton.tsx
type ChildRowDeleteButtonProps (line 38) | interface ChildRowDeleteButtonProps {
function ChildRowDeleteButton (line 44) | function ChildRowDeleteButton({
FILE: packages/component-lib/src/components/basic-lib/tables/components/Formatters/ImageFormatter.tsx
type Props (line 18) | interface Props {
function ImageFormatter (line 23) | function ImageFormatter({ value }: Props) {
FILE: packages/component-lib/src/components/basic-lib/tables/components/HeaderRenderers/SortableHeaderCell.tsx
type SortableHeaderCellProps (line 58) | interface SortableHeaderCellProps<R, SR = unknown> extends HeaderRendere...
function SortableHeaderCell (line 62) | function SortableHeaderCell<R, SR>({
FILE: packages/component-lib/src/components/basic-lib/tables/components/RowRenders/RowDepthFormatter.tsx
type IDepthRendererProps (line 42) | interface IDepthRendererProps<R, SR> extends RowRendererProps<R, SR> {
function _DepthRow (line 53) | function _DepthRow<R, SR = unknown>(
FILE: packages/component-lib/src/components/basic-lib/tables/hook/useClickOutside.ts
function useClickOutside (line 52) | function useClickOutside(onClick: () => void) {
FILE: packages/component-lib/src/components/basic-lib/tables/hook/useCombinedRefs.ts
function useCombinedRefs (line 3) | function useCombinedRefs<T>(...refs: readonly React.Ref<T>[]) {
FILE: packages/component-lib/src/components/basic-lib/tables/hook/useFocusRef.ts
function useFocusRef (line 3) | function useFocusRef<T extends HTMLOrSVGElement>(isCellSelected: boolean...
FILE: packages/component-lib/src/components/basic-lib/tables/hook/useLatestFunc.ts
function useLatestFunc (line 5) | function useLatestFunc<T extends (...args: any[]) => any>(fn: T) {
FILE: packages/component-lib/src/components/basic-lib/tables/table.stories.tsx
type Row (line 15) | interface Row {
FILE: packages/component-lib/src/components/block/AmmCard.tsx
type Reward (line 24) | interface Reward {
FILE: packages/component-lib/src/components/block/AmmPairDetail.tsx
type AmmPairDetailProps (line 245) | type AmmPairDetailProps = {
FILE: packages/component-lib/src/components/block/Block.stories.tsx
method handleClick (line 100) | handleClick(): void {}
FILE: packages/component-lib/src/components/block/DepthRaw.tsx
type Row (line 8) | type Row = DepthViewData & {
type DepthType (line 26) | enum DepthType {
FILE: packages/component-lib/src/components/block/Interface.ts
type MarketBlockProps (line 14) | type MarketBlockProps<C> = {
type AssetTitleProps (line 25) | type AssetTitleProps = {
type AssetTitleMobileProps (line 44) | type AssetTitleMobileProps = AssetTitleProps & {
type NFTMedaProps (line 51) | type NFTMedaProps = {
type RedPacketDefaultBg (line 60) | type RedPacketDefaultBg = RedPacketDefault & {
type RedPacketDefault (line 64) | type RedPacketDefault = {
type RedPacketTimeoutProps (line 69) | type RedPacketTimeoutProps = RedPacketDefault & {
type RedPacketQRCodeProps (line 74) | type RedPacketQRCodeProps = {
type RedPacketOpenProps (line 78) | type RedPacketOpenProps = {
type RedPacketUnreadyProps (line 85) | type RedPacketUnreadyProps = {
type RedPacketOpenedProps (line 93) | type RedPacketOpenedProps = {
type RedPacketDetailProps (line 103) | type RedPacketDetailProps = {
type RedPacketBlindBoxDetailTypes (line 131) | type RedPacketBlindBoxDetailTypes =
type RedPacketBlindBoxDetailProps (line 138) | type RedPacketBlindBoxDetailProps = {
type RedPacketClockProps (line 222) | type RedPacketClockProps = RedPacketDefault & {
FILE: packages/component-lib/src/components/block/MarketBlock.tsx
type StyledProps (line 14) | type StyledProps = {
FILE: packages/component-lib/src/components/block/TradeRace.tsx
type TradeRaceRow (line 8) | interface TradeRaceRow {
FILE: packages/component-lib/src/components/block/TradeTitle.tsx
type StyledProps (line 23) | type StyledProps = {
FILE: packages/component-lib/src/components/block/Vip.tsx
type Row (line 8) | interface Row {
FILE: packages/component-lib/src/components/bottomRule/index.tsx
type PopperProps (line 25) | interface PopperProps {
FILE: packages/component-lib/src/components/carousel/Interface.ts
type SocialButtonProps (line 1) | type SocialButtonProps = {
type CarouselItem (line 14) | type CarouselItem = { imageUrl: string; size: [number, number], height?:...
type ShareProps (line 16) | type ShareProps = {
FILE: packages/component-lib/src/components/charts/constant.ts
type ChartType (line 1) | enum ChartType {
type timeUnit (line 7) | enum timeUnit {
FILE: packages/component-lib/src/components/charts/doughnutChart/DoughnutChart.tsx
type DoughnutChartProps (line 63) | interface DoughnutChartProps {
FILE: packages/component-lib/src/components/charts/scaleAreaChart/APRChart/index.tsx
constant DEFAULT_YAXIS_DOMAIN (line 23) | const DEFAULT_YAXIS_DOMAIN = 0.01
FILE: packages/component-lib/src/components/charts/scaleAreaChart/DepthChart/index.tsx
constant ASKS_COLOR (line 17) | const ASKS_COLOR = '#FF5677'
constant BIDS_COLOR (line 18) | const BIDS_COLOR = '#00BBA8'
constant YAXIS_DOMAIN (line 19) | const YAXIS_DOMAIN = 0.1
type DepthData (line 32) | interface DepthData {
type DepthProps (line 40) | interface DepthProps {
FILE: packages/component-lib/src/components/charts/scaleAreaChart/KlineChart/KlineChart.tsx
type IOHLCData (line 40) | interface IOHLCData {
type MainIndicator (line 50) | enum MainIndicator {
type SubIndicator (line 56) | enum SubIndicator {
type IndicatorProps (line 63) | interface IndicatorProps {
type StockChartProps (line 68) | interface StockChartProps {
function fibonacci (line 76) | function fibonacci(n: number) {
type StockChartExtraProps (line 85) | type StockChartExtraProps = {
class StockChart (line 91) | class StockChart extends React.Component<StockChartProps & IndicatorProp...
method render (line 110) | public render() {
FILE: packages/component-lib/src/components/charts/scaleAreaChart/ScaleAreaChart.tsx
type ScaleAreaChartProps (line 15) | interface ScaleAreaChartProps {
FILE: packages/component-lib/src/components/charts/scaleAreaChart/TrendChart/index.tsx
constant DEFAULT_YAXIS_DOMAIN (line 27) | const DEFAULT_YAXIS_DOMAIN = 0.05
FILE: packages/component-lib/src/components/charts/scaleAreaChart/data.tsx
type IOrigDataItem (line 3) | interface IOrigDataItem {
type IDataItem (line 12) | interface IDataItem {
type GetSignParams (line 22) | interface GetSignParams {
type IGetDepthDataParams (line 79) | interface IGetDepthDataParams {
FILE: packages/component-lib/src/components/datetimerangepicker/index.tsx
type DateTimeRangePickerProps (line 20) | type DateTimeRangePickerProps = {
FILE: packages/component-lib/src/components/footer/index.tsx
function updateSize (line 47) | function updateSize() {}
FILE: packages/component-lib/src/components/header/Header.tsx
constant LAYERMAP (line 224) | const LAYERMAP = {
type MobileDrawerProps (line 229) | interface MobileDrawerProps {
type NestedMobileDrawerProps (line 331) | interface NestedMobileDrawerProps {
FILE: packages/component-lib/src/components/header/Interface.ts
type HeaderToolBarInterface (line 9) | interface HeaderToolBarInterface {
type HeaderProps (line 13) | interface HeaderProps<R, N = sdk.UserNotification> {
FILE: packages/component-lib/src/components/header/toolbar/Interface.ts
type WalletNotificationStatus (line 4) | enum WalletNotificationStatus {
type WalletNotificationInterface (line 11) | type WalletNotificationInterface = {
type WalletConnectBtnProps (line 17) | type WalletConnectBtnProps = {
FILE: packages/component-lib/src/components/modal/ModalPanels/BasicPanel.tsx
type IconType (line 26) | enum IconType {
type PanelProps (line 35) | interface PanelProps {
FILE: packages/component-lib/src/components/modal/ModalPanels/BridgePanel.tsx
type BridgeProps (line 10) | interface BridgeProps {
FILE: packages/component-lib/src/components/modal/ModalPanels/CoinbaseSmartWalletModal.tsx
type StepStatus (line 43) | enum StepStatus {
type Step (line 49) | interface Step {
type VerticalStepperProps (line 53) | interface VerticalStepperProps {
FILE: packages/component-lib/src/components/modal/ModalPanels/FeeSelect.tsx
type OptionType (line 30) | type OptionType = { checked?: boolean; disabled?: boolean } & BoxProps
FILE: packages/component-lib/src/components/modal/ModalPanels/Interface.ts
type AccountBaseProps (line 17) | type AccountBaseProps = {
type AccountStep (line 28) | enum AccountStep {
type VendorMenuProps (line 254) | interface VendorMenuProps {
type InferfaceAssetItem (line 265) | interface InferfaceAssetItem {
type AddAssetItem (line 275) | interface AddAssetItem extends InferfaceAssetItem {}
type SendAssetItem (line 277) | interface SendAssetItem extends InferfaceAssetItem {}
type AddAssetProps (line 279) | interface AddAssetProps {
type SendAssetProps (line 289) | interface SendAssetProps {
type SendNFTAssetProps (line 301) | interface SendNFTAssetProps {
type CheckActiveStatusProps (line 310) | interface CheckActiveStatusProps<C = FeeInfo> {
type CheckImportCollectionProps (line 329) | interface CheckImportCollectionProps {
type SendDialogProps (line 339) | interface SendDialogProps {
FILE: packages/component-lib/src/components/modal/QRCode/Interface.ts
type GatewayItemQRCode (line 3) | interface GatewayItemQRCode {
type QRCodePanelProps (line 12) | interface QRCodePanelProps {
type ModalQRCodeProps (line 17) | type ModalQRCodeProps = QRCodePanelProps & {
type GuardianModalProps (line 24) | type GuardianModalProps = {
FILE: packages/component-lib/src/components/modal/QRCode/QRCode.tsx
type QCodeProps (line 25) | type QCodeProps = {
FILE: packages/component-lib/src/components/modal/RedPacketPanels/Interface.ts
type RedPacketViewStep (line 1) | enum RedPacketViewStep {
FILE: packages/component-lib/src/components/modal/Vault/VaultLoanPanel.tsx
type VaultLoanProps (line 12) | type VaultLoanProps<T, B, I> = {
FILE: packages/component-lib/src/components/modal/WalletConnect/Interface.ts
type ProviderMenuProps (line 6) | interface ProviderMenuProps {
type WalletConnectStep (line 15) | enum WalletConnectStep {
FILE: packages/component-lib/src/components/modal/WalletPanels/Interface.ts
type GuardianStep (line 1) | enum GuardianStep {
FILE: packages/component-lib/src/components/modal/index.ts
type ModalBasicProps (line 10) | type ModalBasicProps = {
type ModalWalletConnectProps (line 31) | type ModalWalletConnectProps = ModalBasicProps
type ModalAccountProps (line 32) | type ModalAccountProps = ModalWalletConnectProps
type ModalGuardianProps (line 33) | type ModalGuardianProps = ModalWalletConnectProps
type ModalRedPacketProps (line 34) | type ModalRedPacketProps = ModalBasicProps
FILE: packages/component-lib/src/components/modal/setting/Interface.ts
type ModalSettingFeeProps (line 1) | type ModalSettingFeeProps = {
FILE: packages/component-lib/src/components/panel/FilterMarketsPanel.tsx
type TabPanelProps (line 7) | interface TabPanelProps {
function TabPanel (line 13) | function TabPanel(props: TabPanelProps) {
FILE: packages/component-lib/src/components/share/Interface.ts
type SocialButtonProps (line 3) | type SocialButtonProps = {
type ShareProps (line 10) | type ShareProps = {
FILE: packages/component-lib/src/components/tableList/QuoteTable/MarketDetail.tsx
type TradingInterval (line 37) | enum TradingInterval {
type TimeMarketIntervalDataIndex (line 61) | enum TimeMarketIntervalDataIndex {
FILE: packages/component-lib/src/components/tableList/QuoteTable/MarketTable.tsx
type MarketTableProps (line 81) | interface MarketTableProps<R> {
FILE: packages/component-lib/src/components/tableList/QuoteTable/QuoteTable.tsx
type QuoteTableRawDataItem (line 72) | type QuoteTableRawDataItem = Ticker & {
type QuoteTableProps (line 100) | interface QuoteTableProps {
FILE: packages/component-lib/src/components/tableList/ammRecordTable/Interface.ts
type AmmTradeType (line 4) | enum AmmTradeType {
type TxStatus (line 10) | enum TxStatus {
type AmmRecordRow (line 17) | interface AmmRecordRow<C> {
type AmmRecordTableProps (line 28) | type AmmRecordTableProps<T, R = AmmRecordRow<T>> = {
FILE: packages/component-lib/src/components/tableList/ammTable/AmmTable.tsx
type RawDataAmmItem (line 22) | type RawDataAmmItem = {
type AmmTableProps (line 42) | type AmmTableProps = {
FILE: packages/component-lib/src/components/tableList/ammTable/components/Filter.tsx
type FilterProps (line 11) | interface FilterProps {
type FilterTradeTypes (line 31) | enum FilterTradeTypes {
FILE: packages/component-lib/src/components/tableList/ammTable/interface.ts
type AmmSideTypes (line 1) | enum AmmSideTypes {
FILE: packages/component-lib/src/components/tableList/assetsTable/AssetsDefiTable.tsx
type RawDefiAssetsItem (line 21) | type RawDefiAssetsItem = RawDataAssetsItem & {
FILE: packages/component-lib/src/components/tableList/assetsTable/AssetsTable.tsx
type TradePairItem (line 75) | type TradePairItem = {
type RawDataAssetsItem (line 80) | type RawDataAssetsItem = {
type AssetsTableProps (line 96) | type AssetsTableProps<R = RawDataAssetsItem> = {
FILE: packages/component-lib/src/components/tableList/assetsTable/VaultAssetsTable.tsx
type TradePairItem (line 80) | type TradePairItem = {
type VaultDataAssetsItem (line 85) | type VaultDataAssetsItem = {
type VaultAssetsTableProps (line 104) | type VaultAssetsTableProps<R> = {
FILE: packages/component-lib/src/components/tableList/assetsTable/VaultPositionsTable.tsx
type PositionItem (line 49) | type PositionItem = {
type VaultPositionsTableProps (line 62) | type VaultPositionsTableProps = {
FILE: packages/component-lib/src/components/tableList/assetsTable/components/ActionMemo.tsx
type ActionProps (line 26) | type ActionProps = {
FILE: packages/component-lib/src/components/tableList/assetsTable/components/Filter.tsx
type TokenTypeCol (line 6) | type TokenTypeCol = {
type FilterProps (line 11) | interface FilterProps {
type CheckboxType (line 23) | enum CheckboxType {
FILE: packages/component-lib/src/components/tableList/btradeSwapTable/BtradeSwapTable.tsx
type BtradeSwapsTableProps (line 69) | interface BtradeSwapsTableProps<R> {
FILE: packages/component-lib/src/components/tableList/btradeSwapTable/Interface.ts
type BtradeSwapsType (line 1) | enum BtradeSwapsType {
type RawDataBtradeSwapsItem (line 9) | type RawDataBtradeSwapsItem = {
FILE: packages/component-lib/src/components/tableList/defiTxsTable/Interface.ts
type RawDataDefiTxsItem (line 3) | type RawDataDefiTxsItem = Partial<sdk.UserDefiTxsHistory>
type DefiTxsTableProps (line 5) | interface DefiTxsTableProps<R = RawDataDefiTxsItem> {
type RawDataDefiSideStakingItem (line 23) | interface RawDataDefiSideStakingItem
type DefiSideStakingTableProps (line 29) | interface DefiSideStakingTableProps<R = RawDataDefiSideStakingItem> {
type RawDataDefiSideStakingTxItem (line 44) | type RawDataDefiSideStakingTxItem = sdk.STACKING_TRANSACTIONS & {
type DefiSideStakingTxTableProps (line 48) | interface DefiSideStakingTxTableProps<R = RawDataDefiSideStakingTxItem> {
FILE: packages/component-lib/src/components/tableList/defiTxsTable/components/ActionMemo.tsx
type ActionProps (line 15) | type ActionProps<R> = {
FILE: packages/component-lib/src/components/tableList/dualTable/DualTable.tsx
type DualsTableProps (line 64) | interface DualsTableProps<R, C = sdk.Currency> {
FILE: packages/component-lib/src/components/tableList/dualTable/Interface.ts
type RawDataDualsItem (line 3) | type RawDataDualsItem = DualViewInfo
FILE: packages/component-lib/src/components/tableList/dualTxsTable/Interface.ts
type RawDataDualTxsItem (line 9) | type RawDataDualTxsItem = DualViewOrder & {
type RawDataDualAssetItem (line 13) | type RawDataDualAssetItem = DualViewOrder & {
type DualAssetTableProps (line 18) | interface DualAssetTableProps<R> {
type DualTxsTableProps (line 39) | interface DualTxsTableProps<R = RawDataDualTxsItem> {
type LABEL_INVESTMENT_STATUS_MAP (line 52) | enum LABEL_INVESTMENT_STATUS_MAP {
FILE: packages/component-lib/src/components/tableList/investOverviewTable/Interface.ts
type DepartmentRow (line 4) | type DepartmentRow = Required<InvestItem & { token: TokenInfo; coinInfo:...
type RowInvest (line 5) | type RowInvest = DepartmentRow & {
type SubRowAction (line 10) | enum SubRowAction {
type InvestRowAction (line 16) | interface InvestRowAction<R = DepartmentRow> {
type FilterExtend (line 24) | type FilterExtend = {
type InvestOverviewTableProps (line 29) | type InvestOverviewTableProps<R = DepartmentRow> = {
type ColumnKey (line 37) | enum ColumnKey {
FILE: packages/component-lib/src/components/tableList/investOverviewTable/components/Filter.tsx
type FilterProps (line 5) | interface FilterProps {
type CheckboxType (line 14) | enum CheckboxType {
FILE: packages/component-lib/src/components/tableList/investOverviewTable/components/expends.tsx
function toggleSubRow (line 4) | function toggleSubRow(rows: RowInvest[], symbol?: string): RowInvest[] {
function updateRow (line 28) | function updateRow(_oldRows: RowInvest[], rows: RowInvest[]): RowInvest[] {
function investRowReducer (line 60) | function investRowReducer(
FILE: packages/component-lib/src/components/tableList/myPoolTable/Interface.ts
type MyPoolRow (line 12) | type MyPoolRow<R> = MyAmmLP<R> & {
type Method (line 16) | type Method<R> = {
type MyPoolTableProps (line 22) | type MyPoolTableProps<R> = {
FILE: packages/component-lib/src/components/tableList/myPoolTable/components/Filter.tsx
type FilterProps (line 8) | interface FilterProps {
FILE: packages/component-lib/src/components/tableList/nftTable/Interface.ts
type TsTradeStatus (line 10) | enum TsTradeStatus {
type TxnDetailStatus (line 17) | enum TxnDetailStatus {
type TxnDetailProps (line 24) | type TxnDetailProps = UserNFTTxsHistory & { metadata?: any } & {
type NFTTableFilter (line 42) | type NFTTableFilter = {
type NFTTableProps (line 49) | type NFTTableProps<Row> = NFTTableFilter & {
FILE: packages/component-lib/src/components/tableList/nftTable/TsNFTTable.tsx
constant TYPE_COLOR_MAPPING (line 35) | const TYPE_COLOR_MAPPING = [
FILE: packages/component-lib/src/components/tableList/nftTable/components/Filter.tsx
type FilterProps (line 12) | interface FilterProps {
FILE: packages/component-lib/src/components/tableList/orderHistoryTable/OrderHistoryTable.tsx
type OrderPair (line 56) | type OrderPair = {
type OrderHistoryRow (line 67) | interface OrderHistoryRow {
type DetailRole (line 89) | enum DetailRole {
type OrderDetailItem (line 94) | type OrderDetailItem = {
type OrderHistoryTableDetailItem (line 106) | type OrderHistoryTableDetailItem = {
type OrderHistoryRawDataItem (line 123) | type OrderHistoryRawDataItem = {
type OrderHistoryTableProps (line 198) | interface OrderHistoryTableProps {
FILE: packages/component-lib/src/components/tableList/orderHistoryTable/SingleOrderHistoryTable.tsx
type Row (line 11) | interface Row {
type SingleOrderHistoryTableProps (line 46) | interface SingleOrderHistoryTableProps {
FILE: packages/component-lib/src/components/tableList/orderHistoryTable/components/Filter.tsx
type FilterProps (line 10) | interface FilterProps {
type FilterOrderTypes (line 19) | enum FilterOrderTypes {
FILE: packages/component-lib/src/components/tableList/orderHistoryTable/components/modal.tsx
type TxnDetailStatus (line 9) | enum TxnDetailStatus {
FILE: packages/component-lib/src/components/tableList/poolsTable/Interface.ts
type PoolRow (line 10) | type PoolRow<T> = AmmDetail<T>
type FilterExtend (line 11) | type FilterExtend = {
type PoolTableProps (line 16) | type PoolTableProps<R extends PoolRow<T>, T = any> = {
type IconColumnProps (line 28) | type IconColumnProps<R> = {
FILE: packages/component-lib/src/components/tableList/redPacketTable/Interface.ts
type RawDataRedPacketRecordsItem (line 5) | type RawDataRedPacketRecordsItem = {
type RawDataRedPacketReceivesItem (line 18) | type RawDataRedPacketReceivesItem = {
type RawDataRedPacketBlindBoxReceivesItem (line 27) | type RawDataRedPacketBlindBoxReceivesItem = {
type RawDataRedPacketClaimItem (line 37) | type RawDataRedPacketClaimItem = {
type RawDataNFTRedPacketClaimItem (line 43) | type RawDataNFTRedPacketClaimItem = Omit<RawDataRedPacketClaimItem, 'tok...
type RawDataRedPacketDetailItem (line 46) | type RawDataRedPacketDetailItem = {
type RedPacketClaimTableProps (line 56) | type RedPacketClaimTableProps<R, C = sdk.Currency> = {
type RedPacketRecordsTableProps (line 79) | interface RedPacketRecordsTableProps<R, C = sdk.Currency> {
type RedPacketReceiveTableProps (line 94) | interface RedPacketReceiveTableProps<R, C = sdk.Currency> {
type RedPacketBlindBoxReceiveTableProps (line 113) | interface RedPacketBlindBoxReceiveTableProps<R, C = sdk.Currency> {
type LuckyTokenItemStatusMap (line 137) | enum LuckyTokenItemStatusMap {
type aRedPacketDetailTableProps (line 146) | interface aRedPacketDetailTableProps<R, C = sdk.Currency> {
FILE: packages/component-lib/src/components/tableList/redPacketTable/textTooltip.tsx
type TextTooltipProps (line 3) | type TextTooltipProps = {
FILE: packages/component-lib/src/components/tableList/rewardTable/ReferralsTable.tsx
type ReferralsRow (line 19) | type ReferralsRow = sdk.ReferDownsides & {
FILE: packages/component-lib/src/components/tableList/rewardTable/RefundTable.tsx
type RefundRow (line 18) | type RefundRow = sdk.ReferSelf & {
FILE: packages/component-lib/src/components/tableList/rewardTable/RewardTable.tsx
type Row (line 9) | interface Row {
type RewardTableProps (line 66) | interface RewardTableProps {
FILE: packages/component-lib/src/components/tableList/rewardTable/RewardsTable.tsx
type EarningsDetail (line 22) | type EarningsDetail = {
type EarningsRow (line 31) | type EarningsRow = {
FILE: packages/component-lib/src/components/tableList/taikoFarmingTable/Interface.ts
type RawDataDefiTxsItem (line 3) | type RawDataDefiTxsItem = Partial<sdk.UserDefiTxsHistory>
type DefiTxsTableProps (line 5) | interface DefiTxsTableProps<R = RawDataDefiTxsItem> {
type RawDataDefiSideStakingItem (line 17) | interface RawDataDefiSideStakingItem
type DefiSideStakingTableProps (line 23) | interface DefiSideStakingTableProps<R = RawDataDefiSideStakingItem> {
type RawDataTaikoFarmingTxItem (line 38) | type RawDataTaikoFarmingTxItem = sdk.STACKING_TRANSACTIONS & {
type TaikoFarmingTxTableProps (line 42) | interface TaikoFarmingTxTableProps<R = RawDataTaikoFarmingTxItem> {
FILE: packages/component-lib/src/components/tableList/taikoFarmingTable/TaikoFarmingPortfolioTable.tsx
type Item (line 77) | interface Item {
FILE: packages/component-lib/src/components/tableList/tradeNFTTable/Interface.ts
type NFTTradeFilter (line 1) | type NFTTradeFilter = {
type FilterTradeNFTTypes (line 12) | enum FilterTradeNFTTypes {
type NFTTradeProps (line 21) | type NFTTradeProps<Row> = NFTTradeFilter & {
FILE: packages/component-lib/src/components/tableList/tradeNFTTable/components/Filter.tsx
type FilterProps (line 11) | interface FilterProps {
type FilterTradeTypes (line 29) | enum FilterTradeTypes {
FILE: packages/component-lib/src/components/tableList/tradeRroTable/TradePro.tsx
type TradeProTableProps (line 18) | type TradeProTableProps = {
FILE: packages/component-lib/src/components/tableList/tradeTable/TradeTable.tsx
type TradeItemCounterparty (line 27) | enum TradeItemCounterparty {
type RawDataTradeItem (line 32) | type RawDataTradeItem = {
type TradeTableProps (line 59) | type TradeTableProps = {
FILE: packages/component-lib/src/components/tableList/tradeTable/components/Filter.tsx
type FilterProps (line 10) | interface FilterProps {
type FilterTradeTypes (line 31) | enum FilterTradeTypes {
FILE: packages/component-lib/src/components/tableList/transactionsTable/Interface.ts
type TransactionStatus (line 8) | enum TransactionStatus {
type TransactionTradeViews (line 28) | enum TransactionTradeViews {
type RawDataTransactionItem (line 36) | type RawDataTransactionItem = {
FILE: packages/component-lib/src/components/tableList/transactionsTable/TransactionTable.tsx
type TxsFilterProps (line 44) | type TxsFilterProps = {
constant TYPE_COLOR_MAPPING (line 53) | const TYPE_COLOR_MAPPING = [
type TransactionTableProps (line 124) | interface TransactionTableProps {
FILE: packages/component-lib/src/components/tableList/transactionsTable/components/Filter.tsx
type FilterProps (line 12) | interface FilterProps {
FILE: packages/component-lib/src/components/tableList/transactionsTable/components/modal.tsx
type TxnDetailStatus (line 11) | enum TxnDetailStatus {
type TxnDetailProps (line 18) | type TxnDetailProps = {
FILE: packages/component-lib/src/components/tableList/vaultTable/Interface.ts
type VaultRecordType (line 3) | enum VaultRecordType {
type RawDataVaultTxItem (line 15) | type RawDataVaultTxItem = {
FILE: packages/component-lib/src/components/tableList/vaultTable/VaultTxTable.tsx
type VaultTxsTableProps (line 84) | interface VaultTxsTableProps<R> {
type VaultConvertDetailProps (line 926) | type VaultConvertDetailProps = {
FILE: packages/component-lib/src/components/text-tooltip/index.tsx
type TextTooltipProps (line 3) | type TextTooltipProps = {
FILE: packages/component-lib/src/components/toast/index.tsx
type ToastType (line 14) | enum ToastType {
type TOASTOPEN (line 21) | type TOASTOPEN = {
type TOSTOBJECT (line 27) | type TOSTOBJECT = {
type ToastProps (line 33) | interface ToastProps {
FILE: packages/component-lib/src/components/tradePanel/Amm/Interface.tsx
type AmmPanelBaseProps (line 15) | type AmmPanelBaseProps<T, TW, I, ACD, C> = {
type AmmProps (line 33) | type AmmProps<
FILE: packages/component-lib/src/components/tradePanel/Deposit/Interface.tsx
type DepositPanelType (line 4) | enum DepositPanelType {
type DepositGroupProps (line 9) | type DepositGroupProps<T, I> = {
FILE: packages/component-lib/src/components/tradePanel/Interface.ts
type SwapTradeData (line 54) | type SwapTradeData<T> = {
type LimitTradeData (line 65) | type LimitTradeData<T> = {
type StopLimitTradeData (line 73) | type StopLimitTradeData<T> = {
type MarketTradeData (line 80) | type MarketTradeData<T> = {
type ModalProps (line 94) | type ModalProps = {
type ResetProps (line 102) | type ResetProps<T> = ResetExtendProps<T>
type ExportAccountProps (line 103) | type ExportAccountProps = ExportAccountExtendProps
type DepositProps (line 104) | type DepositProps<T, I> = BasicACoinTradeHookProps<T, I> & DepositExtend...
type WithdrawProps (line 105) | type WithdrawProps<T, I, C = FeeInfo> = BasicACoinTradeHookProps<T, I> &
type TransferProps (line 107) | type TransferProps<T, I, C = FeeInfo> = BasicACoinTradeHookProps<T, I> &
type ClaimProps (line 110) | type ClaimProps<T, I, C = FeeInfo> = BasicACoinTradeHookProps<T, I> & Cl...
type ResetInfoProps (line 112) | type ResetInfoProps<T, I> = DefaultProps<T, I> & _ResetInfoProps<T>
type DepositInfoProps (line 114) | type DepositInfoProps<T, I> = DefaultProps<T, I> & _DepositInfoProps
type CreateRedPacketProps (line 116) | type CreateRedPacketProps<T, I, C = FeeInfo, _NFT = NFTWholeINFO> = Omit<
type TransferInfoProps (line 122) | type TransferInfoProps<T, I> = DefaultProps<T, I> & _TransferInfoProps<C...
type SwapInfoProps (line 124) | type SwapInfoProps<T, I, TCD> = SwapTradeBaseProps<T, I, TCD>
type NFTDepositProps (line 126) | type NFTDepositProps<T, I> = NFTDepositViewProps<T, I>
type NFTMintProps (line 128) | type NFTMintProps<ME, MI, I, C = FeeInfo> = Omit<NFTMintViewProps<ME, MI...
type NFTMetaProps (line 129) | type NFTMetaProps<T, Co, C = FeeInfo> = Omit<NFTMetaViewProps<T, Co, C>,...
type NFTMintAdvanceProps (line 131) | type NFTMintAdvanceProps<T, Co, I, C = FeeInfo> = NFTMintAdvanceViewProp...
type NFTDeployProps (line 133) | type NFTDeployProps<T, I, C = FeeInfo> = NFTDeployViewProps<T, I, C>
type ForceWithdrawProps (line 134) | type ForceWithdrawProps<T, I, C = FeeInfo> = BasicACoinTradeHookProps<T,...
type SwapProps (line 157) | type SwapProps<T, I, TCD> = {
type TradeLimitProps (line 181) | type TradeLimitProps<L, T, TCD extends TradeCalcProData<I>, I> = {
type TradeStopLimitProps (line 188) | type TradeStopLimitProps<L, T, TCD extends TradeCalcProData<I>, I> = {
type TradeMarketProps (line 195) | type TradeMarketProps<
type SwitchData (line 207) | type SwitchData<T> = {
type SwitchType (line 212) | enum SwitchType {
type SwapType (line 217) | enum SwapType {
type ModalPanelProps (line 225) | type ModalPanelProps = {
type FeeSelectModalProps (line 236) | type FeeSelectModalProps = {
type FeeSelectProps (line 250) | type FeeSelectProps = {
type VaultJoinProps (line 272) | type VaultJoinProps<T, I, V> = BasicACoinTradeHookProps<T, I> & VaultJoi...
type VaultBorrowProps (line 273) | type VaultBorrowProps<T, I, V> = BasicACoinTradeHookProps<T, I> &
type VaultRepayProps (line 275) | type VaultRepayProps<T, I, V> = BasicACoinTradeHookProps<T, I> & VaultRe...
type VaultExitProps (line 276) | type VaultExitProps = VaultExitBaseProps
type TransferToTaikoAccountProps (line 277) | type TransferToTaikoAccountProps = {
FILE: packages/component-lib/src/components/tradePanel/Panel.stories.tsx
method handleFeeChange (line 134) | handleFeeChange(value: { belong: string; fee: number | string; __raw__?:...
method handleFeeChange (line 161) | handleFeeChange(value: { belong: string; fee: number | string; __raw__?:...
method handleFeeChange (line 184) | handleFeeChange(value: { belong: string; fee: number | string; __raw__?:...
method onResetClick (line 187) | onResetClick({}): void {}
FILE: packages/component-lib/src/components/tradePanel/components/AmmWrap/Interface.ts
type AmmChgData (line 4) | type AmmChgData<AT> = {
type AmmWithdrawChgData (line 8) | type AmmWithdrawChgData<AT> = {
type AmmDepositBaseProps (line 13) | type AmmDepositBaseProps<T, I> = {
type AmmDepositExtendProps (line 21) | type AmmDepositExtendProps<T, I, C, ACD> = {
type AmmDepositWrapProps (line 30) | type AmmDepositWrapProps<T, I, ACD, C> = AmmDepositBaseProps<T, I> &
type AmmWithdrawBaseProps (line 37) | type AmmWithdrawBaseProps<T, I> = {
type AmmWithdrawExtendProps (line 44) | type AmmWithdrawExtendProps<T, I, C, ACD> = {
type AmmWithdrawWrapProps (line 52) | type AmmWithdrawWrapProps<T, I, ACD, C> = AmmWithdrawBaseProps<T, I> &
FILE: packages/component-lib/src/components/tradePanel/components/ContactSelection.tsx
type SingleContactProps (line 11) | type SingleContactProps = {
type ContactSelectionProps (line 110) | type ContactSelectionProps = {
FILE: packages/component-lib/src/components/tradePanel/components/CreateCollectionWrap.tsx
type CreateCollectionViewProps (line 22) | type CreateCollectionViewProps<Co> = {
FILE: packages/component-lib/src/components/tradePanel/components/CreateRedPacketWrap.tsx
type CreateRedPacketScopeProps (line 1252) | type CreateRedPacketScopeProps = {
method confirmCallBack (line 2316) | confirmCallBack() {
method confirmCallBack (line 2344) | confirmCallBack() {
FILE: packages/component-lib/src/components/tradePanel/components/DeFiWrap/Interface.ts
type DeFiChgData (line 13) | type DeFiChgData<T> = {
type DeFiWrapProps (line 17) | type DeFiWrapProps<T, I, ACD> = {
type DeFiSideType (line 52) | type DeFiSideType<R = RawDataDefiSideStakingItem> = {
type DeFiSideWrapProps (line 57) | type DeFiSideWrapProps<T, I, ACD> = {
type DeFiStakeRedeemWrapProps (line 75) | type DeFiStakeRedeemWrapProps<T, _I, ACD> = {
FILE: packages/component-lib/src/components/tradePanel/components/DepositNFTWrap.tsx
constant NFT_TYPE (line 32) | const NFT_TYPE: TGItemData[] = [
FILE: packages/component-lib/src/components/tradePanel/components/DualWrap/Interface.ts
type DualDisplayMode (line 15) | enum DualDisplayMode {
type DualDetailType (line 20) | type DualDetailType = {
type DualChgData (line 33) | type DualChgData<T> = {
type DualWrapProps (line 36) | type DualWrapProps<T, I, DUAL> = {
type DualDetailProps (line 59) | type DualDetailProps<
FILE: packages/component-lib/src/components/tradePanel/components/DualWrap/dualDetail.tsx
type DualDetailTab (line 105) | enum DualDetailTab {
FILE: packages/component-lib/src/components/tradePanel/components/Interface.ts
type RedPacketStep (line 43) | enum RedPacketStep {
type TargetRedPacketStep (line 49) | enum TargetRedPacketStep {
type TradeMenuListProps (line 61) | type TradeMenuListProps<T, I> = {
type SwitchData (line 80) | type SwitchData<T> = {
type TransferInfoProps (line 85) | type TransferInfoProps<C> = {
type TransferExtendProps (line 98) | type TransferExtendProps<T, I, C> = {
type TransferViewProps (line 130) | type TransferViewProps<T, I, C = CoinKey<I> | string> = TransferExtendPr...
type RampViewProps (line 135) | type RampViewProps<T, I, C = CoinKey<I>> = TransferViewProps<T, I, C>
type BanxaViewProps (line 136) | type BanxaViewProps<T, I, C = CoinKey<I>> = TransferViewProps<T, I, C> & {
type ResetInfoProps (line 143) | type ResetInfoProps<C> = {
type ResetExtendProps (line 164) | type ResetExtendProps<C> = {
type ResetViewProps (line 168) | type ResetViewProps<C extends FeeInfo> = ResetExtendProps<C>
type ExportAccountExtendProps (line 170) | type ExportAccountExtendProps = {
type DepositInfoProps (line 178) | type DepositInfoProps = {
type DepositExtendProps (line 192) | type DepositExtendProps<T> = {
type DepositViewProps (line 213) | type DepositViewProps<T, I> = BasicACoinTradeViewProps<T, I> & DepositEx...
type WithdrawInfoProps (line 215) | type WithdrawInfoProps<C> = {
type WithdrawExtendProps (line 226) | type WithdrawExtendProps<T, I, C> = {
type WithdrawViewProps (line 286) | type WithdrawViewProps<T, I, C = CoinKey<I> | string> = BasicACoinTradeV...
type ForceWithdrawExtendProps (line 291) | type ForceWithdrawExtendProps<T, I, C> = {
type ForceWithdrawViewProps (line 307) | type ForceWithdrawViewProps<T, I, C = CoinKey<I> | string> = BasicACoinT...
type inputNFTProps (line 310) | type inputNFTProps<T, I, C = CoinInfo<I>> = RequireOne<InputCoinProps<T,...
type InputButtonDefaultProps (line 311) | type InputButtonDefaultProps<T, I, C = CoinInfo<I>> = RequireOne<
type InputCoinDefaultProps (line 315) | type InputCoinDefaultProps<T, I, C = CoinInfo<I>> = RequireOne<
type DefaultProps (line 320) | type DefaultProps<T, I> = {
type DefaultWithMethodProps (line 341) | type DefaultWithMethodProps<T, I> = DefaultProps<T, I>
type BasicACoinTradeViewProps (line 343) | type BasicACoinTradeViewProps<T, I> = Omit<DefaultWithMethodProps<T, I>,...
type BasicACoinTradeProps (line 350) | type BasicACoinTradeProps<T, I> = BasicACoinTradeViewProps<T, I> & {
type BasicACoinInputProps (line 358) | type BasicACoinInputProps<T, I> = BasicACoinTradeViewProps<T, I> & {
type BasicANFTTradeProps (line 367) | type BasicANFTTradeProps<T, I> = (Omit<
type BasicACoinTradeHookProps (line 392) | type BasicACoinTradeHookProps<T, I> = DefaultWithMethodProps<T, I> & {
type NFTDepositInfoProps (line 399) | type NFTDepositInfoProps<T, I> = DefaultWithMethodProps<T, I> & {
type NFTDepositViewProps (line 411) | type NFTDepositViewProps<T, I> = NFTDepositExtendProps<T, I>
type NFTDepositExtendProps (line 412) | type NFTDepositExtendProps<T, I> = {
type NFTMintInfoProps (line 422) | type NFTMintInfoProps<C> = {
type NFTMetaInfoProps (line 437) | type NFTMetaInfoProps<C> = {
type NFTMintExtendProps (line 453) | type NFTMintExtendProps<T, C = FeeInfo> = {
type NFTMetaExtendProps (line 464) | type NFTMetaExtendProps<T, C = FeeInfo> = {
type NFTMintViewProps (line 472) | type NFTMintViewProps<ME, MI, I, C> = {
type NFTMetaViewProps (line 482) | type NFTMetaViewProps<T, Co, C> = {
type NFTMetaBlockProps (line 490) | type NFTMetaBlockProps<T, Co, I, C> = NFTMetaViewProps<T, Co, C> & {
type NFTDeployInfoProps (line 504) | type NFTDeployInfoProps<T, I, C> = DefaultWithMethodProps<T, I> & {
type NFTDeployExtendProps (line 519) | type NFTDeployExtendProps<T, I, C> = {
type NFTDeployViewProps (line 526) | type NFTDeployViewProps<T, I, C> = NFTDeployExtendProps<T, I, C>
type NFTMintAdvanceInfoProps (line 528) | type NFTMintAdvanceInfoProps<T, I, C> = DefaultWithMethodProps<T, I> & {
type NFTMintAdvanceExtendProps (line 545) | type NFTMintAdvanceExtendProps<T, Co, I, C = FeeInfo> = {
type NFTMintAdvanceViewProps (line 555) | type NFTMintAdvanceViewProps<T, Co, I, C> = NFTMintAdvanceExtendProps<T,...
type CollectionAdvanceProps (line 557) | type CollectionAdvanceProps<_T> = {
type ImportCollectionStep (line 567) | enum ImportCollectionStep {
type CollectionManageData (line 573) | type CollectionManageData<NFT> = {
type ImportCollectionViewProps (line 586) | type ImportCollectionViewProps<Co, NFT> = {
type CollectionMethod (line 617) | enum CollectionMethod {
type CollectionManageProps (line 622) | type CollectionManageProps<Co, NFT> = {
type ImportRedPacketProps (line 631) | type ImportRedPacketProps = {
type ImportRedPacketExtendsProps (line 637) | type ImportRedPacketExtendsProps<T> = {
type ImportRedPacketViewProps (line 644) | type ImportRedPacketViewProps<T> = ImportRedPacketExtendsProps<T>
type ClaimInfoProps (line 646) | type ClaimInfoProps<Fee> = {
type ClaimExtendProps (line 657) | type ClaimExtendProps<T, Fee> = {
type CreateRedPacketInfoProps (line 668) | type CreateRedPacketInfoProps<Fee = FeeInfo> = {
type CreateRedPacketExtendsProps (line 682) | type CreateRedPacketExtendsProps<T, F> = {
type CreateRedPacketViewProps (line 704) | type CreateRedPacketViewProps<T, I, F, NFT = NFTWholeINFO> = CreateRedPa...
type TargetRedpacktSelectStepProps (line 727) | type TargetRedpacktSelectStepProps = {
type TargetRedpacktInputAddressStepProps (line 739) | type TargetRedpacktInputAddressStepProps = {
type VaultJoinInfoProps (line 758) | type VaultJoinInfoProps = {
FILE: packages/component-lib/src/components/tradePanel/components/MintAdvanceNFTWrap.tsx
type AdMethod (line 51) | enum AdMethod {
constant NFT_TYPE (line 75) | const NFT_TYPE: TGItemData[] = [
type MintStep (line 90) | enum MintStep {
FILE: packages/component-lib/src/components/tradePanel/components/SwapWrap/Interface.ts
type SwapData (line 5) | type SwapData<ST> = {
type SwapMenuListProps (line 9) | type SwapMenuListProps<T, TCD> = {
type SwapTradeBaseProps (line 19) | type SwapTradeBaseProps<T, I, TCD> = {
type SwapTradeBaseEventProps (line 45) | type SwapTradeBaseEventProps<T, I> = {
type SwapTradeExtendProps (line 50) | type SwapTradeExtendProps<T> = {
type SwapTradeProps (line 54) | type SwapTradeProps<T, I, TCD> = SwapTradeBaseProps<T, I, TCD> &
FILE: packages/component-lib/src/components/tradePanel/components/SwapWrap/SwapMenuList.tsx
function SwapMenuList (line 8) | function SwapMenuList<T extends IBData<I>, I, TCD extends TradeCalcData<...
FILE: packages/component-lib/src/components/tradePanel/components/VaultWrap/Interface.ts
type VaultJoinBaseProps (line 7) | type VaultJoinBaseProps<T, I, V> = {
type VaultJoinExtendProps (line 26) | type VaultJoinExtendProps<T, I, C = IBData<I>> = {
type VaultJoinWrapProps (line 44) | type VaultJoinWrapProps<T, I, V> = VaultJoinBaseProps<T, I, V> & VaultJo...
type VaultExitBaseProps (line 46) | type VaultExitBaseProps = {
type VaultBorrowBaseProps (line 57) | type VaultBorrowBaseProps<T, I, B> = {
type VaultBorrowWrapProps (line 83) | type VaultBorrowWrapProps<T, I, B> = BasicACoinTradeViewProps<T, I> &
type VaultRepayWrapProps (line 86) | type VaultRepayWrapProps<T, I, VR> = BasicACoinTradeViewProps<T, I> & {
FILE: packages/component-lib/src/components/tradePanel/components/tool/Dialogs.tsx
type RiskInformation (line 106) | type RiskInformation = {
FILE: packages/component-lib/src/components/tradePanel/components/tool/SlippagePanel.tsx
constant CUSTOMER_SLIPPAGE_NAME (line 57) | const CUSTOMER_SLIPPAGE_NAME = 'customerSlippage'
FILE: packages/component-lib/src/components/tradePanel/components/tool/ToolBarItems.tsx
function HorizontalLabelPositionBelowStepper (line 52) | function HorizontalLabelPositionBelowStepper({
FILE: packages/component-lib/src/components/tradePanel/tradePro/Interface.ts
type TradeLimitInfoProps (line 11) | type TradeLimitInfoProps<T, TCD extends TradeCalcProData<I>, I> = {
type StopTradeLimitInfoProps (line 20) | type StopTradeLimitInfoProps<T, TCD extends TradeCalcProData<I>, I> = {
type TradeMarketInfoProps (line 25) | type TradeMarketInfoProps<T, TCD extends TradeCalcProData<I>, I> = {
type TradeProBaseEventProps (line 34) | type TradeProBaseEventProps<X, T, I> = {
type TradeCommonProps (line 41) | type TradeCommonProps<X, T, TCD, I> = {
FILE: packages/component-lib/src/sharedPages/VaultPage/components/VaultPageUI.tsx
type VaultPageUIProps (line 19) | interface VaultPageUIProps {
FILE: packages/component-lib/src/sharedPages/VaultPage/components/VaultSwapView.tsx
type VaultSwapViewProps (line 44) | interface VaultSwapViewProps {
FILE: packages/component-lib/src/sharedPages/VaultPage/components/modals.tsx
type NoAccountHintModalProps (line 772) | interface NoAccountHintModalProps {
type SmallOrderAlertProps (line 824) | interface SmallOrderAlertProps {
type SupplyCollateralHintModalProps (line 884) | interface SupplyCollateralHintModalProps {
type SettleConfirmModalProps (line 927) | interface SettleConfirmModalProps {
type CloseAllConfirmModalProps (line 1003) | interface CloseAllConfirmModalProps {
type CloseConfirmModalProps (line 1062) | interface CloseConfirmModalProps {
type AutoRepayModalProps (line 1130) | interface AutoRepayModalProps {
FILE: packages/component-lib/src/sharedPages/VaultPage/components/useVaultSwapExtends.tsx
type ActiveStep (line 23) | enum ActiveStep {
FILE: packages/component-lib/src/sharedPages/VaultPage/hooks/useVaultDashBoard.tsx
method onClickTrade (line 619) | onClickTrade(symbol) {
method onClickRepay (line 633) | onClickRepay(symbol) {
method onCheck (line 749) | onCheck() {
FILE: packages/component-lib/src/sharedPages/VaultPage/hooks/useVaultSwap.ts
type VaultTradeTradeData (line 122) | type VaultTradeTradeData = VaultBorrowTradeData & { borrowAvailable: str...
FILE: packages/component-lib/src/sharedPages/VaultPage/interface.ts
type VaultDashBoardPanelUIProps (line 16) | interface VaultDashBoardPanelUIProps {
type CollateralDetailsModalProps (line 63) | interface CollateralDetailsModalProps {
type MaximumCreditModalProps (line 78) | interface MaximumCreditModalProps {
type LeverageModalProps (line 89) | interface LeverageModalProps {
type DebtModalProps (line 104) | interface DebtModalProps {
type DustCollectorUnAvailableModalProps (line 121) | interface DustCollectorUnAvailableModalProps {
type DustCollectorProps (line 126) | interface DustCollectorProps {
FILE: packages/component-lib/src/static.ts
type ButtonComponentsMap (line 141) | enum ButtonComponentsMap {
constant TOKEN_INFO (line 223) | const TOKEN_INFO = {
type CoinType (line 505) | type CoinType = typeof coinType
constant DUALVIEWINFO (line 506) | const DUALVIEWINFO: DualViewInfo = {
constant DUALCALCDATA (line 559) | const DUALCALCDATA: DualCalcData<DualViewInfo> = {
constant FOREXMAP (line 581) | const FOREXMAP: ForexMap<Currency> = {
constant REDPACKETMOCK (line 585) | const REDPACKETMOCK: LuckyTokenItemForReceive = {
constant LUCKTOKENLIST (line 623) | const LUCKTOKENLIST = [
FILE: packages/component-lib/src/stores/reducer/modals/interface.ts
type ModalType (line 15) | enum ModalType {
type ModalTypeKeys (line 21) | type ModalTypeKeys = keyof typeof ModalType
type ModalStatePlayLoad (line 23) | type ModalStatePlayLoad = {
type Transaction (line 27) | type Transaction = {
type ModalState (line 31) | interface ModalState {
FILE: packages/component-lib/src/stores/reducer/modals/reducer.ts
method setShowGlobalToast (line 79) | setShowGlobalToast(
method setNFTMetaNotReady (line 96) | setNFTMetaNotReady(
method setShowRedPacket (line 110) | setShowRedPacket(
method setShowIFrame (line 125) | setShowIFrame(state, action: PayloadAction<{ isShow: boolean; url: strin...
method setShowSupport (line 132) | setShowSupport(state, action: PayloadAction<ModalStatePlayLoad>) {
method setShowOtherExchange (line 136) | setShowOtherExchange(
method setShowWrongNetworkGuide (line 151) | setShowWrongNetworkGuide(state, action: PayloadAction<ModalStatePlayLoad...
method setShowAmm (line 155) | setShowAmm(
method setShowSwap (line 167) | setShowSwap(state, action: PayloadAction<ModalStatePlayLoad>) {
method setShowNFTDetail (line 171) | setShowNFTDetail(state, action: PayloadAction<ModalStatePlayLoad & Parti...
method setShowNFTTransfer (line 179) | setShowNFTTransfer(state, action: PayloadAction<ModalStatePlayLoad & NFT...
method setShowNFTDeploy (line 190) | setShowNFTDeploy(state, action: PayloadAction<ModalStatePlayLoad & NFTWh...
method setShowNFTDeposit (line 202) | setShowNFTDeposit(state, action: PayloadAction<ModalStatePlayLoad & Trad...
method setShowCollectionAdvance (line 210) | setShowCollectionAdvance(state, action: PayloadAction<ModalStatePlayLoad...
method setShowNFTMintAdvance (line 217) | setShowNFTMintAdvance(state, action: PayloadAction<ModalStatePlayLoad & ...
method setShowNFTWithdraw (line 226) | setShowNFTWithdraw(state, action: PayloadAction<ModalStatePlayLoad & NFT...
method setShowTransfer (line 237) | setShowTransfer(state, action: PayloadAction<ModalStatePlayLoad & Transa...
method setShowTransferToTaikoAccount (line 248) | setShowTransferToTaikoAccount(state, action: PayloadAction<ModalStatePla...
method setShowWithdraw (line 256) | setShowWithdraw(state, action: PayloadAction<ModalStatePlayLoad & Transa...
method setShowDeposit (line 267) | setShowDeposit(
method setShowResetAccount (line 278) | setShowResetAccount(state, action: PayloadAction<ModalStatePlayLoad>) {
method setShowActiveAccount (line 283) | setShowActiveAccount(state, action: PayloadAction<ModalStatePlayLoad>) {
method setShowExportAccount (line 288) | setShowExportAccount(state, action: PayloadAction<ModalStatePlayLoad>) {
method setShowDual (line 292) | setShowDual(
method setShowConnect (line 307) | setShowConnect(
method setShowAccount (line 324) | setShowAccount(
method setShowFeeSetting (line 341) | setShowFeeSetting(state, action: PayloadAction<{ isShow: boolean }>) {
method setShowLayerSwapNotice (line 347) | setShowLayerSwapNotice(state, action: PayloadAction<{ isShow: boolean }>) {
method setShowAnotherNetworkNotice (line 353) | setShowAnotherNetworkNotice(state, action: PayloadAction<{ isShow: boole...
method setShowTradeIsFrozen (line 360) | setShowTradeIsFrozen(
method setShowClaimWithdraw (line 375) | setShowClaimWithdraw(
method setShowSideStakingRedeem (line 391) | setShowSideStakingRedeem(
method setShowEditContact (line 401) | setShowEditContact(
method setShowTargetRedpacketPop (line 415) | setShowTargetRedpacketPop(
method setShowETHStakingApr (line 439) | setShowETHStakingApr(state, action: PayloadAction<ModalStatePlayLoad & {...
method setShowVaultExit (line 447) | setShowVaultExit(state, action: PayloadAction<ModalStatePlayLoad & Trans...
method setShowVaultJoin (line 450) | setShowVaultJoin(state, action: PayloadAction<ModalStatePlayLoad & Trans...
method setShowVaultSwap (line 453) | setShowVaultSwap(state, action: PayloadAction<ModalStatePlayLoad & Trans...
method setShowVaultLoan (line 456) | setShowVaultLoan(
method setShowVaultCloseConfirm (line 462) | setShowVaultCloseConfirm(
method setShowNoVaultAccount (line 468) | setShowNoVaultAccount(
method setShowConfirmedVault (line 474) | setShowConfirmedVault(state, action: PayloadAction<ModalStatePlayLoad>) {
method setShowBridge (line 477) | setShowBridge(state, action: PayloadAction<ModalStatePlayLoad & Partial<...
method setShowClosureAnnouncement (line 480) | setShowClosureAnnouncement(state, action: PayloadAction<ModalStatePlayLo...
FILE: packages/component-lib/src/stores/reducer/settings/hook.ts
function useSettings (line 37) | function useSettings(): SettingsState & {
FILE: packages/component-lib/src/stores/reducer/settings/interface.ts
type PlatFormType (line 11) | enum PlatFormType {
type PlatFormKeys (line 17) | type PlatFormKeys = keyof typeof PlatFormType
type SettingsState (line 19) | interface SettingsState {
FILE: packages/component-lib/src/stores/reducer/settings/reducer.ts
method setReferralCode (line 48) | setReferralCode(state, action: PayloadAction<string>) {
method setDefaultNetwork (line 57) | setDefaultNetwork(state, action: PayloadAction<sdk.ChainId>) {
method setIsDevToggle (line 60) | setIsDevToggle(state, action: PayloadAction<boolean>) {
method setTheme (line 63) | setTheme(state, action: PayloadAction<ThemeKeys>) {
method setLanguage (line 67) | setLanguage(state, action: PayloadAction<LanguageKeys>) {
method setIsMobile (line 103) | setIsMobile(state, action: PayloadAction<boolean>) {
method setPlatform (line 107) | setPlatform(state, action: PayloadAction<keyof typeof PlatFormType>) {
method setCurrency (line 110) | setCurrency(state, action: PayloadAction<CurrencyToTag>) {
method setUpColor (line 118) | setUpColor(state, action: PayloadAction<keyof typeof UpColor>) {
method setSlippage (line 122) | setSlippage(state, action: PayloadAction<'N' | number>) {
method setCoinJson (line 126) | setCoinJson(state, action: PayloadAction<any>) {
method setHideL2Assets (line 130) | setHideL2Assets(state, action: PayloadAction<boolean>) {
method setHideL2Action (line 133) | setHideL2Action(state, action: PayloadAction<boolean>) {
method setHideLpToken (line 136) | setHideLpToken(state, action: PayloadAction<boolean>) {
method setHideSmallBalances (line 139) | setHideSmallBalances(state, action: PayloadAction<boolean>) {
method setFeeChargeOrder (line 142) | setFeeChargeOrder(state, action: PayloadAction<string[]>) {
method setLayouts (line 145) | setLayouts(state, action: PayloadAction<Layouts>) {
method setStopLimitLayouts (line 153) | setStopLimitLayouts(state, action: PayloadAction<Layouts>) {
method setSwapSecondConfirmation (line 161) | setSwapSecondConfirmation(state, action: PayloadAction<boolean>) {
method setDualDefault (line 164) | setDualDefault(state, action: PayloadAction<{ auto: boolean; day: number...
method setBTradeShowTutorial (line 167) | setBTradeShowTutorial(state, action: PayloadAction<boolean>) {
FILE: packages/component-lib/src/stores/reducer/toggle/hook.ts
function useToggle (line 6) | function useToggle() {
FILE: packages/component-lib/src/stores/reducer/toggle/interface.ts
type ToggleState (line 3) | type ToggleState = {
type TogglePlayLoad (line 53) | type TogglePlayLoad = Partial<ToggleState> & {
FILE: packages/component-lib/src/stores/reducer/toggle/reducer.ts
method updateToggleStatus (line 57) | updateToggleStatus(state, action: PayloadAction<TogglePlayLoad>) {
FILE: packages/component-lib/src/types/lib.ts
type Without (line 1) | type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never }
type XOR (line 2) | type XOR<T, U> = T | U extends { [key: string]: any }
FILE: packages/component-lib/src/utils/closureAnnouncementUtils.ts
constant CLOSURE_ANNOUNCEMENT_KEY (line 1) | const CLOSURE_ANNOUNCEMENT_KEY = 'loopring_closure_announcement_dismissed'
FILE: packages/core/src/api_wrapper/index.ts
class LoopringAPI (line 18) | class LoopringAPI {
FILE: packages/core/src/defs/index.ts
type ActionResultCode (line 3) | enum ActionResultCode {
type EddsaKey (line 11) | type EddsaKey = { eddsaKey: any; accInfo?: sdk.AccountInfo }
constant LAYOUT (line 13) | const LAYOUT = {
constant REFRESH_RATE (line 18) | const REFRESH_RATE = 1000
constant DAYS (line 20) | const DAYS = 30
constant BIGO (line 22) | const BIGO = sdk.toBig(0)
constant MAPFEEBIPS (line 24) | const MAPFEEBIPS = 200
FILE: packages/core/src/hookConnect.tsx
function useConnect (line 339) | function useConnect(_props: { state: keyof typeof SagaStatus }) {
FILE: packages/core/src/hooks/common/useAllowances.ts
function useAllowances (line 6) | function useAllowances({ owner, symbol }: { owner: string; symbol: strin...
FILE: packages/core/src/hooks/common/useBtnStatus.ts
function useBtnStatus (line 5) | function useBtnStatus() {
FILE: packages/core/src/hooks/common/useDebounce.ts
function useDebouncedCallback (line 4) | function useDebouncedCallback<A extends any[]>(
FILE: packages/core/src/hooks/common/useGetOrderHistorys.ts
function useGetOrderHistorys (line 14) | function useGetOrderHistorys() {
FILE: packages/core/src/hooks/common/usePairMatch.ts
function usePairMatch (line 6) | function usePairMatch({
FILE: packages/core/src/hooks/common/useThrottle.ts
function useThrottle (line 4) | function useThrottle(cb, delay) {
FILE: packages/core/src/hooks/common/useTrade.ts
type PriceLevel (line 29) | enum PriceLevel {
type ReqParams (line 35) | type ReqParams = {
function makeMarketReq (line 64) | function makeMarketReq({
function makeLimitReq (line 436) | function makeLimitReq({
function usePlaceOrder (line 623) | function usePlaceOrder() {
FILE: packages/core/src/hooks/help/coinPairInit.ts
function coinPairInit (line 1) | function coinPairInit({ coinKey, _tradeCalcData, tokenMap, coinMap }: an...
FILE: packages/core/src/hooks/help/formatPrice.ts
function formatedVal (line 4) | function formatedVal(rawData: string, base: string, quote: string) {
FILE: packages/core/src/hooks/help/makeCache.ts
type Cache (line 4) | type Cache = {
FILE: packages/core/src/hooks/help/makeUIAmmActivityMap.ts
type AmmActivityViewMap (line 79) | type AmmActivityViewMap<R, I> = {
type Value (line 243) | type Value = undefined | number | string
type SummaryMyInvest (line 244) | type SummaryMyInvest = {
FILE: packages/core/src/hooks/help/makeWallet.ts
type WalletMapExtend (line 10) | type WalletMapExtend<C> = {
FILE: packages/core/src/hooks/help/useAmmTotalValue.ts
type GetAmmLiquidityProps (line 10) | type GetAmmLiquidityProps = {
FILE: packages/core/src/hooks/useractions/hookAmmCommon.ts
function usePairInit (line 48) | function usePairInit({ ammInfo }: { ammInfo: AmmDetailStore<any> }) {
FILE: packages/core/src/hooks/useractions/hookSwap.ts
type ShowWitchAle3t1 (line 68) | enum ShowWitchAle3t1 {
FILE: packages/core/src/hooks/useractions/useAccountModal.ts
function useAccountModal (line 9) | function useAccountModal() {
FILE: packages/core/src/hooks/useractions/useCheckAccStatus.tsx
function isAccActivated (line 25) | function isAccActivated() {
FILE: packages/core/src/hooks/useractions/useCollectionAdvanceMeta.ts
function useCollectionAdvanceMeta (line 16) | function useCollectionAdvanceMeta<T extends CollectionMeta>({
FILE: packages/core/src/hooks/useractions/useContact.ts
type TxsFilterProps (line 208) | type TxsFilterProps = {
function useContractRecord (line 218) | function useContractRecord(setToastOpen: (state: any) => void) {
FILE: packages/core/src/hooks/useractions/useDeposit.ts
method onClose (line 752) | onClose() {
FILE: packages/core/src/hooks/useractions/useNFTDeploy.ts
function useNFTDeploy (line 44) | function useNFTDeploy<T extends TradeNFT<I, any> & { broker: string }, I...
FILE: packages/core/src/hooks/useractions/useNFTMintAdvance.ts
constant CID (line 46) | const CID = require('cids')
FILE: packages/core/src/hooks/useractions/useRedpacket.ts
function useOpenRedpacket (line 10) | function useOpenRedpacket() {
FILE: packages/core/src/hooks/useractions/useTransferToTaikoAccount.ts
method onClickBack (line 560) | onClickBack() {
method onClickClose (line 580) | onClickClose() {
FILE: packages/core/src/hooks/useractions/useUpdateAccount.ts
function useUpdateAccount (line 273) | function useUpdateAccount() {
FILE: packages/core/src/hooks/useractions/useVendor.ts
type RAMP_SELL_PANEL (line 20) | enum RAMP_SELL_PANEL {
FILE: packages/core/src/hooks/useractions/vault/useAccountInfo.ts
type VaultAccountInfoStatus (line 26) | type VaultAccountInfoStatus = VaultLayer2States & {
FILE: packages/core/src/hooks/useractions/vault/useVaultBorrow.ts
type VaultBorrowTradeData (line 45) | type VaultBorrowTradeData = IBData<any> & {
FILE: packages/core/src/hooks/useractions/vault/useVaultJoin.ts
constant DATE_IN_TEN_YEARS (line 54) | const DATE_IN_TEN_YEARS = 2027988026
FILE: packages/core/src/modal/AccountL1Modal/hook.tsx
function useAccountModalForL1UI (line 44) | function useAccountModalForL1UI({
FILE: packages/core/src/modal/AccountModal/components/NFTDetail.tsx
type NFTDetailTab (line 67) | enum NFTDetailTab {
FILE: packages/core/src/modal/AccountModal/hook.tsx
function useAccountModalForUI (line 259) | function useAccountModalForUI({
FILE: packages/core/src/modal/AmmPoolModal/hooks.ts
type AwardItme (line 23) | type AwardItme = {
FILE: packages/core/src/modal/RedPacketModal/hook.tsx
function useRedPacketModal (line 56) | function useRedPacketModal() {
FILE: packages/core/src/services/account/activateAccount.ts
function activateAccount (line 15) | async function activateAccount({
function activateAccountSmartWallet (line 207) | async function activateAccountSmartWallet({
function updateAccountRecursively (line 266) | async function updateAccountRecursively({
FILE: packages/core/src/services/account/command.ts
type AccountCommands (line 1) | enum AccountCommands {
FILE: packages/core/src/services/account/lockAccount.ts
function lockAccount (line 5) | function lockAccount() {
function goErrorNetWork (line 9) | function goErrorNetWork() {
function cleanLayer2 (line 14) | function cleanLayer2() {
FILE: packages/core/src/services/account/resetAccount.ts
function resetLayer12Data (line 17) | async function resetLayer12Data() {
function resetSystemData (line 63) | async function resetSystemData() {
function resetLayer2Data (line 68) | function resetLayer2Data() {
function toggleCheck (line 79) | async function toggleCheck(
FILE: packages/core/src/services/account/unlockAccount.ts
function unlockAccount (line 293) | async function unlockAccount() {
FILE: packages/core/src/services/account/useAccountHook.ts
function useAccountHook (line 5) | function useAccountHook({
FILE: packages/core/src/services/banxa/banxaService.ts
type BalanceReason (line 19) | enum BalanceReason {
type BanxaCheck (line 24) | enum BanxaCheck {
type OrderENDReason (line 31) | enum OrderENDReason {
FILE: packages/core/src/services/banxa/index.tsx
function useOffFaitModal (line 14) | function useOffFaitModal() {
FILE: packages/core/src/services/banxa/offFaitService.ts
type OffFaitCommon (line 16) | enum OffFaitCommon {
type OffOderUIItem (line 21) | type OffOderUIItem = {
FILE: packages/core/src/services/claimServices/claimServices.ts
type ClaimCommands (line 4) | enum ClaimCommands {
FILE: packages/core/src/services/collectionServices/collectionService.ts
type ContractCommands (line 4) | enum ContractCommands {
FILE: packages/core/src/services/connect/useConnectHook.ts
function useConnectHook (line 6) | function useConnectHook({
FILE: packages/core/src/services/depositServices/depositServices.ts
type DepositCommands (line 3) | enum DepositCommands {
FILE: packages/core/src/services/fee/useChargeFees.ts
constant INTERVAL_TIME (line 24) | const INTERVAL_TIME = (() => 900000)()
function useChargeFees (line 25) | function useChargeFees({
FILE: packages/core/src/services/ipfs/ipfsService.ts
type IPFSCommands (line 12) | enum IPFSCommands {
class IpfsProvides (line 16) | class IpfsProvides {
method ipfs (line 19) | get ipfs(): IPFSHTTPClient | undefined {
method init (line 23) | async init() {
method stop (line 35) | stop() {
FILE: packages/core/src/services/ipfs/useIpfs.ts
function useIPFS (line 5) | function useIPFS({ handleSuccessUpload, handleFailedUpload }: any) {
FILE: packages/core/src/services/mintServices/mintService.ts
type MintCommands (line 21) | enum MintCommands {
FILE: packages/core/src/services/mintServices/useNFTMeta.ts
function useNFTMeta (line 29) | function useNFTMeta<T extends NFTMETA, Co extends CollectionMeta>({
FILE: packages/core/src/services/mintServices/useNFTMint.ts
function useNFTMint (line 45) | function useNFTMint<Me extends NFTMETA, Mi extends MintTradeNFT<I>, I, _...
FILE: packages/core/src/services/qrcodeServices/qrCodeService.ts
function onScanSuccess (line 6) | function onScanSuccess(decodedText: any, decodedResult: any) {
function onScanFailure (line 17) | function onScanFailure(error: any) {
class Html5QrcodeScannerProvides (line 24) | class Html5QrcodeScannerProvides {
method h5QrcodeScanner (line 27) | get h5QrcodeScanner(): Html5QrcodeScanner | undefined {
method constructor (line 31) | constructor() {
method init (line 36) | async init() {
method clear (line 58) | clear() {
method stop (line 68) | stop() {
method render (line 79) | render() {
type H5QrcodeScannerCommands (line 91) | enum H5QrcodeScannerCommands {
FILE: packages/core/src/services/qrcodeServices/useQrcodeScan.ts
function useQrcodeScan (line 10) | function useQrcodeScan({ handleFailedUpload, handleSuccessUpload }: any) {
FILE: packages/core/src/services/socket/services/ammPoolService.ts
type AmmPoolMap (line 3) | type AmmPoolMap<R> = {
FILE: packages/core/src/services/socket/services/bookService.ts
type BookMap (line 6) | type BookMap<R> = {
FILE: packages/core/src/services/socket/services/btradeOrderbookService.ts
type BtradeOrderbookMap (line 8) | type BtradeOrderbookMap<R> = {
FILE: packages/core/src/services/socket/services/mixorderService.ts
type MixorderMap (line 8) | type MixorderMap<R> = {
FILE: packages/core/src/services/socket/services/orderbookService.ts
type OrderbookMap (line 8) | type OrderbookMap<R> = {
FILE: packages/core/src/services/socket/socketUtil.ts
type SocketEvent (line 16) | type SocketEvent = (e: any, ...props: any[]) => any
type PINGPONG (line 18) | enum PINGPONG {
type SocketCallbackMap (line 22) | type SocketCallbackMap = {
type SocketEventMap (line 27) | type SocketEventMap = {
class LoopringSocket (line 31) | class LoopringSocket {
method constructor (line 197) | constructor(url: string) {
method socketKeyMap (line 204) | get socketKeyMap(): object | undefined {
method topics (line 210) | get topics(): object | undefined {
method socketCallbackMap (line 216) | get socketCallbackMap(): SocketCallbackMap | undefined {
method ws (line 222) | get ws(): WebSocket | undefined {
FILE: packages/core/src/storage/index.ts
type CONSTANTS (line 4) | enum CONSTANTS {
constant SESSION_TIMEOUT (line 20) | const SESSION_TIMEOUT = 7 * 24 * 60 * 60 * 1000
class UserStorage (line 22) | class UserStorage {
method getLocalDepositHash (line 23) | public static getLocalDepositHash(account: Account): { [key: string]: ...
method clearDepositHash (line 34) | public static clearDepositHash(account: Account, value: string) {
method setLocalDepositHash (line 43) | public static setLocalDepositHash(account: Account, value: string, sta...
method clearWalletConnect (line 53) | public static clearWalletConnect() {
method setConnectorName (line 58) | public static setConnectorName(connectionName: string) {
method getConnectorName (line 62) | public static getConnectorName() {
method clearConnectorName (line 66) | public static clearConnectorName() {
method getHandler (line 71) | public static getHandler() {
method setHandler (line 79) | public static setHandler(handler: any) {
method clearHandler (line 83) | public static clearHandler() {
method checkTimeout (line 87) | public static checkTimeout(reset: boolean = false): boolean {
method getAccountId (line 107) | public static getAccountId() {
method setAccountId (line 115) | public static setAccountId(accountId: number) {
method getAccount (line 119) | public static getAccount() {
method setAccount (line 123) | public static setAccount(account: string) {
method getApikey (line 127) | public static getApikey() {
method setApikey (line 131) | public static setApikey(apikey: string) {
method getEddsakey (line 135) | public static getEddsakey() {
method setEddsakey (line 139) | public static setEddsakey(eddsakey: string) {
method getAmmOrder (line 143) | public static getAmmOrder(): string {
method setAmmOrder (line 148) | public static setAmmOrder(orderHash: string) {
method clearAmmOrder (line 152) | public static clearAmmOrder() {
method isHardwareAddress (line 156) | public static isHardwareAddress(address: string) {
method saveHardwareAddress (line 166) | public static saveHardwareAddress(address: string) {
FILE: packages/core/src/stores/Amm/AmmActivityMap/hook.ts
function useAmmActivityMap (line 6) | function useAmmActivityMap(): AmmActivityMapStates & {
FILE: packages/core/src/stores/Amm/AmmActivityMap/interface.ts
type ActivityMap (line 8) | type ActivityMap = LoopringMap<LoopringMap<AmmPoolActivityRule[]>>
type ActivityRulesMap (line 9) | type ActivityRulesMap = LoopringMap<AmmPoolInProgressActivityRule>
type AmmActivityMapStates (line 10) | type AmmActivityMapStates = {
FILE: packages/core/src/stores/Amm/AmmActivityMap/reducer.ts
method getAmmActivityMap (line 19) | getAmmActivityMap(state, _action: PayloadAction<string | undefined>) {
method getAmmActivityMapStatus (line 22) | getAmmActivityMapStatus(state, action: PayloadAction<AmmActivityMapState...
FILE: packages/core/src/stores/Amm/AmmMap/interface.ts
type GetAmmMapParams (line 4) | type GetAmmMapParams = { ammpools: LoopringMap<AmmPoolInfoV3> }
type AmmDetailStore (line 6) | type AmmDetailStore<T> = AmmDetail<T>
type AmmMap (line 7) | type AmmMap<R extends { [key: string]: any }, I extends { [key: string]:...
type AmmMapStates (line 10) | type AmmMapStates<R extends { [key: string]: any }, I extends { [key: st...
FILE: packages/core/src/stores/Amm/AmmMap/reducer.ts
method initAmmMap (line 18) | initAmmMap(
method getAmmMap (line 51) | getAmmMap(
method getAmmMapStatus (line 57) | getAmmMapStatus(state, action: PayloadAction<AmmMapStates<any, any>>) {
method updateRealTimeAmmMap (line 78) | updateRealTimeAmmMap(
FILE: packages/core/src/stores/Amm/AmmMap/saga.ts
type AmmMap (line 34) | type AmmMap<R extends { [key: string]: any }> = { [key: string]: AmmDeta...
FILE: packages/core/src/stores/account/hook.ts
function useAccount (line 7) | function useAccount() {
FILE: packages/core/src/stores/account/reducer.ts
method updateAccountStatus (line 34) | updateAccountStatus(state) {
method nextAccountSyncStatus (line 37) | nextAccountSyncStatus(state) {
method changeShowModel (line 40) | changeShowModel(state, action: PayloadAction<{ _userOnModel: boolean | u...
method nextAccountStatus (line 45) | nextAccountStatus(state, action: PayloadAction<Partial<Account>>) {
method cleanAccountStatus (line 131) | cleanAccountStatus(
FILE: packages/core/src/stores/amount/hook.ts
function useAmount (line 6) | function useAmount(): AmountStates & {
FILE: packages/core/src/stores/amount/interface.ts
type Amount (line 5) | type Amount = {
type TimerMap (line 8) | type TimerMap = { [key: string]: NodeJS.Timeout | -1 }
type AmountStates (line 12) | type AmountStates = {
FILE: packages/core/src/stores/amount/reducer.ts
type AmountMap (line 12) | type AmountMap = sdk.LoopringMap<sdk.TokenAmount>
method getAmount (line 18) | getAmount(state, _action: PayloadAction<{ market: string }>) {
method resetAmount (line 21) | resetAmount(state, _action: PayloadAction<undefined>) {
method getAmountStatus (line 24) | getAmountStatus(state, action: PayloadAction<AmountStates>) {
FILE: packages/core/src/stores/config/interface.ts
type FastWithdrawConfig (line 5) | type FastWithdrawConfig = {
type Config (line 31) | type Config = {
FILE: packages/core/src/stores/config/reducer.ts
method updateFastWithdrawConfig (line 11) | updateFastWithdrawConfig(state, action: PayloadAction<FastWithdrawConfig...
FILE: packages/core/src/stores/contacts/interface.ts
type ContactsState (line 4) | type ContactsState = Pick<sdk.GetContactsResponse, 'contacts'> & {
FILE: packages/core/src/stores/contacts/reducer.ts
method updateContacts (line 18) | updateContacts(state) {
method reset (line 21) | reset(state) {
method getContactsStatus (line 27) | getContactsStatus(state, action: PayloadAction<ContactsState>) {
FILE: packages/core/src/stores/index.ts
constant DEFAULT_TIMEOUT (line 83) | const DEFAULT_TIMEOUT = 1000 * 60 * 15
type AppDispatch (line 258) | type AppDispatch = typeof store.dispatch
type RootState (line 261) | type RootState = ReturnType<typeof initReduce>
FILE: packages/core/src/stores/invest/BtradeMap/interface.ts
type BtradeUIMap (line 4) | type BtradeUIMap = { enabled: boolean | 'isFormLocal' } & Omit<sdk.BTRAD...
type BtradeMap (line 5) | type BtradeMap = {
type BtradeMapStates (line 12) | type BtradeMapStates = BtradeMap & {
FILE: packages/core/src/stores/invest/BtradeMap/reducer.ts
method getBtradeMap (line 18) | getBtradeMap(state, _action: PayloadAction<undefined>) {
method getBtradeMapStatus (line 21) | getBtradeMapStatus(state, action: PayloadAction<BtradeMapStates>) {
method updateBtradeSyncMap (line 42) | updateBtradeSyncMap(state, _action: PayloadAction<BtradeMapStates>) {
FILE: packages/core/src/stores/invest/DefiMap/interface.ts
type DefiMap (line 4) | type DefiMap = {
type DefiMapStates (line 13) | type DefiMapStates = DefiMap & {
FILE: packages/core/src/stores/invest/DefiMap/reducer.ts
method getDefiMap (line 20) | getDefiMap(state, _action: PayloadAction<undefined>) {
method getDefiMapStatus (line 23) | getDefiMapStatus(state, action: PayloadAction<DefiMapStates>) {
method updateDefiSyncMap (line 46) | updateDefiSyncMap(state, _action: PayloadAction<DefiMapStates>) {
FILE: packages/core/src/stores/invest/DualMap/interface.ts
type DualMap (line 4) | type DualMap = {
type DualMapStates (line 11) | type DualMapStates = DualMap & {
FILE: packages/core/src/stores/invest/DualMap/reducer.ts
method getDualMap (line 19) | getDualMap(state, _action: PayloadAction<undefined>) {
method getDualMapStatus (line 22) | getDualMapStatus(state, action: PayloadAction<DualMapStates>) {
method updateDualSyncMap (line 44) | updateDualSyncMap(
FILE: packages/core/src/stores/invest/InvestTokenTypeMap/interface.ts
type InvestTokenTypeMap (line 6) | type InvestTokenTypeMap = {
type InvestTokenTypeMapStates (line 12) | type InvestTokenTypeMapStates = {
FILE: packages/core/src/stores/invest/InvestTokenTypeMap/reducer.ts
method getInvestTokenTypeMap (line 14) | getInvestTokenTypeMap(state, _action: PayloadAction<undefined>) {
method getInvestTokenTypeMapStatus (line 17) | getInvestTokenTypeMapStatus(state, action: PayloadAction<InvestTokenType...
FILE: packages/core/src/stores/invest/InvestTokenTypeMap/saga.ts
function calcApr (line 6) | function calcApr(
function calcDefiApr (line 20) | function calcDefiApr(
function calcDualApr (line 39) | function calcDualApr(apr: [number, number], investItem: InvestItem): [st...
FILE: packages/core/src/stores/invest/StakingMap/interface.ts
type StakingMap (line 4) | type StakingMap = {
type StakingMapStates (line 10) | type StakingMapStates = StakingMap & {
FILE: packages/core/src/stores/invest/StakingMap/reducer.ts
method getStakingMap (line 17) | getStakingMap(state, _action: PayloadAction<undefined>) {
method getStakingMapStatus (line 20) | getStakingMapStatus(state, action: PayloadAction<StakingMapStates>) {
method updateStakingSyncMap (line 40) | updateStakingSyncMap(state, _action: PayloadAction<StakingMapStates>) {
FILE: packages/core/src/stores/invest/VaultMap/interface.ts
type VaultUIMap (line 5) | type VaultUIMap = VaultMarketExtends
type VaultMap (line 6) | type VaultMap<
type VaultMapStates (line 30) | type VaultMapStates = VaultMap & {
FILE: packages/core/src/stores/invest/VaultMap/reducer.ts
method getVaultMap (line 26) | getVaultMap(state, _action: PayloadAction<undefined>) {
method getVaultMapStatus (line 29) | getVaultMapStatus(state, action: PayloadAction<VaultMapStates & { raw_da...
method updateVaultSyncMap (line 57) | updateVaultSyncMap(state, _action: PayloadAction<VaultMapStates>) {
FILE: packages/core/src/stores/invest/VaultTicker/hook.ts
function useVaultTicker (line 7) | function useVaultTicker(): VaultTickerStates & {
FILE: packages/core/src/stores/invest/VaultTicker/interface.ts
type VaultTickerMap (line 3) | type VaultTickerMap<R = { [key: string]: any }> = {
type VaultTickerStates (line 6) | type VaultTickerStates<C = { [key: string]: any }> = {
FILE: packages/core/src/stores/invest/VaultTicker/reducer.ts
method resetVaultTicker (line 16) | resetVaultTicker(state) {
method updateVaultTicker (line 24) | updateVaultTicker(
method getVaultTickers (line 30) | getVaultTickers(state) {
method getVaultTickerStatus (line 33) | getVaultTickerStatus(state, action: PayloadAction<VaultTickerStates>) {
FILE: packages/core/src/stores/localStore/coinbaseSmartWalletPersist/hook.ts
function useCoinbaseSmartWalletPersist (line 7) | function useCoinbaseSmartWalletPersist() {
FILE: packages/core/src/stores/localStore/coinbaseSmartWalletPersist/interface.ts
type CoinbaseSmartWalletPersist (line 3) | interface CoinbaseSmartWalletPersist {
type CoinbaseSmartWalletPersistData (line 7) | interface CoinbaseSmartWalletPersistData {
FILE: packages/core/src/stores/localStore/coinbaseSmartWalletPersist/reducer.ts
method persistStoreCoinbaseSmartWalletData (line 16) | persistStoreCoinbaseSmartWalletData(state, action: PayloadAction<Coinbas...
FILE: packages/core/src/stores/localStore/confirmation/interface.ts
type Confirmation (line 3) | interface Confirmation {
FILE: packages/core/src/stores/localStore/confirmation/reducer.ts
method confirm (line 39) | confirm(state: Confirmation, _action: PayloadAction<string>) {
method confirmedRETHDefiInvest (line 42) | confirmedRETHDefiInvest(state: Confirmation, _action: PayloadAction<stri...
method confirmedWSETHDefiInvest (line 45) | confirmedWSETHDefiInvest(state: Confirmation, _action: PayloadAction<str...
method confirmedLRCStakeInvest (line 48) | confirmedLRCStakeInvest(state: Confirmation, _action: PayloadAction<stri...
method confirmDualAutoInvest (line 51) | confirmDualAutoInvest(state: Confirmation, _action: PayloadAction<undefi...
method confirmDualDipInvest (line 54) | confirmDualDipInvest(state: Confirmation, _action: PayloadAction<undefin...
method confirmDualGainInvest (line 57) | confirmDualGainInvest(state: Confirmation, _action: PayloadAction<undefi...
method confirmDualInvestV2 (line 60) | confirmDualInvestV2(
method confirmedBtradeSwap (line 66) | confirmedBtradeSwap(state: Confirmation, _action: PayloadAction<string>) {
method showDualBeginnerHelp (line 69) | showDualBeginnerHelp(state: Confirmation, _action: PayloadAction<string>) {
method hidDualBeginnerHelp (line 72) | hidDualBeginnerHelp(state: Confirmation, _action: PayloadAction<string>) {
method confirmedLeverageETHInvest (line 75) | confirmedLeverageETHInvest(state: Confirmation, _action: PayloadAction<s...
method setShowRETHStakePopup (line 78) | setShowRETHStakePopup(
method setShowWSTETHStakePopup (line 85) | setShowWSTETHStakePopup(
method setShowLRCStakePopup (line 92) | setShowLRCStakePopup(
method setShowLeverageETHPopup (line 99) | setShowLeverageETHPopup(
method setShowAutoDefault (line 106) | setShowAutoDefault(state: Confirmation, action: PayloadAction<{ show: bo...
method setConfirmedOpenVaultPosition (line 109) | setConfirmedOpenVaultPosition(state: Confirmation, _: PayloadAction) {
method setShowTaikoLaunchBanner (line 112) | setShowTaikoLaunchBanner(state: Confirmation, action: PayloadAction<{sho...
method setShowTaikoLockDescription (line 115) | setShowTaikoLockDescription(state: Confirmation, action: PayloadAction<{...
method setShowTaikoLaunchBanner2 (line 118) | setShowTaikoLaunchBanner2(state: Confirmation, action: PayloadAction<{sh...
method setShowVaultTradeHint (line 121) | setShowVaultTradeHint(state: Confirmation, action: PayloadAction<{show: ...
FILE: packages/core/src/stores/localStore/favoriteMarket/interface.ts
type FavoriteMarketStates (line 1) | type FavoriteMarketStates = string[]
FILE: packages/core/src/stores/localStore/favoriteMarket/reducer.ts
method clearAll (line 13) | clearAll(state: FavoriteMarketStates, _action: PayloadAction<undefined>) {
method removeMarket (line 16) | removeMarket(state: FavoriteMarketStates, action: PayloadAction<string>) {
method addMarket (line 23) | addMarket(state: FavoriteMarketStates, action: PayloadAction<string>) {
method addMarkets (line 29) | addMarkets(state: FavoriteMarketStates, action: PayloadAction<string[]>) {
FILE: packages/core/src/stores/localStore/favoriteVaultMarket/reducer.ts
method clearAll (line 12) | clearAll(state: FavoriteMarketStates, _action: PayloadAction<undefined>) {
method removeMarket (line 15) | removeMarket(state: FavoriteMarketStates, action: PayloadAction<string>) {
method addMarket (line 22) | addMarket(state: FavoriteMarketStates, action: PayloadAction<string>) {
method addMarkets (line 28) | addMarkets(state: FavoriteMarketStates, action: PayloadAction<string[]>) {
FILE: packages/core/src/stores/localStore/layer1Store/reducer.ts
method circleUpdateLayer1ActionHistory (line 26) | circleUpdateLayer1ActionHistory(
method layer1ActionHistoryStatus (line 32) | layer1ActionHistoryStatus(
method clearOneItem (line 51) | clearOneItem(
method setOneItem (line 67) | setOneItem(
FILE: packages/core/src/stores/localStore/nftRefresh/reducer.ts
method clearAll (line 26) | clearAll(state: NFTHashInfos, _action: PayloadAction<undefined>) {
method clearNFTRefreshHash (line 29) | clearNFTRefreshHash(
method updateNFTRefreshHash (line 40) | updateNFTRefreshHash(
FILE: packages/core/src/stores/localStore/offRamp/reducer.ts
method clearAll (line 30) | clearAll(state: OffRampHashInfos, _action: PayloadAction<undefined>) {
method updateOffRampHash (line 54) | updateOffRampHash(state: ChainHashInfos, action: PayloadAction<OffRampHa...
FILE: packages/core/src/stores/localStore/onchainHashInfo/reducer.ts
method clearAll (line 22) | clearAll(state: ChainHashInfos, _action: PayloadAction<undefined>) {
method clearDepositHash (line 34) | clearDepositHash(
method clearWithdrawHash (line 45) | clearWithdrawHash(_state: ChainHashInfos) {
method updateHadUnknownCollection (line 48) | updateHadUnknownCollection(
method updateDepositHash (line 70) | updateDepositHash(
method updateVaultBorrowHash (line 114) | updateVaultBorrowHash(
method clearVaultBorrowHash (line 149) | clearVaultBorrowHash(
FILE: packages/core/src/stores/localStore/redPacket/reducer.ts
type updateRedpacketHashProps (line 13) | type updateRedpacketHashProps = {
method clearRedPacketHash (line 43) | clearRedPacketHash(state: RedPacketHashInfos, _action: PayloadAction<und...
method updateRedpacketHash (line 80) | updateRedpacketHash(state: ChainHashInfos, action: PayloadAction<updateR...
FILE: packages/core/src/stores/localStore/tradeProSettings/interface.ts
type TradeProSettings (line 1) | interface TradeProSettings {
FILE: packages/core/src/stores/localStore/tradeProSettings/reducer.ts
method updateHideOtherPairs (line 17) | updateHideOtherPairs(state: TradeProSettings, action: PayloadAction<{ is...
FILE: packages/core/src/stores/localStore/walletInfo/interface.ts
type WalletInfo (line 1) | interface WalletInfo {
FILE: packages/core/src/stores/localStore/walletInfo/reducer.ts
method clearAll (line 17) | clearAll(state: WalletInfo) {
method updateWallet (line 20) | updateWallet(_state: WalletInfo, _action: PayloadAction<{ address: strin...
FILE: packages/core/src/stores/notify/hook.ts
function useNotify (line 6) | function useNotify() {
FILE: packages/core/src/stores/notify/interface.ts
type NotifyStates (line 7) | type NotifyStates = {
FILE: packages/core/src/stores/notify/reducer.ts
method restUerNotify (line 20) | restUerNotify(state) {
method getNotify (line 24) | getNotify(state, _action: PayloadAction<undefined>) {
method getUserNotify (line 27) | getUserNotify(state, _action: PayloadAction<undefined>) {
method getNotifyStatus (line 30) | getNotifyStatus(state, action: PayloadAction<NotifyStates>) {
FILE: packages/core/src/stores/redPacket/hook.ts
function useRedPacketConfig (line 7) | function useRedPacketConfig(): RedPacketConfigStates & {
FILE: packages/core/src/stores/redPacket/interface.ts
type RedPacketConfig (line 3) | type RedPacketConfig = any
type RedPacketConfigStates (line 4) | type RedPacketConfigStates = {
FILE: packages/core/src/stores/redPacket/reducer.ts
method getRedPacketConfigs (line 15) | getRedPacketConfigs(state, _action: PayloadAction<Array<CoinKey<any>>>) {
method getRedPacketConfigsStatus (line 18) | getRedPacketConfigsStatus(state, action: PayloadAction<RedPacketConfigSt...
FILE: packages/core/src/stores/router/amm/hook.ts
function usePageAmmPool (line 20) | function usePageAmmPool(): PageAmmPoolStatus & {
FILE: packages/core/src/stores/router/amm/interface.ts
type PageAmmBase (line 16) | type PageAmmBase = {
type PageAmmJoin (line 22) | type PageAmmJoin = {
type PageAmmExit (line 29) | type PageAmmExit = {
type PageAmmPoolStatus (line 40) | type PageAmmPoolStatus = {
FILE: packages/core/src/stores/router/amm/reducer.ts
method resetAmmPool (line 67) | resetAmmPool(state) {
method updatePageAmmJoinBtn (line 85) | updatePageAmmJoinBtn(state, action: PayloadAction<Partial<PageAmmJoin>>) {
method updatePageAmmJoin (line 95) | updatePageAmmJoin(state, action: PayloadAction<Partial<PageAmmJoin>>) {
method updatePageAmmExitBtn (line 130) | updatePageAmmExitBtn(state, action: PayloadAction<Partial<PageAmmExit>>) {
method updatePageAmmExit (line 140) | updatePageAmmExit(state, action: PayloadAction<Partial<PageAmmExit>>) {
FILE: packages/core/src/stores/router/modals/hook.ts
function useModalData (line 66) | function useModalData(): {
FILE: packages/core/src/stores/router/modals/interface.ts
type WithdrawData (line 19) | type WithdrawData<T = any> = IBData<T> & {
type ForceWithdrawData (line 26) | type ForceWithdrawData = {
type TransferData (line 35) | type TransferData = {
type ClaimData (line 45) | type ClaimData = {
type DepositData (line 67) | type DepositData = {
type MintData (line 74) | type MintData = {
type ActiveAccountData (line 81) | type ActiveAccountData = {
type NFT_MINT_VALUE (line 91) | type NFT_MINT_VALUE<I> = {
type ModalDataStatus (line 98) | type ModalDataStatus = {
type LAST_STEP (line 130) | enum LAST_STEP {
FILE: packages/core/src/stores/router/modals/reducer.ts
method resetAll (line 185) | resetAll(state) {
method resetForceWithdrawData (line 201) | resetForceWithdrawData(state) {
method resetWithdrawData (line 206) | resetWithdrawData(state) {
method resetActiveAccountData (line 210) | resetActiveAccountData(state) {
method resetTransferData (line 214) | resetTransferData(state) {
method resetTransferRampData (line 218) | resetTransferRampData(state) {
method resetTransferBanxaData (line 222) | resetTransferBanxaData(state) {
method resetDepositData (line 226) | resetDepositData(state) {
method resetNFTWithdrawData (line 230) | resetNFTWithdrawData(state) {
method resetNFTTransferData (line 234) | resetNFTTransferData(state) {
method resetNFTDepositData (line 238) | resetNFTDepositData(state) {
method resetNFTMintData (line 242) | resetNFTMintData(
method resetNFTMintAdvanceData (line 267) | resetNFTMintAdvanceData(
method resetCollectionAdvanceData (line 278) | resetCollectionAdvanceData(state) {
method resetCollectionData (line 282) | resetCollectionData(state) {
method resetNFTDeployData (line 286) | resetNFTDeployData(state) {
method resetOffRampData (line 290) | resetOffRampData(state) {
method resetOffBanxaData (line 294) | resetOffBanxaData(state) {
method resetRedPacketOrder (line 298) | resetRedPacketOrder(
method resetClaimData (line 314) | resetClaimData(state) {
method updateActiveAccountData (line 322) | updateActiveAccountData(state, action: PayloadAction<Partial<ActiveAccou...
method updateWithdrawData (line 338) | updateWithdrawData(state, action: PayloadAction<Partial<WithdrawData>>) {
method updateForceWithdrawData (line 351) | updateForceWithdrawData(state, action: PayloadAction<Partial<ForceWithdr...
method updateTransferData (line 371) | updateTransferData(state, action: PayloadAction<Partial<TransferData>>) {
method updateTransferRampData (line 384) | updateTransferRampData(state, action: PayloadAction<Partial<TransferData...
method updateTransferBanxaData (line 400) | updateTransferBanxaData(state, action: PayloadAction<Partial<TransferDat...
method updateDepositData (line 416) | updateDepositData(state, action: PayloadAction<Partial<DepositData>>) {
method updateNFTWithdrawData (line 430) | updateNFTWithdrawData(
method updateNFTTransferData (line 445) | updateNFTTransferData(
method updateNFTDepositData (line 468) | updateNFTDepositData(state, action: PayloadAction<Partial<TradeNFT<any, ...
method updateNFTMintAdvanceData (line 485) | updateNFTMintAdvanceData(state, action: PayloadAction<Partial<TradeNFT<a...
method updateCollectionAdvanceData (line 502) | updateCollectionAdvanceData(state, action: PayloadAction<any>) {
method updateCollectionData (line 507) | updateCollectionData(state, action: PayloadAction<any>) {
method updateNFTMintData (line 512) | updateNFTMintData(state, action: PayloadAction<NFT_MINT_VALUE<any>>) {
method updateNFTDeployData (line 543) | updateNFTDeployData(
method updateOffRampData (line 566) | updateOffRampData(
method updateOffBanxaData (line 593) | updateOffBanxaData(state, action: PayloadAction<{ order: BanxaOrder }>) {
method updateRedPacketOrder (line 602) | updateRedPacketOrder(state, action: PayloadAction<RedPacketOrderData<any...
method updateClaimData (line 614) | updateClaimData(state, action: PayloadAction<ClaimData>) {
FILE: packages/core/src/stores/router/tradeBtrade/hook.ts
function useTradeBtrade (line 6) | function useTradeBtrade(): TradeBtradeStatus & {
FILE: packages/core/src/stores/router/tradeBtrade/interface.ts
type TradeBtrade (line 5) | type TradeBtrade = {
type TradeBtradeStatus (line 27) | type TradeBtradeStatus = {
FILE: packages/core/src/stores/router/tradeBtrade/reducer.ts
method resetBtradeSwap (line 24) | resetBtradeSwap(state) {
method updateBtradeTrade (line 27) | updateBtradeTrade(state, action: PayloadAction<Partial<TradeBtrade>>) {
FILE: packages/core/src/stores/router/tradeDefi/hook.ts
function useTradeDefi (line 7) | function useTradeDefi<C extends { [key: string]: any }>(): TradeDefiStat...
FILE: packages/core/src/stores/router/tradeDefi/interface.ts
type TradeDefiStatus (line 3) | type TradeDefiStatus<C> = {
FILE: packages/core/src/stores/router/tradeDefi/reducer.ts
type R (line 26) | type R = { [key: string]: any }
method resetTradeDefi (line 38) | resetTradeDefi(state) {
method updateTradeDefi (line 41) | updateTradeDefi(state, action: PayloadAction<RequireOne<TradeDefi<IBData...
FILE: packages/core/src/stores/router/tradeDual/hook.ts
function useTradeDual (line 7) | function useTradeDual<R = DualViewInfo>(): TradeDualStatus<R> & {
FILE: packages/core/src/stores/router/tradeDual/interface.ts
type TradeDual (line 3) | type TradeDual<R> = DualCalcData<R>
type EditDual (line 4) | type EditDual<I> = {
type TradeDualStatus (line 13) | type TradeDualStatus<R, I = DualViewOrder> = {
FILE: packages/core/src/stores/router/tradeDual/reducer.ts
method resetTradeDual (line 17) | resetTradeDual(state) {
method resetEditDual (line 20) | resetEditDual(state) {
method updateTradeDual (line 23) | updateTradeDual(state, action: PayloadAction<Partial<TradeDual<DualViewI...
method updateEditDual (line 98) | updateEditDual(state, action: PayloadAction<EditDual<any> & DualViewOrde...
FILE: packages/core/src/stores/router/tradeLite/hook.ts
function usePageTradeLite (line 7) | function usePageTradeLite(): PageTradeLiteStatus & {
FILE: packages/core/src/stores/router/tradeLite/interface.ts
type PageTradeLite (line 5) | type PageTradeLite = {
type PageTradeLiteStatus (line 38) | type PageTradeLiteStatus = {
FILE: packages/core/src/stores/router/tradeLite/reducer.ts
method resetSwap (line 24) | resetSwap(state) {
method updatePageTradeLite (line 27) | updatePageTradeLite(state, action: PayloadAction<Partial<PageTradeLite>>) {
FILE: packages/core/src/stores/router/tradePro/hook.ts
function usePageTradePro (line 7) | function usePageTradePro<C extends { [key: string]: any }>(): PageTradeP...
FILE: packages/core/src/stores/router/tradePro/interface.ts
type MarketCalcParams (line 11) | type MarketCalcParams = {
type limitCalcParams (line 31) | type limitCalcParams = {
type stopLimitCalcParams (line 40) | type stopLimitCalcParams = limitCalcParams & {
type OrderInfoPatch (line 44) | type OrderInfoPatch = {
type PageTradePro (line 50) | type PageTradePro<C> = {
type PageTradeProStatus (line 91) | type PageTradeProStatus<C extends { [key: string]: any }> = {
FILE: packages/core/src/stores/router/tradePro/reducer.ts
method resetOrderPge (line 29) | resetOrderPge(state) {
method updatePageTradePro (line 32) | updatePageTradePro(
FILE: packages/core/src/stores/router/tradeStake/hook.ts
function useTradeStake (line 7) | function useTradeStake<C extends { [key: string]: any }>(): TradeStakeSt...
function useRedeemStake (line 29) | function useRedeemStake<C extends { [key: string]: any }>(): RedeemStake...
FILE: packages/core/src/stores/router/tradeStake/interface.ts
type TradeStakeStatus (line 3) | type TradeStakeStatus<C> = {
type RedeemStakeStatus (line 10) | type RedeemStakeStatus<C> = {
FILE: packages/core/src/stores/router/tradeStake/reducer.ts
type R (line 14) | type R = { [key: string]: any }
method resetTradeStake (line 26) | resetTradeStake(state) {
method updateTradeStake (line 29) | updateTradeStake(state, action: PayloadAction<TradeStake<IBData<any>>>) {
method resetRedeemStake (line 74) | resetRedeemStake(state) {
method updateRedeemStake (line 77) | updateRedeemStake(state, action: PayloadAction<RedeemStake<IBData<any>>>) {
FILE: packages/core/src/stores/router/tradeVault/hook.ts
function useTradeVault (line 24) | function useTradeVault() {
FILE: packages/core/src/stores/router/tradeVault/interface.ts
type TradeVault (line 13) | type TradeVault = {
type TradeVaultStatus (line 37) | type TradeVaultStatus = {
FILE: packages/core/src/stores/router/tradeVault/reducer.ts
method resetVaultSwap (line 42) | resetVaultSwap(state) {
method resetVaultJoin (line 45) | resetVaultJoin(state) {
method resetVaultExit (line 48) | resetVaultExit(state) {
method resetVaultBorrow (line 51) | resetVaultBorrow(state) {
method resetVaultRepay (line 54) | resetVaultRepay(state) {
method updateVaultTrade (line 57) | updateVaultTrade(state, action: PayloadAction<Partial<TradeVault>>) {
method updateVaultJoin (line 160) | updateVaultJoin(state, action: PayloadAction<Partial<VaultJoinData>>) {
method updateVaultExit (line 163) | updateVaultExit(state, action: PayloadAction<Partial<VaultExitData>>) {
method updateVaultBorrow (line 166) | updateVaultBorrow(
method updateVaultRepay (line 172) | updateVaultRepay(
FILE: packages/core/src/stores/socket/hook.ts
function useSocket (line 7) | function useSocket() {
FILE: packages/core/src/stores/socket/interface.ts
type TickerSocket (line 5) | type TickerSocket = string
type SocketUserMap (line 6) | type SocketUserMap = {
type SocketMap (line 19) | type SocketMap = {
FILE: packages/core/src/stores/socket/reducer.ts
method socketEnd (line 14) | socketEnd(state, _action: PayloadAction<undefined>) {
method socketUserEnd (line 18) | socketUserEnd(state, _action: PayloadAction<undefined>) {
method sendSocketTopic (line 24) | sendSocketTopic(state, _action: PayloadAction<{ socket: SocketMap }>) {
method getSocketStatus (line 27) | getSocketStatus(state, action: PayloadAction<{ socket: SocketMap } | Err...
FILE: packages/core/src/stores/system/hook.ts
function useSystem (line 8) | function useSystem(): SystemStatus & {
FILE: packages/core/src/stores/system/interface.ts
type ENV (line 4) | enum ENV {
type NETWORKEXTEND (line 10) | enum NETWORKEXTEND {
type NETWORK (line 14) | type NETWORK = NETWORKEXTEND | sdk.ChainId
type System (line 15) | type System = {
type SystemStatus (line 49) | type SystemStatus = System & {
FILE: packages/core/src/stores/system/reducer.ts
method updateSystem (line 43) | updateSystem(state, action: PayloadAction<System>) {
method updateRealTimeObj (line 48) | updateRealTimeObj(state, action: PayloadAction<Partial<{ forexMap: any; ...
method getSystemStatus (line 57) | getSystemStatus(state, action: PayloadAction<Partial<SystemStatus>>) {
method clearSystem (line 114) | clearSystem(state, _: PayloadAction<undefined>) {
FILE: packages/core/src/stores/system/saga.ts
type ENV_KEY (line 44) | enum ENV_KEY {
FILE: packages/core/src/stores/targetRedpackt/hook.ts
function useTargetRedPackets (line 6) | function useTargetRedPackets(): TargetRedPacketStates & {
FILE: packages/core/src/stores/targetRedpackt/interface.ts
type RedPacketConfig (line 4) | type RedPacketConfig = any
type TargetRedPacketStates (line 5) | type TargetRedPacketStates = {
FILE: packages/core/src/stores/targetRedpackt/reducer.ts
method getExclusiveRedpacket (line 18) | getExclusiveRedpacket(state, _action: PayloadAction<undefined>) {
method getExclusiveRedpacketStatus (line 21) | getExclusiveRedpacketStatus(state, action: PayloadAction<TargetRedPacket...
FILE: packages/core/src/stores/ticker/hook.ts
function useTicker (line 8) | function useTicker(): TickerStates & {
FILE: packages/core/src/stores/ticker/interface.ts
type TickerMap (line 3) | type TickerMap<R = { [key: string]: any }> = {
type TickerStates (line 6) | type TickerStates<C = { [key: string]: any }> = {
FILE: packages/core/src/stores/ticker/reducer.ts
method resetTicker (line 16) | resetTicker(state) {
method updateTicker (line 24) | updateTicker(state, _action: PayloadAction<LoopringMap<TickerData>>) {
method getTickers (line 27) | getTickers(state, _action: PayloadAction<Array<CoinKey<any>>>) {
method getTickerStatus (line 30) | getTickerStatus(state, action: PayloadAction<TickerStates>) {
FILE: packages/core/src/stores/token/hook.ts
function useTokenMap (line 7) | function useTokenMap<R extends { [key: string]: any }>(): TokenMapStates...
FILE: packages/core/src/stores/token/interface.ts
type TokenMap (line 10) | type TokenMap<R extends { [key: string]: any }> = LoopringMap<
type GetTokenMapParams (line 13) | type GetTokenMapParams<_R extends { [key: string]: any }> = {
type AddressMap (line 44) | type AddressMap = {
type IdMap (line 48) | type IdMap = {
type TokenMapStates (line 52) | type TokenMapStates<R extends { [key: string]: any }> = {
FILE: packages/core/src/stores/token/reducer.ts
method getTokenMap (line 22) | getTokenMap(state, _action: PayloadAction<GetTokenMapParams<any>>) {
method getTokenMapStatus (line 25) | getTokenMapStatus(state, action: PayloadAction<TokenMapStates<object>>) {
FILE: packages/core/src/stores/tokenPrices/interface.ts
type TokenPrices (line 3) | type TokenPrices<R extends { [key: string]: any }> = {
type TokenPricesStates (line 7) | type TokenPricesStates<R extends { [key: string]: any }> = {
FILE: packages/core/src/stores/tokenPrices/reducer.ts
method resetTokenPrices (line 16) | resetTokenPrices(state) {
method getTokenPrices (line 24) | getTokenPrices(state, _action: PayloadAction<undefined>) {
method getTokenPricesStatus (line 27) | getTokenPricesStatus(state, action: PayloadAction<TokenPricesStates<any>...
FILE: packages/core/src/stores/userRewards/hook.ts
function useUserRewards (line 6) | function useUserRewards(): UserRewardsStates<UserRewardsStates<any>> & {
FILE: packages/core/src/stores/userRewards/interface.ts
type UserRewards (line 5) | type UserRewards = sdk.AmmUserRewardMap
type MyAmmLPMap (line 6) | type MyAmmLPMap<R extends { [key: string]: any }> = {
type UserRewardsStates (line 9) | type UserRewardsStates<R extends { [key: string]: any }, E = EarningsRow...
FILE: packages/core/src/stores/userRewards/reducer.ts
method getUserRewards (line 21) | getUserRewards(state, _action: PayloadAction<undefined>) {
method resetUserRewards (line 24) | resetUserRewards(state, _action: PayloadAction<undefined>) {
method getUserAMM (line 30) | getUserAMM(state, _action: PayloadAction<undefined>) {
method getUserRewardsStatus (line 38) | getUserRewardsStatus(state, action: PayloadAction<UserRewardsStates<any>...
method setDefiAverageMap (line 58) | setDefiAverageMap(state, action: PayloadAction<{ defiAverageMap: any }>) {
FILE: packages/core/src/stores/vaultLayer2/hook.ts
function useVaultLayer2 (line 13) | function useVaultLayer2(): VaultLayer2States & {
FILE: packages/core/src/stores/vaultLayer2/interface.ts
type VaultLayer2Map (line 4) | type VaultLayer2Map<R extends { [key: string]: any }> = {
type VaultLayer2States (line 8) | type VaultLayer2States = {
FILE: packages/core/src/stores/vaultLayer2/reducer.ts
method updateVaultLayer2 (line 18) | updateVaultLayer2(
method reset (line 24) | reset(state) {
method socketUpdateBalance (line 33) | socketUpdateBalance(state) {
method getVaultLayer2Status (line 36) | getVaultLayer2Status(state, action: PayloadAction<VaultLayer2States>) {
FILE: packages/core/src/stores/vaultLayer2/saga.ts
type VaultLayer2Map (line 8) | type VaultLayer2Map<R extends { [key: string]: any }> = {
FILE: packages/core/src/stores/walletL2Collection/hook.ts
function useWalletL2Collection (line 17) | function useWalletL2Collection<C extends CollectionMeta>(): WalletL2Coll...
FILE: packages/core/src/stores/walletL2Collection/interface.ts
type WalletL2CollectionStates (line 3) | type WalletL2CollectionStates<C extends CollectionMeta> = {
FILE: packages/core/src/stores/walletL2Collection/reducer.ts
method reset (line 17) | reset(state) {
method updateLegacyContracts (line 23) | updateLegacyContracts(state, action: PayloadAction<{ legacyContract: str...
method updateWalletL2LegacyContract (line 26) | updateWalletL2LegacyContract(state, action: PayloadAction<{ legacyContra...
method updateWalletL2Collection (line 29) | updateWalletL2Collection(
method socketUpdateBalance (line 35) | socketUpdateBalance(state) {
method getWalletL2CollectionStatus (line 38) | getWalletL2CollectionStatus(
FILE: packages/core/src/stores/walletL2NFTCollection/hook.ts
function useWalletL2NFTCollection (line 8) | function useWalletL2NFTCollection<
FILE: packages/core/src/stores/walletL2NFTCollection/interface.ts
type WalletL2NFTCollectionStates (line 3) | type WalletL2NFTCollectionStates<C extends CollectionMeta> = {
FILE: packages/core/src/stores/walletL2NFTCollection/reducer.ts
method updateWalletL2NFTCollection (line 16) | updateWalletL2NFTCollection(state, _action: PayloadAction<{ page?: numbe...
method reset (line 19) | reset(state) {
method socketUpdateBalance (line 25) | socketUpdateBalance(state) {
method getWalletL2NFTCollectionStatus (line 28) | getWalletL2NFTCollectionStatus(
FILE: packages/core/src/stores/walletLayer1/hook.ts
function useWalletLayer1 (line 6) | function useWalletLayer1(): WalletLayer1States & {
FILE: packages/core/src/stores/walletLayer1/interface.ts
type WalletLayer1Map (line 3) | type WalletLayer1Map<R extends { [key: string]: any }> = {
type WalletLayer1States (line 6) | type WalletLayer1States = {
FILE: packages/core/src/stores/walletLayer1/reducer.ts
method updateWalletLayer1 (line 14) | updateWalletLayer1(state, _action: PayloadAction<string | undefined>) {
method reset (line 17) | reset(state, _action: PayloadAction<string | undefined>) {
method getWalletLayer1Status (line 21) | getWalletLayer1Status(state, action: PayloadAction<{ walletLayer1: Walle...
FILE: packages/core/src/stores/walletLayer1/saga.ts
type WalletLayer1Map (line 7) | type WalletLayer1Map<R extends { [key: string]: any }> = {
FILE: packages/core/src/stores/walletLayer2/hook.ts
function useWalletLayer2 (line 7) | function useWalletLayer2(): WalletLayer2States & {
FILE: packages/core/src/stores/walletLayer2/interface.ts
type WalletLayer2Map (line 4) | type WalletLayer2Map<R extends { [key: string]: any }> = {
type WalletLayer2States (line 8) | type WalletLayer2States = {
FILE: packages/core/src/stores/walletLayer2/reducer.ts
method updateWalletLayer2 (line 14) | updateWalletLayer2(state) {
method reset (line 17) | reset(state) {
method socketUpdateBalance (line 21) | socketUpdateBalance(state) {
method getWalletLayer2Status (line 24) | getWalletLayer2Status(
FILE: packages/core/src/stores/walletLayer2/saga.ts
type WalletLayer2Map (line 6) | type WalletLayer2Map<R extends { [key: string]: any }> = {
FILE: packages/core/src/stores/walletLayer2NFT/hook.ts
function useWalletLayer2NFT (line 8) | function useWalletLayer2NFT(): WalletLayer2NFTStates & {
FILE: packages/core/src/stores/walletLayer2NFT/interface.ts
type WalletLayer2NFTMap (line 4) | type WalletLayer2NFTMap<R extends { [key: string]: any }> = {
type WalletLayer2NFTStates (line 8) | type WalletLayer2NFTStates = {
FILE: packages/core/src/stores/walletLayer2NFT/reducer.ts
method updateWalletLayer2NFT (line 17) | updateWalletLayer2NFT(
method reset (line 28) | reset(state) {
method socketUpdateBalance (line 34) | socketUpdateBalance(state) {
method getWalletLayer2NFTStatus (line 37) | getWalletLayer2NFTStatus(state, action: PayloadAction<WalletLayer2NFTSta...
FILE: packages/core/src/types.d.ts
type Window (line 5) | interface Window {
FILE: packages/core/src/utils/dt_tools.ts
function getLocaleDtFromTs (line 8) | function getLocaleDtFromTs(ts: number | string, locale: string = i18n.la...
function getLocaleDt (line 16) | function getLocaleDt(dt?: Date, locale: string = i18n.language) {
function getTimestampDaysLater (line 23) | function getTimestampDaysLater(days: number, date: Date = new Date()) {
function getContactInfo (line 28) | function getContactInfo(
FILE: packages/core/src/utils/formatter_tool.ts
function StringToNumberWithPrecision (line 34) | function StringToNumberWithPrecision(rawVal: string, symbol: string) {
function VolToNumberWithPrecision (line 49) | function VolToNumberWithPrecision(rawVal: string | number, symbol: strin...
function FormatValWithPrecision (line 67) | function FormatValWithPrecision(rawVal: string, symbol: string) {
function formatPriceWithPrecision (line 82) | function formatPriceWithPrecision(rawVal: string, symbol: string) {
function tradeItemToTableDataItem (line 91) | function tradeItemToTableDataItem(tradeItem: any) {
function getFloatValue (line 160) | function getFloatValue(rawVal: any) {
function isIntNum (line 169) | function isIntNum(val: any) {
function isPosIntNum (line 175) | function isPosIntNum(val: any) {
FILE: packages/core/src/utils/swap_utils.ts
function getIcon (line 7) | function getIcon(symbol: string, tokens: any) {
function getIconByTokenInfo (line 12) | function getIconByTokenInfo(token: TokenInfo) {
function makeCoinInfo (line 21) | function makeCoinInfo(token: TokenInfo) {
FILE: packages/core/src/utils/validation.ts
type ValidatePasswordErrEnum (line 27) | enum ValidatePasswordErrEnum {
FILE: packages/core/src/utils/web3_tools.ts
function getLibrary (line 14) | function getLibrary(provider: any): Web3Provider {
function transactionChecker (line 28) | function transactionChecker(web3: any, address: string) {
constant ETHERSCAN_PREFIXES (line 59) | const ETHERSCAN_PREFIXES: { [key: number]: string } = {
function getEtherscanLink (line 65) | function getEtherscanLink(
function shortenAddress (line 90) | function shortenAddress(address: string, chars = 4): string {
function calculateGasMargin (line 99) | function calculateGasMargin(value: BigNumber): BigNumber {
function getSigner (line 104) | function getSigner(library: Web3Provider, account: string): JsonRpcSigner {
function getProviderOrSigner (line 109) | function getProviderOrSigner(
function getContract (line 117) | function getContract(
function escapeRegExp (line 130) | function escapeRegExp(string: string): string {
function isContract (line 134) | async function isContract(web3: any, address: string) {
type AddrCheckResult (line 143) | interface AddrCheckResult {
function checkAddr (line 150) | async function checkAddr(address: any, web3?: any): Promise<AddrCheckRes...
FILE: packages/web-bridge/public/electron.js
function createWindow (line 9) | function createWindow() {
FILE: packages/web-bridge/src/hook.ts
function useInit (line 32) | function useInit() {
FILE: packages/web-bridge/src/hookAccountInit.ts
function useAccountInit (line 6) | function useAccountInit({ state }: { state: keyof typeof SagaStatus }) {
FILE: packages/web-bridge/src/types.d.ts
type Window (line 11) | interface Window {
type IntrinsicElements (line 18) | interface IntrinsicElements {
type MyElementAttributes (line 22) | interface MyElementAttributes {
FILE: packages/web-earn/public/electron.js
function createWindow (line 9) | function createWindow() {
FILE: packages/web-earn/src/constant/router.ts
type RouterPath (line 19) | enum RouterPath {
type RouterMainKey (line 38) | enum RouterMainKey {
type AssetTabIndex (line 196) | enum AssetTabIndex {
type EarnLayer2RouterID (line 269) | enum EarnLayer2RouterID {
FILE: packages/web-earn/src/hook.ts
function useInit (line 42) | function useInit() {
FILE: packages/web-earn/src/hookAccountInit.ts
function useAccountInit (line 21) | function useAccountInit({ state }: { state: keyof typeof SagaStatus }) {
FILE: packages/web-earn/src/index.tsx
function onLongPress (line 25) | function onLongPress(element: any, callback: () => void) {
FILE: packages/web-earn/src/layouts/footer/index.tsx
function updateSize (line 19) | function updateSize() {
FILE: packages/web-earn/src/pages/AssetPage/AssetPanel/hook.ts
type AssetPanelProps (line 52) | type AssetPanelProps<R = AssetsRawDataItem> = {
FILE: packages/web-earn/src/pages/AssetPage/HistoryPanel/hooks.ts
type TxsFilterProps (line 66) | type TxsFilterProps = {
type TxTypeAMM (line 76) | enum TxTypeAMM {
function useGetTxs (line 81) | function useGetTxs(setToastOpen: (state: any) => void) {
function useGetTrades (line 169) | function useGetTrades(setToastOpen: (state: any) => void) {
function useGetAmmRecord (line 248) | function useGetAmmRecord(setToastOpen: (props: any) => void) {
function useGetDefiRecord (line 352) | function useGetDefiRecord(setToastOpen: (props: any) => void) {
function useTaikoFarmingRecord (line 409) | function useTaikoFarmingRecord(setToastOpen: (props: any) => void) {
function useGetLeverageETHRecord (line 1222) | function useGetLeverageETHRecord(setToastOpen: (props: any) => void) {
FILE: packages/web-earn/src/pages/AssetPage/RewardsPanel/hook.ts
function useRewardsTable (line 8) | function useRewardsTable(setToastOpen: (state: any) => void) {
FILE: packages/web-earn/src/pages/AssetPage/index.tsx
type BottomSectionProps (line 35) | interface BottomSectionProps {
FILE: packages/web-earn/src/pages/BtradeSwapPage/index.tsx
method onToggle (line 119) | onToggle() {
FILE: packages/web-earn/src/pages/EarnPage/index.tsx
constant FAQ (line 40) | const FAQ = styled(Box)<{ opend: boolean }>`
FILE: packages/web-earn/src/pages/IntroPage/index.tsx
type SectionProps (line 102) | type SectionProps = {
type IntroProps (line 203) | interface IntroProps {
FILE: packages/web-earn/src/pages/InvestPage/OverviewPanel/hook.ts
function useOverview (line 6) | function useOverview<R extends RowInvest>() {
FILE: packages/web-earn/src/pages/InvestPage/PoolsPanel/hook.ts
function useAmmMapUI (line 13) | function useAmmMapUI<R extends PoolRow<any>, I extends { [key: string]: ...
FILE: packages/web-earn/src/pages/InvestPage/index.tsx
type InvestType (line 25) | enum InvestType {
FILE: packages/web-earn/src/pages/Layer2Page/ContactPanel/delete.tsx
type DeleteDialogProps (line 17) | interface DeleteDialogProps {
FILE: packages/web-earn/src/pages/Layer2Page/ContactPanel/index.tsx
type ContactL3Router (line 51) | enum ContactL3Router {
FILE: packages/web-earn/src/pages/Layer2Page/ReferralRewardsPanel/hook.ts
function useRefundTable (line 12) | function useRefundTable<R = RefundRow>(setToastOpen: (state: any) => voi...
function useReferralsTable (line 141) | function useReferralsTable<R = ReferralsRow>(setToastOpen: (state: any) ...
FILE: packages/web-earn/src/pages/Layer2Page/ReferralRewardsPanel/index.tsx
type ReferStep (line 102) | enum ReferStep {
type ImageReferralBanner (line 107) | type ImageReferralBanner = {
FILE: packages/web-earn/src/pages/Layer2Page/SecurityPanel/hook.ts
function useResetAccount (line 12) | function useResetAccount() {
function useExportAccountInfo (line 24) | function useExportAccountInfo() {
FILE: packages/web-earn/src/pages/Layer2Page/VipPanel/hooks.ts
function useGetVIPInfo (line 6) | function useGetVIPInfo() {
FILE: packages/web-earn/src/pages/QuotePage/hook.ts
function useTickList (line 23) | function useTickList<C extends { [key: string]: string }>() {
function useQuote (line 89) | function useQuote<C extends { [key: string]: string }>() {
FILE: packages/web-earn/src/pages/TaikoLockPage/LogInToCleanLrTaiko.tsx
type LogInToCleanLrTaikoModalModalProps (line 6) | type LogInToCleanLrTaikoModalModalProps = {
FILE: packages/web-earn/src/pages/TaikoLockPage/MintRedeemModal.tsx
type MintModalProps (line 16) | type MintModalProps = {
FILE: packages/web-earn/src/pages/TaikoLockPage/PendingTxsModal.tsx
type PendingTxsModalProps (line 10) | type PendingTxsModalProps = {
FILE: packages/web-earn/src/pages/TaikoLockPage/TaikoLockInput.tsx
type TaikoLockInputProps (line 41) | type TaikoLockInputProps<T, I, ACD> = {
FILE: packages/web-earn/src/pages/TaikoLockPage/TxSubmitModal.tsx
type TxSubmitModalProps (line 10) | type TxSubmitModalProps = {
FILE: packages/web-earn/src/pages/TradeRacePage/hook.ts
type EVENT_STATUS (line 9) | enum EVENT_STATUS {
FILE: packages/web-earn/src/pages/TradeRacePage/interface.ts
type EventAPI (line 1) | type EventAPI = {
type EventAPIExtender (line 7) | type EventAPIExtender = {
type EventData (line 11) | type EventData = {
type API_DATA (line 35) | type API_DATA<R extends object> = {
FILE: packages/web-earn/src/types.d.ts
type Window (line 11) | interface Window {
type IntrinsicElements (line 20) | interface IntrinsicElements {
type MyElementAttributes (line 24) | interface MyElementAttributes {
FILE: packages/web-guardian/public/electron.js
function createWindow (line 9) | function createWindow() {
FILE: packages/web-guardian/src/common.ts
type ChainId (line 2) | type ChainId = number | sdk.ChainId
FILE: packages/web-guardian/src/hook.ts
function useInit (line 32) | function useInit() {
FILE: packages/web-guardian/src/hookAccountInit.ts
function useAccountInit (line 6) | function useAccountInit({ state }: { state: keyof typeof SagaStatus }) {
FILE: packages/web-guardian/src/pages/WalletPage/GuardianModal.tsx
type GuardianModalProps (line 7) | type GuardianModalProps = {
FILE: packages/web-guardian/src/pages/WalletPage/WalletValidationInfo.tsx
constant VCODE_UNIT (line 21) | const VCODE_UNIT = 6
FILE: packages/web-guardian/src/pages/WalletPage/hook.ts
type TxGuardianHistoryType (line 25) | enum TxGuardianHistoryType {
type TxHebaoAction (line 40) | enum TxHebaoAction {
FILE: packages/web-guardian/src/pages/WalletPage/utils.ts
function decompressCallData (line 57) | function decompressCallData(compressedHexString: string) {
FILE: packages/web-guardian/src/types.d.ts
type Window (line 11) | interface Window {
type IntrinsicElements (line 18) | interface IntrinsicElements {
type MyElementAttributes (line 22) | interface MyElementAttributes {
type ChainId (line 35) | type ChainId = ChainIdExtends | sdk.ChainId
type IntrinsicElements (line 38) | interface IntrinsicElements {
type MyElementAttributes (line 42) | interface MyElementAttributes {
FILE: packages/web-wallet/public/electron.js
function createWindow (line 9) | function createWindow() {
FILE: packages/web-wallet/public/wallet.js
function loopScroll (line 1032) | function loopScroll() {
FILE: packages/webapp/public/electron.js
function createWindow (line 9) | function createWindow() {
FILE: packages/webapp/src/hook.ts
function useInit (line 43) | function useInit() {
FILE: packages/webapp/src/hookAccountInit.ts
function useAccountInit (line 30) | function useAccountInit({ state }: { state: keyof typeof SagaStatus }) {
FILE: packages/webapp/src/index.tsx
function onLongPress (line 25) | function onLongPress(element: any, callback: () => void) {
FILE: packages/webapp/src/layouts/footer/index.tsx
function updateSize (line 19) | function updateSize() {
FILE: packages/webapp/src/pages/AssetPage/AssetPanel/hook.ts
type AssetPanelProps (line 50) | type AssetPanelProps<R = AssetsRawDataItem> = {
FILE: packages/webapp/src/pages/AssetPage/HistoryPanel/hooks.ts
type TxsFilterProps (line 70) | type TxsFilterProps = {
type TxTypeAMM (line 80) | enum TxTypeAMM {
function useGetTxs (line 85) | function useGetTxs(setToastOpen: (state: any) => void) {
function useGetTrades (line 173) | function useGetTrades(setToastOpen: (state: any) => void) {
function useGetAmmRecord (line 252) | function useGetAmmRecord(setToastOpen: (props: any) => void) {
function useGetDefiRecord (line 339) | function useGetDefiRecord(setToastOpen: (props: any) => void) {
function useDefiSideRecord (line 396) | function useDefiSideRecord(setToastOpen: (props: any) => void) {
function useGetLeverageETHRecord (line 1218) | function useGetLeverageETHRecord(setToastOpen: (props: any) => void) {
FILE: packages/webapp/src/pages/AssetPage/RewardsPanel/hook.ts
function useRewardsTable (line 8) | function useRewardsTable(setToastOpen: (state: any) => void) {
FILE: packages/webapp/src/pages/InvestPage/DualPanel/hook.tsx
type ChooseDualTypeContentType (line 32) | type ChooseDualTypeContentType = {
FILE: packages/webapp/src/pages/InvestPage/MyLiquidityPanel/interface.ts
type Tab (line 1) | type Tab = 'pools' | 'lido' | 'staking' | 'dual'
FILE: packages/webapp/src/pages/InvestPage/OverviewPanel/hook.ts
function useOverview (line 6) | function useOverview<R extends RowInvest>() {
FILE: packages/webapp/src/pages/InvestPage/PoolsPanel/hook.ts
function useAmmMapUI (line 13) | function useAmmMapUI<R extends PoolRow<any>, I extends { [key: string]: ...
FILE: packages/webapp/src/pages/LandPage/Card.tsx
type CardProps (line 10) | type CardProps = {
FILE: packages/webapp/src/pages/LandPage/HomePage.tsx
type TitleGroupProps (line 45) | type TitleGroupProps = {
FILE: packages/webapp/src/pages/LandPage/LandPage.tsx
type TitleGroupProps (line 70) | type TitleGroupProps = {
FILE: packages/webapp/src/pages/Layer2Page/ContactPanel/delete.tsx
type DeleteDialogProps (line 17) | interface DeleteDialogProps {
FILE: packages/webapp/src/pages/Layer2Page/ContactPanel/index.tsx
type ContactL3Router (line 44) | enum ContactL3Router {
FILE: packages/webapp/src/pages/Layer2Page/ReferralRewardsPanel/hook.ts
function useRefundTable (line 12) | function useRefundTable<R = RefundRow>(setToastOpen: (state: any) => voi...
function useReferralsTable (line 141) | function useReferralsTable<R = ReferralsRow>(setToastOpen: (state: any) ...
FILE: packages/webapp/src/pages/Layer2Page/ReferralRewardsPanel/index.tsx
type ReferStep (line 100) | enum ReferStep {
type ImageReferralBanner (line 105) | type ImageReferralBanner = {
FILE: packages/webapp/src/pages/Layer2Page/SecurityPanel/hook.ts
function useResetAccount (line 12) | function useResetAccount() {
function useExportAccountInfo (line 58) | function useExportAccountInfo() {
FILE: packages/webapp/src/pages/Layer2Page/VipPanel/hooks.ts
function useGetVIPInfo (line 6) | function useGetVIPInfo() {
FILE: packages/webapp/src/pages/MiningPage/hook.ts
type RewardListItem (line 14) | type RewardListItem = {
FILE: packages/webapp/src/pages/MiningPage/index.tsx
type MiningJumpType (line 19) | enum MiningJumpType {
type ClickHandler (line 43) | type ClickHandler = {
FILE: packages/webapp/src/pages/NFTPage/CollectionPanel/index.tsx
type MyCollectionView (line 38) | enum MyCollectionView {
FILE: packages/webapp/src/pages/NFTPage/ImportCollectionPanel/index.tsx
type CollectionImportView (line 17) | enum CollectionImportView {
FILE: packages/webapp/src/pages/NFTPage/MintNFTPanel/hook.ts
type MINT_VIEW_STEP (line 14) | const enum MINT_VIEW_STEP {
FILE: packages/webapp/src/pages/NFTPage/MyNFT/MyNFTList.tsx
type MyNFTListProps (line 16) | type MyNFTListProps<NFT> = {
FILE: packages/webapp/src/pages/NFTPage/NFThistory/index.tsx
type TabIndex (line 16) | enum TabIndex {
FILE: packages/webapp/src/pages/NFTPage/components/usePublicNFTs.ts
type CollectionProps (line 19) | type CollectionProps<Co, NFT> = {
FILE: packages/webapp/src/pages/ProTradePage/index.tsx
constant MARKET_ROW_LENGTH (line 35) | const MARKET_ROW_LENGTH: number = 8
constant MARKET_TRADES_LENGTH (line 38) | const MARKET_TRADES_LENGTH: number = 19
FILE: packages/webapp/src/pages/ProTradePage/panel/chart/hook.ts
type TradingIntervalToTimer (line 9) | enum TradingIntervalToTimer {
function useKlineChart (line 22) | function useKlineChart(market: string | undefined) {
FILE: packages/webapp/src/pages/ProTradePage/panel/market/index.tsx
type TabMarketIndex (line 31) | enum TabMarketIndex {
type DepthShowType (line 36) | enum DepthShowType {
FILE: packages/webapp/src/pages/ProTradePage/panel/spot/index.tsx
type TabIndex (line 33) | enum TabIndex {
FILE: packages/webapp/src/pages/ProTradePage/proService.ts
constant TRADE_ARRAY_MAX_LENGTH (line 37) | const TRADE_ARRAY_MAX_LENGTH = 50
FILE: packages/webapp/src/pages/ProTradePage/stopLimtPage.tsx
constant MARKET_ROW_LENGTH (line 28) | const MARKET_ROW_LENGTH: number = 8
constant MARKET_TRADES_LENGTH (line 31) | const MARKET_TRADES_LENGTH: number = 19
FILE: packages/webapp/src/pages/QuotePage/hook.ts
function useTickList (line 23) | function useTickList<C extends { [key: string]: string }>() {
function useQuote (line 89) | function useQuote<C extends { [key: string]: string }>() {
FILE: packages/webapp/src/pages/TradeRacePage/hook.ts
type EVENT_STATUS (line 9) | enum EVENT_STATUS {
FILE: packages/webapp/src/pages/TradeRacePage/interface.ts
type EventAPI (line 1) | type EventAPI = {
type EventAPIExtender (line 7) | type EventAPIExtender = {
type EventData (line 11) | type EventData = {
type API_DATA (line 35) | type API_DATA<R extends object> = {
FILE: packages/webapp/src/types.d.ts
type Window (line 11) | interface Window {
type IntrinsicElements (line 20) | interface IntrinsicElements {
type MyElementAttributes (line 24) | interface MyElementAttributes {
Copy disabled (too large)
Download .json
Condensed preview — 1323 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (10,968K chars).
[
{
"path": ".claude/settings.local.json",
"chars": 104,
"preview": "{\n \"permissions\": {\n \"allow\": [\n \"Bash(rg:*)\",\n \"Bash(grep:*)\"\n ],\n \"deny\": []\n }\n}"
},
{
"path": ".gitignore",
"chars": 1586,
"preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Directo"
},
{
"path": ".prettierignore",
"chars": 87,
"preview": "# Ignore artifacts:\n.idea/**\n.vscode/**\n/node_modules\n**/dist\n**/build\n**/node_modules\n"
},
{
"path": ".prettierrc.json",
"chars": 159,
"preview": "{\n \"semi\": false,\n \"tabWidth\": 2,\n \"printWidth\": 100,\n \"singleQuote\": true,\n \"trailingComma\": \"all\",\n \"jsxSingleQu"
},
{
"path": ".yarnclean",
"chars": 566,
"preview": "# test directories\n__tests__\ntest\ntests\npowered-test\n\n# test exceptions\n!**/viem/**/test\n!**/viem/**/test/**\n\n# asset di"
},
{
"path": ".yarnrc",
"chars": 320,
"preview": "sass_binary_site \"https://npm.taobao.org/mirrors/node-sass/\"\nphantomjs_cdnurl \"https://npm.taobao.org/mirrors/phantomjs/"
},
{
"path": "LICENSE",
"chars": 2018,
"preview": "Licensor: Loopring Technology Limited\n\nLicensed Work: Loopring-web/loopring-sdk\n "
},
{
"path": "README.md",
"chars": 2592,
"preview": "<p align=\"center\">\n <a href=\"https://github.com/Loopring/loopring-web-v2\" rel=\"noopener\" target=\"_blank\"><img width=\"15"
},
{
"path": "craco.config.cjs",
"chars": 8229,
"preview": "const webpack = require('webpack')\nconst {addBeforeLoader, loaderByName, getLoader, addPlugins} = require('@craco/craco'"
},
{
"path": "lerna.json",
"chars": 208,
"preview": "{\n \"version\": \"independent\",\n \"npmClient\": \"yarn\",\n \"command\": {\n \"publish\": {\n \"ignoreChanges\": [\n \"*"
},
{
"path": "package.json",
"chars": 8170,
"preview": "{\n \"name\": \"loopring-web\",\n \"version\": \"1.3.0\",\n \"author\": \"Loopring Dex Frontend Team\",\n \"description\": \"dex web ap"
},
{
"path": "packages/common-resources/.babelrc",
"chars": 187,
"preview": "{\n \"presets\": [\n \"@babel/typescript\",\n [\n \"@babel/env\",\n {\n \"modules\": false\n }\n ]\n ],\n"
},
{
"path": "packages/common-resources/assets/coin/loopring.json",
"chars": 12788,
"preview": "{\"file\":\"loopring_431f2ed4.png\",\"frames\":{\"0XBTC\":{\"x\":0,\"y\":72,\"w\":72,\"h\":73,\"offX\":0,\"offY\":0,\"sourceW\":72,\"sourceH\":7"
},
{
"path": "packages/common-resources/index.ts",
"chars": 35,
"preview": "export * from './static-resources'\n"
},
{
"path": "packages/common-resources/mail.html",
"chars": 8259,
"preview": "\n<div id='zohoSupportWebToCase' align='center'>\n\t<form name='zsWebToCase_638510000000180873' id='zsWebToCase_63851000000"
},
{
"path": "packages/common-resources/package.json",
"chars": 565,
"preview": "{\n \"name\": \"@loopring-web/common-resources\",\n \"version\": \"1.0.0\",\n \"description\": \"Common package for code sharing\",\n"
},
{
"path": "packages/common-resources/scripts/.gitignore",
"chars": 27,
"preview": "output*\n*.zip\n*.rar\n*.tar*\n"
},
{
"path": "packages/common-resources/scripts/READMD.md",
"chars": 53,
"preview": "require python 3.7+\n\npip install -r requirements.txt\n"
},
{
"path": "packages/common-resources/scripts/get_imgs.py",
"chars": 3904,
"preview": "#!/usr/bin/python\n# -- encoding= utf8 --\n\nimport requests\n\nimport json\n\nfrom eth_utils import to_checksum_address\n\nimpor"
},
{
"path": "packages/common-resources/scripts/requirements.txt",
"chars": 49,
"preview": "requests==2.24.0\neth_utils==1.10.0\npillow==8.3.2\n"
},
{
"path": "packages/common-resources/static-resources/index.ts",
"chars": 256,
"preview": "import i18n from './src/i18n'\nexport { i18n }\nexport * from './src/svg'\nexport * from './src/i18n'\nexport * from './src/"
},
{
"path": "packages/common-resources/static-resources/src/constant/account.ts",
"chars": 1912,
"preview": "import { StateBase } from './sagaStatus'\nimport { ConnectProviders } from '@loopring-web/web3-provider'\nimport { TokenTy"
},
{
"path": "packages/common-resources/static-resources/src/constant/chart.ts",
"chars": 149,
"preview": "export enum ChartType {\n Depth = 'Depth',\n Trend = 'Trend',\n Kline = 'Kline',\n}\n\nexport enum ChartUnit {\n W1 = '1W',"
},
{
"path": "packages/common-resources/static-resources/src/constant/firebase.ts",
"chars": 683,
"preview": "export const firebaseIOConfig = {\n apiKey: 'AIzaSyC484SNh-OZWco7o1xUC4UGVGVf0yZU__s',\n authDomain: 'loopring-d0829.fir"
},
{
"path": "packages/common-resources/static-resources/src/constant/index.ts",
"chars": 565,
"preview": "export * from './walletConnector'\nexport * from './setting'\nexport * from './market'\nexport * from './chart'\nexport * fr"
},
{
"path": "packages/common-resources/static-resources/src/constant/loopring.ts",
"chars": 10675,
"preview": "export const imgConfig = {\n file: 'loopring.png',\n frames: {\n '0XBTC': { x: 248, y: 282, w: 37, h: 36, offX: 0, off"
},
{
"path": "packages/common-resources/static-resources/src/constant/market.ts",
"chars": 492,
"preview": "export enum FloatTag {\n increase = 'increase',\n decrease = 'decrease',\n none = 'none',\n}\n\nexport type MarketType = `$"
},
{
"path": "packages/common-resources/static-resources/src/constant/miningOuterLinks.ts",
"chars": 327,
"preview": "export const getMiningLinkList = (lan: string) => {\n if (lan === 'cn') {\n lan = 'zh'\n }\n return {\n 'BCDT-ETH': "
},
{
"path": "packages/common-resources/static-resources/src/constant/networks.ts",
"chars": 80,
"preview": "\nexport const SUPPORTING_NETWORKS = process.env.REACT_APP_CHAIN_IDS!.split(',')\n"
},
{
"path": "packages/common-resources/static-resources/src/constant/notification.ts",
"chars": 2876,
"preview": "/*\nimport { AMMMarketType, MarketType } from \"./market\";\n*/\n// import { CoinKey } from \"../loopring-interface\";\n\nimport "
},
{
"path": "packages/common-resources/static-resources/src/constant/proLayout.ts",
"chars": 6581,
"preview": "import { Layouts } from 'react-grid-layout'\n\nexport enum LayoutConfig {\n basicLayout,\n layout1,\n layout2,\n}\n\nexport c"
},
{
"path": "packages/common-resources/static-resources/src/constant/router.ts",
"chars": 44353,
"preview": "import AutorenewIcon from '@mui/icons-material/Autorenew';\nimport {\n AssetsIcon,\n ContactIcon,\n ImageIcon,\n L2MyLiqu"
},
{
"path": "packages/common-resources/static-resources/src/constant/sagaStatus.ts",
"chars": 300,
"preview": "import { ErrorObject } from '../error'\n\nexport enum SagaStatus {\n UNSET = 'UNSET',\n PENDING = 'PENDING',\n ERROR = 'ER"
},
{
"path": "packages/common-resources/static-resources/src/constant/setting.ts",
"chars": 7501,
"preview": "import { IsMobile } from '../utils'\nimport { NetworkItemInfo } from '../loopring-interface'\nimport * as sdk from '@loopr"
},
{
"path": "packages/common-resources/static-resources/src/constant/social.ts",
"chars": 4980,
"preview": "import * as Social from 'react-share'\nimport { DiscordSvg } from '../svg';\nimport { createElement } from 'react';\nimport"
},
{
"path": "packages/common-resources/static-resources/src/constant/table.ts",
"chars": 64,
"preview": "export enum TableType {\n filter = 'filter',\n page = 'page',\n}\n"
},
{
"path": "packages/common-resources/static-resources/src/constant/tokenConfig.ts",
"chars": 254,
"preview": "const SPECIAL_TOKEN_NAME_MAP = new Map(\n [\n ['LRTAIKO', 'lrTAIKO'],\n ]\n);\n\n\nexport const WITHDRAW_TOKEN_FILTER_LIST"
},
{
"path": "packages/common-resources/static-resources/src/constant/trade.ts",
"chars": 19031,
"preview": "import {\n CollectionMeta,\n DeFiCalcData,\n DeFiSideCalcData,\n DeFiSideRedeemCalcData,\n FeeInfo,\n IBData,\n LuckyRed"
},
{
"path": "packages/common-resources/static-resources/src/constant/vendor.ts",
"chars": 889,
"preview": "export enum VendorProviders {\n Ramp = 'Ramp',\n Banxa = 'Banxa',\n}\n\n// export const vendorList: VendorItem[] = [\n// {"
},
{
"path": "packages/common-resources/static-resources/src/constant/walletConnector.ts",
"chars": 1369,
"preview": "import { GatewayItem } from '../loopring-interface'\nimport { SoursURL } from './router'\nimport { ConnectProviders } from"
},
{
"path": "packages/common-resources/static-resources/src/error/errorMap.tsx",
"chars": 15779,
"preview": "import { Trans } from 'react-i18next'\nimport { Link } from '@mui/material'\n\nexport const ErrorMap = {\n ERROR_UNKNOWN: {"
},
{
"path": "packages/common-resources/static-resources/src/error/index.ts",
"chars": 2138,
"preview": "export * from './errorMap'\n\nexport type ErrorType = {\n id: string\n messageKey: string\n message?: string\n options?: a"
},
{
"path": "packages/common-resources/static-resources/src/i18n/en_US/common.ts",
"chars": 156147,
"preview": "/* eslint-disable max-len */\nexport default {\n labelErrorTitle: 'Error Detail: ',\n labelNoContent: 'No Content',\n lab"
},
{
"path": "packages/common-resources/static-resources/src/i18n/en_US/error.ts",
"chars": 5117,
"preview": "export default {\n labelConnectUsSimple: 'Please <1>contact us</1>.',\n labelConnectUs:\n 'If you believe this is inde"
},
{
"path": "packages/common-resources/static-resources/src/i18n/en_US/index.ts",
"chars": 264,
"preview": "import common from './common'\nimport layout from './layout'\nimport tables from './tables'\nimport error from './error'\nim"
},
{
"path": "packages/common-resources/static-resources/src/i18n/en_US/landPage.ts",
"chars": 10416,
"preview": "export default {\n labelH1Title: 'Ethereum’s First zkRollup Layer 2',\n labelH1TitleDetail: 'Fast, Secure, and 100x Lowe"
},
{
"path": "packages/common-resources/static-resources/src/i18n/en_US/layout.ts",
"chars": 6728,
"preview": "export default {\n labelMarkets: 'Markets',\n labelTrade: 'Trade',\n labelLiquidity: 'Pools',\n labelMining: 'Farm',\n l"
},
{
"path": "packages/common-resources/static-resources/src/i18n/en_US/tables.ts",
"chars": 15671,
"preview": "export default {\n labelStatus: 'Status',\n labelAMM: 'AMM',\n labelSend: 'Send',\n labelSendL2: 'Send L2',\n labelSendL"
},
{
"path": "packages/common-resources/static-resources/src/i18n/en_US/webEarn.ts",
"chars": 9928,
"preview": "/* eslint-disable max-len */\nexport default {\n labelFAQ1Question: 'What is Loopring protocol ?',\n labelFAQ1Answer:\n "
},
{
"path": "packages/common-resources/static-resources/src/i18n/index.ts",
"chars": 1742,
"preview": "import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport enUS from './en_US'\n// import zhCN fr"
},
{
"path": "packages/common-resources/static-resources/src/i18n/zh_CN/common.ts",
"chars": 144914,
"preview": "/* eslint-disable max-len */\nexport default {\n labelErrorTitle: 'Error Detail:',\n labelNoContent: 'No Content',\n labe"
},
{
"path": "packages/common-resources/static-resources/src/i18n/zh_CN/error.ts",
"chars": 4902,
"preview": "export default {\n labelConnectUsSimple: 'Please <1>contact us</1>.',\n labelConnectUs: '这有可能时候一个错误, 如需帮助请<1>联系我们</1>~',"
},
{
"path": "packages/common-resources/static-resources/src/i18n/zh_CN/index.ts",
"chars": 264,
"preview": "import common from './common'\nimport layout from './layout'\nimport tables from './tables'\nimport error from './error'\nim"
},
{
"path": "packages/common-resources/static-resources/src/i18n/zh_CN/landPage.ts",
"chars": 10362,
"preview": "export default {\n labelH1Title: '路印二层,\\n 第一个去中心化 \\n交易平台 ',\n labelH1TitleDetail: 'Fast, Secure, and 100x Lower Fees',\n "
},
{
"path": "packages/common-resources/static-resources/src/i18n/zh_CN/layout.ts",
"chars": 5048,
"preview": "export default {\n labelMarkets: '市场',\n labelTrade: '交易',\n labelLiquidity: '流动性矿池',\n labelMining: '挖矿',\n labelLayer2"
},
{
"path": "packages/common-resources/static-resources/src/i18n/zh_CN/tables.ts",
"chars": 14880,
"preview": "export default {\n labelStatus: '状态',\n labelAMM: 'AMM',\n labelSend: 'Send',\n labelSendL2: 'Send L2',\n labelSendL1: '"
},
{
"path": "packages/common-resources/static-resources/src/i18n/zh_CN/webEarn.ts",
"chars": 9644,
"preview": "/* eslint-disable max-len */\nexport default {\n labelFAQ1Question: 'What is Loopring protocol ?',\n labelFAQ1Answer:\n "
},
{
"path": "packages/common-resources/static-resources/src/loopring-interface/CoinInterface.ts",
"chars": 14379,
"preview": "import { Account, FloatTag, ForexMap, TradeStatus, TradeTypes, VaultSwapStep } from '../constant'\nimport * as sdk from '"
},
{
"path": "packages/common-resources/static-resources/src/loopring-interface/FooterInterface.ts",
"chars": 72,
"preview": "export type FooterInterface = {\n linkName: string\n linkHref: string\n}\n"
},
{
"path": "packages/common-resources/static-resources/src/loopring-interface/HeaderInterface.ts",
"chars": 592,
"preview": "export enum HeaderMenuTabStatus {\n hidden = 'hidden',\n disabled = 'disabled',\n default = 'default',\n}\n\nexport interfa"
},
{
"path": "packages/common-resources/static-resources/src/loopring-interface/Investment.ts",
"chars": 248,
"preview": "import { InvestMapType } from '../constant'\n\nexport type InvestAdvice = {\n type: InvestMapType\n banner: string\n title"
},
{
"path": "packages/common-resources/static-resources/src/loopring-interface/VendorInterface.ts",
"chars": 350,
"preview": "import { VendorProviders } from '../constant/vendor'\nimport { TradeBtnStatus } from '../constant'\n\nexport interface Vend"
},
{
"path": "packages/common-resources/static-resources/src/loopring-interface/WallectInterface.ts",
"chars": 457,
"preview": "import { ConnectProviders } from '@loopring-web/web3-provider'\n\nexport enum WalletStatus {\n disabled = 'disabled',\n lo"
},
{
"path": "packages/common-resources/static-resources/src/loopring-interface/index.ts",
"chars": 198,
"preview": "export * from './CoinInterface'\nexport * from './HeaderInterface'\nexport * from './WallectInterface'\nexport * from './Ve"
},
{
"path": "packages/common-resources/static-resources/src/svg/Icon.tsx",
"chars": 276388,
"preview": "import { SvgIcon, SvgIconProps } from '@mui/material'\n\ntype DepthColor = {\n bo?: string\n l?: string\n a?: string\n b?:"
},
{
"path": "packages/common-resources/static-resources/src/svg/dropdownLogo.tsx",
"chars": 20091,
"preview": "import { SvgIcon, SvgIconProps } from '@mui/material'\n\nexport const OverviewIcon = (props: SvgIconProps) => {\n return ("
},
{
"path": "packages/common-resources/static-resources/src/svg/earnLogo.tsx",
"chars": 102449,
"preview": "import { styled } from '@mui/material'\nimport { SvgIcon, SvgIconProps } from '@mui/material'\n\nconst LargeSvgIcon = style"
},
{
"path": "packages/common-resources/static-resources/src/svg/index.ts",
"chars": 203,
"preview": "export * from './Icon'\nexport * from './dropdownLogo'\nexport * from './earnLogo'\nexport * from './redPacketSvg'\nexport *"
},
{
"path": "packages/common-resources/static-resources/src/svg/network.tsx",
"chars": 6430,
"preview": "import { SvgIcon, SvgIconProps } from '@mui/material'\n\nexport const ChainGOERLIIcon = (props: SvgIconProps) => {\n retur"
},
{
"path": "packages/common-resources/static-resources/src/svg/redPacketScope.tsx",
"chars": 52439,
"preview": "import { SVGProps } from \"react\"\n\nexport const ScopePublic = (props: SVGProps<SVGSVGElement>) => {\n const {\n color ="
},
{
"path": "packages/common-resources/static-resources/src/svg/redPacketSvg.tsx",
"chars": 27556,
"preview": "import { SoursURL } from '../constant'\nimport { sanitize } from 'dompurify'\nimport React from 'react'\n\nexport const RedP"
},
{
"path": "packages/common-resources/static-resources/src/svg/shareReferral.tsx",
"chars": 2445,
"preview": "import { WithTranslation, withTranslation } from 'react-i18next'\nimport React from 'react'\n\nexport type ShareReferralSvg"
},
{
"path": "packages/common-resources/static-resources/src/themes/css/color-lib.ts",
"chars": 6930,
"preview": "export const hexToRGB = (hex: string, alpha?: string | number) => {\n var r = parseInt(hex.slice(1, 3), 16),\n g = par"
},
{
"path": "packages/common-resources/static-resources/src/themes/css/global.tsx",
"chars": 11403,
"preview": "import { css } from '@emotion/react'\nimport reset from './reset'\n// @ts-ignore\nimport InterMedium from '../fonts/english"
},
{
"path": "packages/common-resources/static-resources/src/themes/css/reset.tsx",
"chars": 3358,
"preview": "import { css } from '@emotion/react'\n\nexport default css`\n html,\n body,\n div,\n span,\n applet,\n object,\n iframe,\n "
},
{
"path": "packages/common-resources/static-resources/src/themes/fonts/english/LICENSE",
"chars": 11356,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "packages/common-resources/static-resources/src/themes/globalSetup.ts",
"chars": 118,
"preview": "export const globalSetup = Object.freeze({\n wait: 100,\n throttleWait: 3000,\n})\n\nexport const FORMAT_STRING_LEN = 10\n"
},
{
"path": "packages/common-resources/static-resources/src/themes/index.ts",
"chars": 6367,
"preview": "import styled from '@emotion/styled'\nimport { Avatar, Grid } from '@mui/material'\nimport { AvatarCoinProps, ThemeType } "
},
{
"path": "packages/common-resources/static-resources/src/themes/interface.ts",
"chars": 1296,
"preview": "import { AvatarProps, Theme } from '@mui/material'\nimport { ColorBaseInterface } from './css/color-lib'\n\nexport enum The"
},
{
"path": "packages/common-resources/static-resources/src/themes/overrides/muTheme.ts",
"chars": 6016,
"preview": "import { createTheme } from '@mui/material'\nimport { ColorDarkDefault, ColorLightDefault } from '../css/color-lib'\nimpor"
},
{
"path": "packages/common-resources/static-resources/src/themes/overrides/overrides-date-pick.ts",
"chars": 10165,
"preview": "import { borderFunc } from './utils'\nimport { ColorDarkDefault } from '../css/color-lib'\nimport { radius } from './overr"
},
{
"path": "packages/common-resources/static-resources/src/themes/overrides/overrides-mui.ts",
"chars": 26450,
"preview": "import { borderFunc, pxToRem, unit } from './utils'\nimport { ComponentsOverrides, TooltipProps } from '@mui/material'\nim"
},
{
"path": "packages/common-resources/static-resources/src/themes/overrides/utils.ts",
"chars": 1709,
"preview": "import { ColorDarkDefault, ColorLightDefault } from '../css/color-lib'\nimport { fontDefault } from '../css/global'\nimpor"
},
{
"path": "packages/common-resources/static-resources/src/utils/format_tools.ts",
"chars": 8863,
"preview": "import * as sdk from '@loopring-web/loopring-sdk'\nimport BigNumber from 'bignumber.js'\nimport { getValuePrecisionThousan"
},
{
"path": "packages/common-resources/static-resources/src/utils/index.ts",
"chars": 160,
"preview": "export * from './types'\nexport * from './util'\nexport * from './log_tools'\nexport * from './format_tools'\nexport * from "
},
{
"path": "packages/common-resources/static-resources/src/utils/log_tools.ts",
"chars": 628,
"preview": "let _myLog\n// @ts-ignore\nif (process.env.NODE_ENV !== 'production' || window?.___OhTrustDebugger___) {\n _myLog = consol"
},
{
"path": "packages/common-resources/static-resources/src/utils/makeDom.ts",
"chars": 164,
"preview": "export const htmlDecode = (input: string) => {\n const doc = new DOMParser().parseFromString(input, 'text/html')?.docume"
},
{
"path": "packages/common-resources/static-resources/src/utils/obj_tools.ts",
"chars": 589,
"preview": "import { myLog } from './log_tools'\n\nexport async function copyToClipBoard(text: string) {\n if (document.execCommand) {"
},
{
"path": "packages/common-resources/static-resources/src/utils/types.tsx",
"chars": 686,
"preview": "type Values<T extends {}> = T[keyof T]\n\ntype Tuplize<T extends {}[]> = Pick<T, Exclude<keyof T, Extract<keyof {}[], stri"
},
{
"path": "packages/common-resources/static-resources/src/utils/util.ts",
"chars": 8127,
"preview": "import { toBig } from '@loopring-web/loopring-sdk'\nimport BigNumber from 'bignumber.js'\n\nexport const DOT = '.'\n\nexport "
},
{
"path": "packages/common-resources/static-resources/types.d.ts",
"chars": 140,
"preview": "/// <reference types=\"@google/model-viewer\" />\n\ndeclare global {\n interface Window {\n __ChainIdExtends: any\n __Ma"
},
{
"path": "packages/common-resources/tsconfig.json",
"chars": 491,
"preview": "{\n \"extends\": \"../../tsconfig.build.json\",\n \"compilerOptions\": {\n \"jsx\": \"react-jsx\",\n \"noUnusedLocals\": true,\n "
},
{
"path": "packages/common-resources/tsconfig.tsbuildinfo",
"chars": 203232,
"preview": "{\"program\":{\"fileNames\":[\"../../node_modules/typescript/lib/lib.es5.d.ts\",\"../../node_modules/typescript/lib/lib.es2015."
},
{
"path": "packages/component-lib/.babelrc",
"chars": 277,
"preview": "{\n \"presets\": [\n \"@babel/typescript\",\n \"@babel/preset-env\",\n \"@babel/preset-react\",\n \"@emotion/babel-preset"
},
{
"path": "packages/component-lib/.eslintignore",
"chars": 18,
"preview": "*.css\n*.scss\n*.svg"
},
{
"path": "packages/component-lib/.eslintrc.json",
"chars": 446,
"preview": "{\n \"plugins\": [\n \"react-hooks\"\n ],\n \"extends\": [\n \"react-app\"\n ],\n \"overrides\": [\n {\n \"files\": [\n "
},
{
"path": "packages/component-lib/.gitignore",
"chars": 359,
"preview": "\n# See https://help.github.com/ignore-files/ for more about ignoring files.\n\n# dependencies\nnode_modules\n\n# builds\nbuild"
},
{
"path": "packages/component-lib/.storybook/main.ts",
"chars": 12022,
"preview": "import type { StorybookConfig } from '@storybook/react-webpack5'\nimport CopyWebpackPlugin from 'copy-webpack-plugin'\nimp"
},
{
"path": "packages/component-lib/.storybook/preview.tsx",
"chars": 3646,
"preview": "import type { Preview } from '@storybook/react'\nimport { getTheme, globalCss, i18n } from '@loopring-web/common-resource"
},
{
"path": "packages/component-lib/.travis.yml",
"chars": 68,
"preview": "language: node_js\nnode_js:\n - 8\nenv:\n - SKIP_PREFLIGHT_CHECK=true\n"
},
{
"path": "packages/component-lib/README.md",
"chars": 1141,
"preview": "# component-lib\n\n> Loopring UI component lib\n\n[](https://www.npmjs"
},
{
"path": "packages/component-lib/craco.config.cjs",
"chars": 50,
"preview": "module.exports = require(\"../../craco.config.cjs\")"
},
{
"path": "packages/component-lib/package.json",
"chars": 3278,
"preview": "{\n \"name\": \"@loopring-web/component-lib\",\n \"version\": \"1.0.0\",\n \"main\": \"src/index.ts\",\n \"private\": true,\n \"resolut"
},
{
"path": "packages/component-lib/rollup.config.js",
"chars": 1610,
"preview": "import ts from 'rollup-plugin-typescript2'\nimport typescript from 'typescript'\nimport commonjs from '@rollup/plugin-comm"
},
{
"path": "packages/component-lib/src/components/basic-lib/Icon.stories.tsx",
"chars": 6520,
"preview": "import { Meta, Story } from '@storybook/react'\nimport { WithTranslation, withTranslation } from 'react-i18next'\nimport s"
},
{
"path": "packages/component-lib/src/components/basic-lib/btns/BtnPercentage.tsx",
"chars": 4004,
"preview": "/* Rectangle 340 */\nimport styled from '@emotion/styled'\nimport { BtnPercentageProps } from './Interface'\nimport { Box, "
},
{
"path": "packages/component-lib/src/components/basic-lib/btns/Button.stories.tsx",
"chars": 11796,
"preview": "import React from 'react'\nimport { Meta, Story } from '@storybook/react'\n\nimport { Box, Breadcrumbs, Grid, Link, Paginat"
},
{
"path": "packages/component-lib/src/components/basic-lib/btns/Button.tsx",
"chars": 10948,
"preview": "import {\n Box,\n Button as MuButton,\n IconButton,\n Link,\n ToggleButton,\n ToggleButtonGroup as MuToggleButtonGroup,\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/btns/Interface.ts",
"chars": 1451,
"preview": "import {\n ButtonProps as MuButtonPros,\n SliderProps,\n ToggleButtonGroupProps as MuToggleButtonGroupProps,\n} from '@mu"
},
{
"path": "packages/component-lib/src/components/basic-lib/btns/index.ts",
"chars": 85,
"preview": "export * from './Button'\nexport * from './Interface'\nexport * from './BtnPercentage'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/checkbox/index.tsx",
"chars": 1219,
"preview": "import { useTheme } from '@emotion/react'\nimport { CheckIcon } from '@loopring-web/common-resources'\nimport CheckCircleR"
},
{
"path": "packages/component-lib/src/components/basic-lib/color.stories.tsx",
"chars": 2656,
"preview": "import { Meta, Story } from '@storybook/react'\nimport { WithTranslation, withTranslation } from 'react-i18next'\nimport {"
},
{
"path": "packages/component-lib/src/components/basic-lib/display/SpaceBetweenBox.tsx",
"chars": 391,
"preview": "import { Box, BoxProps } from '@mui/material'\n\nexport type SpaceBetweenProps = {\n leftNode: React.ReactNode,\n rightNod"
},
{
"path": "packages/component-lib/src/components/basic-lib/display/index.ts",
"chars": 77,
"preview": "import SpaceBetweenBox from \"./SpaceBetweenBox\";\n\nexport { SpaceBetweenBox }\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/empty/Empty.tsx",
"chars": 2103,
"preview": "import { withTranslation, WithTranslation } from 'react-i18next'\nimport styled from '@emotion/styled'\nimport { EmptyIcon"
},
{
"path": "packages/component-lib/src/components/basic-lib/empty/index.ts",
"chars": 120,
"preview": "import { EmptyDefault } from './Empty'\n\nexport { EmptyDefault }\nexport * from './Empty'\n\n// export default EmptyWallet;\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/Form.stories.tsx",
"chars": 15529,
"preview": "import React from 'react'\nimport { Meta, Story } from '@storybook/react'\nimport styled from '@emotion/styled'\nimport {\n "
},
{
"path": "packages/component-lib/src/components/basic-lib/form/hooks/index.ts",
"chars": 60,
"preview": "export * from './useFocusRef'\nexport * from './usePanelRef'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/hooks/useFocusRef.ts",
"chars": 479,
"preview": "import React from 'react'\n\nexport function useFocusRef<T extends HTMLInputElement>({\n value,\n shouldFocusOn,\n callbac"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/hooks/usePanelRef.ts",
"chars": 546,
"preview": "import React from 'react'\n\nexport function usePanelRef<T extends HTMLInputElement>({\n callback,\n}: {\n callback?: (pror"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/index.ts",
"chars": 24,
"preview": "export * from './input'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/CollectionInput.tsx",
"chars": 12755,
"preview": "import { Avatar, Box, BoxProps, Divider, Link, Modal, Tooltip, Typography } from '@mui/material'\nimport {\n CollectionMe"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/DatePicker.tsx",
"chars": 5861,
"preview": "import { Box, experimentalStyled, IconButton, InputAdornment, TextFieldProps } from '@mui/material'\nimport styled from '"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/Default.tsx",
"chars": 8094,
"preview": "import styled from '@emotion/styled'\nimport React from 'react'\nimport { Avatar, Box, FormControlLabel as MuFormControlLa"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/InputButton.tsx",
"chars": 9830,
"preview": "import { FormHelperText, Grid, Typography } from '@mui/material'\nimport {\n CoinInfo,\n DropDownIcon,\n EmptyValueTag,\n "
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/InputCode.tsx",
"chars": 2864,
"preview": "import React from 'react'\nimport styled from '@emotion/styled'\nimport { Box } from '@mui/material'\n\nconst InputCodeStyle"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/InputCoin.tsx",
"chars": 9528,
"preview": "import { FormHelperText, Grid, Typography } from '@mui/material'\nimport {\n CoinInfo,\n FORMAT_STRING_LEN,\n getValuePre"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/InputMaxButton.tsx",
"chars": 10785,
"preview": "import { Divider, FormHelperText, Grid, Link, Typography } from '@mui/material'\nimport {\n CoinInfo,\n DropDownIcon,\n F"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/InputMaxCoin.tsx",
"chars": 10399,
"preview": "import { Divider, FormHelperText, Grid, Link, Typography } from '@mui/material'\nimport {\n CoinInfo,\n FORMAT_STRING_LEN"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/InputSearch.tsx",
"chars": 1483,
"preview": "import { InputAdornment, OutlinedInput, OutlinedInputProps } from '@mui/material'\nimport { CloseIcon, SearchIcon } from "
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/InputSelect.tsx",
"chars": 2730,
"preview": "import { Box } from '@mui/material'\nimport { CoinInfo, CoinKey, globalSetup } from '@loopring-web/common-resources'\nimpo"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/Interface.ts",
"chars": 3384,
"preview": "import { CoinInfo, CoinKey, CoinMap, CoinSource, TokenType } from '@loopring-web/common-resources'\nimport React from 're"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/TextareaWithCount.tsx",
"chars": 2774,
"preview": "import { TextareaAutosizeStyled } from './style'\nimport React from 'react'\nimport { TextareaAutosizeProps } from '@mui/b"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/index.ts",
"chars": 492,
"preview": "export * from './InputSelect'\nexport * from './InputButton'\nexport * from './DatePicker'\nexport * from './Interface'\nexp"
},
{
"path": "packages/component-lib/src/components/basic-lib/form/input/style.ts",
"chars": 10949,
"preview": "import styled from '@emotion/styled'\nimport {\n Box,\n BoxProps,\n Button,\n ButtonProps,\n RadioGroup,\n TextareaAutosi"
},
{
"path": "packages/component-lib/src/components/basic-lib/index.tsx",
"chars": 378,
"preview": "export * from './btns'\nexport * from './form'\nexport * from './lists'\nexport * from './panel'\nexport * from './tables'\ne"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/CoinList.tsx",
"chars": 7395,
"preview": "import { Box, ListItem, ListItemIcon, ListItemText, Typography } from '@mui/material'\nimport { Trans, WithTranslation } "
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/CollectionItem.tsx",
"chars": 16533,
"preview": "import {\n CardStyleItem,\n CollectionItemProps,\n CollectionListProps,\n CollectionMedia,\n EmptyDefault,\n IconButtonS"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/FileListItem.tsx",
"chars": 1777,
"preview": "import { Box, IconButton, ListItem, ListItemText, Typography } from '@mui/material'\nimport { CloseIcon, CompleteIcon, Fa"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/HeadMenuItem.tsx",
"chars": 9638,
"preview": "import {\n Box,\n BoxProps,\n Container,\n ListItemAvatar,\n MenuItem,\n MenuProps,\n Typography,\n} from '@mui/material'"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/HeadToolbar.tsx",
"chars": 1050,
"preview": "import styled from '@emotion/styled'\nimport { MenuItem, MenuItemProps } from '@mui/material'\n//${({ theme }) => theme.un"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/Interface.ts",
"chars": 3749,
"preview": "import React from 'react'\nimport { LinkProps, ListItemProps, MenuItemProps as muMenuItemProps } from '@mui/material'\nimp"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/List.stories.tsx",
"chars": 9605,
"preview": "import { Meta, Story } from '@storybook/react'\nimport styled from '@emotion/styled'\nimport { MemoryRouter } from 'react-"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/NFTList.tsx",
"chars": 13699,
"preview": "import {\n Box,\n Checkbox,\n Grid,\n MenuItem,\n Pagination,\n Popover,\n Radio,\n Typography,\n} from '@mui/material'\ni"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/Notification.tsx",
"chars": 13925,
"preview": "import { Box, ListItem, ListItemAvatar, ListItemProps, ListItemText } from '@mui/material'\nimport styled from '@emotion/"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/SubMenuList.tsx",
"chars": 4809,
"preview": "import styled from '@emotion/styled'\nimport {\n Box,\n Divider,\n ListItem,\n ListItemAvatar,\n ListItemProps,\n ListIte"
},
{
"path": "packages/component-lib/src/components/basic-lib/lists/index.tsx",
"chars": 6251,
"preview": "import {\n Card,\n CardProps,\n IconButton,\n MenuItem as MuiMenuItem,\n Select,\n SelectProps,\n} from '@mui/material'\ni"
},
{
"path": "packages/component-lib/src/components/basic-lib/loading/index.tsx",
"chars": 683,
"preview": "import { SoursURL } from '@loopring-web/common-resources'\nimport { Box, BoxProps } from '@mui/material'\n\nexport type Loa"
},
{
"path": "packages/component-lib/src/components/basic-lib/media/Interface.ts",
"chars": 225,
"preview": "import { NFTWholeINFO } from '@loopring-web/common-resources'\nimport { ReactEventHandler } from 'react'\n\nexport type Nft"
},
{
"path": "packages/component-lib/src/components/basic-lib/media/index.ts",
"chars": 55,
"preview": "export * from './nftImage'\nexport * from './Interface'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/media/nftImage.tsx",
"chars": 4332,
"preview": "import { NftImageProps } from './Interface'\nimport { css, Theme } from '@emotion/react'\nimport styled from '@emotion/sty"
},
{
"path": "packages/component-lib/src/components/basic-lib/panel/IPFSSourceUpload.tsx",
"chars": 17112,
"preview": "import {\n Box,\n ButtonProps,\n FormControl,\n FormHelperText,\n IconButton,\n Link,\n Typography,\n TypographyProps,\n}"
},
{
"path": "packages/component-lib/src/components/basic-lib/panel/Interface.ts",
"chars": 479,
"preview": "export type PanelContent<T extends string> = {\n key: T\n element: JSX.Element\n toolBarItem: JSX.Element | undefined\n}\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/panel/Panel.stories.tsx",
"chars": 5307,
"preview": "import React from 'react'\nimport styled from '@emotion/styled'\nimport { Meta, Story } from '@storybook/react'\nimport { w"
},
{
"path": "packages/component-lib/src/components/basic-lib/panel/QRCodeUpload.tsx",
"chars": 6158,
"preview": "import { Box } from '@mui/material'\nimport styled from '@emotion/styled'\nimport { QRCODE_REGION_ID } from '@loopring-web"
},
{
"path": "packages/component-lib/src/components/basic-lib/panel/SubMenu.tsx",
"chars": 372,
"preview": "import styled from '@emotion/styled'\nimport { List, ListProps } from '@mui/material'\n\nexport const SubMenu = styled(List"
},
{
"path": "packages/component-lib/src/components/basic-lib/panel/SwitchPanel.tsx",
"chars": 5501,
"preview": "import { WithTranslation } from 'react-i18next'\nimport SwipeableViews, { SwipeableViewsProps } from 'react-swipeable-vie"
},
{
"path": "packages/component-lib/src/components/basic-lib/panel/index.tsx",
"chars": 2942,
"preview": "import styled from '@emotion/styled'\nimport { Box, Card, Typography, BoxProps, Container, IconButton } from '@mui/materi"
},
{
"path": "packages/component-lib/src/components/basic-lib/popover/Interface.ts",
"chars": 1042,
"preview": "import { PopoverOrigin } from '@mui/material'\nimport { OneOf } from '@loopring-web/common-resources'\n\nimport * as React "
},
{
"path": "packages/component-lib/src/components/basic-lib/popover/Popover.tsx",
"chars": 6451,
"preview": "import React from 'react'\nimport styled from '@emotion/styled'\nimport { Popover as MuiPopover, PopoverOrigin, PopoverPro"
},
{
"path": "packages/component-lib/src/components/basic-lib/popover/index.ts",
"chars": 55,
"preview": "export * from './Popover'\n\nexport * from './Interface'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/popover/popover.stories.tsx",
"chars": 4403,
"preview": "import styled from '@emotion/styled'\nimport { Meta, Story } from '@storybook/react'\nimport { Box, Button, Grid } from '@"
},
{
"path": "packages/component-lib/src/components/basic-lib/resource/hook/useImage.ts",
"chars": 1094,
"preview": "import React from 'react'\n\nexport const useImage = (src: string) => {\n const [hasLoaded, setHasLoaded] = React.useState"
},
{
"path": "packages/component-lib/src/components/basic-lib/resource/index.tsx",
"chars": 32,
"preview": "export * from './hook/useImage'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/table-pagination/TablePagination.tsx",
"chars": 1511,
"preview": "import React from 'react'\nimport { Box, Pagination } from '@mui/material'\nimport styled from '@emotion/styled'\nimport { "
},
{
"path": "packages/component-lib/src/components/basic-lib/table-pagination/index.ts",
"chars": 34,
"preview": "export * from './TablePagination'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/Interface.ts",
"chars": 1354,
"preview": "import { WithT } from 'i18next'\nimport {\n CalculatedColumn,\n Column as RdgColumns,\n DataGridProps as RdgDataGridProps"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/Table.tsx",
"chars": 9044,
"preview": "import type { Column as RdgColumn } from 'react-data-grid'\nimport DataGrid, { SortColumn } from 'react-data-grid'\nimport"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/Formatters/CellActionsFormatter.tsx",
"chars": 3645,
"preview": "// // import { useState } from 'react';\n// // import type { ReactNode } from 'react';\n// // import clsx from 'clsx';\n// "
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/Formatters/CellDepthFormatter.tsx",
"chars": 990,
"preview": "import clsx from 'clsx'\nimport styled from '@emotion/styled'\nimport { withTranslation, WithTranslation } from 'react-i18"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/Formatters/CellExpanderFormatter.tsx",
"chars": 1089,
"preview": "import styled from '@emotion/styled'\nimport { useFocusRef } from '../../hook'\n\nconst CellExpandClassname = styled.div`\n "
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/Formatters/ChildRowDeleteButton.tsx",
"chars": 1362,
"preview": "import styled from '@emotion/styled'\nimport { useFocusRef } from '../../hook'\n\nconst ChildRowActionCrossClassname = styl"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/Formatters/ImageFormatter.tsx",
"chars": 602,
"preview": "import styled from '@emotion/styled'\n\nconst WrapperClassname = styled.div`\n display: flex;\n justify-content: space-aro"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/Formatters/index.ts",
"chars": 192,
"preview": "// export * from './CellActionsFormatter';\nexport * from './ImageFormatter'\nexport * from './CellExpanderFormatter'\nexpo"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/HeaderRenderers/SortableHeaderCell.tsx",
"chars": 2757,
"preview": "import { HeaderRendererProps } from 'react-data-grid'\nimport styled from '@emotion/styled'\nimport { Box, BoxProps } from"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/HeaderRenderers/index.ts",
"chars": 37,
"preview": "export * from './SortableHeaderCell'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/RowRenders/RowDepthFormatter.tsx",
"chars": 4221,
"preview": "import clsx from 'clsx'\nimport styled from '@emotion/styled'\nimport { CalculatedColumn, Cell, RowRendererProps } from 'r"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/components/RowRenders/index.ts",
"chars": 36,
"preview": "export * from './RowDepthFormatter'\n"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/hook/index.ts",
"chars": 130,
"preview": "export * from './useClickOutside'\nexport * from './useCombinedRefs'\nexport * from './useFocusRef'\nexport * from './useLa"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/hook/useClickOutside.ts",
"chars": 3424,
"preview": "import { useEffect, useRef } from 'react'\n\n/**\n * Detecting outside click on a react component is surprisingly hard.\n * "
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/hook/useCombinedRefs.ts",
"chars": 451,
"preview": "import { useCallback } from 'react'\n\nexport function useCombinedRefs<T>(...refs: readonly React.Ref<T>[]) {\n return use"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/hook/useFocusRef.ts",
"chars": 319,
"preview": "import { useLayoutEffect, useRef } from 'react'\n\nexport function useFocusRef<T extends HTMLOrSVGElement>(isCellSelected:"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/hook/useLatestFunc.ts",
"chars": 453,
"preview": "import { useCallback, useEffect, useRef } from 'react'\n\n// https://reactjs.org/docs/hooks-faq.html#what-can-i-do-if-my-e"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/index.ts",
"chars": 225,
"preview": "export * from './Table'\nexport * from '../empty'\nexport * from './components/RowRenders'\nexport * from './components/Hea"
},
{
"path": "packages/component-lib/src/components/basic-lib/tables/table.stories.tsx",
"chars": 4485,
"preview": "import { Meta, Story } from '@storybook/react'\nimport { CellDepthFormatter } from './components/Formatters'\nimport { Col"
},
{
"path": "packages/component-lib/src/components/basic-lib/tags/Tags.stories.tsx",
"chars": 1011,
"preview": "import { Meta, Story } from '@storybook/react'\n\nimport { Box, Grid } from '@mui/material'\nimport { WithTranslation, with"
},
{
"path": "packages/component-lib/src/components/basic-lib/tags/index.tsx",
"chars": 5589,
"preview": "import { SvgIcon, Chip, SvgIconProps } from '@mui/material'\nimport * as sdk from '@loopring-web/loopring-sdk'\nimport { u"
},
{
"path": "packages/component-lib/src/components/block/AmmCard.tsx",
"chars": 30633,
"preview": "import { Box, Card, CardActions, CardContent, Divider, Typography } from '@mui/material'\nimport { Button, CoinIcons } fr"
},
{
"path": "packages/component-lib/src/components/block/AmmPairDetail.tsx",
"chars": 12741,
"preview": "import { Box, Typography } from '@mui/material'\nimport React from 'react'\n\nimport {\n EmptyValueTag,\n getValuePrecision"
},
{
"path": "packages/component-lib/src/components/block/AssetTitle.tsx",
"chars": 14512,
"preview": "import { Box, Grid, IconButton, Typography } from '@mui/material'\nimport {\n getValuePrecisionThousand,\n HeaderMenuItem"
},
{
"path": "packages/component-lib/src/components/block/Block.stories.tsx",
"chars": 13771,
"preview": "import styled from '@emotion/styled'\nimport { Meta, Story } from '@storybook/react'\nimport { MemoryRouter } from 'react-"
},
{
"path": "packages/component-lib/src/components/block/CollectionDetailView.tsx",
"chars": 7843,
"preview": "import {\n Account,\n CollectionMeta,\n CopyIcon,\n copyToClipBoard,\n GET_IPFS_STRING,\n getShortAddr,\n ImageIcon,\n} f"
},
{
"path": "packages/component-lib/src/components/block/CollectionMedia.tsx",
"chars": 4283,
"preview": "import {\n CollectionMeta,\n GET_IPFS_STRING,\n ImageIcon,\n LegacyIcon,\n SoursURL,\n} from '@loopring-web/common-resour"
},
{
"path": "packages/component-lib/src/components/block/DepthRaw.tsx",
"chars": 5647,
"preview": "import { Box, Grid, Typography } from '@mui/material'\nimport { MarketInfo } from '@loopring-web/loopring-sdk'\nimport { W"
},
{
"path": "packages/component-lib/src/components/block/DownloadPanel.tsx",
"chars": 1763,
"preview": "import { useTheme } from '@emotion/react'\nimport { SoursURL } from '@loopring-web/common-resources'\nimport { Box, Link }"
},
{
"path": "packages/component-lib/src/components/block/ETHStakingDetail.tsx",
"chars": 3168,
"preview": "import { Box, Divider, Typography } from '@mui/material'\nimport {\n ChartType,\n DEFI_ADVICE_MAP,\n myLog,\n SoursURL,\n "
},
{
"path": "packages/component-lib/src/components/block/ErrorBlock.tsx",
"chars": 1205,
"preview": "import { RESULT_INFO } from '@loopring-web/loopring-sdk'\nimport { TOptions } from 'i18next'\nimport { useTranslation } fr"
},
{
"path": "packages/component-lib/src/components/block/Interface.ts",
"chars": 6106,
"preview": "import {\n CoinInfo,\n ForexMap,\n GET_IPFS_STRING,\n NFTWholeINFO,\n PriceTag,\n RedPacketQRPropsExtends,\n TradeBtnSta"
},
{
"path": "packages/component-lib/src/components/block/LoadingBlock.tsx",
"chars": 807,
"preview": "import { SoursURL } from '@loopring-web/common-resources'\nimport styled from '@emotion/styled'\nimport { Box } from '@mui"
},
{
"path": "packages/component-lib/src/components/block/MarketBlock.tsx",
"chars": 6025,
"preview": "import { WithTranslation } from 'react-i18next'\nimport {\n CoinKey,\n CurrencyToTag,\n EmptyValueTag,\n getValuePrecisio"
}
]
// ... and 1123 more files (download for full content)
About this extraction
This page contains the full source code of the Loopring/loopring-web-v2 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1323 files (10.0 MB), approximately 2.7M tokens, and a symbol index with 1571 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.