Created
February 4, 2023 07:49
-
-
Save OkoliEvans/23c6c32c8702d0e9a259f61f62a7d4d9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//SPDX-License-Identifier: MIT | |
pragma solidity >=0.8.0 <0.9.0; | |
contract City_DNS { | |
address private owner; | |
mapping (bytes32 => bool) internal dao_name; | |
mapping (address => bool) internal registeredAccounts; | |
mapping (address => bytes32) internal accountOwner; | |
event txLog (address indexed _newOwner, string message); | |
modifier accountTrix(address _address) { | |
require(registeredAccounts[_address] = false, "Name already assigned to this account"); | |
_; | |
} | |
function node5(string memory _name) private pure returns(bytes32){ | |
return keccak256(abi.encode(_name)); | |
} | |
function assignName(address _addr, string memory _name) external{ | |
require(!registeredAccounts[_addr], "Already assigned a name"); | |
require(!dao_name[node5(_name)],"Name already taken"); | |
dao_name[node5(_name)] = true; | |
registeredAccounts[_addr] = true; | |
accountOwner[_addr] = node5(_name); | |
emit txLog(_addr, "Name assigned to account successfully"); | |
} | |
function transferNameOwnership(string memory _name, address _address) external accountTrix(_address){ | |
accountOwner[_address] = node5(_name); | |
registeredAccounts[_address] = true; | |
emit txLog(_address, "Name transferred to new account successfully"); | |
} | |
function checkName(string memory _name) public view returns (bool) { | |
return (dao_name[node5(_name)]); | |
} | |
/** | |
function retrieveAccount(address _address) public view returns() { | |
} */ | |
function deleteAccount(address _addr) external { | |
delete(accountOwner[_addr]); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment