Transaction was generating incorrect hash because of var changes
This commit is contained in:
		
							parent
							
								
									5da5db5a0a
								
							
						
					
					
						commit
						0e93b98533
					
				| @ -112,7 +112,7 @@ func (self *StateTransition) BuyGas() error { | |||||||
| 
 | 
 | ||||||
| 	sender := self.From() | 	sender := self.From() | ||||||
| 	if sender.Balance().Cmp(MessageGasValue(self.msg)) < 0 { | 	if sender.Balance().Cmp(MessageGasValue(self.msg)) < 0 { | ||||||
| 		return fmt.Errorf("Insufficient funds to pre-pay gas. Req %v, has %v", MessageGasValue(self.msg), sender.Balance()) | 		return fmt.Errorf("insufficient ETH for gas (%x). Req %v, has %v", sender.Address()[:4], MessageGasValue(self.msg), sender.Balance()) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	coinbase := self.Coinbase() | 	coinbase := self.Coinbase() | ||||||
|  | |||||||
| @ -47,7 +47,7 @@ func NewTransactionFromValue(val *ethutil.Value) *Transaction { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (tx *Transaction) Hash() []byte { | func (tx *Transaction) Hash() []byte { | ||||||
| 	data := []interface{}{tx.Nonce, tx.gasPrice, tx.gas, tx.recipient, tx.Value, tx.Data} | 	data := []interface{}{tx.nonce, tx.gasPrice, tx.gas, tx.recipient, tx.value, tx.data} | ||||||
| 
 | 
 | ||||||
| 	return crypto.Sha3(ethutil.NewValue(data).Encode()) | 	return crypto.Sha3(ethutil.NewValue(data).Encode()) | ||||||
| } | } | ||||||
| @ -108,8 +108,8 @@ func (tx *Transaction) PublicKey() []byte { | |||||||
| 	sig := append(r, s...) | 	sig := append(r, s...) | ||||||
| 	sig = append(sig, v-27) | 	sig = append(sig, v-27) | ||||||
| 
 | 
 | ||||||
| 	pubkey := crypto.Ecrecover(append(hash, sig...)) | 	//pubkey := crypto.Ecrecover(append(hash, sig...))
 | ||||||
| 	//pubkey, _ := secp256k1.RecoverPubkey(hash, sig)
 | 	pubkey, _ := secp256k1.RecoverPubkey(hash, sig) | ||||||
| 
 | 
 | ||||||
| 	return pubkey | 	return pubkey | ||||||
| } | } | ||||||
| @ -138,9 +138,7 @@ func (tx *Transaction) Sign(privk []byte) error { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (tx *Transaction) RlpData() interface{} { | func (tx *Transaction) RlpData() interface{} { | ||||||
| 	data := []interface{}{tx.Nonce, tx.GasPrice, tx.Gas, tx.recipient, tx.Value, tx.Data} | 	data := []interface{}{tx.nonce, tx.gasPrice, tx.gas, tx.recipient, tx.value, tx.data} | ||||||
| 
 |  | ||||||
| 	// TODO Remove prefixing zero's
 |  | ||||||
| 
 | 
 | ||||||
| 	return append(data, tx.v, new(big.Int).SetBytes(tx.r).Bytes(), new(big.Int).SetBytes(tx.s).Bytes()) | 	return append(data, tx.v, new(big.Int).SetBytes(tx.r).Bytes(), new(big.Int).SetBytes(tx.s).Bytes()) | ||||||
| } | } | ||||||
| @ -184,6 +182,7 @@ func (tx *Transaction) String() string { | |||||||
| 	V:        0x%x | 	V:        0x%x | ||||||
| 	R:        0x%x | 	R:        0x%x | ||||||
| 	S:        0x%x | 	S:        0x%x | ||||||
|  | 	Hex:      %x | ||||||
| 	`, | 	`, | ||||||
| 		tx.Hash(), | 		tx.Hash(), | ||||||
| 		len(tx.recipient) == 0, | 		len(tx.recipient) == 0, | ||||||
| @ -192,11 +191,13 @@ func (tx *Transaction) String() string { | |||||||
| 		tx.nonce, | 		tx.nonce, | ||||||
| 		tx.gasPrice, | 		tx.gasPrice, | ||||||
| 		tx.gas, | 		tx.gas, | ||||||
| 		tx.Value, | 		tx.value, | ||||||
| 		tx.Data, | 		tx.data, | ||||||
| 		tx.v, | 		tx.v, | ||||||
| 		tx.r, | 		tx.r, | ||||||
| 		tx.s) | 		tx.s, | ||||||
|  | 		ethutil.Encode(tx), | ||||||
|  | 	) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Transaction slice type for basic sorting
 | // Transaction slice type for basic sorting
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user