diff --git a/src/pages/ChainAndToken/Chains/ChainBalance.js b/src/pages/ChainAndToken/Chains/ChainBalance.js
index f379e50..eef76dc 100644
--- a/src/pages/ChainAndToken/Chains/ChainBalance.js
+++ b/src/pages/ChainAndToken/Chains/ChainBalance.js
@@ -3,6 +3,7 @@ import classes from './Chains.module.css'
import ToggleSwitch from "../../../components/ToggleSwitch/ToggleSwitch";
import {useGetAllBalanceByChain, useGetTotalBalanceByChain} from "../../../query";
+import {BN} from "../../../utils/utils";
const ChainBalance = ({chainId}) => {
@@ -36,16 +37,13 @@ const ChainBalance = ({chainId}) => {
No Data!
else return
- {data?.map((balance, index) =>
+ {data?.map((balance, index) =>
{index + 1} {balance?.address}
- Balance: {balance?.balance}
+ Balance: {new BN(balance?.balance).toFormat()}
)}
-
}
-
-
return (
<>
@@ -78,7 +76,7 @@ const ChainBalance = ({chainId}) => {
Total Balance:
-
{ totalIsLoading ? "Loading..." : total?.balance}
+
{ totalIsLoading ? "Loading..." : new BN(total?.balance).toFormat()}
diff --git a/src/pages/ChainAndToken/Tokens/TokensBalance.js b/src/pages/ChainAndToken/Tokens/TokensBalance.js
index 31bbbf7..bf9cec6 100644
--- a/src/pages/ChainAndToken/Tokens/TokensBalance.js
+++ b/src/pages/ChainAndToken/Tokens/TokensBalance.js
@@ -2,6 +2,7 @@ import React, {useEffect, useState} from 'react';
import {useGetTokenAllBalanceById, useGetTokenTotalBalanceById} from "../../../query";
import classes from "../Chains/Chains.module.css";
import ToggleSwitch from "../../../components/ToggleSwitch/ToggleSwitch";
+import {BN} from "../../../utils/utils";
const TokensBalance = ({chainId}) => {
@@ -29,9 +30,9 @@ const TokensBalance = ({chainId}) => {
No Data!
else return
- {data?.map((balance, index) =>
+ {data?.map((balance, index) =>
{index + 1} {balance?.address}
- Balance: {balance?.balance}
+ Balance: {new BN(balance?.balance).toFormat()}
)}
@@ -69,7 +70,7 @@ const TokensBalance = ({chainId}) => {
Total Balance:
-
{ totalIsLoading ? "Loading..." : total?.balance}
+
{ totalIsLoading ? "Loading..." : new BN(total?.balance).toFormat()}
diff --git a/src/pages/Dashboard/BriefWallet/BriefWallet.js b/src/pages/Dashboard/BriefWallet/BriefWallet.js
new file mode 100644
index 0000000..346db01
--- /dev/null
+++ b/src/pages/Dashboard/BriefWallet/BriefWallet.js
@@ -0,0 +1,38 @@
+import React from 'react';
+import classes from './BriefWallet.module.css'
+import {useGetWalletTotalUsers} from "../../../query";
+import BriefWalletCard from "./BriefWalletCard";
+
+const BriefWallet = () => {
+
+ const {data, isLoading, error} = useGetWalletTotalUsers();
+
+ const content = () => {
+ if (error) return Error
+ if (isLoading) return Loading...
+ else return <>
+
+ {data?.map((data, index) => )}
+
+
+
+
+ >
+
+ }
+
+ return (
+
+
+
Total User Wallets
+
+ {
+ content()
+ }
+
+
+
+ );
+};
+
+export default BriefWallet;
diff --git a/src/pages/Dashboard/BriefWallet/BriefWallet.module.css b/src/pages/Dashboard/BriefWallet/BriefWallet.module.css
new file mode 100644
index 0000000..498be0e
--- /dev/null
+++ b/src/pages/Dashboard/BriefWallet/BriefWallet.module.css
@@ -0,0 +1,13 @@
+.box {
+ background: #282a36;
+ color: rgba(236, 236, 236, 0.7803921569) !important;
+ border-color: rgba(36, 38, 51, 0.9803921569) !important;
+ border-radius: 5px !important;
+}
+
+.striped div:nth-child(even){
+ background-color: #38384678;
+ -webkit-transition: background-color 0.4s;
+ -o-transition: background-color 0.4s;
+ transition: background-color 0.4s;
+}
\ No newline at end of file
diff --git a/src/pages/Dashboard/BriefWallet/BriefWalletCard.js b/src/pages/Dashboard/BriefWallet/BriefWalletCard.js
new file mode 100644
index 0000000..2241752
--- /dev/null
+++ b/src/pages/Dashboard/BriefWallet/BriefWalletCard.js
@@ -0,0 +1,14 @@
+import React from 'react';
+import classes from './BriefWallet.module.css'
+import {BN} from "../../../utils/utils";
+
+const BriefWalletCard = ({data, index}) => {
+ return (
+
+ {data?.currency}
+ {new BN(data?.balance).toFormat()}
+
+ );
+};
+
+export default BriefWalletCard;
diff --git a/src/pages/Dashboard/Chain/Chain.js b/src/pages/Dashboard/Chain/Chain.js
index aa7d9b3..17073da 100644
--- a/src/pages/Dashboard/Chain/Chain.js
+++ b/src/pages/Dashboard/Chain/Chain.js
@@ -27,7 +27,7 @@ const Chain = () => {
}
return (
-
+
Chain List
diff --git a/src/pages/Dashboard/Chain/ChainCard.js b/src/pages/Dashboard/Chain/ChainCard.js
index e4fe105..341d31c 100644
--- a/src/pages/Dashboard/Chain/ChainCard.js
+++ b/src/pages/Dashboard/Chain/ChainCard.js
@@ -1,5 +1,6 @@
import React from 'react';
import classes from './Chain.module.css'
+import {BN} from "../../../utils/utils";
const ChainCard = ({data, index}) => {
@@ -8,7 +9,7 @@ const ChainCard = ({data, index}) => {
return (
{data?.chain}
- {data?.balance}
+ {new BN(data?.balance).toFormat()}
);
};
diff --git a/src/pages/Dashboard/Dashboard.js b/src/pages/Dashboard/Dashboard.js
index a7bcaf3..6e04100 100644
--- a/src/pages/Dashboard/Dashboard.js
+++ b/src/pages/Dashboard/Dashboard.js
@@ -5,6 +5,7 @@ import {useGetUsersByGroup, useGetUsersList, useGetWithdrawsReq} from "../../que
import Chains from "../ChainAndToken/Chains/Chains";
import Chain from "./Chain/Chain";
import Token from "./Token/Token";
+import BriefWallet from "./BriefWallet/BriefWallet";
const Dashboard = () => {
@@ -15,7 +16,7 @@ const Dashboard = () => {
return
-
+
{users !== null ?
@@ -48,10 +49,11 @@ const Dashboard = () => {
-
+
+
diff --git a/src/pages/Dashboard/Token/Token.js b/src/pages/Dashboard/Token/Token.js
index b29363b..228dee7 100644
--- a/src/pages/Dashboard/Token/Token.js
+++ b/src/pages/Dashboard/Token/Token.js
@@ -23,7 +23,7 @@ const Token = () => {
}
return (
-
+
Token List
diff --git a/src/pages/Dashboard/Token/TokenCard.js b/src/pages/Dashboard/Token/TokenCard.js
index 641bced..a81f232 100644
--- a/src/pages/Dashboard/Token/TokenCard.js
+++ b/src/pages/Dashboard/Token/TokenCard.js
@@ -1,11 +1,12 @@
import React from 'react';
import classes from './Token.module.css'
+import {BN} from "../../../utils/utils";
const TokenCard = ({data, index}) => {
return (
- {data?.name} - {data?.symbol}
- {data?.balance}
+ {data?.name} - {data?.symbol}
+ {new BN(data?.balance).toFormat()}
);
};
diff --git a/src/pages/Wallet/Wallet.js b/src/pages/Wallet/Wallet.js
index d0fae80..678b625 100644
--- a/src/pages/Wallet/Wallet.js
+++ b/src/pages/Wallet/Wallet.js
@@ -2,10 +2,13 @@ import React, {useState} from 'react';
import {useGetWalletData} from "../../query";
import Loading from "../../components/Loading";
import ScrollBar from "../../components/ScrollBar";
+import {BN} from "../../utils/utils";
+import ToggleSwitch from "../../components/ToggleSwitch/ToggleSwitch";
const Wallet = () => {
const [params, setParams] = useState({
+ "excludeSystem": true,
"limit": 500,
"offset": 0
});
@@ -28,7 +31,29 @@ const Wallet = () => {
return (
-
+
+
+ Exclude System Wallets
+
+ {
+
+ setParams(prevState => {return {
+ ...prevState,
+ excludeSystem: !prevState.excludeSystem
+ }})
+
+
+ } }
+
+ /*onchange={()=> setQuery({
+ ...query,
+ ascendingByTime: (prevState => !prevState)}
+ )}*/
+ checked={params?.excludeSystem}/>
+
+
@@ -57,7 +82,7 @@ const Wallet = () => {
| {wallet?.title?.slice(wallet?.title.indexOf("-") +1, wallet?.title?.end) } |
{wallet?.title?.slice(0, wallet?.title.indexOf("-"))} |
{wallet?.walletType} |
- {wallet?.balance} |
+ {new BN(wallet?.balance).toFormat()} |
{wallet?.currency} |
)
diff --git a/src/query/hooks/useGetWalletTotalUsers.js b/src/query/hooks/useGetWalletTotalUsers.js
new file mode 100644
index 0000000..0f08e0d
--- /dev/null
+++ b/src/query/hooks/useGetWalletTotalUsers.js
@@ -0,0 +1,17 @@
+import {useQuery} from "@tanstack/react-query";
+import {adminGetWalletTotalUsers} from "js-api-client";
+
+export const useGetWalletTotalUsers = () => {
+ return useQuery(
+ ['Wallet-Total-Users'], async () => {
+ /*if (chainId === null) return;*/
+ const {data} = await adminGetWalletTotalUsers()
+ return data;
+
+ },
+ {
+ retry: 1,
+ /*enabled: false,
+ initialData:[]*/
+ });
+}
\ No newline at end of file
diff --git a/src/query/index.js b/src/query/index.js
index f4ff85c..14b0fee 100644
--- a/src/query/index.js
+++ b/src/query/index.js
@@ -5,6 +5,7 @@ export {useGetWithdrawInfo} from "./hooks/useGetWithdrawInfo";
export {useGetUsersByGroup} from "./hooks/useGetUsersByGroup";
export {useGetWhiteList} from "./hooks/useGetWhiteList";
export {useGetWalletData} from "./hooks/useGetWalletData";
+export {useGetWalletTotalUsers} from "./hooks/useGetWalletTotalUsers";
export {useGetChains} from "./hooks/useGetChains";
export {useGetAllBalanceByChain} from "./hooks/useGetAllBalanceByChain";
export {useGetTotalBalanceByChain} from "./hooks/useGetTotalBalanceByChain";
diff --git a/src/utils/card.js b/src/utils/card.js
new file mode 100644
index 0000000..41bbf1c
--- /dev/null
+++ b/src/utils/card.js
@@ -0,0 +1,129 @@
+export const cardHandler = (value) => {
+ switch (value) {
+ case '505785':
+ return 'IZB';
+
+ case '636214':
+ return 'AYANDE';
+
+ case '186214':
+ return 'AYANDE';
+
+ case '504706':
+ return 'SHAHR';
+
+ case '502938':
+ return 'DEY';
+
+ case '589210':
+ return 'SEPAH';
+
+ case '627648':
+ return 'TSADERAT';
+
+ case '207177':
+ return 'TSADERAT';
+
+ case '627412':
+ return 'EGHTESADNOVIN';
+
+ case '627488':
+ return 'KARAFARIN';
+
+ case '502910':
+ return 'KARAFARIN';
+
+ case '603770':
+ return 'KESHAVRZI';
+
+ case '639217':
+ return 'KESHAVRZI';
+
+ case '505801':
+ return 'KOSAR';
+
+ case '628023':
+ return 'MASKAN';
+
+ case '606373':
+ return 'MIRAN';
+
+ case '603799':
+ return 'MELI';
+
+ case '170019':
+ return 'MELI';
+
+ case '606256':
+ return 'MELAT';
+
+ case '622106':
+ return 'PARSIAN';
+
+ case '639194':
+ return 'PARSIAN';
+
+ case '627884':
+ return 'PARSIAN';
+
+ case '622108':
+ return 'PARSIAN';
+
+ case '639347':
+ return 'PASARGAD';
+
+ case '502229':
+ return 'PASARGAD';
+
+ case '627760':
+ return 'POST';
+
+ case '589463':
+ return 'REFAH';
+
+ case '504172':
+ return 'RESALAT';
+
+ case '603769':
+ return 'SADERAT';
+
+ case '903769':
+ return 'SADERAT';
+
+ case '621986':
+ return 'SAMAN';
+
+ case '627961':
+ return 'SANATOMADAN';
+
+ case '639346':
+ return 'SINA';
+
+ case '627353':
+ return 'TEJARAT';
+
+ case '585983':
+ return 'TEJARAT';
+
+ case '502908':
+ return 'TOSEOTAAVON';
+
+ case '505426':
+ return 'TOSEOTAAVON';
+
+ case '505416':
+ return 'GARDESHGARI';
+
+ case '639607':
+ return 'SARMAYEH';
+
+ case '507677':
+ return 'NOR';
+
+ case '585947':
+ return 'KHAVARMIANE';
+
+ default:
+ return 'ETC';
+ }
+};
\ No newline at end of file
diff --git a/src/utils/iban.js b/src/utils/iban.js
new file mode 100644
index 0000000..c0af40c
--- /dev/null
+++ b/src/utils/iban.js
@@ -0,0 +1,93 @@
+export const ibanHandler = (value) => {
+ switch (value) {
+ case '069':
+ return 'IZB';
+
+ case '062':
+ return 'AYANDE';
+
+ case '061':
+ return 'SHAHR';
+
+ case '066':
+ return 'DEY';
+
+ case '015':
+ return 'SEPAH';
+
+ case '020':
+ return 'TSADERAT';
+
+ case '055':
+ return 'EGHTESADNOVIN';
+
+ case '053':
+ return 'KARAFARIN';
+
+ case '016':
+ return 'KESHAVRZI';
+
+ case '073':
+ return 'KOSAR';
+
+ case '014':
+ return 'MASKAN';
+
+ case '060':
+ return 'MIRAN';
+
+ case '017':
+ return 'MELI';
+
+ case '012':
+ return 'MELAT';
+
+ case '054':
+ return 'PARSIAN';
+
+ case '057':
+ return 'PASARGAD';
+
+ case '021':
+ return 'POST';
+
+ case '013':
+ return 'REFAH';
+
+ case '070':
+ return 'RESALAT';
+
+ case '019':
+ return 'SADERAT';
+
+ case '056':
+ return 'SAMAN';
+
+ case '011':
+ return 'SANATOMADAN';
+
+ case '059':
+ return 'SINA';
+
+ case '018':
+ return 'TEJARAT';
+
+ case '022':
+ return 'TOSEOTAAVON';
+
+ case '064':
+ return 'GARDESHGARI';
+
+ case '058':
+ return 'SARMAYEH';
+
+ case '080':
+ return 'NOR';
+
+ case '078':
+ return 'KHAVARMIANE';
+
+ default:
+ return 'ETC';
+ }
+};
\ No newline at end of file
diff --git a/src/utils/utils.js b/src/utils/utils.js
new file mode 100644
index 0000000..cad9412
--- /dev/null
+++ b/src/utils/utils.js
@@ -0,0 +1,78 @@
+import BigNumber from "bignumber.js";
+
+
+
+export const numberFixedDecimal = (val, decimal) => {
+ return Math.round(val * decimal) / decimal;
+};
+export const countDecimals = (value) => {
+ if (Math.floor(value) === value) return 0;
+ return value.toString().split(".")[1].length || 0;
+};
+export const decimalChecker = (value, decimal) => {
+ if (Math.floor(value).toString() === value || value === "") return true;
+ const re = new RegExp("^\\d+\\.\\d{0," + decimal + "}$", "g");
+ return re.test(value);
+};
+
+export const parsePriceString = (value) => {
+ if (!value) {
+ return 0;
+ }
+ return parseFloat(value.replace(/[^0-9.-]+/g, ""));
+};
+
+export const validateEmail = (email) => {
+ return /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,10})+$/.test(email);
+}
+
+export const encodeQueryData = (params) => {
+ const ret = [];
+ for (let d in params)
+ ret.push(encodeURIComponent(d) + '=' + encodeURIComponent(params[d]));
+ return ret.join('&');
+}
+
+export const BN = BigNumber.clone({
+ FORMAT: {
+ groupSize: 3,
+ groupSeparator: ',',
+ decimalSeparator: '.',
+ }
+})
+
+export const isEn = str => /^[a-zA-Z ]*$/.test(str);
+
+export const isValidNationalCode = input => {
+ if (!/^\d{10}$/.test(input)) return false;
+ const check = +input[9];
+ const sum = input.split('').slice(0, 9).reduce((acc, x, i) => acc + +x * (10 - i), 0) % 11;
+ return sum < 2 ? check === sum : check + sum === 11;
+}
+
+export const isValidPassportCode = input => {
+ return /^[A-Z][0-9]{8}$/.test(input);
+}
+
+export const toEnglishNum = str => {
+ const persianNumberArr = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g];
+ const arabicNumberArr = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g];
+
+ if (typeof str === 'string') {
+ for (let i = 0; i < 10; i++) {
+ str = str.replace(persianNumberArr[i], i).replace(arabicNumberArr[i], i);
+ }
+ }
+ return str;
+}
+
+export const dateValidator = str => {
+ return /^[1-4]\d{3}\/((0[1-6]\/((3[0-1])|([1-2][0-9])|(0[1-9])))|((1[0-2]|(0[7-9]))\/(30|31|([1-2][0-9])|(0[1-9]))))$/.test(str);
+}
+
+export const timeValidator = str => {
+ return /^(2[0-3]|[01]?[0-9]):([0-5]?[0-9])$/.test(str);
+}
+
+export const toAbsoluteUrl = (path) => process.env.PUBLIC_URL + path
+
diff --git a/yarn.lock b/yarn.lock
index 3448a44..b97f4d0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9059,8 +9059,8 @@ __metadata:
"js-api-client@https://github.com/opexdev/js-api-client.git#develop":
version: 1.0.0-beta2
- resolution: "js-api-client@https://github.com/opexdev/js-api-client.git#commit=a2cc1290d7adc5afe6ceae0dc1b3a34011af53a5"
- checksum: 4a2f22c75eec68d855df093256f2d2a398c41d7d8e69971693f2917c42cc6e4421c1bdd6ab9bc529a398b8fb37e5affd9b1a4ad6f81a1e0daaaad250fd03bd9b
+ resolution: "js-api-client@https://github.com/opexdev/js-api-client.git#commit=31a0f62c50c74506b5ea9b1de5e0850899e8827a"
+ checksum: 3aaec7b1257c68d7dd890b4df2e084c78c1a2bad143bc44b9d9debae8b9c8263b2f205f0b2ce1c770acab629b0202b051328b2bc30351859bc81618bb5a8a31f
languageName: node
linkType: hard