Skip to content

Commit 505f7d2

Browse files
committed
bug fix
1 parent 26141f0 commit 505f7d2

File tree

5 files changed

+53
-35
lines changed

5 files changed

+53
-35
lines changed

src/App.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ global.Buffer = require('buffer').Buffer;
1515

1616
function App() {
1717

18-
const { setProfile, setMiningData, allRegions, setClosestRegion } = useDaemonContext();
18+
const { setProfile, setMiningData, allRegions, setClosestRegion, setaAllNodes } = useDaemonContext();
1919

2020
useEffect(() => {
2121
// if (allRegions.length === 0) return
@@ -24,10 +24,11 @@ function App() {
2424
await createOrGetWallet();
2525
listenProfileVer(setProfile);
2626

27-
28-
29-
await getAllNodes(allRegions, setClosestRegion, () => {
30-
if (!CoNET_Data || !CoNET_Data?.profiles) return
27+
await getAllNodes(allRegions, setClosestRegion, (allNodes: nodes_info[]) => {
28+
setaAllNodes(allNodes)
29+
if (!CoNET_Data || !CoNET_Data?.profiles) {
30+
return
31+
}
3132
startMiningV2(CoNET_Data?.profiles?.[0], allRegions, setMiningData);
3233
});
3334

src/components/MiningStatus/index.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ const MiningStatus = () => {
1515
}, miningData)
1616

1717
return (
18-
<div style={{width:"80%"}}>
18+
<div style={{width:"90%"}}>
1919
<div className="mining-status">
20-
<div className="mining">
21-
<div className={`circle ${isMiningUp ? "green" : "red"}`}></div>
22-
<p>Mining {isMiningUp ? "UP" : "DOWN"}</p>
23-
</div>
24-
<div className="rate">Rate: {miningData?.rate ? miningData.rate : <Skeleton height="14px" width="45px" />}</div>
20+
{/* <div className="mining">
21+
<div className={`circle ${isMiningUp ? "green" : "red"}`}></div>
22+
<p>Mining {isMiningUp ? "UP" : "DOWN"}</p>
23+
</div> */}
24+
<div className="rate">Rate: <div className={`circle ${isMiningUp ? "green" : "red"}`}></div><div>{miningData?.rate ? miningData.rate : <Skeleton height="14px" width="45px" />}</div></div>
2525
<div className="miners">Miners: {miningData?.online ? miningData.online : <Skeleton height="14px" width="45px" />}</div>
26-
<div className="miners">Online VPN Users: {miningData?.totalUsers ? miningData.totalUsers : <Skeleton height="14px" width="45px" />}</div>
26+
<div className="miners">VPN Users: {miningData?.totalUsers ? miningData.totalUsers : <Skeleton height="14px" width="45px" />}</div>
2727

2828
</div>
2929
</div>

src/pages/Home/index.tsx

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ import MiningStatus from '../../components/MiningStatus';
99
import BlobWrapper from '../../components/BlobWrapper';
1010
import Menu from '../../components/Menu';
1111
import Skeleton from '../../components/Skeleton';
12-
import { allNodes, closestNodes, maxNodes, currentScanNodeNumber } from '../../services/mining';
12+
import {maxNodes, currentScanNodeNumber } from '../../services/mining';
1313
import { CoNET_Data } from '../../utils/globals';
1414

1515

1616

1717
const Home = () => {
18-
const { profile, sRegion, setSRegion, setAllRegions, allRegions, isRandom, setIsRandom} = useDaemonContext();
18+
const { profile, sRegion, setSRegion, setAllRegions, allRegions, isRandom, setIsRandom, getAllNodes, closestRegion} = useDaemonContext();
1919
const [power, setPower] = useState<boolean>(false);
2020
const [isInitialLoading, setIsInitialLoading] = useState<boolean>(true);
2121
const [isConnectionLoading, setIsConnectionLoading] = useState<boolean>(false)
@@ -64,8 +64,11 @@ const Home = () => {
6464
}))).map((regionStr: any) => JSON.parse(regionStr)); // Convert the string back to an object
6565

6666
const unitedStatesIndex = treatedRegions.findIndex((region: any) => region.code === 'US')
67-
setSRegion(unitedStatesIndex)
68-
setIsRandom(false);
67+
if (sRegion<0) {
68+
setSRegion(unitedStatesIndex)
69+
setIsRandom(false);
70+
}
71+
6972

7073
setAllRegions(treatedRegions);
7174
};
@@ -75,7 +78,13 @@ const Home = () => {
7578
_getAllRegions()
7679

7780
// setTimeout(() => setIsInitialLoading(false), 3000);
78-
}, [allRegions]);
81+
}, []);
82+
83+
// useEffect(() => {
84+
// if (sRegion > -1) {
85+
// console.log(`sRegion = ${sRegion}`)
86+
// }
87+
// },[sRegion])
7988

