74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | // This file is a test-utility for testing clef-functionality
 | ||
|  | //
 | ||
|  | // Start clef with
 | ||
|  | //
 | ||
|  | // build/bin/clef --4bytedb=./cmd/clef/4byte.json --rpc
 | ||
|  | //
 | ||
|  | // Start geth with
 | ||
|  | //
 | ||
|  | // build/bin/geth --nodiscover --maxpeers 0 --signer http://localhost:8550 console --preload=cmd/clef/tests/testsigner.js
 | ||
|  | //
 | ||
|  | // and in the console simply invoke
 | ||
|  | //
 | ||
|  | // > test()
 | ||
|  | //
 | ||
|  | // You can reload the file via `reload()`
 | ||
|  | 
 | ||
|  | function reload(){ | ||
|  | 	loadScript("./cmd/clef/tests/testsigner.js"); | ||
|  | } | ||
|  | 
 | ||
|  | function init(){ | ||
|  |     if (typeof accts == 'undefined' || accts.length == 0){ | ||
|  |         accts = eth.accounts | ||
|  |         console.log("Got accounts ", accts); | ||
|  |     } | ||
|  | } | ||
|  | init() | ||
|  | function testTx(){ | ||
|  |     if( accts && accts.length > 0) { | ||
|  |         var a = accts[0] | ||
|  |         var txdata = eth.signTransaction({from: a, to: a, value: 1, nonce: 1, gas: 1, gasPrice: 1}) | ||
|  |         var v = parseInt(txdata.tx.v) | ||
|  |         console.log("V value: ", v) | ||
|  |         if (v == 37 || v == 38){ | ||
|  |             console.log("Mainnet 155-protected chainid was used") | ||
|  |         } | ||
|  |         if (v == 27 || v == 28){ | ||
|  |             throw new Error("Mainnet chainid was used, but without replay protection!") | ||
|  |         } | ||
|  |     } | ||
|  | } | ||
|  | function testSignText(){ | ||
|  |     if( accts && accts.length > 0){ | ||
|  |         var a = accts[0] | ||
|  |         var r = eth.sign(a, "0x68656c6c6f20776f726c64"); //hello world
 | ||
|  |         console.log("signing response",  r) | ||
|  |     } | ||
|  | } | ||
|  | function testClique(){ | ||
|  |     if( accts && accts.length > 0){ | ||
|  |         var a = accts[0] | ||
|  |         var r = debug.testSignCliqueBlock(a, 0); // Sign genesis
 | ||
|  |         console.log("signing response",  r) | ||
|  |         if( a != r){ | ||
|  |             throw new Error("Requested signing by "+a+ " but got sealer "+r) | ||
|  |         } | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | function test(){ | ||
|  |     var tests = [ | ||
|  |         testTx, | ||
|  |         testSignText, | ||
|  |         testClique, | ||
|  |     ] | ||
|  |     for( i in tests){ | ||
|  |         try{ | ||
|  |             tests[i]() | ||
|  |         }catch(err){ | ||
|  |             console.log(err) | ||
|  |         } | ||
|  |     } | ||
|  |  } |