diff options
Diffstat (limited to 'dex')
-rw-r--r-- | dex/app.go | 25 | ||||
-rw-r--r-- | dex/app_test.go | 12 |
2 files changed, 13 insertions, 24 deletions
diff --git a/dex/app.go b/dex/app.go index 3ea8953f5..e4fac8c7f 100644 --- a/dex/app.go +++ b/dex/app.go @@ -298,10 +298,7 @@ func (d *DexconApp) PrepareWitness(consensusHeight uint64) (witness coreTypes.Wi return witness, fmt.Errorf("current height < consensus height") } - witnessData, err := rlp.EncodeToBytes(&types.WitnessData{ - Root: witnessBlock.Root(), - ReceiptHash: witnessBlock.ReceiptHash(), - }) + witnessData, err := rlp.EncodeToBytes(witnessBlock.Hash()) if err != nil { return } @@ -314,8 +311,8 @@ func (d *DexconApp) PrepareWitness(consensusHeight uint64) (witness coreTypes.Wi // VerifyBlock verifies if the payloads are valid. func (d *DexconApp) VerifyBlock(block *coreTypes.Block) coreTypes.BlockVerifyStatus { - var witnessData types.WitnessData - err := rlp.DecodeBytes(block.Witness.Data, &witnessData) + var witnessBlockHash common.Hash + err := rlp.DecodeBytes(block.Witness.Data, &witnessBlockHash) if err != nil { log.Error("Failed to RLP decode witness data", "error", err) return coreTypes.VerifyInvalidBlock @@ -329,23 +326,19 @@ func (d *DexconApp) VerifyBlock(block *coreTypes.Block) coreTypes.BlockVerifySta b := d.blockchain.GetBlockByNumber(block.Witness.Height) if b == nil { - log.Error("Can not get block by height %v", block.Witness.Height) + log.Error("Can not get block by height", "height", block.Witness.Height) return coreTypes.VerifyInvalidBlock } - if b.Root() != witnessData.Root { - log.Error("Witness root not correct expect %v but %v", b.Root(), witnessData.Root) + if b.Hash() != witnessBlockHash { + log.Error("Witness block hash not match", + "expect", b.Hash().String(), "got", witnessBlockHash.String()) return coreTypes.VerifyInvalidBlock } - if b.ReceiptHash() != witnessData.ReceiptHash { - log.Error("Witness receipt hash not correct expect %v but %v", b.ReceiptHash(), witnessData.ReceiptHash) - return coreTypes.VerifyInvalidBlock - } - - _, err = d.blockchain.StateAt(witnessData.Root) + _, err = d.blockchain.StateAt(b.Root()) if err != nil { - log.Error("Get state by root %v error: %v", witnessData.Root, err) + log.Error("Get state by root %v error: %v", b.Root(), err) return coreTypes.VerifyInvalidBlock } diff --git a/dex/app_test.go b/dex/app_test.go index 7d665a0af..34b31d3d3 100644 --- a/dex/app_test.go +++ b/dex/app_test.go @@ -119,18 +119,14 @@ func TestPrepareWitness(t *testing.T) { t.Fatalf("unexpeted witness height %v", witness.Height) } - var witnessData types.WitnessData - err = rlp.DecodeBytes(witness.Data, &witnessData) + var witnessBlockHash common.Hash + err = rlp.DecodeBytes(witness.Data, &witnessBlockHash) if err != nil { t.Fatalf("rlp decode error: %v", err) } - if witnessData.Root != currentBlock.Root() { - t.Fatalf("expect root %v but %v", currentBlock.Root(), witnessData.Root) - } - - if witnessData.ReceiptHash != currentBlock.ReceiptHash() { - t.Fatalf("expect receipt hash %v but %v", currentBlock.ReceiptHash(), witnessData.ReceiptHash) + if witnessBlockHash != currentBlock.Hash() { + t.Fatalf("expect root %v but %v", currentBlock.Hash(), witnessBlockHash) } if _, err := dex.app.PrepareWitness(999); err == nil { |