{
    "Function": "registerAsOperator",
    "File": "src/contracts/core/DelegationManager.sol",
    "Parent Contracts": [
        "src/contracts/core/DelegationManagerStorage.sol",
        "src/contracts/interfaces/IDelegationManager.sol",
        "src/contracts/permissions/Pausable.sol",
        "src/contracts/interfaces/IPausable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "require(bool,string)",
        "_delegate"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function registerAsOperator(IDelegationTerms dt) external {\n        require(\n            address(delegationTerms[msg.sender]) == address(0),\n            \"DelegationManager.registerAsOperator: operator has already registered\"\n        );\n        // store the address of the delegation contract that the operator is providing.\n        delegationTerms[msg.sender] = dt;\n        _delegate(msg.sender, msg.sender);\n    }"
}