@@ -3,6 +3,8 @@ package builder_test
3
3
import (
4
4
"context"
5
5
"crypto/rand"
6
+ "encoding/json"
7
+ "fmt"
6
8
"testing"
7
9
"time"
8
10
@@ -15,29 +17,30 @@ import (
15
17
"github.com/NethermindEth/juno/mocks"
16
18
adaptfeeder "github.com/NethermindEth/juno/starknetdata/feeder"
17
19
"github.com/NethermindEth/juno/utils"
20
+ "github.com/NethermindEth/juno/vm"
18
21
"github.com/consensys/gnark-crypto/ecc/stark-curve/ecdsa"
19
- "github.com/stretchr/testify/assert"
20
22
"github.com/stretchr/testify/require"
21
23
"go.uber.org/mock/gomock"
22
24
)
23
25
24
26
func TestBootstrapChain (t * testing.T ) {
25
27
testDB := pebble .NewMemTest (t )
26
28
mockCtrl := gomock .NewController (t )
27
- mockVM := mocks .NewMockVM (mockCtrl )
29
+ // mockVM := mocks.NewMockVM(mockCtrl)
30
+ vm := vm .New (utils .NewNopZapLogger ())
28
31
snData := mocks .NewMockStarknetData (mockCtrl )
29
32
network := & utils .Sepolia
30
33
client := feeder .NewTestClient (t , network )
31
34
gw := adaptfeeder .New (client )
32
35
bc := blockchain .New (testDB , network )
33
36
bc .StoreGenesis (core .EmptyStateDiff (), nil )
34
37
35
- seqAddr := utils .HexToFelt (t , "0xDEADBEEF " )
38
+ seqAddr := utils .HexToFelt (t , "0x1176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8 " )
36
39
privKey , err := ecdsa .GenerateKey (rand .Reader )
37
40
require .NoError (t , err )
38
41
p := mempool .New (pebble .NewMemTest (t ))
39
42
40
- testBuilder := builder .New (privKey , seqAddr , bc , mockVM , time .Second * 1 , p ,
43
+ testBuilder := builder .New (privKey , seqAddr , bc , vm , time .Second * 1 , p ,
41
44
utils .NewNopZapLogger ()).WithBootstrapToBlock (2 ).WithStarknetData (snData ).WithBootstrap (true )
42
45
43
46
block0 , err := gw .BlockByNumber (context .Background (), 0 )
@@ -54,40 +57,29 @@ func TestBootstrapChain(t *testing.T) {
54
57
class2 , err := gw .Class (context .Background (), classHash2 )
55
58
require .NoError (t , err )
56
59
57
- t .Run ("successfully bootstrap Sepolias first two block" , func (t * testing.T ) {
60
+ t .Run ("successfully bootcstrap Sepolias first two block" , func (t * testing.T ) {
58
61
require .NoError (t , err )
59
62
snData .EXPECT ().BlockByNumber (context .Background (), uint64 (0 )).Return (block0 , nil )
60
63
snData .EXPECT ().BlockByNumber (context .Background (), uint64 (1 )).Return (block1 , nil )
61
64
snData .EXPECT ().Class (context .Background (), classHash0 ).Return (class0 , nil )
62
65
snData .EXPECT ().Class (context .Background (), classHash1 ).Return (class1 , nil )
63
66
snData .EXPECT ().Class (context .Background (), classHash2 ).Return (class2 , nil )
64
-
67
+ // mockVM.EXPECT().Execute(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(),
68
+ // gomock.Any(), gomock.Any(), false, false, false, false).Return(
69
+ // []*felt.Felt{&felt.Zero}, []*felt.Felt{}, []vm.TransactionTrace{{}}, executionErr,
70
+ // )
65
71
// ctx, cancel := context.WithCancel(context.Background())
66
- // go func() {
67
- // time.Sleep(3 * time.Second)
68
- // fmt.Println("waking up")
69
- // cancel()
70
- // }()
71
- // err = testBuilder.Run(ctx)
72
- // require.NoError(t, err)
73
-
74
- if err := testBuilder .InitPendingBlock (); err != nil {
75
- panic (err )
76
- }
77
- defer func () {
78
- if pErr := testBuilder .ClearPending (); pErr != nil {
79
- panic (pErr )
80
- }
81
- }()
82
-
83
- // doneListen := make(chan struct{})
84
- // go func() {
85
- // if pErr := b.listenPool(ctx); pErr != nil {
86
- // b.log.Errorw("listening pool", "err", pErr)
87
- // }
88
- // close(doneListen)
89
- // }()
72
+ // cancel()
73
+ err = testBuilder .Run (context .Background ())
74
+ require .NoError (t , err )
90
75
91
- assert .NoError (t , testBuilder .BootstrapChain (), "can't bootstrap if the network isn't specified" , err .Error ())
76
+ head , err := bc .BlockByNumber (0 )
77
+ require .NoError (t , err )
78
+ qwe , err := json .MarshalIndent (head , "" , "" )
79
+ fmt .Println (string (qwe ))
80
+ require .NoError (t , err )
81
+ require .Equal (t , uint64 (1 ), head .Number )
82
+ require .Equal (t , block0 .TransactionCount , head .TransactionCount , "TransactionCount diff" )
83
+ require .Equal (t , block0 .GlobalStateRoot .String (), head .GlobalStateRoot .String (), "GlobalStateRoot diff" )
92
84
})
93
85
}
0 commit comments