Commit 0e93b985 authored by obscuren's avatar obscuren

Transaction was generating incorrect hash because of var changes

parent 5da5db5a
...@@ -112,7 +112,7 @@ func (self *StateTransition) BuyGas() error { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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 { ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment