Skip to content
This repository has been archived by the owner on Aug 26, 2024. It is now read-only.

Commit

Permalink
Implement validator registry
Browse files Browse the repository at this point in the history
  • Loading branch information
jannikluhn committed Sep 20, 2023
1 parent 4f7ee81 commit ae7a0c8
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/IValidatorRegistry.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

interface IValidatorRegistry {
function register(
bytes memory registrationMessage,
bytes memory registrationSignature
) external;

function deregister(
bytes memory deregistrationMessage,
bytes memory deregistrationSignature
) external;

event Registration(bytes registrationMessage, bytes registrationSignature);
event Deregistration(
bytes deregistrationMessage,
bytes deregistrationSignature
);
}
20 changes: 20 additions & 0 deletions src/ValidatorRegistry.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "src/IValidatorRegistry.sol";

contract ValidatorRegistry is IValidatorRegistry {
function register(
bytes memory registrationMessage,
bytes memory registrationSignature
) external {
emit Registration(registrationMessage, registrationSignature);
}

function deregister(
bytes memory deregistrationMessage,
bytes memory deregistrationSignature
) external {
emit Deregistration(deregistrationMessage, deregistrationSignature);
}
}
40 changes: 40 additions & 0 deletions test/ValidatorRegistry.t.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "forge-std/Test.sol";
import "../src/IValidatorRegistry.sol";
import "../src/ValidatorRegistry.sol";

contract ValidatorRegistryTest is Test {
event Registration(bytes registrationMessage, bytes registrationSignature);
event Deregistration(
bytes deregistrationMessage,
bytes deregistrationSignature
);

IValidatorRegistry registry;

function setUp() public {
registry = new ValidatorRegistry();
}

function testRegistration() public {
bytes memory message = bytes("msg");
bytes memory signature = bytes("sig");

vm.expectEmit(address(registry));
emit Registration(message, signature);

registry.register(message, signature);
}

function testDeregistration() public {
bytes memory message = bytes("msg");
bytes memory signature = bytes("sig");

vm.expectEmit(address(registry));
emit Deregistration(message, signature);

registry.deregister(message, signature);
}
}

0 comments on commit ae7a0c8

Please sign in to comment.