github.com/klaytn/klaytn@v1.12.1/contracts/system_contracts/registry/RegistryMock.sol (about)

     1  // Copyright 2023 The klaytn Authors
     2  // This file is part of the klaytn library.
     3  //
     4  // The klaytn library is free software: you can redistribute it and/or modify
     5  // it under the terms of the GNU Lesser General Public License as published by
     6  // the Free Software Foundation, either version 3 of the License, or
     7  // (at your option) any later version.
     8  //
     9  // The klaytn library is distributed in the hope that it will be useful,
    10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    12  // GNU Lesser General Public License for more details.
    13  //
    14  // You should have received a copy of the GNU Lesser General Public License
    15  // along with the klaytn library. If not, see <http://www.gnu.org/licenses/>.
    16  
    17  // SPDX-License-Identifier: LGPL-3.0-only
    18  pragma solidity ^0.8.0;
    19  
    20  import "./IRegistry.sol";
    21  
    22  contract RegistryMock is IRegistry {
    23      function transferOwnership(address newOwner) external override {
    24          _owner = newOwner;
    25      }
    26  
    27      function register(string memory name, address addr, uint256 activation) public override {
    28          if (records[name].length == 0) {
    29              names.push(name);
    30          }
    31          records[name].push(Record(addr, activation));
    32      }
    33  
    34      function getActiveAddr(string memory name) external view override returns (address) {
    35          uint256 len = records[name].length;
    36          if (len == 0) {
    37              return address(0);
    38          } else {
    39              return records[name][len - 1].addr;
    40          }
    41      }
    42  
    43      function getAllRecords(string memory name) external view override returns (Record[] memory) {
    44          return records[name];
    45      }
    46  
    47      function getAllNames() external view override returns (string[] memory) {
    48          return names;
    49      }
    50  
    51      function owner() external view override returns (address) {
    52          return _owner;
    53      }
    54  }