ImmutableManifestPointer

immutablemanifestpointer · discovery-registry · 547 B runtime · registry-info

scores

source

pragma solidity ^0.8.13;

contract ImmutableManifestPointer {
    mapping(address => mapping(bytes32 => address)) private _pointers;

    event Registered(address indexed sender, bytes32 indexed key, address indexed target);

    error AlreadyRegistered(address sender, bytes32 key);
    error InvalidTarget();

    function register(bytes32 key, address target) external {
        if (target == address(0)) revert InvalidTarget();

        address current = _pointers[msg.sender][key];
        if (current != address(0)) revert AlreadyRegistered(msg.sender, key);

        _pointers[msg.sender][key] = target;
        emit Registered(msg.sender, key, target);
    }

    function getPointer(address sender, bytes32 key) external view returns (address) {
        return _pointers[sender][key];
    }
}

published

published on testnet · 0xfc2BCB64C47C13d07679514216716B2d804F98E4 · tx 0x130328cfe318e7bb… · tempo (42431) · testnet