Skip to content

Commit 5398230

Browse files
Merge pull request #78 from 0xPolygon/CDK-189-dac-issue-65
cdk-189 - fix for getting latest block number
2 parents 2002ac3 + 5b956c5 commit 5398230

File tree

2 files changed

+27
-31
lines changed

2 files changed

+27
-31
lines changed

synchronizer/init.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ func InitStartBlock(db db.DB, em etherman.Etherman, genesisBlock uint64, validiu
4545
}
4646

4747
func findContractDeploymentBlock(ctx context.Context, em etherman.Etherman, contract common.Address) (*big.Int, error) {
48-
latestBlock, err := em.BlockByNumber(ctx, nil)
48+
latestHeader, err := em.HeaderByNumber(ctx, nil)
4949
if err != nil {
5050
return nil, err
5151
}
52-
firstBlock := findCode(ctx, em, contract, 0, latestBlock.Number().Int64())
52+
firstBlock := findCode(ctx, em, contract, 0, latestHeader.Number.Int64())
5353
return big.NewInt(firstBlock), nil
5454
}
5555

synchronizer/init_test.go

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ func Test_InitStartBlock(t *testing.T) {
2828
storeLastProcessedBlockReturns []interface{}
2929
commitReturns []interface{}
3030
// eth client mocks
31-
blockByNumberArgs []interface{}
32-
blockByNumberReturns []interface{}
33-
codeAtArgs [][]interface{}
34-
codeAtReturns [][]interface{}
31+
headerByNumberArgs []interface{}
32+
headerByNumberReturns []interface{}
33+
codeAtArgs [][]interface{}
34+
codeAtReturns [][]interface{}
3535

3636
isErrorExpected bool
3737
}
@@ -77,9 +77,9 @@ func Test_InitStartBlock(t *testing.T) {
7777
returnArgs...).Once()
7878
}
7979

80-
if config.blockByNumberArgs != nil && config.blockByNumberReturns != nil {
81-
emMock.On("BlockByNumber", config.blockByNumberArgs...).Return(
82-
config.blockByNumberReturns...).Once()
80+
if config.headerByNumberArgs != nil && config.headerByNumberReturns != nil {
81+
emMock.On("HeaderByNumber", config.headerByNumberArgs...).Return(
82+
config.headerByNumberReturns...).Once()
8383
}
8484

8585
if config.codeAtArgs != nil && config.codeAtReturns != nil {
@@ -131,57 +131,53 @@ func Test_InitStartBlock(t *testing.T) {
131131
testFn(t, testConfig{
132132
getLastProcessedBlockArgs: []interface{}{mock.Anything, L1SyncTask},
133133
getLastProcessedBlockReturns: []interface{}{uint64(0), nil},
134-
blockByNumberArgs: []interface{}{mock.Anything, mock.Anything},
135-
blockByNumberReturns: []interface{}{nil, errors.New("error")},
134+
headerByNumberArgs: []interface{}{mock.Anything, mock.Anything},
135+
headerByNumberReturns: []interface{}{nil, errors.New("error")},
136136
isErrorExpected: true,
137137
})
138138
})
139139

140140
t.Run("BeginStateTransaction fails", func(t *testing.T) {
141141
t.Parallel()
142142

143-
block := ethTypes.NewBlockWithHeader(&ethTypes.Header{
144-
Number: big.NewInt(0),
145-
})
146-
147143
testFn(t, testConfig{
148144
getLastProcessedBlockArgs: []interface{}{mock.Anything, L1SyncTask},
149145
getLastProcessedBlockReturns: []interface{}{uint64(0), nil},
150146
beginStateTransactionArgs: []interface{}{mock.Anything},
151147
beginStateTransactionReturns: []interface{}{nil, errors.New("error")},
152-
blockByNumberArgs: []interface{}{mock.Anything, mock.Anything},
153-
blockByNumberReturns: []interface{}{block, nil},
154-
isErrorExpected: true,
148+
headerByNumberArgs: []interface{}{mock.Anything, mock.Anything},
149+
headerByNumberReturns: []interface{}{ethTypes.NewBlockWithHeader(&ethTypes.Header{
150+
Number: big.NewInt(0),
151+
}).Header(), nil},
152+
isErrorExpected: true,
155153
})
156154
})
157155

158156
t.Run("Store off-chain data fails", func(t *testing.T) {
159157
t.Parallel()
160158

161-
block := ethTypes.NewBlockWithHeader(&ethTypes.Header{
162-
Number: big.NewInt(0),
163-
})
164-
165159
testFn(t, testConfig{
166160
getLastProcessedBlockArgs: []interface{}{mock.Anything, L1SyncTask},
167161
getLastProcessedBlockReturns: []interface{}{uint64(0), nil},
168162
beginStateTransactionArgs: []interface{}{mock.Anything},
169163
storeLastProcessedBlockArgs: []interface{}{mock.Anything, L1SyncTask, uint64(0), mock.Anything},
170164
storeLastProcessedBlockReturns: []interface{}{errors.New("error")},
171-
blockByNumberArgs: []interface{}{mock.Anything, mock.Anything},
172-
blockByNumberReturns: []interface{}{block, nil},
173-
isErrorExpected: true,
165+
headerByNumberArgs: []interface{}{mock.Anything, mock.Anything},
166+
headerByNumberReturns: []interface{}{ethTypes.NewBlockWithHeader(&ethTypes.Header{
167+
Number: big.NewInt(0),
168+
}).Header(), nil},
169+
isErrorExpected: true,
174170
})
175171
})
176172

177173
t.Run("Commit fails", func(t *testing.T) {
178174
t.Parallel()
179175

180176
testFn(t, testConfig{
181-
blockByNumberArgs: []interface{}{mock.Anything, mock.Anything},
182-
blockByNumberReturns: []interface{}{ethTypes.NewBlockWithHeader(&ethTypes.Header{
177+
headerByNumberArgs: []interface{}{mock.Anything, mock.Anything},
178+
headerByNumberReturns: []interface{}{ethTypes.NewBlockWithHeader(&ethTypes.Header{
183179
Number: big.NewInt(0),
184-
}), nil},
180+
}).Header(), nil},
185181
getLastProcessedBlockArgs: []interface{}{mock.Anything, L1SyncTask},
186182
getLastProcessedBlockReturns: []interface{}{uint64(0), nil},
187183
storeLastProcessedBlockArgs: []interface{}{mock.Anything, L1SyncTask, uint64(0), mock.Anything},
@@ -203,10 +199,10 @@ func Test_InitStartBlock(t *testing.T) {
203199
storeLastProcessedBlockArgs: []interface{}{mock.Anything, L1SyncTask, uint64(2), mock.Anything},
204200
storeLastProcessedBlockReturns: []interface{}{nil},
205201
commitReturns: []interface{}{nil},
206-
blockByNumberArgs: []interface{}{mock.Anything, mock.Anything},
207-
blockByNumberReturns: []interface{}{ethTypes.NewBlockWithHeader(&ethTypes.Header{
202+
headerByNumberArgs: []interface{}{mock.Anything, mock.Anything},
203+
headerByNumberReturns: []interface{}{ethTypes.NewBlockWithHeader(&ethTypes.Header{
208204
Number: big.NewInt(3),
209-
}), nil},
205+
}).Header(), nil},
210206
codeAtArgs: [][]interface{}{
211207
{mock.Anything, common.HexToAddress(l1Config.PolygonValidiumAddress), big.NewInt(1)},
212208
{mock.Anything, common.HexToAddress(l1Config.PolygonValidiumAddress), big.NewInt(2)},

0 commit comments

Comments
 (0)