Skip to content

Commit 3463881

Browse files
author
Naohiro Yoshida
committed
add test code / make logic strict
Signed-off-by: Naohiro Yoshida <[email protected]>
1 parent b302a23 commit 3463881

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

module/header_query.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,14 @@ func queryLatestFinalizedHeader(ctx context.Context, getHeader getHeaderFn, late
4343

4444
// queryFinalizedHeader returns finalized header sequence
4545
// ex)
46-
// 302 -> target -> 301 -> target -> 300
47-
// 302 -> source ------------------> 300
46+
// 72486611 -> target 72486610 -> target 72486608
47+
// 72486611 --------------------> source 72486608
4848
//
49-
// 302 -> target -> 300 -> target -> 298
50-
// 302 -> source ------------------> 298
49+
// 72486610 -> target 72486608 -> target 72486607
50+
// 72486610 --------------------> source 72486607
51+
//
52+
// 72476712 -> target 72476710 -> target 72476708
53+
// 72476712 --------------------> source 72476708
5154
func queryFinalizedHeader(ctx context.Context, fn getHeaderFn, height uint64, limitHeight uint64, forkSpecs []*ForkSpec) ([]*ETHHeader, error) {
5255
var ethHeaders []*ETHHeader
5356
for i := height; i+2 <= limitHeight; i++ {
@@ -68,7 +71,7 @@ func queryFinalizedHeader(ctx context.Context, fn getHeaderFn, height uint64, li
6871
if childVote == nil {
6972
continue
7073
}
71-
if childVote.Data.TargetNumber != finalizedBlock.Number.Uint64() {
74+
if childVote.Data.TargetNumber != finalizedBlock.Number.Uint64() || childVote.Data.TargetHash != finalizedBlock.Hash() {
7275
continue
7376
}
7477

@@ -94,7 +97,9 @@ func queryFinalizedHeader(ctx context.Context, fn getHeaderFn, height uint64, li
9497
continue
9598
}
9699
if grandChildVote.Data.SourceNumber == childVote.Data.TargetNumber &&
97-
grandChildVote.Data.TargetNumber == childHeader.Number.Uint64() {
100+
grandChildVote.Data.SourceHash == childVote.Data.TargetHash &&
101+
grandChildVote.Data.TargetNumber == childHeader.Number.Uint64() &&
102+
grandChildVote.Data.TargetHash == childHeader.Hash() {
98103
// Found headers.
99104
// ELC Requires all sequential headers from the starting header
100105
return append(append(ethHeaders, childList...), grandChildList...), nil

module/header_query_test.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ func (ts *HeaderQueryTestSuite) TestSuccessQueryFinalizedHeader() {
7979
}
8080

8181
for _, forkSpecs := range ts.forkSpecsPatterns {
82-
headers, err := queryFinalizedHeader(context.Background(), fn, 760, 1002, forkSpecs)
82+
headers, err := queryFinalizedHeader(context.Background(), fn, 761, 1003, forkSpecs)
8383
ts.Require().NoError(err)
84-
ts.Require().Len(headers, 1002-760, len(headers))
84+
ts.Require().Len(headers, 1003-761, len(headers))
8585
}
8686
}
8787

@@ -163,6 +163,15 @@ func (ts *HeaderQueryTestSuite) TestSuccessQueryFinalizedHeaderFermi() {
163163
v, err = hex.DecodeString("f902bfa02feea8d1b311b45029924cf412d39b6e9898d664ae659bf7c3e3a25df3defeb3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794a7876ea32e7a748c697d01345145485561305b24a054f8faa7215319277fa00eae4bf3886dbe7adb37c8a8968207e46bc4a073781da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028203128402625a008084690ec14bb861d983010602846765746889676f312e32342e3130856c696e75780000c26256469322825fd21edfdd57dac75a867dc4060e3b234e16f771b1e186f1e2a399b7242f8b59f3fb1ea9b08228c3c12692628ac1664a75177640c862415f261481b7f300a0000000000000000000000000000000000000000000000000000000000000038488000000000000000080a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
164164
} else if height == 787 {
165165
v, err = hex.DecodeString("f90370a0f2880c072f0674e90a40006553f5a28758f78902268f17e0f8b8cdcf0bea04fda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794a7876ea32e7a748c697d01345145485561305b24a001a48ccfc24533e019befebeef5131644d239fb5fc4756a7c7e251a2bdc0a231a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028203138402625a008084690ec14cb90111d983010602846765746889676f312e32342e3130856c696e75780000c2625646f8ae03b860b63fd76261cb5cc16f53e82133c937e2042443bddf92b8d55982c69360241067d0b707604972b10ab624d2ded8d411b71760bc28ffe89c5906595a3a43135e9678c025fe8694b77a859674bc2c0dfc9abaa58640ab6b43f607facb410d087023f84882030da0d55e5ceb7a93760e0c614643e8d181c5d3c65d2c6ad80d4343a5935a9ac037ca820310a060408654260d46aabcf65cf0dd8b29b95599b55380ea57857b29f723adc443fd80108f12a9c98aa2d2c3944a3bb0f45c0c2e479549a84f6a0ce5741475229c12ca2242d904fa10057e2dfd5ab42a4b06d1201c2565005763eda37bc060cfa00fc200a0000000000000000000000000000000000000000000000000000000000000015e88000000000000000080a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
166+
// testnet
167+
} else if height == 72486608 {
168+
v, err = hex.DecodeString("f9037aa0927229adbeb44087068093a2d84ee4a537840124ae4b6143b6a00eb69861b154a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347947f5f2cf1aec83bf0c74df566a41aa7ed65ea84eaa09758bd6b22c47cbab71682ebe5a0d491d6fd602030c36191b1c452108b12ce9ba0c10ee260e1302f2968d14030935957e496a45c186e00c506401e5d1d3206dba3a09d5348954d8cc85a4f7a3d8f7782fa98168746ea673c93618a21f6b67cbd7596b90100c0c010d01000192108c080c08714a30000a00c5c86022108452210200a0007d190d113020b49e801800048285140e07441112051ea0500804314204006202941000944810a8a18330100000cc10009003990b30040c9071524349270cae14094027a20fdd20a00a19a100008106808408a2090c4030e010c00086512280a8383c6222cdd100415000020802406424800408847862421c16e1219010801b09023020429534974532168000c004a0010440880006220001280184848b0850800a0cb00173e886a292850c206104b1792a353820810280458512094508a92202301181640020864682009034c668c8115e102018032e1a97a00480720000040081a028404520ed0840393870083a7a3cb846915a242b90116d883010603846765746888676f312e32342e39856c696e75780000005b240570f8b381ffb8608fe47768d7664ebd7100b41eab5ec8ba81d0d18a823b0558894c28512e8b9011c08ff5fd8835d7c5162fae4eedc9c12710a236ee5b399028a5856cbc79e0db6ae627bd06cdf638a5aab208dc141c5156bf9cc9a791bd3842b00f2aff393239b1f84c8404520ecea0f07121ac67d5ac8171d16d6dd53a968160e091ea3346fcfa6bdb53c4bbb4c8fa8404520ecfa0927229adbeb44087068093a2d84ee4a537840124ae4b6143b6a00eb69861b154801b31de7aecb339fcfb2b43796eadaf626c43892ec60caeb3b5a2663337f93a8241bbe3dccacb4548234f9972a3e1ff2d20675a25bfa6ee9b00f55471575915a701a000000000000000000000000000000000000000000000000000000000000001c288000000000000000080a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
169+
} else if height == 72486609 {
170+
v, err = hex.DecodeString("f902c4a015dd14d86358864bd7c4422cd74f2736031572dc7f6dc0acc5e04dd54c3bd6ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347947f5f2cf1aec83bf0c74df566a41aa7ed65ea84eaa066ef3ab3f6400aa818434f02469813592133534dbb453377fb493adc78adc118a03ba925fd87820072d58827d2a661a5f7937e6b49a04baabc9d146b6b26e52c56a0bf08758ce3cb32054ce1a2476fcaed8c0cea284f997335617473b9ebf7c19b12b90100a00029800000801e282228c0879843c020401040000931108620b2320e0025428010941033013001107108a018c4e8242100de1011848400e154000042a16014004940e12a0201476072464c6c100208b1d88500118000040634126822210040088af0f08202c213cc1430881020080188039008a248203e10054932c048c03100620c9240848c0a6520c4c244105900008807e10021046c229003800ce09127f30a0c10e4446168e8830c0002218000800241010519020032508010c0040c610900d14e2060081800900702017390227080702028400cd5289440439005b488119256022050e000499154c6c08801050a05904020a80008c20120480018003b028404520ed18403938700839d895a846915a242b861d883010603846765746888676f312e32342e39856c696e75780000005b24057070e3f36857d8a5d61002abfa41c9d2ab6d930cccd00f2a14858ad50a7871f6f61d63bf98101465e416efe7c1b3fb5ef7ca05d1b5f4b5cd389a8df39d95da9aab01a0000000000000000000000000000000000000000000000000000000000000038488000000000000000080a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
171+
} else if height == 72486610 {
172+
v, err = hex.DecodeString("f9037aa0f1f70f9eade2a06caf03876dbe5b77acc355290bde28c21e758201931b7d06dca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347947f5f2cf1aec83bf0c74df566a41aa7ed65ea84eaa08b0e7d3df3a0d279160c7107d5b3c984c86c4db3cae65e1f057bf65f24f74bd7a062f2227465041b8a0729419b66744ce934dfd44ded3c89e98b64c66d854435f4a0a27c94fe9db012ddc0510d673bc2e151e1122fdf51617438e4da525da59e3002b9010020005084c0041821480001cb87001910224000c88000188904a411221a8015440114134c83416e8000020c28204160224302931008854815c114102096a0222260094082030211130800081d4280502021b1830810000000001c1a0242e36580002a20a0728e465288200580309e8812ca4130d08608c209800010180290100911027c989414ac01c0e688040500d883c43885121020226c0a1a4000012cb32147034c1000646020680226109a0010000000300400c02a094242a81002b2022039010186c162100243894613118b10a240002a8040800858215649821e0471480211503a054344540961c44500a813050201800080b224054c0920c00a00003b028404520ed2840393870083b91464846915a243b90116d883010603846765746888676f312e32342e39856c696e75780000005b240570f8b381fbb8608fd418669062ac8634bd8bb199e882e7b8b397eea7773ebb486d376405948cd00585ad5cf65458afbb939d2d862ec94d0cc95f43da645429aa847f6b373a73377ebbc9a4d74bf12c543eba4116db83f4dd0393c9aa91c87c853c1fa102bed78bf84c8404520ecfa0927229adbeb44087068093a2d84ee4a537840124ae4b6143b6a00eb69861b1548404520ed0a015dd14d86358864bd7c4422cd74f2736031572dc7f6dc0acc5e04dd54c3bd6ff80b6a41393fe771b9a5b5f7c397ff9ef5c8aa3e4a1fc5f7be3be5d3d36cf6f2f544f5d96dc9619db54aad30307aa055197a53207b57d0bd4bee7e2f1d04affc47600a0000000000000000000000000000000000000000000000000000000000000015e88000000000000000080a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
173+
} else if height == 72486611 {
174+
v, err = hex.DecodeString("f90379a0bfde5240efbf9dda1381cf5ead3039a1c6b55c5dae95cb044c23fc2c2611f379a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347947f5f2cf1aec83bf0c74df566a41aa7ed65ea84eaa0c139cd27cf0c4981fab2ad057854aeff51f9c416d97a733d3cff4d8fc80fcac5a0822ba47aed5ce6f1b995eb5f9f85635e8f330b5642835fd5feaedb310e056571a0666894d3380ee97be17bcb46ce09f1c585917458d6a92be7aeb81b6a466d56cdb9010001210080122011352a0868c0c79281001778024088800008062050700f224540001b9441134370280d2008a4b009e02409050b1001050020f334122406622407000950e00a4324030020046ec00450142195c1280248000830841701022fa022808b20a0032308480820d7003c2008220b18d25c5209004c060040b10404292100120cd050a4840900209901fc20490520480f200221105c225100810020902be2048910244d4268683005000a2200008200038920181b0030498810000080a68d004586086c20a080880e11011390221a00100041900e5031b4438a1800a05008546002004050980f095cc61cb00b000313808090a000226001318091c0095b028404520ed38403938700839d2605846915a243b90115d883010603846765746888676f312e32342e39856c696e75780000005b240570f8b27fb860b256cac937e461138b0c95cd43c783efad7ae7c1bff57bf9c2366eaee6a8ffface7e809ea699b8e4f6bf5659fed22d72001fd1f7d3038bbe44036711d56140c2c9f5e1e91a6473e884bebe374dabf6b9f61d547e8ed93f908c449e18d6f65843f84c8404520ed0a015dd14d86358864bd7c4422cd74f2736031572dc7f6dc0acc5e04dd54c3bd6ff8404520ed2a0bfde5240efbf9dda1381cf5ead3039a1c6b55c5dae95cb044c23fc2c2611f379809fbce16268145ce40e6e8e7928b4a3719ff036f5814c5a22ebd4b15af108892e169598a3b849d0d069162550728367af38819a3ea79133cd3dff51ae58e8299100a0000000000000000000000000000000000000000000000000000000000000032088000000000000000080a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
166175
}
167176
ts.Require().NoError(err)
168177
if v != nil {
@@ -174,6 +183,8 @@ func (ts *HeaderQueryTestSuite) TestSuccessQueryFinalizedHeaderFermi() {
174183
{506, 510 - 506 + 1, 1000}, {780, 787 - 780 + 1, 1000},
175184
{506, 510 - 506 + 1, 510}, {780, 787 - 780 + 1, 787},
176185
{506, 0, 509}, {780, 0, 786},
186+
{72486608, 72486611 - 72486608 + 1, 72486611}, {72486608, 72486611 - 72486608 + 1, 72486611 + 1000},
187+
{72486608, 0, 72486610},
177188
}
178189
for _, start := range starts {
179190
headers, err := queryFinalizedHeader(context.Background(), fn, start[0], start[2], ts.forkSpecsPatterns[1])

0 commit comments

Comments
 (0)