1
1
// SPDX-License-Identifier: MIT
2
- pragma solidity ^ 0.8.20 ;
2
+ pragma solidity ^ 0.8.22 ;
3
3
4
4
import "forge-std/Test.sol " ;
5
5
import "../src/common/KeyBroadcastContract.sol " ;
6
6
import "../src/common/KeyperSetManager.sol " ;
7
7
import "../src/common/KeyperSet.sol " ;
8
8
9
+ contract MockPublisher is EonKeyPublisher {
10
+ function eonKeyConfirmed (bytes memory ) pure external returns (bool ) {
11
+ return true ;
12
+ }
13
+ }
14
+
9
15
contract KeyBroadcastTest is Test {
10
16
KeyBroadcastContract public keyBroadcastContract;
11
17
KeyperSetManager public keyperSetManager;
12
18
KeyperSet public keyperSet0;
13
19
KeyperSet public keyperSet1;
20
+ address public dao;
21
+ address public sequencer;
14
22
address public broadcaster0;
15
23
address public broadcaster1;
16
- address public deployer;
24
+ MockPublisher public publisher0;
25
+ MockPublisher public publisher1;
17
26
18
27
event EonKeyBroadcast (uint64 eon , bytes key );
19
28
20
29
function setUp () public {
21
-
30
+ address initializer = address (69 );
31
+ dao = address (42 );
32
+ sequencer = address (420 );
22
33
broadcaster0 = address (1 );
23
34
broadcaster1 = address (2 );
24
- deployer = address (3 );
35
+ publisher0 = new MockPublisher ();
36
+ publisher1 = new MockPublisher ();
25
37
26
- keyperSetManager = new KeyperSetManager (deployer);
38
+ keyperSetManager = new KeyperSetManager (initializer);
39
+ vm.prank (initializer);
40
+ keyperSetManager.initialize (dao, sequencer);
27
41
keyBroadcastContract = new KeyBroadcastContract (
28
42
address (keyperSetManager)
29
43
);
30
44
keyperSet0 = new KeyperSet ();
31
- keyperSet0.setPublisher (broadcaster0 );
45
+ keyperSet0.setPublisher (address (publisher0) );
32
46
keyperSet0.setFinalized ();
47
+
48
+ vm.prank (dao);
33
49
keyperSetManager.addKeyperSet (100 , address (keyperSet0));
34
50
35
51
keyperSet1 = new KeyperSet ();
36
- keyperSet1.setPublisher (broadcaster1 );
52
+ keyperSet1.setPublisher (address (publisher1) );
37
53
keyperSet1.setFinalized ();
54
+
55
+ vm.prank (dao);
38
56
keyperSetManager.addKeyperSet (200 , address (keyperSet1));
39
57
}
40
58
@@ -54,25 +72,25 @@ contract KeyBroadcastTest is Test {
54
72
55
73
function testBroadcastEonKeyDuplicate () public {
56
74
bytes memory key = bytes ("foo bar " );
57
- vm.prank (broadcaster1 );
75
+ vm.prank (address (publisher1) );
58
76
keyBroadcastContract.broadcastEonKey (1 , key);
59
77
78
+ vm.prank (address (publisher1));
60
79
vm.expectRevert (AlreadyHaveKey.selector );
61
- vm.prank (broadcaster1);
62
80
keyBroadcastContract.broadcastEonKey (1 , key);
63
81
}
64
82
65
83
function testBroadcastEonKeyEmitsEvent () public {
66
84
vm.expectEmit (address (keyBroadcastContract));
67
85
bytes memory key = bytes ("foo bar " );
68
86
emit EonKeyBroadcast (1 , key);
69
- vm.prank (broadcaster1 );
87
+ vm.prank (address (publisher1) );
70
88
keyBroadcastContract.broadcastEonKey (1 , key);
71
89
}
72
90
73
91
function testGetEonKey () public {
74
92
assertEq (keyBroadcastContract.getEonKey (1 ), bytes ("" ));
75
- vm.prank (broadcaster1 );
93
+ vm.prank (address (publisher1) );
76
94
keyBroadcastContract.broadcastEonKey (1 , bytes ("foo bar " ));
77
95
assertEq (keyBroadcastContract.getEonKey (1 ), bytes ("foo bar " ));
78
96
}
0 commit comments