Skip to content

Commit 1a8c8cf

Browse files
authored
Merge pull request #43 from datachainlab/fix_bohr_no_vote
Fix bohr block decode
2 parents 29e3d92 + 7b3eaa2 commit 1a8c8cf

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

module/vote.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,11 @@ func getVoteAttestationFromHeader(header *types.Header) (*VoteAttestation, error
4444
attestationBytes = header.Extra[extraVanity : len(header.Extra)-extraSeal]
4545
} else {
4646
num := int(header.Extra[extraVanity])
47-
if len(header.Extra) <= extraVanity+extraSeal+validatorNumberSize+num*validatorBytesLength {
47+
start := extraVanity + validatorNumberSize + num*validatorBytesLength + turnLengthLength
48+
end := len(header.Extra) - extraSeal
49+
if end <= start {
4850
return nil, nil
4951
}
50-
start := extraVanity + validatorNumberSize + num*validatorBytesLength
51-
start += turnLengthLength
52-
end := len(header.Extra) - extraSeal
5352
attestationBytes = header.Extra[start:end]
5453
}
5554

module/vote_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"github.com/ethereum/go-ethereum/common"
55
"github.com/ethereum/go-ethereum/core/types"
66
"github.com/stretchr/testify/suite"
7+
"math/big"
78
"testing"
89
)
910

@@ -31,6 +32,16 @@ func (ts *VoteTestSuite) TestSuccessGetVoteAttestationFromHeaderEpoch() {
3132
ts.Require().Equal(common.Bytes2Hex(vote.AggSignature[:]), "8b6dc552b410a6fa44fa31643850bcb314f1d4edb32c0c79ee3efef5397691f3685d80057d77510a00e77a39e8b2497419053c3b81a8901e85590a20a0a2dad529c82f6c175ec3ebca8a9112415aa94718af673c16c0e90e327e27709666e499")
3233
}
3334

35+
func (ts *VoteTestSuite) TestErrorGetVoteAttestationFromHeaderEpochNoVote() {
36+
header := &types.Header{
37+
Extra: common.Hex2Bytes("d98301040d846765746889676f312e32312e3132856c696e757800000299d9bc0808265da01e1a65d62b903c7b34c08cb389bf3d9996f763f030b1adcfb369c5a5df4a18e1529baffe7feaec66db3dbd1bc06810f7f6f88b7be6645418a7e2a2a3f40514c215a13e315cbfb9398a26d77a299963bf034c28f8b0183ea044211f468630233d2533b73307979c78a9486b33bb4ee04ca31a65f3e86fba804db7fe293fa643e6b72bb3821a3d9d7a717d64e6088ac937d5aacdd3e20ca963979974cd8ff90cbf097023dc8c448245ceff671e965d57d82eaf9be91478cfa0f24d2993e0c5f43a6c5a4cd99850023040d3256eb0babe89f0ea54edaa398513136612f5a334b49d766ebe3eb9f6bdc163bd2c19aa7e8cee1667851ae0c1651f01c4cf7cf2cfcf8475bff3e99cab25b05631472d53387f3321fd69d1e030bb921230dfb188826affaa39ebf1c38b190851e4db0588a3e90142c5299041fb8a0db3bb9a1fa4bdf0dae84ca37ee12a6b8c26caab775f0e007b76d76ee8823de52a1a431884c2ca930c5e72bff3803af79641cf964cc001671017f0b680f93b7dde085b24bbc67b2a562a216f903ac878c5477641328172a353f1e493cf7f5f2cf1aec83bf0c74df566a41aa7ed65ea84ea99e3849ef31887c0f880a0feb92f356f58fbd023a82f5311fc87a5883a662e9ebbbefc90bf13aa533c2438a4113804bfd447b49cd040d20bc21e49ffea6487f5638e4346ad9fc6d1ec30e28016d3892b51a7898bd354cfe78643453fd3868410da412de7f2883180d0a2840111ad2e043fa403eb04cc3c0ed356ea54a6e7015490240681b002cb63e12f65c456cafca335c730b123553e70df5322013812429e0bc31508e1f1fbf0ab312e4aaade9e022150071a1f00"),
38+
Number: big.NewInt(43198800),
39+
}
40+
vote, err := getVoteAttestationFromHeader(header)
41+
ts.Require().NoError(err)
42+
ts.Require().Nil(vote)
43+
}
44+
3445
func (ts *VoteTestSuite) TestSuccessGetVoteAttestationFromHeaderNotEpoch() {
3546
// 401
3647
header := epochHeaderPlus1()

0 commit comments

Comments
 (0)