diff --git a/test/gatekeeper/Gatekeeper.t.sol b/test/gatekeeper/Gatekeeper.t.sol index 363787a..957c7df 100644 --- a/test/gatekeeper/Gatekeeper.t.sol +++ b/test/gatekeeper/Gatekeeper.t.sol @@ -135,6 +135,17 @@ contract MockGovernance is Test { require(msg.sender == GATEKEEPER); auditCalled = true; } + + function setRouterRegistryIndex(uint256 index) external view { + require(msg.sender == GATEKEEPER); + assertEq(index, 420); + } + + function approve(address spender, uint256 value) external view { + require(msg.sender == GATEKEEPER); + assertEq(spender, DUMMY_ADDRESS); + assertEq(value, 1337); + } } contract MockStaking is Test { @@ -321,12 +332,13 @@ contract GatekeeperTest is Test { 0x2174c7270034b6b1d40e360b054431f41b558ad0389a3848cdba3b42388552a8 ); - // DKG #3 <==> Context ExodusContext { session: 1337, network_id: 420 } + // DKG 3 <==> Context ExodusContext { session: 1337, network_id: 420 } + // Inside 31337 we have session: 21 vm.expectRevert(); gatekeeper.verify( - hex"e252851000000000000000000000000000000000000000000000000000000000000005396f1587daa198f9a5ed8d301298890d467e51eca3ce978eaba24c034c8797a33d123456789abcdef0123456789abcdef020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000013000000000000053900000000000000000000000000000000", - 0x14d0c7c4f3f517055efa54f15699d25badc113d98e548982bead74f974ba89c7, - 0x53c634179b8cc1880148010d9ced4cd1b1239b7cee60d661f8f16104d74db3e3 + hex"e252851000000000000000000000000000000000000000000000000000000000000005396f1587daa198f9a5ed8d301298890d467e51eca3ce978eaba24c034c8797a33d123456789abcdef0123456789abcdef020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000015000000000000053900000000000000000000000000000000", + 0x3c0c6332912e12589b929f96c2c1207bc4b9b2a1971e22e07af3210de3ea9a15, + 0xb6da2c83a19ea161aeec31431e0de139bbab2757f9f492a60aebb2977c156ef8 ); // DKG #2 <==> Context ExodusContext { session: 11, network_id: 31337 } @@ -342,17 +354,17 @@ contract GatekeeperTest is Test { prevPublicKey = publicKey; - // DKG #3 <==> Context ExodusContext { session: 1337, network_id: 420 } - // Inside 31337 we have session: 19 + // DKG 3 <==> Context ExodusContext { session: 1337, network_id: 420 } + // Inside 31337 we have session: 21 gatekeeper.verify( - hex"e252851000000000000000000000000000000000000000000000000000000000000005396f1587daa198f9a5ed8d301298890d467e51eca3ce978eaba24c034c8797a33d123456789abcdef0123456789abcdef020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000013000000000000053900000000000000000000000000000000", - 0x14d0c7c4f3f517055efa54f15699d25badc113d98e548982bead74f974ba89c7, - 0x53c634179b8cc1880148010d9ced4cd1b1239b7cee60d661f8f16104d74db3e3 + hex"e252851000000000000000000000000000000000000000000000000000000000000005396f1587daa198f9a5ed8d301298890d467e51eca3ce978eaba24c034c8797a33d123456789abcdef0123456789abcdef020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000015000000000000053900000000000000000000000000000000", + 0x3c0c6332912e12589b929f96c2c1207bc4b9b2a1971e22e07af3210de3ea9a15, + 0xb6da2c83a19ea161aeec31431e0de139bbab2757f9f492a60aebb2977c156ef8 ); (publicKey, session) = gatekeeper.latestPublicKeyInfo(); assertTrue(publicKey != prevPublicKey); - assertEq(session, 19); + assertEq(session, 21); prevPublicKey = publicKey; @@ -512,11 +524,27 @@ contract GatekeeperTest is Test { 0xe249616ba71082c4b7ea43dc9118afb3eaffdf8b5263ec87f30cc612e65d9d2b ); + // Governance: ExodusRequestType::EvmGovernance { target: 0x0101010101010101010101010101010101010101, action: GovernanceAction::SetRouterRegistryIndex { index: 420 } } + // DKG 3 <==> Context ExodusContext { session: 19, network_id: 31337 } + gatekeeper.verify( + hex"3137142600000000000000000000000000000000000000000000000000000000000000130000000000007a6901010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024cecef62300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000", + 0x8bbbb7113e8709a3fa8b9a96b9cf202f37e9880dacf7a9fd49c854671cc98eba, + 0x807509e45b13479f629500149c0e79a807e491de574780e5feeed3a4dc6dabf8 + ); + + // Governance: ExodusRequestType::EvmGovernance { target: 0x0101010101010101010101010101010101010101, action: GovernanceAction::Approve { spender: 0x0101010101010101010101010101010101010101, value: 1337 } } + // DKG 3 <==> Context ExodusContext { session: 20, network_id: 31337 } + gatekeeper.verify( + hex"3137142600000000000000000000000000000000000000000000000000000000000000140000000000007a6901010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000000101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000053900000000000000000000000000000000000000000000000000000000", + 0x66941b0b0f6c997d751faeba9f8365752bd777ccabe4a86e0f1dd2a3f51bcaf8, + 0xe3dcafc0cf0f838314be40bdb35eb122cabe0df0e70db393478dd322c29a68c8 + ); + address storageHistory = gatekeeper.storageHistory(); - for (uint256 exodusSession; exodusSession < 19; exodusSession++) { + for (uint256 exodusSession; exodusSession < 22; exodusSession++) { assert(IStorageHistory(storageHistory).isTransactionExecuted(exodusSession)); } - assert(!IStorageHistory(storageHistory).isTransactionExecuted(20)); + assert(!IStorageHistory(storageHistory).isTransactionExecuted(22)); } }