@ -42,18 +42,26 @@ function generateMnemonic(): string { 
				
			 
			
		
	
		
		
			
				
					 
					 
					/ * *  
					 
					 
					/ * *  
				
			 
			
		
	
		
		
			
				
					 
					 
					 *  Derive  Ethereum  address  and  keys  from  a  mnemonic  phrase  
					 
					 
					 *  Derive  Ethereum  address  and  keys  from  a  mnemonic  phrase  
				
			 
			
		
	
		
		
			
				
					 
					 
					 * /  
					 
					 
					 * /  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					function  deriveAddress (  
					 
					 
					async  function  deriveAddress (  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					 
					 
					    mnemonic : string ,  
					 
					 
					    mnemonic : string ,  
				
			 
			
		
	
		
		
			
				
					 
					 
					    derivationPath : string  =  DEFAULT_ROOT_DERIVATION_PATH  
					 
					 
					    derivationPath : string  =  DEFAULT_ROOT_DERIVATION_PATH  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					) :  [ string ,  string ,  string ,  string ]  {  
					 
					 
					) :  Promise < [ string ,  string ,  string ,  string ] >   {  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					 
					 
					    mnemonic  =  mnemonic . trim ( ) . toLowerCase ( ) ;  
					 
					 
					    mnemonic  =  mnemonic . trim ( ) . toLowerCase ( ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					    const  hdnode : HDNode  =  HDNode . fromMnemonic ( mnemonic ) ;  
					 
					 
					    const  hdnode : HDNode  =  HDNode . fromMnemonic ( mnemonic ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					    const  rootNode : HDNode  =  hdnode . derivePath ( derivationPath ) ;  
					 
					 
					    const  rootNode : HDNode  =  hdnode . derivePath ( derivationPath ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					     
					 
					 
					     
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					    console . log ( "\nKey Derivation:" ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					    console . log ( `   Mnemonic (first 4 words):  ${ mnemonic . split ( ' ' ) . slice ( 0 , 4 ) . join ( ' ' ) } ... ` ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					    console . log ( `   Derivation Path:  ${ derivationPath } ` ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					     
				
			 
			
		
	
		
		
			
				
					 
					 
					    const  privateHex  =  rootNode . privateKey . substring ( 2 ) ;  // remove '0x'
  
					 
					 
					    const  privateHex  =  rootNode . privateKey . substring ( 2 ) ;  // remove '0x'
  
				
			 
			
		
	
		
		
			
				
					 
					 
					    const  publicHex  =  rootNode . publicKey . substring ( 2 ) ;  // remove '0x'
  
					 
					 
					    const  publicHex  =  rootNode . publicKey . substring ( 2 ) ;  // remove '0x'
  
				
			 
			
		
	
		
		
			
				
					 
					 
					    const  address  =  rootNode . address ;  
					 
					 
					    const  address  =  rootNode . address ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					    console . log ( `   Address:  ${ address } ` ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					    console . log ( `   Private Key:  ${ privateHex . substring ( 0 , 8 ) } ... ` ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					    console . log ( `   Public Key:  ${ publicHex . substring ( 0 , 8 ) } ... ` ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					    return  [ address ,  privateHex ,  publicHex ,  derivationPath ] ;  
					 
					 
					    return  [ address ,  privateHex ,  publicHex ,  derivationPath ] ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					}  
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					@ -89,7 +97,7 @@ function newIdentifier( 
				
			 
			
		
	
		
		
			
				
					 
					 
					 * /  
					 
					 
					 * /  
				
			 
			
		
	
		
		
			
				
					 
					 
					async  function  initializeAccount ( ) :  Promise < IIdentifier >  {  
					 
					 
					async  function  initializeAccount ( ) :  Promise < IIdentifier >  {  
				
			 
			
		
	
		
		
			
				
					 
					 
					    const  mnemonic  =  generateMnemonic ( ) ;  
					 
					 
					    const  mnemonic  =  generateMnemonic ( ) ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					    const  [ address ,  privateHex ,  publicHex ,  derivationPath ]  =  deriveAddress ( mnemonic ) ;  
					 
					 
					    const  [ address ,  privateHex ,  publicHex ,  derivationPath ]  =  await  deriveAddress ( mnemonic ) ;  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					 
					 
					    const  identity  =  newIdentifier ( address ,  publicHex ,  privateHex ,  derivationPath ) ;  
					 
					 
					    const  identity  =  newIdentifier ( address ,  publicHex ,  privateHex ,  derivationPath ) ;  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					    // Format and display account data
  
					 
					 
					    // Format and display account data