Transaction execution fixes
This commit is contained in:
@@ -319,8 +319,8 @@ func (block *Block) Trie() *trie.Trie {
|
||||
return block.state.Trie
|
||||
}
|
||||
|
||||
func (block *Block) GetRoot() interface{} {
|
||||
return block.state.Trie.Root
|
||||
func (block *Block) Root() interface{} {
|
||||
return block.state.Root()
|
||||
}
|
||||
|
||||
func (block *Block) Diff() *big.Int {
|
||||
@@ -340,7 +340,7 @@ func (block *Block) miningHeader() []interface{} {
|
||||
// Coinbase address
|
||||
block.Coinbase,
|
||||
// root state
|
||||
block.state.Trie.Root,
|
||||
block.Root(),
|
||||
// tx root
|
||||
block.TxSha,
|
||||
// Sha of tx
|
||||
@@ -393,7 +393,7 @@ func (block *Block) String() string {
|
||||
block.PrevHash,
|
||||
block.UncleSha,
|
||||
block.Coinbase,
|
||||
block.state.Trie.Root,
|
||||
block.Root(),
|
||||
block.TxSha,
|
||||
block.ReceiptSha,
|
||||
block.LogsBloom,
|
||||
|
@@ -161,7 +161,7 @@ done:
|
||||
cumulative := new(big.Int).Set(totalUsedGas.Add(totalUsedGas, txGas))
|
||||
bloom := ethutil.LeftPadBytes(LogsBloom(state.Logs()).Bytes(), 64)
|
||||
receipt := &Receipt{ethutil.CopyBytes(state.Root()), cumulative, bloom, state.Logs()}
|
||||
//fmt.Println(receipt)
|
||||
fmt.Println(receipt)
|
||||
|
||||
// Notify all subscribers
|
||||
go self.eth.EventMux().Post(TxPostEvent{tx})
|
||||
@@ -217,13 +217,11 @@ func (sm *BlockManager) ProcessWithParent(block, parent *Block) (td *big.Int, me
|
||||
}
|
||||
//block.SetReceipts(receipts)
|
||||
|
||||
/*
|
||||
txSha := DeriveSha(block.transactions)
|
||||
if bytes.Compare(txSha, block.TxSha) != 0 {
|
||||
err = fmt.Errorf("Error validating transaction sha. Received %x, got %x", block.TxSha, txSha)
|
||||
return
|
||||
}
|
||||
*/
|
||||
txSha := DeriveSha(block.transactions)
|
||||
if bytes.Compare(txSha, block.TxSha) != 0 {
|
||||
err = fmt.Errorf("Error validating transaction sha. Received %x, got %x", block.TxSha, txSha)
|
||||
return
|
||||
}
|
||||
|
||||
receiptSha := DeriveSha(receipts)
|
||||
if bytes.Compare(receiptSha, block.ReceiptSha) != 0 {
|
||||
@@ -250,7 +248,7 @@ func (sm *BlockManager) ProcessWithParent(block, parent *Block) (td *big.Int, me
|
||||
state.Update()
|
||||
|
||||
if !block.State().Cmp(state) {
|
||||
err = fmt.Errorf("Invalid merkle root.\nrec: %x\nis: %x", block.State().Trie.Root, state.Trie.Root)
|
||||
err = fmt.Errorf("Invalid merkle root.\nrec: %x\nis: %x", block.State().Root(), state.Root())
|
||||
return
|
||||
}
|
||||
|
||||
|
@@ -47,7 +47,7 @@ func (bc *ChainManager) NewBlock(coinbase []byte) *Block {
|
||||
hash := ZeroHash256
|
||||
|
||||
if bc.CurrentBlock != nil {
|
||||
root = bc.CurrentBlock.state.Trie.Root
|
||||
root = bc.CurrentBlock.Root()
|
||||
hash = bc.LastBlockHash
|
||||
}
|
||||
|
||||
|
@@ -247,6 +247,8 @@ func (self *StateTransition) Eval(msg *state.Message, script []byte, context *st
|
||||
)
|
||||
|
||||
evm := vm.New(env, vm.DebugVmTy)
|
||||
// TMP this will change in the refactor
|
||||
callerClosure.SetExecution(vm.NewExecution(evm, nil, nil, nil, nil, self.tx.Value))
|
||||
ret, _, err = callerClosure.Call(evm, self.tx.Data)
|
||||
|
||||
return
|
||||
|
Reference in New Issue
Block a user