1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- // Copyright 2019 The go-ethereum Authors
- // This file is part of go-ethereum.
- //
- // go-ethereum is free software: you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation, either version 3 of the License, or
- // (at your option) any later version.
- //
- // go-ethereum is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License
- // along with go-ethereum. If not, see <http://www.gnu.org/licenses/>.
- // 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)
- }
- }
- }
|