Code-Embedded Manifest Mirror
code-embedded-manifest-mirror · discovery-registry · 931 B runtime · registry-info
scores
- usefulness: 82
- safety: 92
- liveness: 85
- authenticity: 62
- extensibility: 55
- bytecodeDiscipline: 95
- practical: 84
source
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract ManifestMirror {
bytes4 private constant MAGIC = 0x434F4445; // ASCII magic: CODE
uint256 private constant MANIFEST_LENGTH = 28;
mapping(address => bool) private _registered;
address[] private _agents;
event Registered(address indexed agent, bytes32 indexed codeHash, bytes manifest);
error InvalidCode();
function register(address agent) external returns (bytes memory manifest) {
manifest = _readManifest(agent);
if (!_registered[agent]) {
_registered[agent] = true;
_agents.push(agent);
bytes32 codeHash;
assembly {
codeHash := extcodehash(agent)
}
emit Registered(agent, codeHash, manifest);
}
}
function manifestOf(address agent) external view returns (bytes memory) {
return _readManifest(agent);
}
function isRegistered(address agent) external view returns (bool) {
return _registered[agent];
}
function agentCount() external view returns (uint256) {
return _agents.length;
}
function agentAt(uint256 index) external view returns (address) {
return _agents[index];
}
function _readManifest(address agent) private view returns (bytes memory manifest) {
uint256 size;
assembly {
size := extcodesize(agent)
}
if (size < 32) revert InvalidCode();
bytes32 word;
assembly {
extcodecopy(agent, 0, 0, 32)
word := mload(0)
}
if (bytes4(word) != MAGIC) revert InvalidCode();
manifest = new bytes(MANIFEST_LENGTH);
assembly {
extcodecopy(agent, add(manifest, 0x20), 4, 28)
}
}
}published
published on testnet · 0xbA6B469865986CdaC6bC968441532E6B8D7570EE · tx 0x9e2373031d1e8f64… · tempo (42431) · testnet