tests, signer: remove staticcheck warnings (#20364)
This commit is contained in:
		
							parent
							
								
									fdff182f11
								
							
						
					
					
						commit
						5d21667587
					
				| @ -269,7 +269,7 @@ type ( | |||||||
| 	} | 	} | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var ErrRequestDenied = errors.New("Request denied") | var ErrRequestDenied = errors.New("request denied") | ||||||
| 
 | 
 | ||||||
| // NewSignerAPI creates a new API that can be used for Account management.
 | // NewSignerAPI creates a new API that can be used for Account management.
 | ||||||
| // ksLocation specifies the directory where to store the password protected private
 | // ksLocation specifies the directory where to store the password protected private
 | ||||||
| @ -552,6 +552,9 @@ func (api *SignerAPI) SignTransaction(ctx context.Context, args SendTxArgs, meth | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	rlpdata, err := rlp.EncodeToBytes(signedTx) | 	rlpdata, err := rlp.EncodeToBytes(signedTx) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
| 	response := ethapi.SignTransactionResult{Raw: rlpdata, Tx: signedTx} | 	response := ethapi.SignTransactionResult{Raw: rlpdata, Tx: signedTx} | ||||||
| 
 | 
 | ||||||
| 	// Finally, send the signed tx to the UI
 | 	// Finally, send the signed tx to the UI
 | ||||||
|  | |||||||
| @ -71,7 +71,7 @@ func (ui *headlessUi) ApproveTx(request *core.SignTxRequest) (core.SignTxRespons | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (ui *headlessUi) ApproveSignData(request *core.SignDataRequest) (core.SignDataResponse, error) { | func (ui *headlessUi) ApproveSignData(request *core.SignDataRequest) (core.SignDataResponse, error) { | ||||||
| 	approved := "Y" == <-ui.approveCh | 	approved := (<-ui.approveCh == "Y") | ||||||
| 	return core.SignDataResponse{approved}, nil | 	return core.SignDataResponse{approved}, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -91,7 +91,7 @@ func (ui *headlessUi) ApproveListing(request *core.ListRequest) (core.ListRespon | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (ui *headlessUi) ApproveNewAccount(request *core.NewAccountRequest) (core.NewAccountResponse, error) { | func (ui *headlessUi) ApproveNewAccount(request *core.NewAccountRequest) (core.NewAccountResponse, error) { | ||||||
| 	if "Y" == <-ui.approveCh { | 	if <-ui.approveCh == "Y" { | ||||||
| 		return core.NewAccountResponse{true}, nil | 		return core.NewAccountResponse{true}, nil | ||||||
| 	} | 	} | ||||||
| 	return core.NewAccountResponse{false}, nil | 	return core.NewAccountResponse{false}, nil | ||||||
|  | |||||||
| @ -58,34 +58,6 @@ func (ui *CommandlineUI) readString() string { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // readPassword reads a single line from stdin, trimming it from the trailing new
 |  | ||||||
| // line and returns it. The input will not be echoed.
 |  | ||||||
| func (ui *CommandlineUI) readPassword() string { |  | ||||||
| 	fmt.Printf("Enter password to approve:\n") |  | ||||||
| 	fmt.Printf("> ") |  | ||||||
| 
 |  | ||||||
| 	text, err := terminal.ReadPassword(int(os.Stdin.Fd())) |  | ||||||
| 	if err != nil { |  | ||||||
| 		log.Crit("Failed to read password", "err", err) |  | ||||||
| 	} |  | ||||||
| 	fmt.Println() |  | ||||||
| 	fmt.Println("-----------------------") |  | ||||||
| 	return string(text) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // readPassword reads a single line from stdin, trimming it from the trailing new
 |  | ||||||
| // line and returns it. The input will not be echoed.
 |  | ||||||
| func (ui *CommandlineUI) readPasswordText(inputstring string) string { |  | ||||||
| 	fmt.Printf("Enter %s:\n", inputstring) |  | ||||||
| 	fmt.Printf("> ") |  | ||||||
| 	text, err := terminal.ReadPassword(int(os.Stdin.Fd())) |  | ||||||
| 	if err != nil { |  | ||||||
| 		log.Crit("Failed to read password", "err", err) |  | ||||||
| 	} |  | ||||||
| 	fmt.Println("-----------------------") |  | ||||||
| 	return string(text) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (ui *CommandlineUI) OnInputRequired(info UserInputRequest) (UserInputResponse, error) { | func (ui *CommandlineUI) OnInputRequired(info UserInputRequest) (UserInputResponse, error) { | ||||||
| 
 | 
 | ||||||
| 	fmt.Printf("## %s\n\n%s\n", info.Title, info.Prompt) | 	fmt.Printf("## %s\n\n%s\n", info.Title, info.Prompt) | ||||||
|  | |||||||
| @ -18,7 +18,6 @@ package core | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"sync" |  | ||||||
| 
 | 
 | ||||||
| 	"github.com/ethereum/go-ethereum/internal/ethapi" | 	"github.com/ethereum/go-ethereum/internal/ethapi" | ||||||
| 	"github.com/ethereum/go-ethereum/log" | 	"github.com/ethereum/go-ethereum/log" | ||||||
| @ -27,7 +26,6 @@ import ( | |||||||
| 
 | 
 | ||||||
| type StdIOUI struct { | type StdIOUI struct { | ||||||
| 	client rpc.Client | 	client rpc.Client | ||||||
| 	mu     sync.Mutex |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func NewStdIOUI() *StdIOUI { | func NewStdIOUI() *StdIOUI { | ||||||
|  | |||||||
| @ -60,7 +60,7 @@ func (v *ValidationMessages) getWarnings() error { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if len(messages) > 0 { | 	if len(messages) > 0 { | ||||||
| 		return fmt.Errorf("Validation failed: %s", strings.Join(messages, ",")) | 		return fmt.Errorf("validation failed: %s", strings.Join(messages, ",")) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  | |||||||
| @ -173,7 +173,7 @@ func (s *UIServerAPI) Export(ctx context.Context, addr common.Address) (json.Raw | |||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	if wallet.URL().Scheme != keystore.KeyStoreScheme { | 	if wallet.URL().Scheme != keystore.KeyStoreScheme { | ||||||
| 		return nil, fmt.Errorf("Account is not a keystore-account") | 		return nil, fmt.Errorf("account is not a keystore-account") | ||||||
| 	} | 	} | ||||||
| 	return ioutil.ReadFile(wallet.URL().Path) | 	return ioutil.ReadFile(wallet.URL().Path) | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,8 +1,6 @@ | |||||||
| // Code generated by go-bindata.
 | // Package deps Code generated by go-bindata. (@generated) DO NOT EDIT.
 | ||||||
| // sources:
 | // sources:
 | ||||||
| // bignumber.js
 | // bignumber.js
 | ||||||
| // DO NOT EDIT!
 |  | ||||||
| 
 |  | ||||||
| package deps | package deps | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| @ -20,7 +18,7 @@ import ( | |||||||
| func bindataRead(data []byte, name string) ([]byte, error) { | func bindataRead(data []byte, name string) ([]byte, error) { | ||||||
| 	gz, err := gzip.NewReader(bytes.NewBuffer(data)) | 	gz, err := gzip.NewReader(bytes.NewBuffer(data)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("Read %q: %v", name, err) | 		return nil, fmt.Errorf("read %q: %v", name, err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	var buf bytes.Buffer | 	var buf bytes.Buffer | ||||||
| @ -28,7 +26,7 @@ func bindataRead(data []byte, name string) ([]byte, error) { | |||||||
| 	clErr := gz.Close() | 	clErr := gz.Close() | ||||||
| 
 | 
 | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("Read %q: %v", name, err) | 		return nil, fmt.Errorf("read %q: %v", name, err) | ||||||
| 	} | 	} | ||||||
| 	if clErr != nil { | 	if clErr != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| @ -49,21 +47,32 @@ type bindataFileInfo struct { | |||||||
| 	modTime time.Time | 	modTime time.Time | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Name return file name
 | ||||||
| func (fi bindataFileInfo) Name() string { | func (fi bindataFileInfo) Name() string { | ||||||
| 	return fi.name | 	return fi.name | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // Size return file size
 | ||||||
| func (fi bindataFileInfo) Size() int64 { | func (fi bindataFileInfo) Size() int64 { | ||||||
| 	return fi.size | 	return fi.size | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // Mode return file mode
 | ||||||
| func (fi bindataFileInfo) Mode() os.FileMode { | func (fi bindataFileInfo) Mode() os.FileMode { | ||||||
| 	return fi.mode | 	return fi.mode | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // ModTime return file modify time
 | ||||||
| func (fi bindataFileInfo) ModTime() time.Time { | func (fi bindataFileInfo) ModTime() time.Time { | ||||||
| 	return fi.modTime | 	return fi.modTime | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // IsDir return file whether a directory
 | ||||||
| func (fi bindataFileInfo) IsDir() bool { | func (fi bindataFileInfo) IsDir() bool { | ||||||
| 	return false | 	return fi.mode&os.ModeDir != 0 | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // Sys return file is sys mode
 | ||||||
| func (fi bindataFileInfo) Sys() interface{} { | func (fi bindataFileInfo) Sys() interface{} { | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  | |||||||
| @ -152,7 +152,7 @@ func (r *rulesetUI) checkApproval(jsfunc string, jsarg []byte, err error) (bool, | |||||||
| 		log.Info("Op rejected") | 		log.Info("Op rejected") | ||||||
| 		return false, nil | 		return false, nil | ||||||
| 	} | 	} | ||||||
| 	return false, fmt.Errorf("Unknown response") | 	return false, fmt.Errorf("unknown response") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (r *rulesetUI) ApproveTx(request *core.SignTxRequest) (core.SignTxResponse, error) { | func (r *rulesetUI) ApproveTx(request *core.SignTxRequest) (core.SignTxResponse, error) { | ||||||
|  | |||||||
| @ -41,8 +41,7 @@ type Storage interface { | |||||||
| // EphemeralStorage is an in-memory storage that does
 | // EphemeralStorage is an in-memory storage that does
 | ||||||
| // not persist values to disk. Mainly used for testing
 | // not persist values to disk. Mainly used for testing
 | ||||||
| type EphemeralStorage struct { | type EphemeralStorage struct { | ||||||
| 	data      map[string]string | 	data map[string]string | ||||||
| 	namespace string |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Put stores a value by key. 0-length keys results in noop.
 | // Put stores a value by key. 0-length keys results in noop.
 | ||||||
| @ -83,5 +82,5 @@ type NoStorage struct{} | |||||||
| func (s *NoStorage) Put(key, value string) {} | func (s *NoStorage) Put(key, value string) {} | ||||||
| func (s *NoStorage) Del(key string)        {} | func (s *NoStorage) Del(key string)        {} | ||||||
| func (s *NoStorage) Get(key string) (string, error) { | func (s *NoStorage) Get(key string) (string, error) { | ||||||
| 	return "", errors.New("I forgot") | 	return "", errors.New("missing key, I probably forgot") | ||||||
| } | } | ||||||
|  | |||||||
| @ -179,7 +179,7 @@ func (t *BlockTest) insertBlocks(blockchain *core.BlockChain) ([]btBlock, error) | |||||||
| 			if b.BlockHeader == nil { | 			if b.BlockHeader == nil { | ||||||
| 				continue // OK - block is supposed to be invalid, continue with next block
 | 				continue // OK - block is supposed to be invalid, continue with next block
 | ||||||
| 			} else { | 			} else { | ||||||
| 				return nil, fmt.Errorf("Block RLP decoding failed when expected to succeed: %v", err) | 				return nil, fmt.Errorf("block RLP decoding failed when expected to succeed: %v", err) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		// RLP decoding worked, try to insert into chain:
 | 		// RLP decoding worked, try to insert into chain:
 | ||||||
| @ -189,16 +189,16 @@ func (t *BlockTest) insertBlocks(blockchain *core.BlockChain) ([]btBlock, error) | |||||||
| 			if b.BlockHeader == nil { | 			if b.BlockHeader == nil { | ||||||
| 				continue // OK - block is supposed to be invalid, continue with next block
 | 				continue // OK - block is supposed to be invalid, continue with next block
 | ||||||
| 			} else { | 			} else { | ||||||
| 				return nil, fmt.Errorf("Block #%v insertion into chain failed: %v", blocks[i].Number(), err) | 				return nil, fmt.Errorf("block #%v insertion into chain failed: %v", blocks[i].Number(), err) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		if b.BlockHeader == nil { | 		if b.BlockHeader == nil { | ||||||
| 			return nil, fmt.Errorf("Block insertion should have failed") | 			return nil, fmt.Errorf("block insertion should have failed") | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// validate RLP decoding by checking all values against test file JSON
 | 		// validate RLP decoding by checking all values against test file JSON
 | ||||||
| 		if err = validateHeader(b.BlockHeader, cb.Header()); err != nil { | 		if err = validateHeader(b.BlockHeader, cb.Header()); err != nil { | ||||||
| 			return nil, fmt.Errorf("Deserialised block header validation failed: %v", err) | 			return nil, fmt.Errorf("deserialised block header validation failed: %v", err) | ||||||
| 		} | 		} | ||||||
| 		validBlocks = append(validBlocks, b) | 		validBlocks = append(validBlocks, b) | ||||||
| 	} | 	} | ||||||
| @ -207,49 +207,49 @@ func (t *BlockTest) insertBlocks(blockchain *core.BlockChain) ([]btBlock, error) | |||||||
| 
 | 
 | ||||||
| func validateHeader(h *btHeader, h2 *types.Header) error { | func validateHeader(h *btHeader, h2 *types.Header) error { | ||||||
| 	if h.Bloom != h2.Bloom { | 	if h.Bloom != h2.Bloom { | ||||||
| 		return fmt.Errorf("Bloom: want: %x have: %x", h.Bloom, h2.Bloom) | 		return fmt.Errorf("bloom: want: %x have: %x", h.Bloom, h2.Bloom) | ||||||
| 	} | 	} | ||||||
| 	if h.Coinbase != h2.Coinbase { | 	if h.Coinbase != h2.Coinbase { | ||||||
| 		return fmt.Errorf("Coinbase: want: %x have: %x", h.Coinbase, h2.Coinbase) | 		return fmt.Errorf("coinbase: want: %x have: %x", h.Coinbase, h2.Coinbase) | ||||||
| 	} | 	} | ||||||
| 	if h.MixHash != h2.MixDigest { | 	if h.MixHash != h2.MixDigest { | ||||||
| 		return fmt.Errorf("MixHash: want: %x have: %x", h.MixHash, h2.MixDigest) | 		return fmt.Errorf("MixHash: want: %x have: %x", h.MixHash, h2.MixDigest) | ||||||
| 	} | 	} | ||||||
| 	if h.Nonce != h2.Nonce { | 	if h.Nonce != h2.Nonce { | ||||||
| 		return fmt.Errorf("Nonce: want: %x have: %x", h.Nonce, h2.Nonce) | 		return fmt.Errorf("nonce: want: %x have: %x", h.Nonce, h2.Nonce) | ||||||
| 	} | 	} | ||||||
| 	if h.Number.Cmp(h2.Number) != 0 { | 	if h.Number.Cmp(h2.Number) != 0 { | ||||||
| 		return fmt.Errorf("Number: want: %v have: %v", h.Number, h2.Number) | 		return fmt.Errorf("number: want: %v have: %v", h.Number, h2.Number) | ||||||
| 	} | 	} | ||||||
| 	if h.ParentHash != h2.ParentHash { | 	if h.ParentHash != h2.ParentHash { | ||||||
| 		return fmt.Errorf("Parent hash: want: %x have: %x", h.ParentHash, h2.ParentHash) | 		return fmt.Errorf("parent hash: want: %x have: %x", h.ParentHash, h2.ParentHash) | ||||||
| 	} | 	} | ||||||
| 	if h.ReceiptTrie != h2.ReceiptHash { | 	if h.ReceiptTrie != h2.ReceiptHash { | ||||||
| 		return fmt.Errorf("Receipt hash: want: %x have: %x", h.ReceiptTrie, h2.ReceiptHash) | 		return fmt.Errorf("receipt hash: want: %x have: %x", h.ReceiptTrie, h2.ReceiptHash) | ||||||
| 	} | 	} | ||||||
| 	if h.TransactionsTrie != h2.TxHash { | 	if h.TransactionsTrie != h2.TxHash { | ||||||
| 		return fmt.Errorf("Tx hash: want: %x have: %x", h.TransactionsTrie, h2.TxHash) | 		return fmt.Errorf("tx hash: want: %x have: %x", h.TransactionsTrie, h2.TxHash) | ||||||
| 	} | 	} | ||||||
| 	if h.StateRoot != h2.Root { | 	if h.StateRoot != h2.Root { | ||||||
| 		return fmt.Errorf("State hash: want: %x have: %x", h.StateRoot, h2.Root) | 		return fmt.Errorf("state hash: want: %x have: %x", h.StateRoot, h2.Root) | ||||||
| 	} | 	} | ||||||
| 	if h.UncleHash != h2.UncleHash { | 	if h.UncleHash != h2.UncleHash { | ||||||
| 		return fmt.Errorf("Uncle hash: want: %x have: %x", h.UncleHash, h2.UncleHash) | 		return fmt.Errorf("uncle hash: want: %x have: %x", h.UncleHash, h2.UncleHash) | ||||||
| 	} | 	} | ||||||
| 	if !bytes.Equal(h.ExtraData, h2.Extra) { | 	if !bytes.Equal(h.ExtraData, h2.Extra) { | ||||||
| 		return fmt.Errorf("Extra data: want: %x have: %x", h.ExtraData, h2.Extra) | 		return fmt.Errorf("extra data: want: %x have: %x", h.ExtraData, h2.Extra) | ||||||
| 	} | 	} | ||||||
| 	if h.Difficulty.Cmp(h2.Difficulty) != 0 { | 	if h.Difficulty.Cmp(h2.Difficulty) != 0 { | ||||||
| 		return fmt.Errorf("Difficulty: want: %v have: %v", h.Difficulty, h2.Difficulty) | 		return fmt.Errorf("difficulty: want: %v have: %v", h.Difficulty, h2.Difficulty) | ||||||
| 	} | 	} | ||||||
| 	if h.GasLimit != h2.GasLimit { | 	if h.GasLimit != h2.GasLimit { | ||||||
| 		return fmt.Errorf("GasLimit: want: %d have: %d", h.GasLimit, h2.GasLimit) | 		return fmt.Errorf("gasLimit: want: %d have: %d", h.GasLimit, h2.GasLimit) | ||||||
| 	} | 	} | ||||||
| 	if h.GasUsed != h2.GasUsed { | 	if h.GasUsed != h2.GasUsed { | ||||||
| 		return fmt.Errorf("GasUsed: want: %d have: %d", h.GasUsed, h2.GasUsed) | 		return fmt.Errorf("gasUsed: want: %d have: %d", h.GasUsed, h2.GasUsed) | ||||||
| 	} | 	} | ||||||
| 	if h.Timestamp != h2.Time { | 	if h.Timestamp != h2.Time { | ||||||
| 		return fmt.Errorf("Timestamp: want: %v have: %v", h.Timestamp, h2.Time) | 		return fmt.Errorf("timestamp: want: %v have: %v", h.Timestamp, h2.Time) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| @ -287,7 +287,7 @@ func (t *BlockTest) validateImportedHeaders(cm *core.BlockChain, validBlocks []b | |||||||
| 	// be part of the longest chain until last block is imported.
 | 	// be part of the longest chain until last block is imported.
 | ||||||
| 	for b := cm.CurrentBlock(); b != nil && b.NumberU64() != 0; b = cm.GetBlockByHash(b.Header().ParentHash) { | 	for b := cm.CurrentBlock(); b != nil && b.NumberU64() != 0; b = cm.GetBlockByHash(b.Header().ParentHash) { | ||||||
| 		if err := validateHeader(bmap[b.Hash()].BlockHeader, b.Header()); err != nil { | 		if err := validateHeader(bmap[b.Hash()].BlockHeader, b.Header()); err != nil { | ||||||
| 			return fmt.Errorf("Imported block header validation failed: %v", err) | 			return fmt.Errorf("imported block header validation failed: %v", err) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
|  | |||||||
| @ -289,3 +289,14 @@ func runTestFunc(runTest interface{}, t *testing.T, name string, m reflect.Value | |||||||
| 		m.MapIndex(reflect.ValueOf(key)), | 		m.MapIndex(reflect.ValueOf(key)), | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func TestMatcherWhitelist(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  | 	tm := new(testMatcher) | ||||||
|  | 	tm.whitelist("invalid*") | ||||||
|  | 	tm.walk(t, rlpTestDir, func(t *testing.T, name string, test *RLPTest) { | ||||||
|  | 		if name[:len("invalidRLPTest.json")] != "invalidRLPTest.json" { | ||||||
|  | 			t.Fatalf("invalid test found: %s != invalidRLPTest.json", name) | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | } | ||||||
|  | |||||||
| @ -86,25 +86,25 @@ func (tt *TransactionTest) Run(config *params.ChainConfig) error { | |||||||
| 
 | 
 | ||||||
| 		if testcase.fork.Sender == (common.UnprefixedAddress{}) { | 		if testcase.fork.Sender == (common.UnprefixedAddress{}) { | ||||||
| 			if err == nil { | 			if err == nil { | ||||||
| 				return fmt.Errorf("Expected error, got none (address %v)[%v]", sender.String(), testcase.name) | 				return fmt.Errorf("expected error, got none (address %v)[%v]", sender.String(), testcase.name) | ||||||
| 			} | 			} | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		// Should resolve the right address
 | 		// Should resolve the right address
 | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return fmt.Errorf("Got error, expected none: %v", err) | 			return fmt.Errorf("got error, expected none: %v", err) | ||||||
| 		} | 		} | ||||||
| 		if sender == nil { | 		if sender == nil { | ||||||
| 			return fmt.Errorf("sender was nil, should be %x", common.Address(testcase.fork.Sender)) | 			return fmt.Errorf("sender was nil, should be %x", common.Address(testcase.fork.Sender)) | ||||||
| 		} | 		} | ||||||
| 		if *sender != common.Address(testcase.fork.Sender) { | 		if *sender != common.Address(testcase.fork.Sender) { | ||||||
| 			return fmt.Errorf("Sender mismatch: got %x, want %x", sender, testcase.fork.Sender) | 			return fmt.Errorf("sender mismatch: got %x, want %x", sender, testcase.fork.Sender) | ||||||
| 		} | 		} | ||||||
| 		if txhash == nil { | 		if txhash == nil { | ||||||
| 			return fmt.Errorf("txhash was nil, should be %x", common.Hash(testcase.fork.Hash)) | 			return fmt.Errorf("txhash was nil, should be %x", common.Hash(testcase.fork.Hash)) | ||||||
| 		} | 		} | ||||||
| 		if *txhash != common.Hash(testcase.fork.Hash) { | 		if *txhash != common.Hash(testcase.fork.Hash) { | ||||||
| 			return fmt.Errorf("Hash mismatch: got %x, want %x", *txhash, testcase.fork.Hash) | 			return fmt.Errorf("hash mismatch: got %x, want %x", *txhash, testcase.fork.Hash) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user