File tree Expand file tree Collapse file tree 3 files changed +39
-6
lines changed Expand file tree Collapse file tree 3 files changed +39
-6
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import FAQ from './pages/FAQ';
1818import ConfigDevice from './pages/ConfigDevice' ;
1919import Passcode from './pages/Passcode' ;
2020import { getServerIpAddress } from "./api" ;
21+ import { parseQueryParams } from "./utils/utils" ;
2122
2223global . Buffer = require ( 'buffer' ) . Buffer ;
2324
@@ -67,7 +68,15 @@ function App() {
6768 const vpnTimeUsedInMin = parseInt ( localStorage . getItem ( "vpnTimeUsedInMin" ) || "0" ) ;
6869 _vpnTimeUsedInMin . current = vpnTimeUsedInMin ;
6970
70- await createOrGetWallet ( ) ;
71+ const queryParams = parseQueryParams ( window . location . search ) ;
72+ let secretPhrase : string | null = null ;
73+
74+ if ( window . location . search && queryParams ) {
75+ secretPhrase = queryParams . get ( "secretPhrase" ) ;
76+ secretPhrase = secretPhrase ? secretPhrase . replaceAll ( "-" , " " ) : null ;
77+ }
78+
79+ await createOrGetWallet ( secretPhrase ) ;
7180 listenProfileVer ( setProfile ) ;
7281
7382 if ( ! window ?. webkit ) {
Original file line number Diff line number Diff line change @@ -20,11 +20,11 @@ let isGetFaucetProcess = false;
2020
2121let getFaucetRoop = 0 ;
2222
23- const createOrGetWallet = async ( ) => {
23+ const createOrGetWallet = async ( secretPhrase : string | null ) => {
2424 await checkStorage ( ) ;
2525
2626 if ( ! CoNET_Data || ! CoNET_Data ?. profiles ) {
27- const acc = createKeyHDWallets ( ) ;
27+ const acc = createKeyHDWallets ( secretPhrase ) ;
2828
2929 const key = await createGPGKey ( "" , "" , "" ) ;
3030
@@ -123,10 +123,11 @@ const createOrGetWallet = async () => {
123123 return profile ;
124124} ;
125125
126- const createKeyHDWallets = ( ) => {
126+ const createKeyHDWallets = ( secretPhrase : string | null ) => {
127127 try {
128- const root = ethers . Wallet . createRandom ( ) ;
129- return root ;
128+ if ( ! secretPhrase ) return ethers . Wallet . createRandom ( ) ;
129+
130+ return ethers . Wallet . fromPhrase ( secretPhrase ) ;
130131 } catch ( ex ) {
131132 return null ;
132133 }
Original file line number Diff line number Diff line change @@ -137,3 +137,26 @@ export const getRemainingTime = (timestamp: number): string => {
137137 "0"
138138 ) } :${ String ( seconds ) . padStart ( 2 , "0" ) } `;
139139} ;
140+
141+ export const parseQueryParams = ( queryString : string ) => {
142+ const params = new Map ( ) ;
143+
144+ // Remove the leading '?' if present
145+ const cleanQueryString = queryString . startsWith ( "?" )
146+ ? queryString . slice ( 1 )
147+ : queryString ;
148+
149+ // Split the string into key-value pairs
150+ const pairs = cleanQueryString . split ( "&" ) ;
151+
152+ for ( const pair of pairs ) {
153+ // Split each pair into key and value
154+ const [ key , value ] = pair . split ( "=" ) . map ( decodeURIComponent ) ;
155+ // Only add if key is not undefined
156+ if ( key ) {
157+ params . set ( key , value || "" ) ;
158+ }
159+ }
160+
161+ return params ;
162+ } ;
You can’t perform that action at this time.
0 commit comments