8089
const toggleMenu = () => {
8190
setIsMenuVisible(prevState => !prevState);
@@ -109,7 +118,7 @@ type Native_StartVPNObj = {
109118
return
110119
}
111120

112-
try {
121+
113122
setIsConnectionLoading(true)
114123
if (sRegion === -1) {
115124
selectedCountryIndex = Math.floor(Math.random() * allRegions.length)
@@ -118,24 +127,28 @@ type Native_StartVPNObj = {
118127
selectedCountryIndex = sRegion
119128
}
120129

121-
const selectedCountryCode = allRegions[selectedCountryIndex].code
130+
const allNodes = getAllNodes
131+
const exitRegion = allRegions[selectedCountryIndex].code
132+
const exitNodes = allNodes.filter((n: any) => n.country === exitRegion)
133+
134+
// const selectedCountryCode = allRegions[selectedCountryIndex].code
122135

123-
const nodeListFilteredByClosestRegion = closestNodes
124-
const nodeListFilteredBySelectedRegion = allNodes!.filter((n: any) => n.region.endsWith(selectedCountryCode));
136+
const entryNodeRegion = closestRegion.node.country
137+
const __entryNodes = allNodes.filter((n: any) => n.country === entryNodeRegion);
125138

126-
const randomNodeIndex = Math.floor(Math.random() * nodeListFilteredBySelectedRegion!.length);
139+
const randomExitIndex = Math.floor(Math.random() * (exitNodes.length-1));
127140

128-
const _exitNode = [nodeListFilteredBySelectedRegion?.[randomNodeIndex]];
141+
const _exitNode = [exitNodes[randomExitIndex]]
129142

130-
let _entryNodes: nodes_info[] = nodeListFilteredByClosestRegion
143+
let _entryNodes = __entryNodes
131144

132-
if (nodeListFilteredByClosestRegion.length > 5) {
145+
if (_entryNodes.length > 5) {
133146
_entryNodes = []
134147
do {
135-
const randomNodeIndex = Math.floor(Math.random() * nodeListFilteredByClosestRegion!.length)
136-
const choosenNode = nodeListFilteredByClosestRegion[randomNodeIndex]
148+
const randomNodeIndex = Math.floor(Math.random() * (__entryNodes.length-1))
149+
const choosenNode = __entryNodes[randomNodeIndex]
137150
_entryNodes.push(choosenNode)
138-
nodeListFilteredByClosestRegion.splice(randomNodeIndex, 1)
151+
__entryNodes.splice(randomNodeIndex, 1)
139152
} while (_entryNodes.length < 5);
140153
}
141154

@@ -175,9 +188,7 @@ type Native_StartVPNObj = {
175188
}, 1000)
176189

177190
return
178-
} catch (error) {
179-
setPower(false);
180-
}
191+
181192
};
182193

183194
const renderButton = () => {

src/providers/DaemonProvider.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ type DaemonContext = {
1515
setProfile: (profile: any) => void;
1616
isMiningUp: boolean;
1717
setIsMiningUp: (val: boolean) => void;
18+
setaAllNodes: (data: nodes_info[]) => void
19+
getAllNodes: nodes_info[]
1820
};
1921

2022
type DaemonProps = {
@@ -36,6 +38,8 @@ const defaultContextValue: DaemonContext = {
3638
setProfile: () => { },
3739
isMiningUp: false,
3840
setIsMiningUp: () => { },
41+
setaAllNodes: () => {},
42+
getAllNodes: []
3943
};
4044

4145
const Daemon = createContext<DaemonContext>(defaultContextValue);
@@ -53,9 +57,10 @@ export function DaemonProvider({ children }: DaemonProps) {
5357
const [miningData, setMiningData] = useState<any>(null);
5458
const [profile, setProfile] = useState<any>(null);
5559
const [isMiningUp, setIsMiningUp] = useState<boolean>(false);
60+
const [getAllNodes, setaAllNodes] = useState<nodes_info[]>([]);
5661

5762
return (
58-
<Daemon.Provider value={{ sRegion, setSRegion, allRegions, setAllRegions, closestRegion, setClosestRegion, isRandom, setIsRandom, miningData, setMiningData, profile, setProfile, isMiningUp, setIsMiningUp }}>
63+
<Daemon.Provider value={{ sRegion, setSRegion, allRegions, setAllRegions, closestRegion, setClosestRegion, isRandom, setIsRandom, miningData, setMiningData, profile, setProfile, isMiningUp, setIsMiningUp, getAllNodes, setaAllNodes }}>
5964
{children}
6065
</Daemon.Provider>
6166
);

src/services/mining.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ const getRandomNodeFromRegion: (region: string) => nodes_info = (
6666
region: string
6767
) => {
6868
const allNodeInRegion = allNodes.filter((n) => n.region.endsWith(region));
69-
const rendomIndex = Math.floor(Math.random() * allNodeInRegion.length - 1);
69+
const rendomIndex = Math.floor(Math.random() * (allNodeInRegion.length - 1));
7070
if (rendomIndex >= allNodeInRegion.length) {
7171
return allNodeInRegion[0];
7272
}
@@ -102,7 +102,7 @@ const testClosestRegion = async (callback: () => void) => {
102102
const getAllNodes = async (
103103
_allRegions: Region[],
104104
setClosestRegion: (region: ClosestRegion) => void,
105-
callback:()=>void
105+
callback:(allnodes: nodes_info[])=>void
106106
) => {
107107
if (getAllNodesProcess) {
108108
setClosestRegion(closestRegion[0]);
@@ -159,6 +159,7 @@ const getAllNodes = async (
159159
const _country = n.region.split('.')[1]
160160
country.set(_country, true)
161161
n.ip_addr = nodeInfo.ipaddress;
162+
n.country = _country;
162163
n.armoredPublicKey = Buffer.from(nodeInfo.pgp, "base64").toString();
163164
const pgpKey1 = await readKey({
164165
armoredKey: n.armoredPublicKey,
@@ -180,7 +181,7 @@ const getAllNodes = async (
180181
testClosestRegion(() => {
181182
maxNodes = currentScanNodeNumber;
182183
setClosestRegion(closestRegion[0]);
183-
callback();
184+
callback(allNodes);
184185
});
185186

186187
};

0 commit comments

Comments
 (0)