Merge branch 'badsig' of https://github.com/ebuchman/go-ethereum into ebuchman-badsig
Conflicts: core/transaction_pool.go
This commit is contained in:
commit
207b6c50fb
|
@ -301,7 +301,7 @@ func (gui *Gui) insertTransaction(window string, tx *types.Transaction) {
|
||||||
addr := gui.address()
|
addr := gui.address()
|
||||||
|
|
||||||
var inout string
|
var inout string
|
||||||
if bytes.Compare(tx.Sender(), addr) == 0 {
|
if bytes.Compare(tx.From(), addr) == 0 {
|
||||||
inout = "send"
|
inout = "send"
|
||||||
} else {
|
} else {
|
||||||
inout = "recv"
|
inout = "recv"
|
||||||
|
@ -321,7 +321,7 @@ func (gui *Gui) insertTransaction(window string, tx *types.Transaction) {
|
||||||
if send.Len() != 0 {
|
if send.Len() != 0 {
|
||||||
s = strings.Trim(send.Str(), "\x00")
|
s = strings.Trim(send.Str(), "\x00")
|
||||||
} else {
|
} else {
|
||||||
s = ethutil.Bytes2Hex(tx.Sender())
|
s = ethutil.Bytes2Hex(tx.From())
|
||||||
}
|
}
|
||||||
if rec.Len() != 0 {
|
if rec.Len() != 0 {
|
||||||
r = strings.Trim(rec.Str(), "\x00")
|
r = strings.Trim(rec.Str(), "\x00")
|
||||||
|
@ -453,7 +453,7 @@ func (gui *Gui) update() {
|
||||||
tx := ev.Tx
|
tx := ev.Tx
|
||||||
object := state.GetAccount(gui.address())
|
object := state.GetAccount(gui.address())
|
||||||
|
|
||||||
if bytes.Compare(tx.Sender(), gui.address()) == 0 {
|
if bytes.Compare(tx.From(), gui.address()) == 0 {
|
||||||
object.SubAmount(tx.Value())
|
object.SubAmount(tx.Value())
|
||||||
|
|
||||||
gui.txDb.Put(tx.Hash(), tx.RlpEncode())
|
gui.txDb.Put(tx.Hash(), tx.RlpEncode())
|
||||||
|
|
|
@ -116,7 +116,11 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the sender
|
// Get the sender
|
||||||
sender := pool.chainManager.State().GetAccount(tx.Sender())
|
senderAddr := tx.From()
|
||||||
|
if senderAddr == nil {
|
||||||
|
return fmt.Errorf("invalid sender")
|
||||||
|
}
|
||||||
|
sender := pool.chainManager.State().GetAccount(senderAddr)
|
||||||
|
|
||||||
totAmount := new(big.Int).Set(tx.Value())
|
totAmount := new(big.Int).Set(tx.Value())
|
||||||
// Make sure there's enough in the sender's account. Having insufficient
|
// Make sure there's enough in the sender's account. Having insufficient
|
||||||
|
@ -193,7 +197,7 @@ func (pool *TxPool) RemoveInvalid(state *state.StateDB) {
|
||||||
|
|
||||||
for e := pool.pool.Front(); e != nil; e = e.Next() {
|
for e := pool.pool.Front(); e != nil; e = e.Next() {
|
||||||
tx := e.Value.(*types.Transaction)
|
tx := e.Value.(*types.Transaction)
|
||||||
sender := state.GetAccount(tx.Sender())
|
sender := state.GetAccount(tx.From())
|
||||||
err := pool.ValidateTransaction(tx)
|
err := pool.ValidateTransaction(tx)
|
||||||
if err != nil || sender.Nonce >= tx.Nonce() {
|
if err != nil || sender.Nonce >= tx.Nonce() {
|
||||||
pool.pool.Remove(e)
|
pool.pool.Remove(e)
|
||||||
|
|
|
@ -77,7 +77,7 @@ func (self *Transaction) SetNonce(nonce uint64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *Transaction) From() []byte {
|
func (self *Transaction) From() []byte {
|
||||||
return self.Sender()
|
return self.sender()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *Transaction) To() []byte {
|
func (self *Transaction) To() []byte {
|
||||||
|
@ -114,12 +114,12 @@ func (tx *Transaction) PublicKey() []byte {
|
||||||
return pubkey
|
return pubkey
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *Transaction) Sender() []byte {
|
func (tx *Transaction) sender() []byte {
|
||||||
pubkey := tx.PublicKey()
|
pubkey := tx.PublicKey()
|
||||||
|
|
||||||
// Validate the returned key.
|
// Validate the returned key.
|
||||||
// Return nil if public key isn't in full format
|
// Return nil if public key isn't in full format
|
||||||
if len(pubkey) != 0 && pubkey[0] != 4 {
|
if len(pubkey) == 0 || pubkey[0] != 4 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ func (tx *Transaction) String() string {
|
||||||
`,
|
`,
|
||||||
tx.Hash(),
|
tx.Hash(),
|
||||||
len(tx.recipient) == 0,
|
len(tx.recipient) == 0,
|
||||||
tx.Sender(),
|
tx.From(),
|
||||||
tx.recipient,
|
tx.recipient,
|
||||||
tx.nonce,
|
tx.nonce,
|
||||||
tx.gasPrice,
|
tx.gasPrice,
|
||||||
|
|
|
@ -100,7 +100,7 @@ func NewJSTx(tx *types.Transaction, state *state.StateDB) *JSTransaction {
|
||||||
if receiver == "0000000000000000000000000000000000000000" {
|
if receiver == "0000000000000000000000000000000000000000" {
|
||||||
receiver = ethutil.Bytes2Hex(core.AddressFromMessage(tx))
|
receiver = ethutil.Bytes2Hex(core.AddressFromMessage(tx))
|
||||||
}
|
}
|
||||||
sender := ethutil.Bytes2Hex(tx.Sender())
|
sender := ethutil.Bytes2Hex(tx.From())
|
||||||
createsContract := core.MessageCreatesContract(tx)
|
createsContract := core.MessageCreatesContract(tx)
|
||||||
|
|
||||||
var data string
|
var data string
|
||||||
|
|
Loading…
Reference in New Issue