extend signature verification test with new governance functions

Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
This commit is contained in:
Uncle Fatso 2026-10-25 19:20:54 +03:00
parent 7446a7e7f8
commit ec29d7e18d
Signed by: f4ts0
GPG Key ID: 565F4F2860226EBB

View File

@ -135,6 +135,17 @@ contract MockGovernance is Test {
require(msg.sender == GATEKEEPER); require(msg.sender == GATEKEEPER);
auditCalled = true; 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 { contract MockStaking is Test {
@ -321,12 +332,13 @@ contract GatekeeperTest is Test {
0x2174c7270034b6b1d40e360b054431f41b558ad0389a3848cdba3b42388552a8 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(); vm.expectRevert();
gatekeeper.verify( gatekeeper.verify(
hex"e252851000000000000000000000000000000000000000000000000000000000000005396f1587daa198f9a5ed8d301298890d467e51eca3ce978eaba24c034c8797a33d123456789abcdef0123456789abcdef020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000013000000000000053900000000000000000000000000000000", hex"e252851000000000000000000000000000000000000000000000000000000000000005396f1587daa198f9a5ed8d301298890d467e51eca3ce978eaba24c034c8797a33d123456789abcdef0123456789abcdef020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000015000000000000053900000000000000000000000000000000",
0x14d0c7c4f3f517055efa54f15699d25badc113d98e548982bead74f974ba89c7, 0x3c0c6332912e12589b929f96c2c1207bc4b9b2a1971e22e07af3210de3ea9a15,
0x53c634179b8cc1880148010d9ced4cd1b1239b7cee60d661f8f16104d74db3e3 0xb6da2c83a19ea161aeec31431e0de139bbab2757f9f492a60aebb2977c156ef8
); );
// DKG #2 <==> Context ExodusContext { session: 11, network_id: 31337 } // DKG #2 <==> Context ExodusContext { session: 11, network_id: 31337 }
@ -342,17 +354,17 @@ contract GatekeeperTest is Test {
prevPublicKey = publicKey; prevPublicKey = publicKey;
// DKG #3 <==> Context ExodusContext { session: 1337, network_id: 420 } // DKG 3 <==> Context ExodusContext { session: 1337, network_id: 420 }
// Inside 31337 we have session: 19 // Inside 31337 we have session: 21
gatekeeper.verify( gatekeeper.verify(
hex"e252851000000000000000000000000000000000000000000000000000000000000005396f1587daa198f9a5ed8d301298890d467e51eca3ce978eaba24c034c8797a33d123456789abcdef0123456789abcdef020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000013000000000000053900000000000000000000000000000000", hex"e252851000000000000000000000000000000000000000000000000000000000000005396f1587daa198f9a5ed8d301298890d467e51eca3ce978eaba24c034c8797a33d123456789abcdef0123456789abcdef020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000100000000000000015000000000000053900000000000000000000000000000000",
0x14d0c7c4f3f517055efa54f15699d25badc113d98e548982bead74f974ba89c7, 0x3c0c6332912e12589b929f96c2c1207bc4b9b2a1971e22e07af3210de3ea9a15,
0x53c634179b8cc1880148010d9ced4cd1b1239b7cee60d661f8f16104d74db3e3 0xb6da2c83a19ea161aeec31431e0de139bbab2757f9f492a60aebb2977c156ef8
); );
(publicKey, session) = gatekeeper.latestPublicKeyInfo(); (publicKey, session) = gatekeeper.latestPublicKeyInfo();
assertTrue(publicKey != prevPublicKey); assertTrue(publicKey != prevPublicKey);
assertEq(session, 19); assertEq(session, 21);
prevPublicKey = publicKey; prevPublicKey = publicKey;
@ -512,11 +524,27 @@ contract GatekeeperTest is Test {
0xe249616ba71082c4b7ea43dc9118afb3eaffdf8b5263ec87f30cc612e65d9d2b 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(); 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(exodusSession));
} }
assert(!IStorageHistory(storageHistory).isTransactionExecuted(20)); assert(!IStorageHistory(storageHistory).isTransactionExecuted(22));
} }
} }