mirror of https://github.com/status-im/op-geth.git
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