From dc9144a43ae1210d98d01d31c8725e4324bc09b0 Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 10 Jul 2023 16:21:02 -0700 Subject: [PATCH 01/20] add docs for AccessControlled --- contracts/access/AccessControlled.sol | 28 +++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/contracts/access/AccessControlled.sol b/contracts/access/AccessControlled.sol index 4252ac45a..f7ccdac2c 100644 --- a/contracts/access/AccessControlled.sol +++ b/contracts/access/AccessControlled.sol @@ -4,25 +4,49 @@ pragma solidity ^0.8.18; import { IZNSAccessController } from "./IZNSAccessController.sol"; +/** + * @title This abstract contract outlines basic functionality, declares functions + * that need to be implemented to provide a deterministic connection to ZNSAccessController module. + * @dev In order to connect an arbitrary module to ZNSAccessController and it's functionality, + * this contract needs to be inherited by the module. +*/ abstract contract AccessControlled { + /** + * @dev Emitted when the access controller contract address is set. + */ event AccessControllerSet(address accessController); + /** + * @dev Address of the ZNSAccessController contract. + */ IZNSAccessController internal accessController; + /** + * @dev Modifier to make a function callable only when caller is an admin. + * Implemented here to avoid declaring this in every single contract that uses it. + */ modifier onlyAdmin() { accessController.checkAdmin(msg.sender); _; } /** - * @dev These 2 virtual functions are here to make sure they are always implemented in children, - * otherwise we will not be able to reset the module or read the AC address + * @dev Virtual function to make sure the getter is always implemented in children, + * otherwise we will not be able to read the AC address in children */ function getAccessController() external view virtual returns (address); + /** + * @dev Virtual function to make sure the setter is always implemented in children, + * otherwise we will not be able to reset the AC address in children + */ function setAccessController(address _accessController) external virtual; + /** + * @dev Internal function to set the access controller address. + * @param _accessController Address of the ZNSAccessController contract. + */ function _setAccessController(address _accessController) internal { require(_accessController != address(0), "AC: _accessController is 0x0 address"); accessController = IZNSAccessController(_accessController); From 9cf8d7ca18aacc0acd68e85440769d2161d56316 Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 10 Jul 2023 16:39:28 -0700 Subject: [PATCH 02/20] add rest of the AC contracts --- contracts/access/AccessControlled.sol | 22 ++++++++++----------- contracts/access/ZNSAccessController.sol | 11 +++++++++++ contracts/access/ZNSRoles.sol | 25 +++++++++++++++++++----- 3 files changed, 42 insertions(+), 16 deletions(-) diff --git a/contracts/access/AccessControlled.sol b/contracts/access/AccessControlled.sol index f7ccdac2c..9f4d2e1d2 100644 --- a/contracts/access/AccessControlled.sol +++ b/contracts/access/AccessControlled.sol @@ -9,44 +9,44 @@ import { IZNSAccessController } from "./IZNSAccessController.sol"; * that need to be implemented to provide a deterministic connection to ZNSAccessController module. * @dev In order to connect an arbitrary module to ZNSAccessController and it's functionality, * this contract needs to be inherited by the module. -*/ + */ abstract contract AccessControlled { /** - * @dev Emitted when the access controller contract address is set. - */ + * @notice Emitted when the access controller contract address is set. + */ event AccessControllerSet(address accessController); /** - * @dev Address of the ZNSAccessController contract. - */ + * @notice Address of the ZNSAccessController contract. + */ IZNSAccessController internal accessController; /** - * @dev Modifier to make a function callable only when caller is an admin. + * @notice Modifier to make a function callable only when caller is an admin. * Implemented here to avoid declaring this in every single contract that uses it. - */ + */ modifier onlyAdmin() { accessController.checkAdmin(msg.sender); _; } /** - * @dev Virtual function to make sure the getter is always implemented in children, + * @notice Virtual function to make sure the getter is always implemented in children, * otherwise we will not be able to read the AC address in children */ function getAccessController() external view virtual returns (address); /** - * @dev Virtual function to make sure the setter is always implemented in children, + * @notice Virtual function to make sure the setter is always implemented in children, * otherwise we will not be able to reset the AC address in children */ function setAccessController(address _accessController) external virtual; /** - * @dev Internal function to set the access controller address. + * @notice Internal function to set the access controller address. * @param _accessController Address of the ZNSAccessController contract. - */ + */ function _setAccessController(address _accessController) internal { require(_accessController != address(0), "AC: _accessController is 0x0 address"); accessController = IZNSAccessController(_accessController); diff --git a/contracts/access/ZNSAccessController.sol b/contracts/access/ZNSAccessController.sol index 6352e3a11..ed09c6755 100644 --- a/contracts/access/ZNSAccessController.sol +++ b/contracts/access/ZNSAccessController.sol @@ -6,6 +6,17 @@ import { IZNSAccessController } from "./IZNSAccessController.sol"; import { ZNSRoles } from "./ZNSRoles.sol"; +/** + * @title The main module for system-wide Access Control. + * @dev ZNS Business Logic Contract access to this module is outlined in {AccessControlled}. + * Uses a role-based access control scheme with levels: + * - GOVERNOR: The highest rank, assigns Admins, new roles and Role Admins + * - ADMIN: The main maintainer role, that gets access to all system functions (managed by Governor) + * - EXECUTOR: Can be here to future proof, if we need a new role (managed by Governor) + * - REGISTRAR: This role is here specifically for the ZNSRegistrar contract (managed by Admin) + * This contract is NOT proxied. When new implementation is needed, a new contract will be deployed + * and all modules will be updated to use the new address, since they all inherit from {AccessControlled}. + */ contract ZNSAccessController is AccessControl, ZNSRoles, IZNSAccessController { constructor( address[] memory governorAddresses, diff --git a/contracts/access/ZNSRoles.sol b/contracts/access/ZNSRoles.sol index 9f997dce3..e4c274f71 100644 --- a/contracts/access/ZNSRoles.sol +++ b/contracts/access/ZNSRoles.sol @@ -2,14 +2,29 @@ pragma solidity ^0.8.18; +/** + * @title Outlines the roles used in the ZNS system + * @dev Inherited ONLY by {ZNSAccessController} + */ abstract contract ZNSRoles { - // the highest rank, assigns Admins, new roles and Role Admins + /** + * @notice The highest rank, assigns Admins, new roles and Role Admins + */ bytes32 public constant GOVERNOR_ROLE = keccak256("GOVERNOR_ROLE"); - // the main maintainer role, that gets access to all system functions + + /** + * @notice The main maintainer role, that gets access to all system functions + */ bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE"); - // executor can be here to future proof, if we need a new role - // so we don't have to upgrade all contracts + + /** + * @notice Executor can be here to future proof, if we need a new role + * so we don't have to upgrade all contracts + */ bytes32 public constant EXECUTOR_ROLE = keccak256("EXECUTOR_ROLE"); - // this role is here specifically for the ZNSRegistrar contract + + /** + * @notice This role is here specifically for the ZNSRegistrar contract + */ bytes32 public constant REGISTRAR_ROLE = keccak256("REGISTRAR_ROLE"); } From 7cd6d9882da49721d46356f6ebd0288d1677907c Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 10 Jul 2023 17:03:20 -0700 Subject: [PATCH 03/20] add PriceOracle --- contracts/distribution/ZNSPriceOracle.sol | 100 ++++++++++++++++++---- 1 file changed, 81 insertions(+), 19 deletions(-) diff --git a/contracts/distribution/ZNSPriceOracle.sol b/contracts/distribution/ZNSPriceOracle.sol index 0d7a65578..fd1f75c0d 100644 --- a/contracts/distribution/ZNSPriceOracle.sol +++ b/contracts/distribution/ZNSPriceOracle.sol @@ -7,6 +7,10 @@ import { StringUtils } from "../utils/StringUtils.sol"; import { AccessControlled } from "../access/AccessControlled.sol"; +/** + * @title Implementation of the Price Oracle, module that calculates the price of a domain + * based on its length and the rules set by Zero ADMIN. + */ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { using StringUtils for string; @@ -14,6 +18,7 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { /** * @notice Struct for each configurable price variable + * that participates in the price calculation. */ DomainPriceConfig public rootDomainPriceConfig; @@ -24,6 +29,16 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { */ uint256 public feePercentage; + /** + * @notice Proxy initializer to set the initial state of the contract after deployment. + * @dev Note the for DomainPriceConfig we set each value individually and calling + * 2 important functions that validate all of the config's values against the formula: + * - {setPrecisionMultiplier()} to validate precision multiplier + * - {_validateConfig()} to validate the whole config in order to avoid price spikes + * @param accessController_ the address of the ZNSAccessController contract. + * @param priceConfig_ a number of variables that participate in the price calculation. + * @param regFeePercentage_ the registration fee value in percentage as basis points (parts per 10,000) + */ function initialize( address accessController_, DomainPriceConfig calldata priceConfig_, @@ -31,7 +46,6 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { ) public override initializer { _setAccessController(accessController_); - // Set the values of the priceConfig struct rootDomainPriceConfig.baseLength = priceConfig_.baseLength; rootDomainPriceConfig.maxPrice = priceConfig_.maxPrice; rootDomainPriceConfig.minPrice = priceConfig_.minPrice; @@ -64,13 +78,20 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { totalPrice = domainPrice + fee; } + /** + * @notice Get the registration fee amount in `stakingToken` for a specific domain price + * @param domainPrice The price of the domain + */ function getRegistrationFee(uint256 domainPrice) public view override returns (uint256) { return (domainPrice * feePercentage) / PERCENTAGE_BASIS; } - // TODO: add docs on how to properly set maxLength vs other values - // so that we do not have minPrice higher than the price of the previous - // value + /** + * @notice Setter for {`rootDomainPriceConfig`}. Only ADMIN can call this function. + * @dev Validates the value of the {`precisionMultiplier`} and the whole config in order to avoid price spikes, + * fires {`PriceConfigSet`} event. + * @param priceConfig The new price config to set + */ function setPriceConfig(DomainPriceConfig calldata priceConfig) external override onlyAdmin { rootDomainPriceConfig.baseLength = priceConfig.baseLength; rootDomainPriceConfig.maxPrice = priceConfig.maxPrice; @@ -90,9 +111,10 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { } /** - * @notice Set the max price for root domains or subdomains. - * - * @param maxPrice The price to set in $ZERO + * @notice Sets the max price for domains. Validates the config with the new price. + * Fires {`MaxPriceSet`} event. + * > !!! `maxPrice` can be set to 0 to make all domains free! + * @param maxPrice The maximum price to set in $ZERO */ function setMaxPrice( uint256 maxPrice @@ -104,6 +126,11 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { emit MaxPriceSet(maxPrice); } + /** + * @notice Sets the minimum price for domains. Validates the config with the new price. + * Fires {`MinPriceSet`} event. + * @param minPrice The minimum price to set in $ZERO + */ function setMinPrice( uint256 minPrice ) external override onlyAdmin { @@ -115,8 +142,13 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { } /** - * @notice Set the value of the domain name length boundary where the default price applies - * e.g. A value of '5' means all domains <= 5 in length cost the default price + * @notice Set the value of the domain name length boundary where the `maxPrice` applies + * e.g. A value of '5' means all domains <= 5 in length cost the `maxPrice` price + * Validates the config with the new length. Fires {`BaseLengthSet`} event. + * > !!! `baseLength` can be set to 0 to make all domains cost `maxPrice`! + * > This indicates to the system that we are + * > currently in a special phase where we define an exact price for all domains + * > e.g. promotions or sales * @param length Boundary to set */ function setBaseLength( @@ -129,6 +161,15 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { emit BaseLengthSet(length); } + /** + * @notice Set the maximum length of a domain name to which price formula applies. + * All domain names (labels) that are longer than this value will cost the fixed price of `minPrice`, + * and the pricing formula will not apply to them. + * Validates the config with the new length. + * Fires {`MaxLengthSet`} event. + * > !!! `maxLength` can be set to 0 to make all domains cost `minPrice`! + * @param length The maximum length to set + */ function setMaxLength( uint256 length ) external override onlyAdmin { @@ -140,22 +181,30 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { } /** - * @notice Set the precision multiplier for the price calculation. + * @notice Sets the precision multiplier for the price calculation. * @param multiplier This should be picked based on the number of token decimals * to calculate properly. * e.g. if we use a token with 18 decimals, and want precision of 2, - * our precision multiplier will be equal to 10^18 - 10^2 = 10^16 + * our precision multiplier will be equal to 10^(18 - 2) = 10^16 + * @dev Multiplier should be less or equal to 10^18 and greater than 0! + * Fires {`PrecisionMultiplierSet`} event. */ function setPrecisionMultiplier( uint256 multiplier ) public override onlyAdmin { require(multiplier != 0, "ZNSPriceOracle: precisionMultiplier cannot be 0"); - require(multiplier < 10**18, "ZNSPriceOracle: precisionMultiplier cannot be greater than 10^18"); + require(multiplier <= 10**18, "ZNSPriceOracle: precisionMultiplier cannot be greater than 10^18"); rootDomainPriceConfig.precisionMultiplier = multiplier; emit PrecisionMultiplierSet(multiplier); } + /** + * @notice Sets the fee percentage for domain registration. + * @dev Fee percentage is set according to the basis of 10000, outlined in {`PERCENTAGE_BASIS`}. + * Fires {`FeePercentageSet`} event. + * @param regFeePercentage The fee percentage to set + */ function setRegistrationFeePercentage(uint256 regFeePercentage) external override @@ -164,6 +213,12 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { emit FeePercentageSet(regFeePercentage); } + /** + * @notice Sets the access controller for the contract. + * Only ADMIN can call this function. + * Fires {`AccessControllerSet`} event. + * @param accessController_ The address of the new access controller + */ function setAccessController(address accessController_) external override(AccessControlled, IZNSPriceOracle) @@ -171,14 +226,26 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { _setAccessController(accessController_); } + /** + * @notice Getter for ZNSAccessController address stored on this contract. + */ function getAccessController() external view override(AccessControlled, IZNSPriceOracle) returns (address) { return address(accessController); } /** - * @notice Internal function to get price abstract of the base price being for - * a root domain or a subdomain. + * @notice Internal function to cakculate price based on the config set, + * and the length of the domain label. + * @dev Before we calculate the price, 3 different cases are possible: + * 1. `baseLength` is 0, which means we are returning `maxPrice` as a specific price for all domains + * 2. `length` is less than or equal to `baseLength`, which means a domain will cost `maxPrice` + * 3. `length` is greater than `maxLength`, which means a domain will cost `minPrice` * + * The formula itself creates an asymptotic curve that decreases in pricing based on domain name length, + * base length and max price, the result is divided by the precision multiplier to remove numbers beyond + * what we care about, then multiplied by the same precision multiplier to get the actual value + * with truncated values past precision. So having a value of 15.235234324234512365 * 10^18 + * with precision 2 would give us 15.230000000000000000 * 10^18 * @param length The length of the domain name */ function _getPrice( @@ -193,11 +260,6 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { if (length <= config.baseLength) return config.maxPrice; if (length > config.maxLength) return config.minPrice; - // This creates an asymptotic curve that decreases in pricing based on domain name length - // then divide it by the precision multiplier to remove numbers beyond what we care about - // Then multiply by the same precision multiplier to get the actual value - // with truncated values past precision. So having a value of 15.235234324234512365 * 10^18 - // with precision 2 would give us 15.230000000000000000 * 10^18 return (config.baseLength * config.maxPrice / length) / config.precisionMultiplier * config.precisionMultiplier; From 6a21b4781aa725467f561dafef42df13c54f7ed7 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 12:25:46 -0700 Subject: [PATCH 04/20] add Registrar docs --- contracts/distribution/ZNSRegistrar.sol | 98 ++++++++++++++++++++++--- 1 file changed, 89 insertions(+), 9 deletions(-) diff --git a/contracts/distribution/ZNSRegistrar.sol b/contracts/distribution/ZNSRegistrar.sol index f8d06469e..f970bef63 100644 --- a/contracts/distribution/ZNSRegistrar.sol +++ b/contracts/distribution/ZNSRegistrar.sol @@ -10,12 +10,26 @@ import { AccessControlled } from "../access/AccessControlled.sol"; import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +/** + * @title Main entry point for the three main flows of ZNS - Register, Reclaim and Revoke a domain. + * @notice This contract serves as the "umbrella" for many ZNS operations, it is given REGISTRAR_ROLE + * to combine multiple calls/operations between different modules to achieve atomic state changes + * and proper logic for the ZNS flows. You can see functions in other modules that are only allowed + * to be called by this contract to ensure proper management of ZNS data in multiple places. + * RRR - Register, Reclaim, Revoke start here and then call other modules to complete the flow. + * ZNSRegistrar stores most of the other contract addresses and can communicate with other modules, + * but the relationship is one-sided, where other modules do not need to know about the ZNSRegistrar, + * they only check REGISTRAR_ROLE that can, in theory, be assigned to any other address. + */ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { IZNSRegistry public registry; IZNSTreasury public treasury; IZNSDomainToken public domainToken; IZNSAddressResolver public addressResolver; + /** + * @notice Ensures only the owner of the Name in ZNSRegistry can call. + */ modifier onlyNameOwner(bytes32 domainHash) { require( msg.sender == registry.getDomainOwner(domainHash), @@ -24,6 +38,9 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { _; } + /** + * @notice Ensures only the owner of the Tame in ZNSDomainToken can call. + */ modifier onlyTokenOwner(bytes32 domainHash) { require( msg.sender == domainToken.ownerOf(uint256(domainHash)), @@ -34,7 +51,14 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { /** * @notice Create an instance of the ZNSRegistrar - * for registering ZNS domains and subdomains + * for registering, reclaiming and revoking ZNS domains + * @dev Instead of direct assignments, we are calling the setter functions + * to apply Access Control and ensure only the ADMIN can set the addresses. + * @param accessController_ Address of the ZNSAccessController contract + * @param registry_ Address of the ZNSRegistry contract + * @param treasury_ Address of the ZNSTreasury contract + * @param domainToken_ Address of the ZNSDomainToken contract + * @param addressResolver_ Address of the ZNSAddressResolver contract */ function initialize( address accessController_, @@ -51,10 +75,15 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { } /** - * @notice Register a new domain such as `0://wilder` - * - * @param name Name of the domain to register - * @param domainAddress Address for the resolver to return when requested (optional, send 0x0 if not needed) + * @notice This function is the main entry point for the Register flow. + * Registers a new domain such as `0://wilder`. + * Gets domain hash as a keccak256 hash of the domain label string casted to bytes32, + * checks existence of the domain in the registry and reverts if it exists. + * Calls ZNSTreasury to do the staking part, gets `tokenId` for the new token to be minted + * as domain hash casted to uint256, mints the token and sets the domain data in the {ZNSRegistry} + * and, possibly, {ZNSAddressResolver}. Emits a {DomainRegistered} event. + * @param name Name (label) of the domain to register + * @param domainAddress Address for the {ZNSAddressResolver} to return when requested (optional, send 0x0 if not needed) */ function registerDomain( string calldata name, @@ -94,6 +123,23 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { return domainHash; } + /** + * @notice This function is the main entry point for the Revoke flow. + * Revokes a domain such as `0://wilder`. + * Gets `tokenId` from casted domain hash to uint256, calls {ZNSDomainToken} to burn the token, + * deletes the domain data from the {ZNSRegistry} and calls {ZNSTreasury} to unstake and withdraw funds + * user staked for the domain. Emits a {DomainRevoked} event. + * @dev Note that we are not clearing the data in {ZNSAddressResolver} as it is considered not necessary + * since none other contracts will have the domain data on them. + * If we are not clearing {ZNSAddressResolver} state slots, we are making the next Register transaction + * for the same name cheaper, since SSTORE on a non-zero slot costs 5k gas, while SSTORE on a zero slot costs 20k gas. + * If a user wants to clear his data from {ZNSAddressResolver}, he can call {ZNSAddressResolver} directly himself + * BEFORE he calls to revoke, otherwise, {ZNSRegistry} owner check will fail, since the owner there + * will be 0x0 address. + * Also note that in order to Revoke, a caller has to be the owner of both: + * Name (in {ZNSRegistry}) and Token (in {ZNSDomainToken}). + * @param domainHash Hash of the domain to revoke + */ function revokeDomain(bytes32 domainHash) external override @@ -108,6 +154,15 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { emit DomainRevoked(domainHash, msg.sender); } + /** + * @notice This function is the main entry point for the Reclaim flow. This flow is used to + * reclaim full ownership of a domain (through becoming the owner of the Name) from the ownership of the Token. + * This is used for different types of ownership transfers, such as: + * - domain sale - a user will sell the Token, then the new owner has to call this function to reclaim the Name + * - domain transfer - a user will transfer the Token, then the new owner has to call this function to reclaim the Name + * A user needs to only be the owner of the Token to be able to Reclaim. + * Updates the domain owner in the {ZNSRegistry} to the owner of the token and emits a {DomainReclaimed} event. + */ function reclaimDomain(bytes32 domainHash) external override @@ -118,6 +173,10 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { emit DomainReclaimed(domainHash, msg.sender); } + /** + * @notice Setter function for the {ZNSRegistry} address in state. + * @param registry_ Address of the {ZNSRegistry} contract + */ function setRegistry(address registry_) public override onlyAdmin { require( registry_ != address(0), @@ -128,6 +187,10 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { emit RegistrySet(registry_); } + /** + * @notice Setter function for the {ZNSTreasury} address in state. + * @param treasury_ Address of the {ZNSTreasury} contract + */ function setTreasury(address treasury_) public override onlyAdmin { require( treasury_ != address(0), @@ -138,6 +201,10 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { emit TreasurySet(treasury_); } + /** + * @notice Setter function for the {ZNSDomainToken} address in state. + * @param domainToken_ Address of the {ZNSDomainToken} contract + */ function setDomainToken(address domainToken_) public override onlyAdmin { require( domainToken_ != address(0), @@ -148,6 +215,10 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { emit DomainTokenSet(domainToken_); } + /** + * @notice Setter function for the {ZNSAddressResolver} address in state. + * @param addressResolver_ Address of the {ZNSAddressResolver} contract + */ function setAddressResolver(address addressResolver_) public override onlyAdmin { require( addressResolver_ != address(0), @@ -158,6 +229,10 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { emit AddressResolverSet(addressResolver_); } + /** + * @notice Setter function for the {ZNSAccessController} address in state. + * @param accessController_ Address of the {ZNSAccessController} contract + */ function setAccessController(address accessController_) external override(AccessControlled, IZNSRegistrar) @@ -166,23 +241,28 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { _setAccessController(accessController_); } + /** + * @notice Getter function for the {ZNSAccessController} address in state. + */ function getAccessController() external view override(AccessControlled, IZNSRegistrar) returns (address) { return address(accessController); } /** * @notice Set domain data appropriately for a newly registered domain - * + * If no domain address is given, only the domain owner is set, otherwise + * {ZNSAddressResolver} is called to assign an address to the newly registered domain. + * If the `domainAddress` is not provided upon registration, a user can call {ZNSAddressResolver.setAddress} + * to set the address themselves. * @param domainHash The domain name hash - * @param owner The owner of that domain - * @param domainAddress The content it resolves to + * @param owner The owner of the domain + * @param domainAddress The content (source) it resolves to */ function _setDomainData( bytes32 domainHash, address owner, address domainAddress ) internal { - // Set only the domain owner if no resolver content is given if (domainAddress != address(0)) { registry.createDomainRecord(domainHash, owner, address(addressResolver)); addressResolver.setAddress(domainHash, domainAddress); From 523b8da02e766bbec4f7b099e16524547eda6166 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 12:45:00 -0700 Subject: [PATCH 05/20] add Treasury, update Registrar --- contracts/distribution/ZNSRegistrar.sol | 5 ++ contracts/distribution/ZNSTreasury.sol | 87 +++++++++++++++++++++++-- 2 files changed, 88 insertions(+), 4 deletions(-) diff --git a/contracts/distribution/ZNSRegistrar.sol b/contracts/distribution/ZNSRegistrar.sol index f970bef63..f9eca7ff0 100644 --- a/contracts/distribution/ZNSRegistrar.sol +++ b/contracts/distribution/ZNSRegistrar.sol @@ -175,6 +175,7 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { /** * @notice Setter function for the {ZNSRegistry} address in state. + * Only ADMIN in {ZNSAccessController} can call this function. * @param registry_ Address of the {ZNSRegistry} contract */ function setRegistry(address registry_) public override onlyAdmin { @@ -189,6 +190,7 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { /** * @notice Setter function for the {ZNSTreasury} address in state. + * Only ADMIN in {ZNSAccessController} can call this function. * @param treasury_ Address of the {ZNSTreasury} contract */ function setTreasury(address treasury_) public override onlyAdmin { @@ -203,6 +205,7 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { /** * @notice Setter function for the {ZNSDomainToken} address in state. + * Only ADMIN in {ZNSAccessController} can call this function. * @param domainToken_ Address of the {ZNSDomainToken} contract */ function setDomainToken(address domainToken_) public override onlyAdmin { @@ -217,6 +220,7 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { /** * @notice Setter function for the {ZNSAddressResolver} address in state. + * Only ADMIN in {ZNSAccessController} can call this function. * @param addressResolver_ Address of the {ZNSAddressResolver} contract */ function setAddressResolver(address addressResolver_) public override onlyAdmin { @@ -231,6 +235,7 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { /** * @notice Setter function for the {ZNSAccessController} address in state. + * Only ADMIN in {ZNSAccessController} can call this function. * @param accessController_ Address of the {ZNSAccessController} contract */ function setAccessController(address accessController_) diff --git a/contracts/distribution/ZNSTreasury.sol b/contracts/distribution/ZNSTreasury.sol index 6018a6c48..a9c2af0c2 100644 --- a/contracts/distribution/ZNSTreasury.sol +++ b/contracts/distribution/ZNSTreasury.sol @@ -9,31 +9,61 @@ import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +/** + * @title Contract responsible for all staking operations in ZNS. + * @notice This contract it called by {ZNSRegistrar} every time a staking operation is needed. + * It stores all data regarding user stakes for domains, and it's also the only contract + * that is aware of the {ZNSPriceOracle} which it uses to get pricing data for domains. + */ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { using SafeERC20 for IERC20; /** - * @notice The price oracle + * @notice The address of the {ZNSPriceOracle} contract. */ IZNSPriceOracle public priceOracle; /** - * @notice The payment/staking token + * @notice The address of the payment/staking token. Will be set to $ZERO. */ IERC20 public stakingToken; /** - * @notice Address of the Zero Vault, a wallet or contract which gathers all the fees. + * @notice Address of the Zero Vault, a wallet or contract which gathers all the registration fees. */ address public zeroVault; + /** + * @notice The main mapping of the contract. It stores the amount staked for each domain + * which is mapped to the domain hash. + * Note that there is no address to which the stake is tied to. Instead, the owner data from {ZNSRegistry} + * is used to identify a user who owns the stake. So the staking data is tied to the owner of the Name. + * This should be taken into account, since any transfer of the Token to another address, + * and the system, allowing them to Reclaim the Name, will also allow them to withdraw the stake. + * > Stake is owned by the owner of the Name in {ZNSRegistry}! + */ mapping(bytes32 domainHash => uint256 amountStaked) public stakedForDomain; + /** + * @notice Modifier used for functions that are only allowed to be called by the {ZNSRegistrar} + * or any other address that has REGISTRAR_ROLE. + */ modifier onlyRegistrar { accessController.checkRegistrar(msg.sender); _; } + /** + * @notice {ZNSTreasury} proxy state initializer. Note that setter functions are used + * instead of direct state variable assignments in order to use proper Access Control + * at initialization. Only ADMIN in {ZNSAccessController} can call this function. + * For this also, it is important that {ZNSAccessController} is deployed and initialized with role data + * before this contract is deployed. + * @param accessController_ The address of the {ZNSAccessController} contract. + * @param priceOracle_ The address of the {ZNSPriceOracle} contract. + * @param stakingToken_ The address of the staking token (currently $ZERO). + * @param zeroVault_ The address of the Zero Vault - the wallet or contract to collect all the registration fees. + */ function initialize( address accessController_, address priceOracle_, @@ -46,6 +76,21 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { setPriceOracle(priceOracle_); } + /** + * @notice Deposits the stake for a domain. This function is called by {ZNSRegistrar} + * when a user wants to Register a domain. It transfers the stake amount and the registration fee + * to the contract from the user, and records the staked amount for the domain. + * Note that a user has to approve the correct amount of `domainPrice + registrationFee` + * for this function to not revert. + * Calls {ZNSPriceOracle} to get the price for the domain name based on it's length, + * and to get a proper `registrationFee` as a percentage of the price. + * In order to avoid needing 2 different approvals, it withdraws `domainPrice + registrationFee` + * to this contract and then transfers the `registrationFee` to the Zero Vault. + * Sets the `stakedForDomain` mapping for the domain to the `stakeAmount` and emits a {StakeDeposited} event. + * @param domainHash The hash of the domain for which the stake is being deposited. + * @param domainName The name of the domain for which the stake is being deposited. + * @param depositor The address of the user who is depositing the stake. + */ function stakeForDomain( bytes32 domainHash, string calldata domainName, @@ -60,8 +105,9 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { domainName ); - // Transfer stake amount and fee + // Transfer stake amount and fee to this address stakingToken.safeTransferFrom(depositor, address(this), totalPrice); + // Transfer registration fee to the Zero Vault from this address stakingToken.safeTransfer(zeroVault, registrationFee); // Record staked amount for this domain @@ -76,6 +122,15 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { ); } + /** + * @notice Withdraws the stake for a domain. This function is called by {ZNSRegistrar} + * when a user wants to Revoke a domain. It transfers the stake amount from the contract back to the user, + * and deletes the staked amount for the domain in state. + * Emits a {StakeWithdrawn} event. + * Since we are clearing a slot in storage, gas refund from this operation makes Revoke transactions cheaper. + * @param domainHash The hash of the domain for which the stake is being withdrawn. + * @param owner The address of the user who is withdrawing the stake. + */ function unstakeForDomain( bytes32 domainHash, address owner @@ -89,6 +144,12 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { emit StakeWithdrawn(domainHash, owner, stakeAmount); } + /** + * @notice Setter function for the {zeroVault} state variable. + * Only ADMIN in {ZNSAccessController} can call this function. + * @param zeroVault_ The address of the new Zero Vault - + * - the wallet or contract to collect all the registration fees. + */ function setZeroVaultAddress(address zeroVault_) public override onlyAdmin { require(zeroVault_ != address(0), "ZNSTreasury: zeroVault passed as 0x0 address"); @@ -96,6 +157,11 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { emit ZeroVaultAddressSet(zeroVault_); } + /** + * @notice Setter function for the {priceOracle} state variable. + * Only ADMIN in {ZNSAccessController} can call this function. + * @param priceOracle_ The address of the new {ZNSPriceOracle} contract. + */ function setPriceOracle(address priceOracle_) public override onlyAdmin { require( priceOracle_ != address(0), @@ -106,6 +172,11 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { emit PriceOracleSet(priceOracle_); } + /** + * @notice Setter function for the {stakingToken} state variable. + * Only ADMIN in {ZNSAccessController} can call this function. + * @param stakingToken_ The address of the new staking token (currently $ZERO). + */ function setStakingToken(address stakingToken_) public override onlyAdmin { require(stakingToken_ != address(0), "ZNSTreasury: stakingToken_ passed as 0x0 address"); @@ -113,6 +184,11 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { emit StakingTokenSet(stakingToken_); } + /** + * @notice Setter function for the {accessController} state variable. + * Only ADMIN in {ZNSAccessController} can call this function. + * @param accessController_ The address of the new {ZNSAccessController} contract. + */ function setAccessController(address accessController_) public override(AccessControlled, IZNSTreasury) @@ -121,6 +197,9 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { _setAccessController(accessController_); } + /** + * @notice Getter function for the {accessController} state variable inherited from {AccessControlled}. + */ function getAccessController() external view override(AccessControlled, IZNSTreasury) returns (address) { return address(accessController); } From 9c0ab6fe68715d4b260e64b40b0f6e7601ed3cdb Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 13:18:28 -0700 Subject: [PATCH 06/20] add Registry --- contracts/registry/ZNSRegistry.sol | 78 +++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 24 deletions(-) diff --git a/contracts/registry/ZNSRegistry.sol b/contracts/registry/ZNSRegistry.sol index a424a3e87..1b1b5bd0c 100644 --- a/contracts/registry/ZNSRegistry.sol +++ b/contracts/registry/ZNSRegistry.sol @@ -6,9 +6,14 @@ import { AccessControlled } from "../access/AccessControlled.sol"; import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +/** + * @title The main reference data contract in ZNS. Also, often, the last contract + * in the call chain of many operations where the most crucial Name owner data settles. + * Owner of a domain in this contract also serves as the owner of the stake in {ZNSTreasury}. + */ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** - * @notice Mapping `domainHash` to `DomainRecord` struct to hold information + * @notice Mapping of `domainHash` to `DomainRecord` struct to hold information * about each domain */ mapping(bytes32 domainHash => DomainRecord domainRecord) private records; @@ -16,6 +21,8 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** * @notice Mapping of `owner` => `operator` => `bool` to show accounts that * are or aren't allowed access to domains that `owner` has access to. + * Note that operators can NOT change the owner of the domain, but can change + * the resolver or resolver records. */ mapping(address owner => mapping(address operator => bool isOperator)) private operators; @@ -33,6 +40,9 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { _; } + /** + * @notice Revert if `msg.sender` is not the owner. Used for owner restricted functions. + */ modifier onlyOwner(bytes32 domainHash) { require( records[domainHash].owner == msg.sender, @@ -41,13 +51,17 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { _; } + /** + * @notice Revert if `msg.sender` is not the {ZNSRegistrar} contract + * or an address holding REGISTRAR_ROLE. + */ modifier onlyRegistrar { accessController.checkRegistrar(msg.sender); _; } /** - * @notice Initialize the ZNSRegistry contract + * @notice Initializer for the {ZNSRegistry} proxy. * @param accessController_ The address of the AccessController contract */ function initialize(address accessController_) public override initializer { @@ -55,7 +69,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Check if a given domain exists + * @notice Checks if a given domain exists * @param domainHash The hash of a domain's name */ function exists(bytes32 domainHash) external view override returns (bool) { @@ -76,8 +90,9 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Set an `operator` as `allowed` to give or remove permissions for all - * domains owned by the owner `msg.sender` + * @notice Set an `operator` as `allowed` to give or remove permissions for ALL + * domains owned by the owner `msg.sender`. + * Emits an {OperatorPermissionSet} event. * @param operator The account to allow/disallow * @param allowed The true/false value to set */ @@ -88,7 +103,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Get a record for a domain + * @notice Gets a record for a domain (owner, resolver). * @param domainHash the hash of a domain's name */ function getDomainRecord( @@ -98,7 +113,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Get the owner of the given domain + * @notice Gets the owner of the given domain * @param domainHash the hash of a domain's name */ function getDomainOwner( @@ -108,7 +123,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Get the default resolver for the given domain + * @notice Gets the resolver set for the given domain. * @param domainHash the hash of a domain's name */ function getDomainResolver( @@ -118,10 +133,15 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Create a new domain record + * @notice Creates a new domain record. Only callable by the {ZNSRegistrar} + * or an address that has REGISTRAR_ROLE. This is one of the last calls in the Register + * flow that starts from {ZNSRegistrar.registerDomain()}. Calls 2 internal functions to set + * the owner and resolver of the domain separately. + * Can be called with `resolver` param as 0, which will exclude the call to set resolver. + * Emits {DomainOwnerSet} and possibly {DomainResolverSet} events. * @param domainHash The hash of the domain name * @param owner The owner of the new domain - * @param resolver The resolver of the new domain + * @param resolver The resolver of the new domain, can be 0 */ function createDomainRecord( bytes32 domainHash, @@ -130,14 +150,19 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { ) external override onlyRegistrar { _setDomainOwner(domainHash, owner); - // We allow creation of partial domains with no resolver address + // We allow creation of partial domain data with no resolver address if (resolver != address(0)) { _setDomainResolver(domainHash, resolver); } } /** - * @notice Update an existing domain record's owner and resolver + * @notice Updates an existing domain record's owner and resolver. + * Note that this function can ONLY be called by the Name owner of the domain. + * This is NOT used by the {ZNSRegistrar} contract and serves as a user facing function + * for the owners of existing domains to change their data on this contract. A domain + * `operator` can NOT call this, since it changes the owner. + * Emits {DomainOwnerSet} and {DomainResolverSet} events. * @param domainHash The hash of the domain * @param owner The owner or an allowed operator of that domain * @param resolver The resolver for the domain @@ -153,8 +178,9 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Update a domain's owner - * @dev This could be called from the registrar as part of the `reclaim()` flow + * @notice Updates the owner of an existing domain. Can be called by either the Name owner + * on this contract OR the {ZNSRegistrar} contract as part of the Reclaim flow + * that starts at {ZNSRegistrar.reclaim()}. Emits an {DomainOwnerSet} event. * @param domainHash the hash of a domain's name * @param owner The account to transfer ownership to */ @@ -173,9 +199,10 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Update the domain's default resolver + * @notice Updates the resolver of an existing domain in `records`. + * Can be called by eithe the owner of the Name or an allowed operator. * @param domainHash the hash of a domain's name - * @param resolver The new default resolver + * @param resolver The new Resolver contract address */ function updateDomainResolver( bytes32 domainHash, @@ -186,7 +213,9 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Delete a domain's record + * @notice Deletes a domain's record from this contract's state. + * This can ONLY be called by the {ZNSRegistrar} contract as part of the Revoke flow + * or any address holding the `REGISTRAR_ROLE`. Emits a {DomainRecordDeleted} event. * @param domainHash The hash of the domain name */ function deleteRecord(bytes32 domainHash) external override onlyRegistrar { @@ -196,7 +225,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Set the access controller contract + * @notice Sets the `accessController` contract * @param accessController The new access controller */ function setAccessController( @@ -206,7 +235,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Get the access controller + * @notice Gets the `accessController` from state. */ function getAccessController() external view override(AccessControlled, IZNSRegistry) returns (address) { return address(accessController); @@ -221,10 +250,10 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Set a domain's owner - * Note that we don't check for `address(0)` here. This is intentional - * because we are not currently allowing reselling of domains and want - * to enable burning them instead by transferring ownership to `address(0)` + * @notice Internal function to set a domain's owner in state `records`. + * Owner can NOT be set to 0, since we use delete operation as part of the + * {`deleteRecord()`} function. + * Emits a {DomainOwnerSet} event. * @param domainHash the hash of a domain's name * @param owner The owner to set */ @@ -235,7 +264,8 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Set a domain's resolver + * @notice Internal function to set a domain's resolver in state `records`. + * Resolver can be set to 0, since we allow partial domain data. Emits a {DomainResolverSet} event. * @param domainHash the hash of a domain's name * @param resolver The resolver to set */ From 0ee33d7815c99d5865573d6d5d7a2e476f6f059c Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 14:13:22 -0700 Subject: [PATCH 07/20] add prrevious interafaces + AddressResolver --- contracts/distribution/IZNSPriceOracle.sol | 46 ++++++++++++++++++++-- contracts/distribution/IZNSRegistrar.sol | 39 ++++++++++++++++++ contracts/distribution/IZNSTreasury.sol | 29 ++++++++++---- contracts/registry/IZNSRegistry.sol | 16 +++++--- contracts/resolver/ZNSAddressResolver.sol | 42 +++++++++++++++----- 5 files changed, 146 insertions(+), 26 deletions(-) diff --git a/contracts/distribution/IZNSPriceOracle.sol b/contracts/distribution/IZNSPriceOracle.sol index 5f21bedc6..3cf66111c 100644 --- a/contracts/distribution/IZNSPriceOracle.sol +++ b/contracts/distribution/IZNSPriceOracle.sol @@ -3,12 +3,51 @@ pragma solidity ^0.8.18; interface IZNSPriceOracle { + + /** + * @notice Emitted when the `maxPrice` is set in `rootDomainPriceConfig` + * @param price The new maxPrice value + */ event MaxPriceSet(uint256 price); + + /** + * @notice Emitted when the `minPrice` is set in `rootDomainPriceConfig` + * @param price The new minPrice value + */ event MinPriceSet(uint256 price); + + /** + * @notice Emitted when the `baseLength` is set in `rootDomainPriceConfig` + * @param length The new baseLength value + */ event BaseLengthSet(uint256 length); + + /** + * @notice Emitted when the `maxLength` is set in `rootDomainPriceConfig` + * @param length The new maxLength value + */ event MaxLengthSet(uint256 length); + + /** + * @notice Emitted when the `precisionMultiplier` is set in `rootDomainPriceConfig` + * @param precision The new precisionMultiplier value + */ event PrecisionMultiplierSet(uint256 precision); + + /** + * @notice Emitted when the `feePercentage` is set in state + * @param feePercentage The new feePercentage value + */ event FeePercentageSet(uint256 feePercentage); + + /** + * @notice Emitted when the full `rootDomainPriceConfig` is set in state + * @param maxPrice The new `maxPrice` value + * @param minPrice The new `minPrice` value + * @param maxLength The new `maxLength` value + * @param baseLength The new `baseLength` value + * @param precisionMultiplier The new `precisionMultiplier` value + */ event PriceConfigSet( uint256 maxPrice, uint256 minPrice, @@ -18,15 +57,16 @@ interface IZNSPriceOracle { ); /** - * @notice Struct for each configurable price variable + * @notice Struct for each configurable variable for price calculations. + * Does NOT include variables for calcs of registration fees. */ struct DomainPriceConfig { /** - * @notice Maximum price for a domain + * @notice Maximum price for a domain returned at <= `baseLength` */ uint256 maxPrice; /** - * @notice Minimum price for a domain + * @notice Minimum price for a domain returned at > `maxLength` */ uint256 minPrice; /** diff --git a/contracts/distribution/IZNSRegistrar.sol b/contracts/distribution/IZNSRegistrar.sol index d4949ac10..97356fc3f 100644 --- a/contracts/distribution/IZNSRegistrar.sol +++ b/contracts/distribution/IZNSRegistrar.sol @@ -3,6 +3,19 @@ pragma solidity ^0.8.18; interface IZNSRegistrar { + + /** + * @notice Emitted when a NEW domain is registered. + * @param domainHash The hash of the domain registered + * @param tokenId The tokenId of the domain registered + * @param name The name as string of the domain registered + * @param registrant The address that called {ZNSRegistrar.registerDomain()} + * @param resolver The resolver contract address of the domain registered + * @param domainAddress The domain address of the domain registered - the address + * to which a domain name will relate to in ZNS. E.g. if a user made a domain for his wallet, + * the address of the wallet will be the `domainAddress`. This can be 0 as this variable is not required + * to perform registration process and can be set at a later time by the domain owner. + */ event DomainRegistered( bytes32 indexed domainHash, uint256 indexed tokenId, @@ -12,19 +25,45 @@ interface IZNSRegistrar { address domainAddress ); + /** + * @notice Emitted when a domain is revoked. + * @param domainHash The hash of the domain revoked + * @param registrant The address that called {ZNSRegistrar.revokeDomain()} + */ event DomainRevoked(bytes32 indexed domainHash, address indexed registrant); + /** + * @notice Emitted when an ownership of the Name is reclaimed by the Token owner. + * @param domainHash The hash of the domain reclaimed + * @param registrant The address that called {ZNSRegistrar.reclaimDomain()} + */ event DomainReclaimed( bytes32 indexed domainHash, address indexed registrant ); + /** + * @notice Emitted when the `registry` address is set in state. + * @param registry The new address of the registry contract + */ event RegistrySet(address registry); + /** + * @notice Emitted when the `treasury` address is set in state. + * @param treasury The new address of the treasury contract + */ event TreasurySet(address treasury); + /** + * @notice Emitted when the `domainToken` address is set in state. + * @param domainToken The new address of the domainToken contract + */ event DomainTokenSet(address domainToken); + /** + * @notice Emitted when the `addressResolver` address is set in state. + * @param addressResolver The new address of the addressResolver contract + */ event AddressResolverSet(address addressResolver); function registerDomain( diff --git a/contracts/distribution/IZNSTreasury.sol b/contracts/distribution/IZNSTreasury.sol index e1ba8c67c..3ee568de4 100644 --- a/contracts/distribution/IZNSTreasury.sol +++ b/contracts/distribution/IZNSTreasury.sol @@ -4,11 +4,12 @@ pragma solidity ^0.8.18; interface IZNSTreasury { /** - * @notice Emitted when a new stake is deposited + * @notice Emitted when a new stake is deposited upon registration of a new domain. * @param domainHash The hash of the domain name - * @param domainName The domain name - * @param depositor The address of the depositing user - * @param stakeAmount The amount they are depositing + * @param domainName The domain name as a string + * @param depositor The address of the depositing user / new domain owner + * @param stakeAmount The amount they are depositing / price of the domain based on name length + * @param registrationFee The registration fee paid by the user on top of the staked amount */ event StakeDeposited( bytes32 indexed domainHash, @@ -19,10 +20,10 @@ interface IZNSTreasury { ); /** - * @notice Emitted when a stake is withdrawn - * @param domainHash The hash of the domain name - * @param owner The owner of the domain - * @param stakeAmount The staked amount withdrawn + * @notice Emitted when a stake is withdrawn upon domain revocation. + * @param domainHash The hash of the domain name being revoked + * @param owner The owner of the domain being revoked + * @param stakeAmount The staked amount withdrawn to the user after revoking */ event StakeWithdrawn( bytes32 indexed domainHash, @@ -30,10 +31,22 @@ interface IZNSTreasury { uint256 indexed stakeAmount ); + /** + * @notice Emitted when `priceOracle` is set in state. + * @param priceOracle The new address of the price oracle contract + */ event PriceOracleSet(address priceOracle); + /** + * @notice Emitted when `stakingToken` is set in state. + * @param stakingToken The new address of the ERC-20 compliant staking token contract + */ event StakingTokenSet(address stakingToken); + /** + * @notice Emitted when `zeroVault` is set in state. + * @param zeroVault The new address of the zero vault contract or wallet + */ event ZeroVaultAddressSet(address zeroVault); function stakeForDomain( diff --git a/contracts/registry/IZNSRegistry.sol b/contracts/registry/IZNSRegistry.sol index 9a9b0fcf5..0a7019bf3 100644 --- a/contracts/registry/IZNSRegistry.sol +++ b/contracts/registry/IZNSRegistry.sol @@ -7,6 +7,10 @@ interface IZNSRegistry { /** * @notice The `DomainRecord` struct is meant to hold relevant information * about a domain, such as its owner and resolver. + * @param owner The owner of the domain (also called the owner of the Name). + * @param resolver The address of the Rsolver contract where this domain's source records are stored. + * In the future, there will be multiple Resolver contracts that support different types of sources. + * Currently, only the {ZNSAddressResolver} is implemented. */ struct DomainRecord { address owner; @@ -14,9 +18,9 @@ interface IZNSRegistry { } /** - * @notice Emit when ownership of a domain is modified - * @param owner The new domain owner + * @notice Emits when ownership of a domain is modified in {`records`} * @param domainHash the hash of a domain's name + * @param owner The new domain owner */ event DomainOwnerSet( bytes32 indexed domainHash, @@ -24,9 +28,9 @@ interface IZNSRegistry { ); /** - * @notice Emit when a domain's resolver is modified - * @param resolver The new resolver + * @notice Emit when a domain's resolver is modified in {`records`} * @param domainHash the hash of a domain's name + * @param resolver The new resolver address */ event DomainResolverSet( bytes32 indexed domainHash, @@ -34,7 +38,7 @@ interface IZNSRegistry { ); /** - * @notice Emit when a record is deleted + * @notice Emits when a domain record is deleted * @param domainHash The hash of a domain's name */ event DomainRecordDeleted( @@ -44,7 +48,7 @@ interface IZNSRegistry { /** * @notice Emit when an owner allows/disallows permissions for an operator * @param owner Owner of the domain in question - * @param operator User that was allowed/disallowed + * @param operator Address that was allowed/disallowed * @param allowed Boolean status of their permission */ event OperatorPermissionSet( diff --git a/contracts/resolver/ZNSAddressResolver.sol b/contracts/resolver/ZNSAddressResolver.sol index be4fa7e31..9b0be4603 100644 --- a/contracts/resolver/ZNSAddressResolver.sol +++ b/contracts/resolver/ZNSAddressResolver.sol @@ -8,24 +8,31 @@ import { IZNSRegistry } from "../registry/IZNSRegistry.sol"; import { AccessControlled } from "../access/AccessControlled.sol"; +/** + * @title The specific Resolver for ZNS that maps domain hashes to Ethereum addresses these domains were made for. + * @notice This Resolver supports ONLY the address type. Every domain in ZNS made for a contract or wallet address + * will have a corresponding record in this Resolver. + */ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAddressResolver { /** - * @notice Address of the ZNSRegistry contract that holds all crucial data - * for every domain in the system + * @notice Address of the {ZNSRegistry} contract that holds all crucial data + * for every domain in the system */ IZNSRegistry public registry; /** * @notice Mapping of domain hash to address used to bind domains - * to Ethereum wallets or contracts registered in ZNS + * to Ethereum wallets or contracts registered in ZNS. */ mapping(bytes32 domainHash => address resolvedAddress) private domainAddresses; /** - * @notice Initialize an instance of the ZNSAddressResolver - * @param accessController_ The access controller - * @param registry_ The registry address + * @notice Initializer for the {ZNSAddressResolver} proxy. + * Note that setter functions are used instead of direct state variable assignments + * to use access control at deploy time. Only ADMIN can call this function. + * @param accessController_ The address of the {ZNSAccessController} contract + * @param registry_ The address of the {ZNSRegistry} contract */ function initialize(address accessController_, address registry_) public override initializer { _setAccessController(accessController_); @@ -33,7 +40,7 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd } /** - * @dev Resolves address given domain name hash + * @dev Returns address associated with a given domain name hash. * @param domainHash The identifying hash of a domain's name */ function getAddress( @@ -43,9 +50,12 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd } /** - * @dev Sets the address of a domain name hash, only registry + * @dev Sets the address for a domain name hash. This function can only + * be called by the owner, operator of the domain OR by the {ZNSRegistrar} + * as a part of the Register flow. + * Emits an {AddressSet} event. * @param domainHash The identifying hash of a domain's name - * @param newAddress The new domain owner + * @param newAddress The new address to map the domain to */ function setAddress( bytes32 domainHash, @@ -84,6 +94,12 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd return type(IZNSAddressResolver).interfaceId; } + /** + * @dev Sets the address of the {ZNSRegistry} contract that holds all crucial data + * for every domain in the system. This function can only be called by the ADMIN. + * Emits a {RegistrySet} event. + * @param _registry The address of the {ZNSRegistry} contract + */ function setRegistry(address _registry) public override onlyAdmin { require( _registry != address(0), @@ -94,12 +110,20 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd emit RegistrySet(_registry); } + /** + * @dev Sets the address of the {ZNSAccessController} contract. + * Can only be called by the ADMIN. Emits an {AccessControllerSet} event. + * @param accessController The address of the {ZNSAccessController} contract + */ function setAccessController( address accessController ) external override(AccessControlled, IZNSAddressResolver) onlyAdmin { _setAccessController(accessController); } + /** + * @dev Returns the address of the {ZNSAccessController} contract saved in state. + */ function getAccessController() external view override(AccessControlled, IZNSAddressResolver) returns (address) { return address(accessController); } From 96a886df1345acbd9a3fd44420a38157fddb4acb Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 14:21:39 -0700 Subject: [PATCH 08/20] add DomainToken --- contracts/token/IZNSDomainToken.sol | 17 ------------- contracts/token/ZNSDomainToken.sol | 37 ++++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/contracts/token/IZNSDomainToken.sol b/contracts/token/IZNSDomainToken.sol index ba549f126..e5999ea3d 100644 --- a/contracts/token/IZNSDomainToken.sol +++ b/contracts/token/IZNSDomainToken.sol @@ -5,27 +5,10 @@ import { IERC721Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ER interface IZNSDomainToken is IERC721Upgradeable { - event SetAccessAuthorization(address indexed account); - - /** - * @notice Initialize the ERC721 ZNSDomainToken contract with the given values - * @param accessController The access controller contract address - * @param tokenName The ZNS token name - * @param tokenSymbol The ZNS token symbol - */ function initialize(address accessController, string calldata tokenName, string calldata tokenSymbol) external; - /** - * @notice Mints a token with a specified tokenId, using _safeMint, and sends it to the given address - * @param to The address that will recieve the newly minted domain token - * @param tokenId The TokenId that the caller wishes to mint/register - */ function register(address to, uint256 tokenId) external; - /** - * @notice Burns the token with the specified tokenId - * @param tokenId The tokenId that the caller wishes to burn/revoke - */ function revoke(uint256 tokenId) external; function setAccessController(address accessController) external; diff --git a/contracts/token/ZNSDomainToken.sol b/contracts/token/ZNSDomainToken.sol index ddfd257e7..bca131522 100644 --- a/contracts/token/ZNSDomainToken.sol +++ b/contracts/token/ZNSDomainToken.sol @@ -8,15 +8,29 @@ import { AccessControlled } from "../access/AccessControlled.sol"; /** - * @title A contract for tokenizing domains under ZNS + * @title A contract for tokenizing domains under ZNS. Every domain in ZNS has a corresponding token + * minted at Register time. This token is also an NFT that is fully ERC-721 compliant. + * @dev Note that all ZNS related functions on this contract can ONLY be called by either + * the {ZNSRegistrar} contract or any address holding a REGISTRAR_ROLE. */ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, IZNSDomainToken { + /** + * @notice Modifier used in functions to be called only by the {ZNSRegistrar} contract + * or address with REGISTRAR_ROLE. + */ modifier onlyRegistrar { accessController.checkRegistrar(msg.sender); _; } + /** + * @notice Initializer for the {ZNSDomainToken} proxy. + * Note that this function does NOT have role protection enforced! + * @param accessController_ The address of the {ZNSAccessController} contract + * @param name_ The name of the token + * @param symbol_ The symbol of the token + */ function initialize( address accessController_, string memory name_, @@ -27,22 +41,30 @@ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, } /** - * @notice Mints a token with a specified tokenId, using _safeMint, and sends it to the given address - * @param to The address that will recieve the newly minted domain token - * @param tokenId The TokenId that the caller wishes to mint/register + * @notice Mints a token with a specified tokenId, using _safeMint, and sends it to the given address. + * Used ONLY as a part of the Register flow that starts from {`ZNSRegistrar.registerDomain()`}! + * @param to The address that will recieve the newly minted domain token (new domain owner) + * @param tokenId The TokenId that the caller wishes to mint/register. TokenId is created + * as a hash of the domain name casted to uint256. */ function register(address to, uint256 tokenId) external override onlyRegistrar { _safeMint(to, tokenId); } /** - * @notice Burns the token with the specified tokenId - * @param tokenId The tokenId that the caller wishes to burn/revoke + * @notice Burns the token with the specified tokenId. + * Used ONLY as a part of the Revoke flow that starts from {`ZNSRegistrar.revokeDomain()`}! + * @param tokenId The tokenId (as `uint256(domainHash)`) that the caller wishes to burn/revoke */ function revoke(uint256 tokenId) external override onlyRegistrar { _burn(tokenId); } + /** + * @dev Sets the address of the {ZNSAccessController} contract. + * Can only be called by the ADMIN. Emits an {AccessControllerSet} event. + * @param accessController The address of the {ZNSAccessController} contract + */ function setAccessController(address accessController_) external override(AccessControlled, IZNSDomainToken) @@ -51,6 +73,9 @@ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, _setAccessController(accessController_); } + /** + * @dev Returns the address of the {ZNSAccessController} contract saved in state. + */ function getAccessController() external view override(AccessControlled, IZNSDomainToken) returns (address) { return address(accessController); } From 7090c78499564bc3245c67a560dbfd16750a0466 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 14:28:31 -0700 Subject: [PATCH 09/20] rename dir with upgrade mocks --- contracts/token/ZNSDomainToken.sol | 2 +- contracts/{upgradeMocks => upgrade-test-mocks}/UpgradeMock.sol | 0 .../distribution/ZNSPriceOracleMock.sol | 0 .../distribution/ZNSRegistrarMock.sol | 0 .../distribution/ZNSTreasuryMock.sol | 0 .../registry/ZNSRegistryMock.sol | 0 .../resolver/ZNSAddressResolverMock.sol | 0 .../token/ZNSDomainTokenMock.sol | 0 8 files changed, 1 insertion(+), 1 deletion(-) rename contracts/{upgradeMocks => upgrade-test-mocks}/UpgradeMock.sol (100%) rename contracts/{upgradeMocks => upgrade-test-mocks}/distribution/ZNSPriceOracleMock.sol (100%) rename contracts/{upgradeMocks => upgrade-test-mocks}/distribution/ZNSRegistrarMock.sol (100%) rename contracts/{upgradeMocks => upgrade-test-mocks}/distribution/ZNSTreasuryMock.sol (100%) rename contracts/{upgradeMocks => upgrade-test-mocks}/registry/ZNSRegistryMock.sol (100%) rename contracts/{upgradeMocks => upgrade-test-mocks}/resolver/ZNSAddressResolverMock.sol (100%) rename contracts/{upgradeMocks => upgrade-test-mocks}/token/ZNSDomainTokenMock.sol (100%) diff --git a/contracts/token/ZNSDomainToken.sol b/contracts/token/ZNSDomainToken.sol index bca131522..94b35d243 100644 --- a/contracts/token/ZNSDomainToken.sol +++ b/contracts/token/ZNSDomainToken.sol @@ -63,7 +63,7 @@ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, /** * @dev Sets the address of the {ZNSAccessController} contract. * Can only be called by the ADMIN. Emits an {AccessControllerSet} event. - * @param accessController The address of the {ZNSAccessController} contract + * @param accessController_ The address of the {ZNSAccessController} contract */ function setAccessController(address accessController_) external diff --git a/contracts/upgradeMocks/UpgradeMock.sol b/contracts/upgrade-test-mocks/UpgradeMock.sol similarity index 100% rename from contracts/upgradeMocks/UpgradeMock.sol rename to contracts/upgrade-test-mocks/UpgradeMock.sol diff --git a/contracts/upgradeMocks/distribution/ZNSPriceOracleMock.sol b/contracts/upgrade-test-mocks/distribution/ZNSPriceOracleMock.sol similarity index 100% rename from contracts/upgradeMocks/distribution/ZNSPriceOracleMock.sol rename to contracts/upgrade-test-mocks/distribution/ZNSPriceOracleMock.sol diff --git a/contracts/upgradeMocks/distribution/ZNSRegistrarMock.sol b/contracts/upgrade-test-mocks/distribution/ZNSRegistrarMock.sol similarity index 100% rename from contracts/upgradeMocks/distribution/ZNSRegistrarMock.sol rename to contracts/upgrade-test-mocks/distribution/ZNSRegistrarMock.sol diff --git a/contracts/upgradeMocks/distribution/ZNSTreasuryMock.sol b/contracts/upgrade-test-mocks/distribution/ZNSTreasuryMock.sol similarity index 100% rename from contracts/upgradeMocks/distribution/ZNSTreasuryMock.sol rename to contracts/upgrade-test-mocks/distribution/ZNSTreasuryMock.sol diff --git a/contracts/upgradeMocks/registry/ZNSRegistryMock.sol b/contracts/upgrade-test-mocks/registry/ZNSRegistryMock.sol similarity index 100% rename from contracts/upgradeMocks/registry/ZNSRegistryMock.sol rename to contracts/upgrade-test-mocks/registry/ZNSRegistryMock.sol diff --git a/contracts/upgradeMocks/resolver/ZNSAddressResolverMock.sol b/contracts/upgrade-test-mocks/resolver/ZNSAddressResolverMock.sol similarity index 100% rename from contracts/upgradeMocks/resolver/ZNSAddressResolverMock.sol rename to contracts/upgrade-test-mocks/resolver/ZNSAddressResolverMock.sol diff --git a/contracts/upgradeMocks/token/ZNSDomainTokenMock.sol b/contracts/upgrade-test-mocks/token/ZNSDomainTokenMock.sol similarity index 100% rename from contracts/upgradeMocks/token/ZNSDomainTokenMock.sol rename to contracts/upgrade-test-mocks/token/ZNSDomainTokenMock.sol From 3058821d35135934ab239e9de144ac0ef55f6238 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 15:04:37 -0700 Subject: [PATCH 10/20] install and set up solidity-docgen --- hardhat.config.ts | 9 +++++++++ package.json | 4 +++- yarn.lock | 10 +++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index e7b43982b..6e77b5df5 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -9,6 +9,7 @@ import "@nomicfoundation/hardhat-network-helpers"; import "@nomicfoundation/hardhat-chai-matchers"; import "@openzeppelin/hardhat-upgrades"; import "solidity-coverage"; +import "solidity-docgen"; // This call is needed to initialize Tenderly with Hardhat, // the automatic verifications, though, don't seem to work, @@ -90,6 +91,14 @@ const config : HardhatUserConfig = { project: `${process.env.TENDERLY_PROJECT_SLUG}`, username: `${process.env.TENDERLY_ACCOUNT_ID}`, }, + docgen: { + exclude: [ + "contracts/upgrade-test-mocks/**/*", + "contracts/token/mocks/**/*", + "contracts/utils/**/*", + "contracts/oz-proxies/**/*", + ], + }, }; export default config; diff --git a/package.json b/package.json index 02f246df8..53bbbafa2 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "coverage": "hardhat coverage", "check-coverage": "istanbul check-coverage --statements 90 --branches 87 --functions 89 --lines 90", "devnet": "ts-node src/tenderly/devnet/devnet-execute.ts", - "gas-cost": "ts-node src/utils/gas-costs.ts" + "gas-cost": "ts-node src/utils/gas-costs.ts", + "docgen": "hardhat docgen" }, "pre-commit": [ "lint" @@ -56,6 +57,7 @@ "semantic-release": "^21.0.1", "solhint": "^3.4.1", "solidity-coverage": "^0.8.2", + "solidity-docgen": "^0.6.0-beta.35", "ts-node": "10.9.1", "typechain": "8.1.0", "typescript": "^5.0.2" diff --git a/yarn.lock b/yarn.lock index 54faee193..5044203c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8615,7 +8615,7 @@ solhint@^3.4.1: optionalDependencies: prettier "^2.8.3" -solidity-ast@^0.4.15: +solidity-ast@^0.4.15, solidity-ast@^0.4.38: version "0.4.49" resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.49.tgz#ecba89d10c0067845b7848c3a3e8cc61a4fc5b82" integrity sha512-Pr5sCAj1SFqzwFZw1HPKSq0PehlQNdM8GwKyAVYh2DOn7/cCK8LUKD1HeHnKtTgBW7hi9h4nnnan7hpAg5RhWQ== @@ -8646,6 +8646,14 @@ solidity-coverage@^0.8.2: shelljs "^0.8.3" web3-utils "^1.3.6" +solidity-docgen@^0.6.0-beta.35: + version "0.6.0-beta.35" + resolved "https://registry.yarnpkg.com/solidity-docgen/-/solidity-docgen-0.6.0-beta.35.tgz#174d7fe54efa8b10f7d3cbe0dfc40e52e11bf867" + integrity sha512-9QdwK1THk/MWIdq1PEW/6dvtND0pUqpFTsbKwwU9YQIMYuRhH1lek9SsgnsGGYtdJ0VTrXXcVT30q20a8Y610A== + dependencies: + handlebars "^4.7.7" + solidity-ast "^0.4.38" + source-map-support@^0.5.13: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" From e9aee167fd6383a79a4cc821c035a3e3e2cae4e4 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 15:27:03 -0700 Subject: [PATCH 11/20] set up config for exlusions, directories and templates --- hardhat.config.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/hardhat.config.ts b/hardhat.config.ts index 6e77b5df5..a1aebb970 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -92,11 +92,14 @@ const config : HardhatUserConfig = { username: `${process.env.TENDERLY_ACCOUNT_ID}`, }, docgen: { + pages: "files", + templates: "docs/docgen-templates", + outputDir: "docs/contracts", exclude: [ - "contracts/upgrade-test-mocks/**/*", - "contracts/token/mocks/**/*", - "contracts/utils/**/*", - "contracts/oz-proxies/**/*", + "upgrade-test-mocks/", + "token/mocks/", + "utils/", + "oz-proxies/", ], }, }; From a3acfb53faf4aa7683ac7f9fc96ec125a77df0b7 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 15:27:15 -0700 Subject: [PATCH 12/20] start overriding default templates --- docs/docgen-templates/common.hbs | 37 ++++++++++++++++++++++++++++++++ docs/docgen-templates/page.hbs | 6 ++++++ 2 files changed, 43 insertions(+) create mode 100644 docs/docgen-templates/common.hbs create mode 100644 docs/docgen-templates/page.hbs diff --git a/docs/docgen-templates/common.hbs b/docs/docgen-templates/common.hbs new file mode 100644 index 000000000..ef4174444 --- /dev/null +++ b/docs/docgen-templates/common.hbs @@ -0,0 +1,37 @@ +{{h}} {{name}} + +{{#if natspec.title}} + _{{{natspec.title}}}_ +{{/if}} + +{{#if signature}} + ```solidity + {{{signature}}} + ``` +{{/if}} + +{{{natspec.notice}}} + +{{#if natspec.dev}} + _{{{natspec.dev}}}_ +{{/if}} + +{{#if natspec.params}} + {{h 2}} Parameters + + | Name | Type | Description | + | ---- | ---- | ----------- | + {{#each params}} + | {{name}} | {{type}} | {{{joinLines natspec}}} | + {{/each}} +{{/if}} + +{{#if natspec.returns}} + {{h 2}} Return Values + + | Name | Type | Description | + | ---- | ---- | ----------- | + {{#each returns}} + | {{#if name}}{{name}}{{else}}[{{@index}}]{{/if}} | {{type}} | {{{joinLines natspec}}} | + {{/each}} +{{/if}} \ No newline at end of file diff --git a/docs/docgen-templates/page.hbs b/docs/docgen-templates/page.hbs new file mode 100644 index 000000000..598ac42f5 --- /dev/null +++ b/docs/docgen-templates/page.hbs @@ -0,0 +1,6 @@ +{{#each items}} + {{#hsection}} + {{>item}} + {{/hsection}} + +{{/each}} \ No newline at end of file From 589817fbd24575682a9e6998c90855c974689416 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 15:49:20 -0700 Subject: [PATCH 13/20] fix template formatting --- docs/docgen-templates/common.hbs | 38 ++++++++++++++++---------------- docs/docgen-templates/page.hbs | 6 ++--- hardhat.config.ts | 1 + 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/docs/docgen-templates/common.hbs b/docs/docgen-templates/common.hbs index ef4174444..0d61ecc39 100644 --- a/docs/docgen-templates/common.hbs +++ b/docs/docgen-templates/common.hbs @@ -1,37 +1,37 @@ {{h}} {{name}} -{{#if natspec.title}} - _{{{natspec.title}}}_ +{{#if signature}} +```solidity +{{{signature}}} +``` {{/if}} -{{#if signature}} - ```solidity - {{{signature}}} - ``` +{{#if natspec.title}} +{{{natspec.title}}} {{/if}} {{{natspec.notice}}} {{#if natspec.dev}} - _{{{natspec.dev}}}_ +{{{natspec.dev}}} {{/if}} {{#if natspec.params}} - {{h 2}} Parameters +{{h 2}} Parameters - | Name | Type | Description | - | ---- | ---- | ----------- | - {{#each params}} - | {{name}} | {{type}} | {{{joinLines natspec}}} | - {{/each}} +| Name | Type | Description | +| ---- | ---- | ----------- | +{{#each params}} +| {{name}} | {{type}} | {{{joinLines natspec}}} | +{{/each}} {{/if}} {{#if natspec.returns}} - {{h 2}} Return Values +{{h 2}} Return Values - | Name | Type | Description | - | ---- | ---- | ----------- | - {{#each returns}} - | {{#if name}}{{name}}{{else}}[{{@index}}]{{/if}} | {{type}} | {{{joinLines natspec}}} | - {{/each}} +| Name | Type | Description | +| ---- | ---- | ----------- | +{{#each returns}} +| {{#if name}}{{name}}{{else}}[{{@index}}]{{/if}} | {{type}} | {{{joinLines natspec}}} | +{{/each}} {{/if}} \ No newline at end of file diff --git a/docs/docgen-templates/page.hbs b/docs/docgen-templates/page.hbs index 598ac42f5..da0ced55c 100644 --- a/docs/docgen-templates/page.hbs +++ b/docs/docgen-templates/page.hbs @@ -1,6 +1,6 @@ {{#each items}} - {{#hsection}} - {{>item}} - {{/hsection}} +{{#hsection}} +{{>item}} +{{/hsection}} {{/each}} \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index a1aebb970..15971d78b 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -97,6 +97,7 @@ const config : HardhatUserConfig = { outputDir: "docs/contracts", exclude: [ "upgrade-test-mocks/", + "upgradeMocks/", "token/mocks/", "utils/", "oz-proxies/", From 32e260027a35107794c106802e22d8497fcf1a35 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 17:28:00 -0700 Subject: [PATCH 14/20] make contract title comment appear bold in .md --- docs/docgen-templates/common.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docgen-templates/common.hbs b/docs/docgen-templates/common.hbs index 0d61ecc39..ab8cec287 100644 --- a/docs/docgen-templates/common.hbs +++ b/docs/docgen-templates/common.hbs @@ -7,7 +7,7 @@ {{/if}} {{#if natspec.title}} -{{{natspec.title}}} +**{{{natspec.title}}}** {{/if}} {{{natspec.notice}}} From f894786b662cf4d840fbcec7f60487ecc94ca265 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 17:28:13 -0700 Subject: [PATCH 15/20] fix/expand comments across contracts --- contracts/access/AccessControlled.sol | 4 +- contracts/access/ZNSAccessController.sol | 7 ++- contracts/access/ZNSRoles.sol | 2 +- contracts/distribution/IZNSPriceOracle.sol | 30 ++++------ contracts/distribution/IZNSRegistrar.sol | 15 ++--- contracts/distribution/ZNSPriceOracle.sol | 70 ++++++++++++++-------- contracts/distribution/ZNSRegistrar.sol | 63 +++++++++---------- contracts/distribution/ZNSTreasury.sol | 60 +++++++++---------- contracts/registry/IZNSRegistry.sol | 21 +++---- contracts/registry/ZNSRegistry.sol | 46 +++++++------- contracts/resolver/ZNSAddressResolver.sol | 28 ++++----- contracts/token/ZNSDomainToken.sol | 24 ++++---- 12 files changed, 196 insertions(+), 174 deletions(-) diff --git a/contracts/access/AccessControlled.sol b/contracts/access/AccessControlled.sol index 9f4d2e1d2..39dbacfb9 100644 --- a/contracts/access/AccessControlled.sol +++ b/contracts/access/AccessControlled.sol @@ -6,8 +6,8 @@ import { IZNSAccessController } from "./IZNSAccessController.sol"; /** * @title This abstract contract outlines basic functionality, declares functions - * that need to be implemented to provide a deterministic connection to ZNSAccessController module. - * @dev In order to connect an arbitrary module to ZNSAccessController and it's functionality, + * that need to be implemented to provide a deterministic connection to `ZNSAccessController` module. + * @dev In order to connect an arbitrary module to `ZNSAccessController` and it's functionality, * this contract needs to be inherited by the module. */ abstract contract AccessControlled { diff --git a/contracts/access/ZNSAccessController.sol b/contracts/access/ZNSAccessController.sol index ed09c6755..b98be6a27 100644 --- a/contracts/access/ZNSAccessController.sol +++ b/contracts/access/ZNSAccessController.sol @@ -8,14 +8,15 @@ import { ZNSRoles } from "./ZNSRoles.sol"; /** * @title The main module for system-wide Access Control. - * @dev ZNS Business Logic Contract access to this module is outlined in {AccessControlled}. + * @dev ZNS Business Logic Contract access to this module is outlined in `AccessControlled`. * Uses a role-based access control scheme with levels: * - GOVERNOR: The highest rank, assigns Admins, new roles and Role Admins * - ADMIN: The main maintainer role, that gets access to all system functions (managed by Governor) * - EXECUTOR: Can be here to future proof, if we need a new role (managed by Governor) * - REGISTRAR: This role is here specifically for the ZNSRegistrar contract (managed by Admin) - * This contract is NOT proxied. When new implementation is needed, a new contract will be deployed - * and all modules will be updated to use the new address, since they all inherit from {AccessControlled}. + * + * > This contract is NOT proxied. When new implementation is needed, a new contract will be deployed + * and all modules will be updated to use the new address, since they all inherit from `AccessControlled`. */ contract ZNSAccessController is AccessControl, ZNSRoles, IZNSAccessController { constructor( diff --git a/contracts/access/ZNSRoles.sol b/contracts/access/ZNSRoles.sol index e4c274f71..d1f99bd9b 100644 --- a/contracts/access/ZNSRoles.sol +++ b/contracts/access/ZNSRoles.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.18; /** * @title Outlines the roles used in the ZNS system - * @dev Inherited ONLY by {ZNSAccessController} + * @dev > Inherited ONLY by `ZNSAccessController` */ abstract contract ZNSRoles { /** diff --git a/contracts/distribution/IZNSPriceOracle.sol b/contracts/distribution/IZNSPriceOracle.sol index 3cf66111c..2ae95ff11 100644 --- a/contracts/distribution/IZNSPriceOracle.sol +++ b/contracts/distribution/IZNSPriceOracle.sol @@ -2,6 +2,18 @@ pragma solidity ^0.8.18; +/** + * @dev **`DomainPriceConfig` struct properties:** + * + * - `maxPrice` (uint256): Maximum price for a domain returned at <= `baseLength` + * - `minPrice` (uint256): Minimum price for a domain returned at > `maxLength` + * - `maxLength` (uint256): Maximum length of a domain name. If the name is longer than this value we return the `minPrice` + * - `baseLength` (uint256): Base length of a domain name. If the name is less than or equal to this value we return the `maxPrice` + * - `precisionMultiplier` (uint256): The precision multiplier of the price. This multiplier + * should be picked based on the number of token decimals to calculate properly. + * e.g. if we use a token with 18 decimals, and want precision of 2, + * our precision multiplier will be equal 10^18 - 10^2 = 10^16 + */ interface IZNSPriceOracle { /** @@ -94,10 +106,6 @@ interface IZNSPriceOracle { uint256 regFeePercentage_ ) external; - /** - * @notice Get the price of a given domain name length - * @param name The name of the domain to check - */ function getPrice( string calldata name ) external view returns ( @@ -106,28 +114,14 @@ interface IZNSPriceOracle { uint256 fee ); - /** - * @notice Returns the registration fee based on domain price - * @param domainPrice Price of the domain in question - */ function getRegistrationFee(uint256 domainPrice) external view returns (uint256); function setPriceConfig(DomainPriceConfig calldata priceConfig) external; - /** - * @notice Set the base price for root domains - * - * @param maxPrice The price to set in $ZERO - */ function setMaxPrice(uint256 maxPrice) external; function setMinPrice(uint256 minPrice) external; - /** - * @notice Set the value of the domain name length boundary where the default price applies - * e.g. A value of '5' means all domains <= 5 in length cost the default price - * @param length Boundary to set - */ function setBaseLength(uint256 length) external; function setMaxLength(uint256 length) external; diff --git a/contracts/distribution/IZNSRegistrar.sol b/contracts/distribution/IZNSRegistrar.sol index 97356fc3f..db53779aa 100644 --- a/contracts/distribution/IZNSRegistrar.sol +++ b/contracts/distribution/IZNSRegistrar.sol @@ -6,15 +6,16 @@ interface IZNSRegistrar { /** * @notice Emitted when a NEW domain is registered. + * @dev `domainAddress` parameter is the address to which a domain name will relate to in ZNS. + * E.g. if a user made a domain for his wallet, the address of the wallet will be the `domainAddress`. + * This can be 0 as this variable is not required to perform registration process + * and can be set at a later time by the domain owner. * @param domainHash The hash of the domain registered * @param tokenId The tokenId of the domain registered * @param name The name as string of the domain registered - * @param registrant The address that called {ZNSRegistrar.registerDomain()} + * @param registrant The address that called `ZNSRegistrar.registerDomain()` * @param resolver The resolver contract address of the domain registered - * @param domainAddress The domain address of the domain registered - the address - * to which a domain name will relate to in ZNS. E.g. if a user made a domain for his wallet, - * the address of the wallet will be the `domainAddress`. This can be 0 as this variable is not required - * to perform registration process and can be set at a later time by the domain owner. + * @param domainAddress The domain address of the domain registered */ event DomainRegistered( bytes32 indexed domainHash, @@ -28,14 +29,14 @@ interface IZNSRegistrar { /** * @notice Emitted when a domain is revoked. * @param domainHash The hash of the domain revoked - * @param registrant The address that called {ZNSRegistrar.revokeDomain()} + * @param registrant The address that called `ZNSRegistrar.revokeDomain()` */ event DomainRevoked(bytes32 indexed domainHash, address indexed registrant); /** * @notice Emitted when an ownership of the Name is reclaimed by the Token owner. * @param domainHash The hash of the domain reclaimed - * @param registrant The address that called {ZNSRegistrar.reclaimDomain()} + * @param registrant The address that called `ZNSRegistrar.reclaimDomain()` */ event DomainReclaimed( bytes32 indexed domainHash, diff --git a/contracts/distribution/ZNSPriceOracle.sol b/contracts/distribution/ZNSPriceOracle.sol index fd1f75c0d..11b5ced88 100644 --- a/contracts/distribution/ZNSPriceOracle.sol +++ b/contracts/distribution/ZNSPriceOracle.sol @@ -14,27 +14,33 @@ import { AccessControlled } from "../access/AccessControlled.sol"; contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { using StringUtils for string; + /** + * @notice Value used as a basis for percentage calculations, + * since Solidity does not support fractions. + */ uint256 public constant PERCENTAGE_BASIS = 10000; /** * @notice Struct for each configurable price variable * that participates in the price calculation. + * @dev See [IZNSPriceOracle.md](./IZNSPriceOracle.md) for more details. */ DomainPriceConfig public rootDomainPriceConfig; /** * @notice The registration fee value in percentage as basis points (parts per 10,000) * so the 2% value would be represented as 200. - * See {getRegistrationFee} for the actual fee calc process. + * See [getRegistrationFee](#getregistrationfee) for the actual fee calc process. */ uint256 public feePercentage; /** * @notice Proxy initializer to set the initial state of the contract after deployment. - * @dev Note the for DomainPriceConfig we set each value individually and calling + * Only ADMIN can call this function. + * @dev > Note the for DomainPriceConfig we set each value individually and calling * 2 important functions that validate all of the config's values against the formula: - * - {setPrecisionMultiplier()} to validate precision multiplier - * - {_validateConfig()} to validate the whole config in order to avoid price spikes + * - `setPrecisionMultiplier()` to validate precision multiplier + * - `_validateConfig()` to validate the whole config in order to avoid price spikes * @param accessController_ the address of the ZNSAccessController contract. * @param priceConfig_ a number of variables that participate in the price calculation. * @param regFeePercentage_ the registration fee value in percentage as basis points (parts per 10,000) @@ -80,6 +86,7 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { /** * @notice Get the registration fee amount in `stakingToken` for a specific domain price + * as `domainPrice * feePercentage / PERCENTAGE_BASIS`. * @param domainPrice The price of the domain */ function getRegistrationFee(uint256 domainPrice) public view override returns (uint256) { @@ -87,9 +94,10 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { } /** - * @notice Setter for {`rootDomainPriceConfig`}. Only ADMIN can call this function. - * @dev Validates the value of the {`precisionMultiplier`} and the whole config in order to avoid price spikes, - * fires {`PriceConfigSet`} event. + * @notice Setter for `rootDomainPriceConfig`. Only ADMIN can call this function. + * @dev Validates the value of the `precisionMultiplier` and the whole config in order to avoid price spikes, + * fires `PriceConfigSet` event. + * Only ADMIN can call this function. * @param priceConfig The new price config to set */ function setPriceConfig(DomainPriceConfig calldata priceConfig) external override onlyAdmin { @@ -112,8 +120,9 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { /** * @notice Sets the max price for domains. Validates the config with the new price. - * Fires {`MaxPriceSet`} event. - * > !!! `maxPrice` can be set to 0 to make all domains free! + * Fires `MaxPriceSet` event. + * Only ADMIN can call this function. + * > `maxPrice` can be set to 0 to make all domains free! * @param maxPrice The maximum price to set in $ZERO */ function setMaxPrice( @@ -128,7 +137,8 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { /** * @notice Sets the minimum price for domains. Validates the config with the new price. - * Fires {`MinPriceSet`} event. + * Fires `MinPriceSet` event. + * Only ADMIN can call this function. * @param minPrice The minimum price to set in $ZERO */ function setMinPrice( @@ -144,8 +154,9 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { /** * @notice Set the value of the domain name length boundary where the `maxPrice` applies * e.g. A value of '5' means all domains <= 5 in length cost the `maxPrice` price - * Validates the config with the new length. Fires {`BaseLengthSet`} event. - * > !!! `baseLength` can be set to 0 to make all domains cost `maxPrice`! + * Validates the config with the new length. Fires `BaseLengthSet` event. + * Only ADMIN can call this function. + * > `baseLength` can be set to 0 to make all domains cost `maxPrice`! * > This indicates to the system that we are * > currently in a special phase where we define an exact price for all domains * > e.g. promotions or sales @@ -166,8 +177,9 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { * All domain names (labels) that are longer than this value will cost the fixed price of `minPrice`, * and the pricing formula will not apply to them. * Validates the config with the new length. - * Fires {`MaxLengthSet`} event. - * > !!! `maxLength` can be set to 0 to make all domains cost `minPrice`! + * Fires `MaxLengthSet` event. + * Only ADMIN can call this function. + * > `maxLength` can be set to 0 to make all domains cost `minPrice`! * @param length The maximum length to set */ function setMaxLength( @@ -182,12 +194,14 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { /** * @notice Sets the precision multiplier for the price calculation. - * @param multiplier This should be picked based on the number of token decimals + * Multiplier This should be picked based on the number of token decimals * to calculate properly. * e.g. if we use a token with 18 decimals, and want precision of 2, - * our precision multiplier will be equal to 10^(18 - 2) = 10^16 - * @dev Multiplier should be less or equal to 10^18 and greater than 0! - * Fires {`PrecisionMultiplierSet`} event. + * our precision multiplier will be equal to `10^(18 - 2) = 10^16` + * Fires `PrecisionMultiplierSet` event. + * Only ADMIN can call this function. + * > Multiplier should be less or equal to 10^18 and greater than 0! + * @param multiplier The multiplier to set */ function setPrecisionMultiplier( uint256 multiplier @@ -201,8 +215,9 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { /** * @notice Sets the fee percentage for domain registration. - * @dev Fee percentage is set according to the basis of 10000, outlined in {`PERCENTAGE_BASIS`}. - * Fires {`FeePercentageSet`} event. + * @dev Fee percentage is set according to the basis of 10000, outlined in ``PERCENTAGE_BASIS``. + * Fires ``FeePercentageSet`` event. + * Only ADMIN can call this function. * @param regFeePercentage The fee percentage to set */ function setRegistrationFeePercentage(uint256 regFeePercentage) @@ -216,7 +231,7 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { /** * @notice Sets the access controller for the contract. * Only ADMIN can call this function. - * Fires {`AccessControllerSet`} event. + * Fires `AccessControllerSet` event. * @param accessController_ The address of the new access controller */ function setAccessController(address accessController_) @@ -234,7 +249,7 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { } /** - * @notice Internal function to cakculate price based on the config set, + * @notice Internal function to calculate price based on the config set, * and the length of the domain label. * @dev Before we calculate the price, 3 different cases are possible: * 1. `baseLength` is 0, which means we are returning `maxPrice` as a specific price for all domains @@ -244,8 +259,8 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { * The formula itself creates an asymptotic curve that decreases in pricing based on domain name length, * base length and max price, the result is divided by the precision multiplier to remove numbers beyond * what we care about, then multiplied by the same precision multiplier to get the actual value - * with truncated values past precision. So having a value of 15.235234324234512365 * 10^18 - * with precision 2 would give us 15.230000000000000000 * 10^18 + * with truncated values past precision. So having a value of `15.235234324234512365 * 10^18` + * with precision `2` would give us `15.230000000000000000 * 10^18` * @param length The length of the domain name */ function _getPrice( @@ -265,6 +280,13 @@ contract ZNSPriceOracle is AccessControlled, UUPSUpgradeable, IZNSPriceOracle { / config.precisionMultiplier * config.precisionMultiplier; } + /** + * @notice Internal function called every time we set props of `rootDomainPriceConfig` + * to make sure that values being set can not disrupt the price curve or zero out prices + * for domains. If this validation fails, function will revert. + * @dev We are checking here for possible price spike at `maxLength` + * which can occur if some of the config values are not properly chosen and set. + */ function _validateConfig() internal view { uint256 prevToMinPrice = _getPrice(rootDomainPriceConfig.maxLength - 1); require( diff --git a/contracts/distribution/ZNSRegistrar.sol b/contracts/distribution/ZNSRegistrar.sol index f9eca7ff0..71dee833b 100644 --- a/contracts/distribution/ZNSRegistrar.sol +++ b/contracts/distribution/ZNSRegistrar.sol @@ -79,11 +79,11 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { * Registers a new domain such as `0://wilder`. * Gets domain hash as a keccak256 hash of the domain label string casted to bytes32, * checks existence of the domain in the registry and reverts if it exists. - * Calls ZNSTreasury to do the staking part, gets `tokenId` for the new token to be minted - * as domain hash casted to uint256, mints the token and sets the domain data in the {ZNSRegistry} - * and, possibly, {ZNSAddressResolver}. Emits a {DomainRegistered} event. + * Calls `ZNSTreasury` to do the staking part, gets `tokenId` for the new token to be minted + * as domain hash casted to uint256, mints the token and sets the domain data in the `ZNSRegistry` + * and, possibly, `ZNSAddressResolver`. Emits a `DomainRegistered` event. * @param name Name (label) of the domain to register - * @param domainAddress Address for the {ZNSAddressResolver} to return when requested (optional, send 0x0 if not needed) + * @param domainAddress Address for the `ZNSAddressResolver` to return when requested (optional, send 0x0 if not needed) */ function registerDomain( string calldata name, @@ -126,18 +126,18 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { /** * @notice This function is the main entry point for the Revoke flow. * Revokes a domain such as `0://wilder`. - * Gets `tokenId` from casted domain hash to uint256, calls {ZNSDomainToken} to burn the token, - * deletes the domain data from the {ZNSRegistry} and calls {ZNSTreasury} to unstake and withdraw funds - * user staked for the domain. Emits a {DomainRevoked} event. - * @dev Note that we are not clearing the data in {ZNSAddressResolver} as it is considered not necessary + * Gets `tokenId` from casted domain hash to uint256, calls `ZNSDomainToken` to burn the token, + * deletes the domain data from the `ZNSRegistry` and calls `ZNSTreasury` to unstake and withdraw funds + * user staked for the domain. Emits a `DomainRevoked` event. + * @dev > Note that we are not clearing the data in `ZNSAddressResolver` as it is considered not necessary * since none other contracts will have the domain data on them. - * If we are not clearing {ZNSAddressResolver} state slots, we are making the next Register transaction + * If we are not clearing `ZNSAddressResolver` state slots, we are making the next Register transaction * for the same name cheaper, since SSTORE on a non-zero slot costs 5k gas, while SSTORE on a zero slot costs 20k gas. - * If a user wants to clear his data from {ZNSAddressResolver}, he can call {ZNSAddressResolver} directly himself - * BEFORE he calls to revoke, otherwise, {ZNSRegistry} owner check will fail, since the owner there + * If a user wants to clear his data from `ZNSAddressResolver`, he can call `ZNSAddressResolver` directly himself + * BEFORE he calls to revoke, otherwise, `ZNSRegistry` owner check will fail, since the owner there * will be 0x0 address. * Also note that in order to Revoke, a caller has to be the owner of both: - * Name (in {ZNSRegistry}) and Token (in {ZNSDomainToken}). + * Name (in `ZNSRegistry`) and Token (in `ZNSDomainToken`). * @param domainHash Hash of the domain to revoke */ function revokeDomain(bytes32 domainHash) @@ -160,8 +160,9 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { * This is used for different types of ownership transfers, such as: * - domain sale - a user will sell the Token, then the new owner has to call this function to reclaim the Name * - domain transfer - a user will transfer the Token, then the new owner has to call this function to reclaim the Name + * * A user needs to only be the owner of the Token to be able to Reclaim. - * Updates the domain owner in the {ZNSRegistry} to the owner of the token and emits a {DomainReclaimed} event. + * Updates the domain owner in the `ZNSRegistry` to the owner of the token and emits a `DomainReclaimed` event. */ function reclaimDomain(bytes32 domainHash) external @@ -174,9 +175,9 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { } /** - * @notice Setter function for the {ZNSRegistry} address in state. - * Only ADMIN in {ZNSAccessController} can call this function. - * @param registry_ Address of the {ZNSRegistry} contract + * @notice Setter function for the `ZNSRegistry` address in state. + * Only ADMIN in `ZNSAccessController` can call this function. + * @param registry_ Address of the `ZNSRegistry` contract */ function setRegistry(address registry_) public override onlyAdmin { require( @@ -189,9 +190,9 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { } /** - * @notice Setter function for the {ZNSTreasury} address in state. - * Only ADMIN in {ZNSAccessController} can call this function. - * @param treasury_ Address of the {ZNSTreasury} contract + * @notice Setter function for the `ZNSTreasury` address in state. + * Only ADMIN in `ZNSAccessController` can call this function. + * @param treasury_ Address of the `ZNSTreasury` contract */ function setTreasury(address treasury_) public override onlyAdmin { require( @@ -204,9 +205,9 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { } /** - * @notice Setter function for the {ZNSDomainToken} address in state. - * Only ADMIN in {ZNSAccessController} can call this function. - * @param domainToken_ Address of the {ZNSDomainToken} contract + * @notice Setter function for the `ZNSDomainToken` address in state. + * Only ADMIN in `ZNSAccessController` can call this function. + * @param domainToken_ Address of the `ZNSDomainToken` contract */ function setDomainToken(address domainToken_) public override onlyAdmin { require( @@ -219,9 +220,9 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { } /** - * @notice Setter function for the {ZNSAddressResolver} address in state. - * Only ADMIN in {ZNSAccessController} can call this function. - * @param addressResolver_ Address of the {ZNSAddressResolver} contract + * @notice Setter function for the `ZNSAddressResolver` address in state. + * Only ADMIN in `ZNSAccessController` can call this function. + * @param addressResolver_ Address of the `ZNSAddressResolver` contract */ function setAddressResolver(address addressResolver_) public override onlyAdmin { require( @@ -234,9 +235,9 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { } /** - * @notice Setter function for the {ZNSAccessController} address in state. - * Only ADMIN in {ZNSAccessController} can call this function. - * @param accessController_ Address of the {ZNSAccessController} contract + * @notice Setter function for the `ZNSAccessController` address in state. + * Only ADMIN in `ZNSAccessController` can call this function. + * @param accessController_ Address of the `ZNSAccessController` contract */ function setAccessController(address accessController_) external @@ -247,7 +248,7 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { } /** - * @notice Getter function for the {ZNSAccessController} address in state. + * @notice Getter function for the `ZNSAccessController` address in state. */ function getAccessController() external view override(AccessControlled, IZNSRegistrar) returns (address) { return address(accessController); @@ -256,8 +257,8 @@ contract ZNSRegistrar is AccessControlled, UUPSUpgradeable, IZNSRegistrar { /** * @notice Set domain data appropriately for a newly registered domain * If no domain address is given, only the domain owner is set, otherwise - * {ZNSAddressResolver} is called to assign an address to the newly registered domain. - * If the `domainAddress` is not provided upon registration, a user can call {ZNSAddressResolver.setAddress} + * `ZNSAddressResolver` is called to assign an address to the newly registered domain. + * If the `domainAddress` is not provided upon registration, a user can call `ZNSAddressResolver.setAddress` * to set the address themselves. * @param domainHash The domain name hash * @param owner The owner of the domain diff --git a/contracts/distribution/ZNSTreasury.sol b/contracts/distribution/ZNSTreasury.sol index a9c2af0c2..142aaa27d 100644 --- a/contracts/distribution/ZNSTreasury.sol +++ b/contracts/distribution/ZNSTreasury.sol @@ -10,16 +10,16 @@ import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.s /** - * @title Contract responsible for all staking operations in ZNS. - * @notice This contract it called by {ZNSRegistrar} every time a staking operation is needed. + * @title Contract responsible for all staking operations in ZNS and communication with `ZNSPriceOracle`. + * @notice This contract it called by `ZNSRegistrar` every time a staking operation is needed. * It stores all data regarding user stakes for domains, and it's also the only contract - * that is aware of the {ZNSPriceOracle} which it uses to get pricing data for domains. + * that is aware of the `ZNSPriceOracle` which it uses to get pricing data for domains. */ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { using SafeERC20 for IERC20; /** - * @notice The address of the {ZNSPriceOracle} contract. + * @notice The address of the `ZNSPriceOracle` contract. */ IZNSPriceOracle public priceOracle; @@ -36,16 +36,16 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { /** * @notice The main mapping of the contract. It stores the amount staked for each domain * which is mapped to the domain hash. - * Note that there is no address to which the stake is tied to. Instead, the owner data from {ZNSRegistry} + * Note that there is no address to which the stake is tied to. Instead, the owner data from `ZNSRegistry` * is used to identify a user who owns the stake. So the staking data is tied to the owner of the Name. * This should be taken into account, since any transfer of the Token to another address, * and the system, allowing them to Reclaim the Name, will also allow them to withdraw the stake. - * > Stake is owned by the owner of the Name in {ZNSRegistry}! + * > Stake is owned by the owner of the Name in `ZNSRegistry`! */ mapping(bytes32 domainHash => uint256 amountStaked) public stakedForDomain; /** - * @notice Modifier used for functions that are only allowed to be called by the {ZNSRegistrar} + * @notice Modifier used for functions that are only allowed to be called by the `ZNSRegistrar` * or any other address that has REGISTRAR_ROLE. */ modifier onlyRegistrar { @@ -54,13 +54,13 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { } /** - * @notice {ZNSTreasury} proxy state initializer. Note that setter functions are used + * @notice `ZNSTreasury` proxy state initializer. Note that setter functions are used * instead of direct state variable assignments in order to use proper Access Control - * at initialization. Only ADMIN in {ZNSAccessController} can call this function. - * For this also, it is important that {ZNSAccessController} is deployed and initialized with role data + * at initialization. Only ADMIN in `ZNSAccessController` can call this function. + * For this also, it is important that `ZNSAccessController` is deployed and initialized with role data * before this contract is deployed. - * @param accessController_ The address of the {ZNSAccessController} contract. - * @param priceOracle_ The address of the {ZNSPriceOracle} contract. + * @param accessController_ The address of the `ZNSAccessController` contract. + * @param priceOracle_ The address of the `ZNSPriceOracle` contract. * @param stakingToken_ The address of the staking token (currently $ZERO). * @param zeroVault_ The address of the Zero Vault - the wallet or contract to collect all the registration fees. */ @@ -77,16 +77,17 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { } /** - * @notice Deposits the stake for a domain. This function is called by {ZNSRegistrar} + * @notice Deposits the stake for a domain. This function is called by `ZNSRegistrar` * when a user wants to Register a domain. It transfers the stake amount and the registration fee * to the contract from the user, and records the staked amount for the domain. * Note that a user has to approve the correct amount of `domainPrice + registrationFee` * for this function to not revert. - * Calls {ZNSPriceOracle} to get the price for the domain name based on it's length, + * + * Calls `ZNSPriceOracle` to get the price for the domain name based on it's length, * and to get a proper `registrationFee` as a percentage of the price. * In order to avoid needing 2 different approvals, it withdraws `domainPrice + registrationFee` * to this contract and then transfers the `registrationFee` to the Zero Vault. - * Sets the `stakedForDomain` mapping for the domain to the `stakeAmount` and emits a {StakeDeposited} event. + * Sets the `stakedForDomain` mapping for the domain to the `stakeAmount` and emits a `StakeDeposited` event. * @param domainHash The hash of the domain for which the stake is being deposited. * @param domainName The name of the domain for which the stake is being deposited. * @param depositor The address of the user who is depositing the stake. @@ -123,10 +124,10 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { } /** - * @notice Withdraws the stake for a domain. This function is called by {ZNSRegistrar} + * @notice Withdraws the stake for a domain. This function is called by `ZNSRegistrar` * when a user wants to Revoke a domain. It transfers the stake amount from the contract back to the user, * and deletes the staked amount for the domain in state. - * Emits a {StakeWithdrawn} event. + * Emits a `StakeWithdrawn` event. * Since we are clearing a slot in storage, gas refund from this operation makes Revoke transactions cheaper. * @param domainHash The hash of the domain for which the stake is being withdrawn. * @param owner The address of the user who is withdrawing the stake. @@ -145,10 +146,9 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { } /** - * @notice Setter function for the {zeroVault} state variable. - * Only ADMIN in {ZNSAccessController} can call this function. - * @param zeroVault_ The address of the new Zero Vault - - * - the wallet or contract to collect all the registration fees. + * @notice Setter function for the `zeroVault` state variable. + * Only ADMIN in `ZNSAccessController` can call this function. + * @param zeroVault_ The address of the new Zero Vault - the wallet or contract to collect all the fees. */ function setZeroVaultAddress(address zeroVault_) public override onlyAdmin { require(zeroVault_ != address(0), "ZNSTreasury: zeroVault passed as 0x0 address"); @@ -158,9 +158,9 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { } /** - * @notice Setter function for the {priceOracle} state variable. - * Only ADMIN in {ZNSAccessController} can call this function. - * @param priceOracle_ The address of the new {ZNSPriceOracle} contract. + * @notice Setter function for the `priceOracle` state variable. + * Only ADMIN in `ZNSAccessController` can call this function. + * @param priceOracle_ The address of the new `ZNSPriceOracle` contract. */ function setPriceOracle(address priceOracle_) public override onlyAdmin { require( @@ -173,8 +173,8 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { } /** - * @notice Setter function for the {stakingToken} state variable. - * Only ADMIN in {ZNSAccessController} can call this function. + * @notice Setter function for the `stakingToken` state variable. + * Only ADMIN in `ZNSAccessController` can call this function. * @param stakingToken_ The address of the new staking token (currently $ZERO). */ function setStakingToken(address stakingToken_) public override onlyAdmin { @@ -185,9 +185,9 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { } /** - * @notice Setter function for the {accessController} state variable. - * Only ADMIN in {ZNSAccessController} can call this function. - * @param accessController_ The address of the new {ZNSAccessController} contract. + * @notice Setter function for the `accessController` state variable. + * Only ADMIN in `ZNSAccessController` can call this function. + * @param accessController_ The address of the new `ZNSAccessController` contract. */ function setAccessController(address accessController_) public @@ -198,7 +198,7 @@ contract ZNSTreasury is AccessControlled, UUPSUpgradeable, IZNSTreasury { } /** - * @notice Getter function for the {accessController} state variable inherited from {AccessControlled}. + * @notice Getter function for the `accessController` state variable inherited from `AccessControlled`. */ function getAccessController() external view override(AccessControlled, IZNSTreasury) returns (address) { return address(accessController); diff --git a/contracts/registry/IZNSRegistry.sol b/contracts/registry/IZNSRegistry.sol index 0a7019bf3..12e34e2b6 100644 --- a/contracts/registry/IZNSRegistry.sol +++ b/contracts/registry/IZNSRegistry.sol @@ -2,23 +2,24 @@ pragma solidity 0.8.18; +/** + * @notice The `DomainRecord` struct is meant to hold relevant information + * about a domain, such as its owner and resolver. + * - `owner` (address): The owner of the domain (also called the owner of the Name). + * - `resolver` (address): The address of the Resolver contract where this domain's source records are stored. + * + * In the future, there will be multiple Resolver contracts that support different types of sources. + * Currently, only the `ZNSAddressResolver` is implemented. + */ interface IZNSRegistry { - /** - * @notice The `DomainRecord` struct is meant to hold relevant information - * about a domain, such as its owner and resolver. - * @param owner The owner of the domain (also called the owner of the Name). - * @param resolver The address of the Rsolver contract where this domain's source records are stored. - * In the future, there will be multiple Resolver contracts that support different types of sources. - * Currently, only the {ZNSAddressResolver} is implemented. - */ struct DomainRecord { address owner; address resolver; } /** - * @notice Emits when ownership of a domain is modified in {`records`} + * @notice Emits when ownership of a domain is modified in ``records`` * @param domainHash the hash of a domain's name * @param owner The new domain owner */ @@ -28,7 +29,7 @@ interface IZNSRegistry { ); /** - * @notice Emit when a domain's resolver is modified in {`records`} + * @notice Emit when a domain's resolver is modified in ``records`` * @param domainHash the hash of a domain's name * @param resolver The new resolver address */ diff --git a/contracts/registry/ZNSRegistry.sol b/contracts/registry/ZNSRegistry.sol index 1b1b5bd0c..1f7c89c4f 100644 --- a/contracts/registry/ZNSRegistry.sol +++ b/contracts/registry/ZNSRegistry.sol @@ -9,14 +9,14 @@ import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils /** * @title The main reference data contract in ZNS. Also, often, the last contract * in the call chain of many operations where the most crucial Name owner data settles. - * Owner of a domain in this contract also serves as the owner of the stake in {ZNSTreasury}. + * Owner of a domain in this contract also serves as the owner of the stake in `ZNSTreasury`. */ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** - * @notice Mapping of `domainHash` to `DomainRecord` struct to hold information + * @notice Mapping of `domainHash` to [DomainRecord](./IZNSRegistry.md#iznsregistry) struct to hold information * about each domain */ - mapping(bytes32 domainHash => DomainRecord domainRecord) private records; + mapping(bytes32 domainHash => DomainRecord domainRecord) internal records; /** * @notice Mapping of `owner` => `operator` => `bool` to show accounts that @@ -25,7 +25,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { * the resolver or resolver records. */ mapping(address owner => mapping(address operator => bool isOperator)) - private operators; + internal operators; /** * @notice Revert if `msg.sender` is not the owner or an operator allowed by the owner @@ -52,7 +52,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Revert if `msg.sender` is not the {ZNSRegistrar} contract + * @notice Revert if `msg.sender` is not the `ZNSRegistrar` contract * or an address holding REGISTRAR_ROLE. */ modifier onlyRegistrar { @@ -61,8 +61,8 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Initializer for the {ZNSRegistry} proxy. - * @param accessController_ The address of the AccessController contract + * @notice Initializer for the `ZNSRegistry` proxy. + * @param accessController_ The address of the `ZNSAccessController` contract */ function initialize(address accessController_) public override initializer { _setAccessController(accessController_); @@ -92,7 +92,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** * @notice Set an `operator` as `allowed` to give or remove permissions for ALL * domains owned by the owner `msg.sender`. - * Emits an {OperatorPermissionSet} event. + * Emits an `OperatorPermissionSet` event. * @param operator The account to allow/disallow * @param allowed The true/false value to set */ @@ -103,7 +103,9 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Gets a record for a domain (owner, resolver). + * @notice Gets a record for a domain (owner, resolver) from the internal mapping + * `records`. `records` maps a domain hash to a + * [DomainRecord](./IZNSRegistry.md#iznsregistry) struct. * @param domainHash the hash of a domain's name */ function getDomainRecord( @@ -133,12 +135,12 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { } /** - * @notice Creates a new domain record. Only callable by the {ZNSRegistrar} + * @notice Creates a new domain record. Only callable by the `ZNSRegistrar` * or an address that has REGISTRAR_ROLE. This is one of the last calls in the Register - * flow that starts from {ZNSRegistrar.registerDomain()}. Calls 2 internal functions to set + * flow that starts from `ZNSRegistrar.registerDomain()`. Calls 2 internal functions to set * the owner and resolver of the domain separately. * Can be called with `resolver` param as 0, which will exclude the call to set resolver. - * Emits {DomainOwnerSet} and possibly {DomainResolverSet} events. + * Emits `DomainOwnerSet` and possibly `DomainResolverSet` events. * @param domainHash The hash of the domain name * @param owner The owner of the new domain * @param resolver The resolver of the new domain, can be 0 @@ -159,10 +161,10 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** * @notice Updates an existing domain record's owner and resolver. * Note that this function can ONLY be called by the Name owner of the domain. - * This is NOT used by the {ZNSRegistrar} contract and serves as a user facing function + * This is NOT used by the `ZNSRegistrar` contract and serves as a user facing function * for the owners of existing domains to change their data on this contract. A domain - * `operator` can NOT call this, since it changes the owner. - * Emits {DomainOwnerSet} and {DomainResolverSet} events. + * `operator` can NOT call this, since he is not allowed to change the owner. + * Emits `DomainOwnerSet` and `DomainResolverSet` events. * @param domainHash The hash of the domain * @param owner The owner or an allowed operator of that domain * @param resolver The resolver for the domain @@ -179,8 +181,8 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** * @notice Updates the owner of an existing domain. Can be called by either the Name owner - * on this contract OR the {ZNSRegistrar} contract as part of the Reclaim flow - * that starts at {ZNSRegistrar.reclaim()}. Emits an {DomainOwnerSet} event. + * on this contract OR the `ZNSRegistrar` contract as part of the Reclaim flow + * that starts at `ZNSRegistrar.reclaim()`. Emits an `DomainOwnerSet` event. * @param domainHash the hash of a domain's name * @param owner The account to transfer ownership to */ @@ -214,8 +216,8 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** * @notice Deletes a domain's record from this contract's state. - * This can ONLY be called by the {ZNSRegistrar} contract as part of the Revoke flow - * or any address holding the `REGISTRAR_ROLE`. Emits a {DomainRecordDeleted} event. + * This can ONLY be called by the `ZNSRegistrar` contract as part of the Revoke flow + * or any address holding the `REGISTRAR_ROLE`. Emits a `DomainRecordDeleted` event. * @param domainHash The hash of the domain name */ function deleteRecord(bytes32 domainHash) external override onlyRegistrar { @@ -252,8 +254,8 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** * @notice Internal function to set a domain's owner in state `records`. * Owner can NOT be set to 0, since we use delete operation as part of the - * {`deleteRecord()`} function. - * Emits a {DomainOwnerSet} event. + * ``deleteRecord()`` function. + * Emits a `DomainOwnerSet` event. * @param domainHash the hash of a domain's name * @param owner The owner to set */ @@ -265,7 +267,7 @@ contract ZNSRegistry is AccessControlled, UUPSUpgradeable, IZNSRegistry { /** * @notice Internal function to set a domain's resolver in state `records`. - * Resolver can be set to 0, since we allow partial domain data. Emits a {DomainResolverSet} event. + * Resolver can be set to 0, since we allow partial domain data. Emits a `DomainResolverSet` event. * @param domainHash the hash of a domain's name * @param resolver The resolver to set */ diff --git a/contracts/resolver/ZNSAddressResolver.sol b/contracts/resolver/ZNSAddressResolver.sol index 9b0be4603..97f6c15aa 100644 --- a/contracts/resolver/ZNSAddressResolver.sol +++ b/contracts/resolver/ZNSAddressResolver.sol @@ -15,7 +15,7 @@ import { AccessControlled } from "../access/AccessControlled.sol"; */ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAddressResolver { /** - * @notice Address of the {ZNSRegistry} contract that holds all crucial data + * @notice Address of the `ZNSRegistry` contract that holds all crucial data * for every domain in the system */ IZNSRegistry public registry; @@ -25,14 +25,14 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd * to Ethereum wallets or contracts registered in ZNS. */ mapping(bytes32 domainHash => address resolvedAddress) - private domainAddresses; + internal domainAddresses; /** - * @notice Initializer for the {ZNSAddressResolver} proxy. + * @notice Initializer for the `ZNSAddressResolver` proxy. * Note that setter functions are used instead of direct state variable assignments * to use access control at deploy time. Only ADMIN can call this function. - * @param accessController_ The address of the {ZNSAccessController} contract - * @param registry_ The address of the {ZNSRegistry} contract + * @param accessController_ The address of the `ZNSAccessController` contract + * @param registry_ The address of the `ZNSRegistry` contract */ function initialize(address accessController_, address registry_) public override initializer { _setAccessController(accessController_); @@ -51,9 +51,9 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd /** * @dev Sets the address for a domain name hash. This function can only - * be called by the owner, operator of the domain OR by the {ZNSRegistrar} + * be called by the owner, operator of the domain OR by the `ZNSRegistrar` * as a part of the Register flow. - * Emits an {AddressSet} event. + * Emits an `AddressSet` event. * @param domainHash The identifying hash of a domain's name * @param newAddress The new address to map the domain to */ @@ -95,10 +95,10 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd } /** - * @dev Sets the address of the {ZNSRegistry} contract that holds all crucial data + * @dev Sets the address of the `ZNSRegistry` contract that holds all crucial data * for every domain in the system. This function can only be called by the ADMIN. - * Emits a {RegistrySet} event. - * @param _registry The address of the {ZNSRegistry} contract + * Emits a `RegistrySet` event. + * @param _registry The address of the `ZNSRegistry` contract */ function setRegistry(address _registry) public override onlyAdmin { require( @@ -111,9 +111,9 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd } /** - * @dev Sets the address of the {ZNSAccessController} contract. - * Can only be called by the ADMIN. Emits an {AccessControllerSet} event. - * @param accessController The address of the {ZNSAccessController} contract + * @dev Sets the address of the `ZNSAccessController` contract. + * Can only be called by the ADMIN. Emits an `AccessControllerSet` event. + * @param accessController The address of the `ZNSAccessController` contract */ function setAccessController( address accessController @@ -122,7 +122,7 @@ contract ZNSAddressResolver is AccessControlled, UUPSUpgradeable, ERC165, IZNSAd } /** - * @dev Returns the address of the {ZNSAccessController} contract saved in state. + * @dev Returns the address of the `ZNSAccessController` contract saved in state. */ function getAccessController() external view override(AccessControlled, IZNSAddressResolver) returns (address) { return address(accessController); diff --git a/contracts/token/ZNSDomainToken.sol b/contracts/token/ZNSDomainToken.sol index 94b35d243..4a03428c0 100644 --- a/contracts/token/ZNSDomainToken.sol +++ b/contracts/token/ZNSDomainToken.sol @@ -11,12 +11,12 @@ import { AccessControlled } from "../access/AccessControlled.sol"; * @title A contract for tokenizing domains under ZNS. Every domain in ZNS has a corresponding token * minted at Register time. This token is also an NFT that is fully ERC-721 compliant. * @dev Note that all ZNS related functions on this contract can ONLY be called by either - * the {ZNSRegistrar} contract or any address holding a REGISTRAR_ROLE. + * the `ZNSRegistrar` contract or any address holding a REGISTRAR_ROLE. */ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, IZNSDomainToken { /** - * @notice Modifier used in functions to be called only by the {ZNSRegistrar} contract + * @notice Modifier used in functions to be called only by the `ZNSRegistrar` contract * or address with REGISTRAR_ROLE. */ modifier onlyRegistrar { @@ -25,9 +25,9 @@ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, } /** - * @notice Initializer for the {ZNSDomainToken} proxy. + * @notice Initializer for the `ZNSDomainToken` proxy. * Note that this function does NOT have role protection enforced! - * @param accessController_ The address of the {ZNSAccessController} contract + * @param accessController_ The address of the `ZNSAccessController` contract * @param name_ The name of the token * @param symbol_ The symbol of the token */ @@ -42,10 +42,10 @@ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, /** * @notice Mints a token with a specified tokenId, using _safeMint, and sends it to the given address. - * Used ONLY as a part of the Register flow that starts from {`ZNSRegistrar.registerDomain()`}! + * Used ONLY as a part of the Register flow that starts from ``ZNSRegistrar.registerDomain()``! + * > TokenId is created as a hash of the domain name casted to uint256. * @param to The address that will recieve the newly minted domain token (new domain owner) - * @param tokenId The TokenId that the caller wishes to mint/register. TokenId is created - * as a hash of the domain name casted to uint256. + * @param tokenId The TokenId that the caller wishes to mint/register. */ function register(address to, uint256 tokenId) external override onlyRegistrar { _safeMint(to, tokenId); @@ -53,7 +53,7 @@ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, /** * @notice Burns the token with the specified tokenId. - * Used ONLY as a part of the Revoke flow that starts from {`ZNSRegistrar.revokeDomain()`}! + * Used ONLY as a part of the Revoke flow that starts from ``ZNSRegistrar.revokeDomain()``! * @param tokenId The tokenId (as `uint256(domainHash)`) that the caller wishes to burn/revoke */ function revoke(uint256 tokenId) external override onlyRegistrar { @@ -61,9 +61,9 @@ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, } /** - * @dev Sets the address of the {ZNSAccessController} contract. - * Can only be called by the ADMIN. Emits an {AccessControllerSet} event. - * @param accessController_ The address of the {ZNSAccessController} contract + * @dev Sets the address of the `ZNSAccessController` contract. + * Can only be called by the ADMIN. Emits an `AccessControllerSet` event. + * @param accessController_ The address of the `ZNSAccessController` contract */ function setAccessController(address accessController_) external @@ -74,7 +74,7 @@ contract ZNSDomainToken is AccessControlled, UUPSUpgradeable, ERC721Upgradeable, } /** - * @dev Returns the address of the {ZNSAccessController} contract saved in state. + * @dev Returns the address of the `ZNSAccessController` contract saved in state. */ function getAccessController() external view override(AccessControlled, IZNSDomainToken) returns (address) { return address(accessController); From ddfc12c172abd179f1676b02c0abe924308b93ea Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 17:31:59 -0700 Subject: [PATCH 16/20] generate docs in .md --- docs/contracts/access/AccessControlled.md | 94 ++++ docs/contracts/access/IZNSAccessController.md | 94 ++++ docs/contracts/access/ZNSAccessController.md | 128 ++++++ docs/contracts/access/ZNSRoles.md | 61 +++ .../contracts/distribution/IZNSPriceOracle.md | 306 +++++++++++++ docs/contracts/distribution/IZNSRegistrar.md | 260 +++++++++++ docs/contracts/distribution/IZNSTreasury.md | 197 +++++++++ docs/contracts/distribution/ZNSPriceOracle.md | 354 +++++++++++++++ docs/contracts/distribution/ZNSRegistrar.md | 329 ++++++++++++++ docs/contracts/distribution/ZNSTreasury.md | 256 +++++++++++ docs/contracts/registry/IZNSRegistry.md | 346 +++++++++++++++ docs/contracts/registry/ZNSRegistry.md | 417 ++++++++++++++++++ .../contracts/resolver/IZNSAddressResolver.md | 169 +++++++ docs/contracts/resolver/ZNSAddressResolver.md | 199 +++++++++ docs/contracts/token/IZNSDomainToken.md | 70 +++ docs/contracts/token/ZNSDomainToken.md | 134 ++++++ 16 files changed, 3414 insertions(+) create mode 100644 docs/contracts/access/AccessControlled.md create mode 100644 docs/contracts/access/IZNSAccessController.md create mode 100644 docs/contracts/access/ZNSAccessController.md create mode 100644 docs/contracts/access/ZNSRoles.md create mode 100644 docs/contracts/distribution/IZNSPriceOracle.md create mode 100644 docs/contracts/distribution/IZNSRegistrar.md create mode 100644 docs/contracts/distribution/IZNSTreasury.md create mode 100644 docs/contracts/distribution/ZNSPriceOracle.md create mode 100644 docs/contracts/distribution/ZNSRegistrar.md create mode 100644 docs/contracts/distribution/ZNSTreasury.md create mode 100644 docs/contracts/registry/IZNSRegistry.md create mode 100644 docs/contracts/registry/ZNSRegistry.md create mode 100644 docs/contracts/resolver/IZNSAddressResolver.md create mode 100644 docs/contracts/resolver/ZNSAddressResolver.md create mode 100644 docs/contracts/token/IZNSDomainToken.md create mode 100644 docs/contracts/token/ZNSDomainToken.md diff --git a/docs/contracts/access/AccessControlled.md b/docs/contracts/access/AccessControlled.md new file mode 100644 index 000000000..8bd578960 --- /dev/null +++ b/docs/contracts/access/AccessControlled.md @@ -0,0 +1,94 @@ +## AccessControlled + + +**This abstract contract outlines basic functionality, declares functions +that need to be implemented to provide a deterministic connection to `ZNSAccessController` module.** + + + +In order to connect an arbitrary module to `ZNSAccessController` and it's functionality, +this contract needs to be inherited by the module. + + + +### AccessControllerSet + +```solidity +event AccessControllerSet(address accessController) +``` + + +Emitted when the access controller contract address is set. + + + + +### accessController + +```solidity +contract IZNSAccessController accessController +``` + + +Address of the ZNSAccessController contract. + + + + +### onlyAdmin + +```solidity +modifier onlyAdmin() +``` + + +Modifier to make a function callable only when caller is an admin. +Implemented here to avoid declaring this in every single contract that uses it. + + + + +### getAccessController + +```solidity +function getAccessController() external view virtual returns (address) +``` + + +Virtual function to make sure the getter is always implemented in children, +otherwise we will not be able to read the AC address in children + + + + +### setAccessController + +```solidity +function setAccessController(address _accessController) external virtual +``` + + +Virtual function to make sure the setter is always implemented in children, +otherwise we will not be able to reset the AC address in children + + + + +### _setAccessController + +```solidity +function _setAccessController(address _accessController) internal +``` + + +Internal function to set the access controller address. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| _accessController | address | Address of the ZNSAccessController contract. | + + + diff --git a/docs/contracts/access/IZNSAccessController.md b/docs/contracts/access/IZNSAccessController.md new file mode 100644 index 000000000..a0f9fbb2d --- /dev/null +++ b/docs/contracts/access/IZNSAccessController.md @@ -0,0 +1,94 @@ +## IZNSAccessController + + + + + + + + +### setRoleAdmin + +```solidity +function setRoleAdmin(bytes32 role, bytes32 adminRole) external +``` + + + + + + + +### checkGovernor + +```solidity +function checkGovernor(address account) external view +``` + + + + + + + +### checkAdmin + +```solidity +function checkAdmin(address account) external view +``` + + + + + + + +### checkExecutor + +```solidity +function checkExecutor(address account) external view +``` + + + + + + + +### checkRegistrar + +```solidity +function checkRegistrar(address account) external view +``` + + + + + + + +### isAdmin + +```solidity +function isAdmin(address account) external view returns (bool) +``` + + + + + + + +### isRegistrar + +```solidity +function isRegistrar(address account) external view returns (bool) +``` + + + + + + + + diff --git a/docs/contracts/access/ZNSAccessController.md b/docs/contracts/access/ZNSAccessController.md new file mode 100644 index 000000000..06051610f --- /dev/null +++ b/docs/contracts/access/ZNSAccessController.md @@ -0,0 +1,128 @@ +## ZNSAccessController + + +**The main module for system-wide Access Control.** + + + +ZNS Business Logic Contract access to this module is outlined in `AccessControlled`. +Uses a role-based access control scheme with levels: +- GOVERNOR: The highest rank, assigns Admins, new roles and Role Admins +- ADMIN: The main maintainer role, that gets access to all system functions (managed by Governor) +- EXECUTOR: Can be here to future proof, if we need a new role (managed by Governor) +- REGISTRAR: This role is here specifically for the ZNSRegistrar contract (managed by Admin) + +> This contract is NOT proxied. When new implementation is needed, a new contract will be deployed +and all modules will be updated to use the new address, since they all inherit from `AccessControlled`. + + + +### constructor + +```solidity +constructor(address[] governorAddresses, address[] adminAddresses) public +``` + + + + + + + +### checkGovernor + +```solidity +function checkGovernor(address account) external view +``` + + + + + + + +### checkAdmin + +```solidity +function checkAdmin(address account) external view +``` + + + + + + + +### checkExecutor + +```solidity +function checkExecutor(address account) external view +``` + + + + + + + +### checkRegistrar + +```solidity +function checkRegistrar(address account) external view +``` + + + + + + + +### isAdmin + +```solidity +function isAdmin(address account) external view returns (bool) +``` + + + + + + + +### isRegistrar + +```solidity +function isRegistrar(address account) external view returns (bool) +``` + + + + + + + +### setRoleAdmin + +```solidity +function setRoleAdmin(bytes32 role, bytes32 adminRole) external +``` + + + + + + + +### _grantRoleToMany + +```solidity +function _grantRoleToMany(bytes32 role, address[] addresses) internal +``` + + + + + + + + diff --git a/docs/contracts/access/ZNSRoles.md b/docs/contracts/access/ZNSRoles.md new file mode 100644 index 000000000..5dd9b2061 --- /dev/null +++ b/docs/contracts/access/ZNSRoles.md @@ -0,0 +1,61 @@ +## ZNSRoles + + +**Outlines the roles used in the ZNS system** + + + +> Inherited ONLY by `ZNSAccessController` + + + +### GOVERNOR_ROLE + +```solidity +bytes32 GOVERNOR_ROLE +``` + + +The highest rank, assigns Admins, new roles and Role Admins + + + + +### ADMIN_ROLE + +```solidity +bytes32 ADMIN_ROLE +``` + + +The main maintainer role, that gets access to all system functions + + + + +### EXECUTOR_ROLE + +```solidity +bytes32 EXECUTOR_ROLE +``` + + +Executor can be here to future proof, if we need a new role +so we don't have to upgrade all contracts + + + + +### REGISTRAR_ROLE + +```solidity +bytes32 REGISTRAR_ROLE +``` + + +This role is here specifically for the ZNSRegistrar contract + + + + + diff --git a/docs/contracts/distribution/IZNSPriceOracle.md b/docs/contracts/distribution/IZNSPriceOracle.md new file mode 100644 index 000000000..29f33335c --- /dev/null +++ b/docs/contracts/distribution/IZNSPriceOracle.md @@ -0,0 +1,306 @@ +## IZNSPriceOracle + + + + + +**`DomainPriceConfig` struct properties:** + +- `maxPrice` (uint256): Maximum price for a domain returned at <= `baseLength` +- `minPrice` (uint256): Minimum price for a domain returned at > `maxLength` +- `maxLength` (uint256): Maximum length of a domain name. If the name is longer than this value we return the `minPrice` +- `baseLength` (uint256): Base length of a domain name. If the name is less than or equal to this value we return the `maxPrice` +- `precisionMultiplier` (uint256): The precision multiplier of the price. This multiplier +should be picked based on the number of token decimals to calculate properly. +e.g. if we use a token with 18 decimals, and want precision of 2, +our precision multiplier will be equal 10^18 - 10^2 = 10^16 + + + +### MaxPriceSet + +```solidity +event MaxPriceSet(uint256 price) +``` + + +Emitted when the `maxPrice` is set in `rootDomainPriceConfig` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| price | uint256 | The new maxPrice value | + + +### MinPriceSet + +```solidity +event MinPriceSet(uint256 price) +``` + + +Emitted when the `minPrice` is set in `rootDomainPriceConfig` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| price | uint256 | The new minPrice value | + + +### BaseLengthSet + +```solidity +event BaseLengthSet(uint256 length) +``` + + +Emitted when the `baseLength` is set in `rootDomainPriceConfig` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| length | uint256 | The new baseLength value | + + +### MaxLengthSet + +```solidity +event MaxLengthSet(uint256 length) +``` + + +Emitted when the `maxLength` is set in `rootDomainPriceConfig` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| length | uint256 | The new maxLength value | + + +### PrecisionMultiplierSet + +```solidity +event PrecisionMultiplierSet(uint256 precision) +``` + + +Emitted when the `precisionMultiplier` is set in `rootDomainPriceConfig` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| precision | uint256 | The new precisionMultiplier value | + + +### FeePercentageSet + +```solidity +event FeePercentageSet(uint256 feePercentage) +``` + + +Emitted when the `feePercentage` is set in state + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| feePercentage | uint256 | The new feePercentage value | + + +### PriceConfigSet + +```solidity +event PriceConfigSet(uint256 maxPrice, uint256 minPrice, uint256 maxLength, uint256 baseLength, uint256 precisionMultiplier) +``` + + +Emitted when the full `rootDomainPriceConfig` is set in state + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| maxPrice | uint256 | The new `maxPrice` value | +| minPrice | uint256 | The new `minPrice` value | +| maxLength | uint256 | The new `maxLength` value | +| baseLength | uint256 | The new `baseLength` value | +| precisionMultiplier | uint256 | The new `precisionMultiplier` value | + + +### DomainPriceConfig + + + + + + + + +```solidity +struct DomainPriceConfig { + uint256 maxPrice; + uint256 minPrice; + uint256 maxLength; + uint256 baseLength; + uint256 precisionMultiplier; +} +``` + +### initialize + +```solidity +function initialize(address accessController_, struct IZNSPriceOracle.DomainPriceConfig priceConfig_, uint256 regFeePercentage_) external +``` + + + + + + + +### getPrice + +```solidity +function getPrice(string name) external view returns (uint256 totalPrice, uint256 domainPrice, uint256 fee) +``` + + + + + + + +### getRegistrationFee + +```solidity +function getRegistrationFee(uint256 domainPrice) external view returns (uint256) +``` + + + + + + + +### setPriceConfig + +```solidity +function setPriceConfig(struct IZNSPriceOracle.DomainPriceConfig priceConfig) external +``` + + + + + + + +### setMaxPrice + +```solidity +function setMaxPrice(uint256 maxPrice) external +``` + + + + + + + +### setMinPrice + +```solidity +function setMinPrice(uint256 minPrice) external +``` + + + + + + + +### setBaseLength + +```solidity +function setBaseLength(uint256 length) external +``` + + + + + + + +### setMaxLength + +```solidity +function setMaxLength(uint256 length) external +``` + + + + + + + +### setPrecisionMultiplier + +```solidity +function setPrecisionMultiplier(uint256 multiplier) external +``` + + + + + + + +### setRegistrationFeePercentage + +```solidity +function setRegistrationFeePercentage(uint256 regFeePercentage) external +``` + + + + + + + +### setAccessController + +```solidity +function setAccessController(address accessController) external +``` + + + + + + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + + + + + + + diff --git a/docs/contracts/distribution/IZNSRegistrar.md b/docs/contracts/distribution/IZNSRegistrar.md new file mode 100644 index 000000000..bc718d181 --- /dev/null +++ b/docs/contracts/distribution/IZNSRegistrar.md @@ -0,0 +1,260 @@ +## IZNSRegistrar + + + + + + + + +### DomainRegistered + +```solidity +event DomainRegistered(bytes32 domainHash, uint256 tokenId, string name, address registrant, address resolver, address domainAddress) +``` + + +Emitted when a NEW domain is registered. + +`domainAddress` parameter is the address to which a domain name will relate to in ZNS. +E.g. if a user made a domain for his wallet, the address of the wallet will be the `domainAddress`. +This can be 0 as this variable is not required to perform registration process +and can be set at a later time by the domain owner. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain registered | +| tokenId | uint256 | The tokenId of the domain registered | +| name | string | The name as string of the domain registered | +| registrant | address | The address that called `ZNSRegistrar.registerDomain()` | +| resolver | address | The resolver contract address of the domain registered | +| domainAddress | address | The domain address of the domain registered | + + +### DomainRevoked + +```solidity +event DomainRevoked(bytes32 domainHash, address registrant) +``` + + +Emitted when a domain is revoked. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain revoked | +| registrant | address | The address that called `ZNSRegistrar.revokeDomain()` | + + +### DomainReclaimed + +```solidity +event DomainReclaimed(bytes32 domainHash, address registrant) +``` + + +Emitted when an ownership of the Name is reclaimed by the Token owner. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain reclaimed | +| registrant | address | The address that called `ZNSRegistrar.reclaimDomain()` | + + +### RegistrySet + +```solidity +event RegistrySet(address registry) +``` + + +Emitted when the `registry` address is set in state. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| registry | address | The new address of the registry contract | + + +### TreasurySet + +```solidity +event TreasurySet(address treasury) +``` + + +Emitted when the `treasury` address is set in state. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| treasury | address | The new address of the treasury contract | + + +### DomainTokenSet + +```solidity +event DomainTokenSet(address domainToken) +``` + + +Emitted when the `domainToken` address is set in state. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainToken | address | The new address of the domainToken contract | + + +### AddressResolverSet + +```solidity +event AddressResolverSet(address addressResolver) +``` + + +Emitted when the `addressResolver` address is set in state. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| addressResolver | address | The new address of the addressResolver contract | + + +### registerDomain + +```solidity +function registerDomain(string name, address resolverContent) external returns (bytes32) +``` + + + + + + + +### revokeDomain + +```solidity +function revokeDomain(bytes32 domainHash) external +``` + + + + + + + +### reclaimDomain + +```solidity +function reclaimDomain(bytes32 domainHash) external +``` + + + + + + + +### setRegistry + +```solidity +function setRegistry(address registry_) external +``` + + + + + + + +### setTreasury + +```solidity +function setTreasury(address treasury_) external +``` + + + + + + + +### setDomainToken + +```solidity +function setDomainToken(address domainToken_) external +``` + + + + + + + +### setAddressResolver + +```solidity +function setAddressResolver(address addressResolver_) external +``` + + + + + + + +### setAccessController + +```solidity +function setAccessController(address accessController_) external +``` + + + + + + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + + + + + + +### initialize + +```solidity +function initialize(address accessController_, address registry_, address treasury_, address domainToken_, address addressResolver_) external +``` + + + + + + + + diff --git a/docs/contracts/distribution/IZNSTreasury.md b/docs/contracts/distribution/IZNSTreasury.md new file mode 100644 index 000000000..f4c341d83 --- /dev/null +++ b/docs/contracts/distribution/IZNSTreasury.md @@ -0,0 +1,197 @@ +## IZNSTreasury + + + + + + + + +### StakeDeposited + +```solidity +event StakeDeposited(bytes32 domainHash, string domainName, address depositor, uint256 stakeAmount, uint256 registrationFee) +``` + + +Emitted when a new stake is deposited upon registration of a new domain. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain name | +| domainName | string | The domain name as a string | +| depositor | address | The address of the depositing user / new domain owner | +| stakeAmount | uint256 | The amount they are depositing / price of the domain based on name length | +| registrationFee | uint256 | The registration fee paid by the user on top of the staked amount | + + +### StakeWithdrawn + +```solidity +event StakeWithdrawn(bytes32 domainHash, address owner, uint256 stakeAmount) +``` + + +Emitted when a stake is withdrawn upon domain revocation. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain name being revoked | +| owner | address | The owner of the domain being revoked | +| stakeAmount | uint256 | The staked amount withdrawn to the user after revoking | + + +### PriceOracleSet + +```solidity +event PriceOracleSet(address priceOracle) +``` + + +Emitted when `priceOracle` is set in state. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| priceOracle | address | The new address of the price oracle contract | + + +### StakingTokenSet + +```solidity +event StakingTokenSet(address stakingToken) +``` + + +Emitted when `stakingToken` is set in state. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| stakingToken | address | The new address of the ERC-20 compliant staking token contract | + + +### ZeroVaultAddressSet + +```solidity +event ZeroVaultAddressSet(address zeroVault) +``` + + +Emitted when `zeroVault` is set in state. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| zeroVault | address | The new address of the zero vault contract or wallet | + + +### stakeForDomain + +```solidity +function stakeForDomain(bytes32 domainHash, string domainName, address depositor) external +``` + + + + + + + +### unstakeForDomain + +```solidity +function unstakeForDomain(bytes32 domainHash, address owner) external +``` + + + + + + + +### setZeroVaultAddress + +```solidity +function setZeroVaultAddress(address zeroVaultAddress) external +``` + + + + + + + +### setPriceOracle + +```solidity +function setPriceOracle(address priceOracle_) external +``` + + + + + + + +### setStakingToken + +```solidity +function setStakingToken(address stakingToken_) external +``` + + + + + + + +### setAccessController + +```solidity +function setAccessController(address accessController) external +``` + + + + + + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + + + + + + +### initialize + +```solidity +function initialize(address accessController_, address priceOracle_, address stakingToken_, address zeroVault_) external +``` + + + + + + + + diff --git a/docs/contracts/distribution/ZNSPriceOracle.md b/docs/contracts/distribution/ZNSPriceOracle.md new file mode 100644 index 000000000..16c83250f --- /dev/null +++ b/docs/contracts/distribution/ZNSPriceOracle.md @@ -0,0 +1,354 @@ +## ZNSPriceOracle + + +**Implementation of the Price Oracle, module that calculates the price of a domain +based on its length and the rules set by Zero ADMIN.** + + + + + + +### PERCENTAGE_BASIS + +```solidity +uint256 PERCENTAGE_BASIS +``` + + +Value used as a basis for percentage calculations, +since Solidity does not support fractions. + + + + +### rootDomainPriceConfig + +```solidity +struct IZNSPriceOracle.DomainPriceConfig rootDomainPriceConfig +``` + + +Struct for each configurable price variable +that participates in the price calculation. + +See [IZNSPriceOracle.md](./IZNSPriceOracle.md) for more details. + + + +### feePercentage + +```solidity +uint256 feePercentage +``` + + +The registration fee value in percentage as basis points (parts per 10,000) + so the 2% value would be represented as 200. + See [getRegistrationFee](#getregistrationfee) for the actual fee calc process. + + + + +### initialize + +```solidity +function initialize(address accessController_, struct IZNSPriceOracle.DomainPriceConfig priceConfig_, uint256 regFeePercentage_) public +``` + + +Proxy initializer to set the initial state of the contract after deployment. +Only ADMIN can call this function. + +> Note the for DomainPriceConfig we set each value individually and calling +2 important functions that validate all of the config's values against the formula: +- `setPrecisionMultiplier()` to validate precision multiplier +- `_validateConfig()` to validate the whole config in order to avoid price spikes + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | the address of the ZNSAccessController contract. | +| priceConfig_ | struct IZNSPriceOracle.DomainPriceConfig | a number of variables that participate in the price calculation. | +| regFeePercentage_ | uint256 | the registration fee value in percentage as basis points (parts per 10,000) | + + +### getPrice + +```solidity +function getPrice(string name) external view returns (uint256 totalPrice, uint256 domainPrice, uint256 fee) +``` + + +Get the price of a given domain name + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| name | string | The name of the domain to check | + + +### getRegistrationFee + +```solidity +function getRegistrationFee(uint256 domainPrice) public view returns (uint256) +``` + + +Get the registration fee amount in `stakingToken` for a specific domain price +as `domainPrice * feePercentage / PERCENTAGE_BASIS`. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainPrice | uint256 | The price of the domain | + + +### setPriceConfig + +```solidity +function setPriceConfig(struct IZNSPriceOracle.DomainPriceConfig priceConfig) external +``` + + +Setter for `rootDomainPriceConfig`. Only ADMIN can call this function. + +Validates the value of the `precisionMultiplier` and the whole config in order to avoid price spikes, +fires `PriceConfigSet` event. +Only ADMIN can call this function. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| priceConfig | struct IZNSPriceOracle.DomainPriceConfig | The new price config to set | + + +### setMaxPrice + +```solidity +function setMaxPrice(uint256 maxPrice) external +``` + + +Sets the max price for domains. Validates the config with the new price. +Fires `MaxPriceSet` event. +Only ADMIN can call this function. +> `maxPrice` can be set to 0 to make all domains free! + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| maxPrice | uint256 | The maximum price to set in $ZERO | + + +### setMinPrice + +```solidity +function setMinPrice(uint256 minPrice) external +``` + + +Sets the minimum price for domains. Validates the config with the new price. +Fires `MinPriceSet` event. +Only ADMIN can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| minPrice | uint256 | The minimum price to set in $ZERO | + + +### setBaseLength + +```solidity +function setBaseLength(uint256 length) external +``` + + +Set the value of the domain name length boundary where the `maxPrice` applies +e.g. A value of '5' means all domains <= 5 in length cost the `maxPrice` price +Validates the config with the new length. Fires `BaseLengthSet` event. +Only ADMIN can call this function. +> `baseLength` can be set to 0 to make all domains cost `maxPrice`! +> This indicates to the system that we are +> currently in a special phase where we define an exact price for all domains +> e.g. promotions or sales + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| length | uint256 | Boundary to set | + + +### setMaxLength + +```solidity +function setMaxLength(uint256 length) external +``` + + +Set the maximum length of a domain name to which price formula applies. +All domain names (labels) that are longer than this value will cost the fixed price of `minPrice`, +and the pricing formula will not apply to them. +Validates the config with the new length. +Fires `MaxLengthSet` event. +Only ADMIN can call this function. +> `maxLength` can be set to 0 to make all domains cost `minPrice`! + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| length | uint256 | The maximum length to set | + + +### setPrecisionMultiplier + +```solidity +function setPrecisionMultiplier(uint256 multiplier) public +``` + + +Sets the precision multiplier for the price calculation. +Multiplier This should be picked based on the number of token decimals +to calculate properly. +e.g. if we use a token with 18 decimals, and want precision of 2, +our precision multiplier will be equal to `10^(18 - 2) = 10^16` +Fires `PrecisionMultiplierSet` event. +Only ADMIN can call this function. +> Multiplier should be less or equal to 10^18 and greater than 0! + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| multiplier | uint256 | The multiplier to set | + + +### setRegistrationFeePercentage + +```solidity +function setRegistrationFeePercentage(uint256 regFeePercentage) external +``` + + +Sets the fee percentage for domain registration. + +Fee percentage is set according to the basis of 10000, outlined in ``PERCENTAGE_BASIS``. +Fires ``FeePercentageSet`` event. +Only ADMIN can call this function. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| regFeePercentage | uint256 | The fee percentage to set | + + +### setAccessController + +```solidity +function setAccessController(address accessController_) external +``` + + +Sets the access controller for the contract. +Only ADMIN can call this function. +Fires `AccessControllerSet` event. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | The address of the new access controller | + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + +Getter for ZNSAccessController address stored on this contract. + + + + +### _getPrice + +```solidity +function _getPrice(uint256 length) internal view returns (uint256) +``` + + +Internal function to calculate price based on the config set, +and the length of the domain label. + +Before we calculate the price, 3 different cases are possible: +1. `baseLength` is 0, which means we are returning `maxPrice` as a specific price for all domains +2. `length` is less than or equal to `baseLength`, which means a domain will cost `maxPrice` +3. `length` is greater than `maxLength`, which means a domain will cost `minPrice` + +The formula itself creates an asymptotic curve that decreases in pricing based on domain name length, +base length and max price, the result is divided by the precision multiplier to remove numbers beyond +what we care about, then multiplied by the same precision multiplier to get the actual value +with truncated values past precision. So having a value of `15.235234324234512365 * 10^18` +with precision `2` would give us `15.230000000000000000 * 10^18` + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| length | uint256 | The length of the domain name | + + +### _validateConfig + +```solidity +function _validateConfig() internal view +``` + + +Internal function called every time we set props of `rootDomainPriceConfig` +to make sure that values being set can not disrupt the price curve or zero out prices +for domains. If this validation fails, function will revert. + +We are checking here for possible price spike at `maxLength` +which can occur if some of the config values are not properly chosen and set. + + + +### _authorizeUpgrade + +```solidity +function _authorizeUpgrade(address newImplementation) internal view +``` + + +To use UUPS proxy we override this function and revert if `msg.sender` isn't authorized + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| newImplementation | address | The new implementation contract to upgrade to. | + + + diff --git a/docs/contracts/distribution/ZNSRegistrar.md b/docs/contracts/distribution/ZNSRegistrar.md new file mode 100644 index 000000000..4a4102373 --- /dev/null +++ b/docs/contracts/distribution/ZNSRegistrar.md @@ -0,0 +1,329 @@ +## ZNSRegistrar + + +**Main entry point for the three main flows of ZNS - Register, Reclaim and Revoke a domain.** + +This contract serves as the "umbrella" for many ZNS operations, it is given REGISTRAR_ROLE +to combine multiple calls/operations between different modules to achieve atomic state changes +and proper logic for the ZNS flows. You can see functions in other modules that are only allowed +to be called by this contract to ensure proper management of ZNS data in multiple places. +RRR - Register, Reclaim, Revoke start here and then call other modules to complete the flow. +ZNSRegistrar stores most of the other contract addresses and can communicate with other modules, +but the relationship is one-sided, where other modules do not need to know about the ZNSRegistrar, +they only check REGISTRAR_ROLE that can, in theory, be assigned to any other address. + + + + +### registry + +```solidity +contract IZNSRegistry registry +``` + + + + + + + +### treasury + +```solidity +contract IZNSTreasury treasury +``` + + + + + + + +### domainToken + +```solidity +contract IZNSDomainToken domainToken +``` + + + + + + + +### addressResolver + +```solidity +contract IZNSAddressResolver addressResolver +``` + + + + + + + +### onlyNameOwner + +```solidity +modifier onlyNameOwner(bytes32 domainHash) +``` + + +Ensures only the owner of the Name in ZNSRegistry can call. + + + + +### onlyTokenOwner + +```solidity +modifier onlyTokenOwner(bytes32 domainHash) +``` + + +Ensures only the owner of the Tame in ZNSDomainToken can call. + + + + +### initialize + +```solidity +function initialize(address accessController_, address registry_, address treasury_, address domainToken_, address addressResolver_) public +``` + + +Create an instance of the ZNSRegistrar +for registering, reclaiming and revoking ZNS domains + +Instead of direct assignments, we are calling the setter functions +to apply Access Control and ensure only the ADMIN can set the addresses. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | Address of the ZNSAccessController contract | +| registry_ | address | Address of the ZNSRegistry contract | +| treasury_ | address | Address of the ZNSTreasury contract | +| domainToken_ | address | Address of the ZNSDomainToken contract | +| addressResolver_ | address | Address of the ZNSAddressResolver contract | + + +### registerDomain + +```solidity +function registerDomain(string name, address domainAddress) external returns (bytes32) +``` + + +This function is the main entry point for the Register flow. +Registers a new domain such as `0://wilder`. +Gets domain hash as a keccak256 hash of the domain label string casted to bytes32, +checks existence of the domain in the registry and reverts if it exists. +Calls `ZNSTreasury` to do the staking part, gets `tokenId` for the new token to be minted +as domain hash casted to uint256, mints the token and sets the domain data in the `ZNSRegistry` +and, possibly, `ZNSAddressResolver`. Emits a `DomainRegistered` event. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| name | string | Name (label) of the domain to register | +| domainAddress | address | Address for the `ZNSAddressResolver` to return when requested (optional, send 0x0 if not needed) | + + +### revokeDomain + +```solidity +function revokeDomain(bytes32 domainHash) external +``` + + +This function is the main entry point for the Revoke flow. +Revokes a domain such as `0://wilder`. +Gets `tokenId` from casted domain hash to uint256, calls `ZNSDomainToken` to burn the token, +deletes the domain data from the `ZNSRegistry` and calls `ZNSTreasury` to unstake and withdraw funds +user staked for the domain. Emits a `DomainRevoked` event. + +> Note that we are not clearing the data in `ZNSAddressResolver` as it is considered not necessary +since none other contracts will have the domain data on them. +If we are not clearing `ZNSAddressResolver` state slots, we are making the next Register transaction +for the same name cheaper, since SSTORE on a non-zero slot costs 5k gas, while SSTORE on a zero slot costs 20k gas. +If a user wants to clear his data from `ZNSAddressResolver`, he can call `ZNSAddressResolver` directly himself +BEFORE he calls to revoke, otherwise, `ZNSRegistry` owner check will fail, since the owner there +will be 0x0 address. +Also note that in order to Revoke, a caller has to be the owner of both: +Name (in `ZNSRegistry`) and Token (in `ZNSDomainToken`). + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | Hash of the domain to revoke | + + +### reclaimDomain + +```solidity +function reclaimDomain(bytes32 domainHash) external +``` + + +This function is the main entry point for the Reclaim flow. This flow is used to +reclaim full ownership of a domain (through becoming the owner of the Name) from the ownership of the Token. +This is used for different types of ownership transfers, such as: +- domain sale - a user will sell the Token, then the new owner has to call this function to reclaim the Name +- domain transfer - a user will transfer the Token, then the new owner has to call this function to reclaim the Name + +A user needs to only be the owner of the Token to be able to Reclaim. +Updates the domain owner in the `ZNSRegistry` to the owner of the token and emits a `DomainReclaimed` event. + + + + +### setRegistry + +```solidity +function setRegistry(address registry_) public +``` + + +Setter function for the `ZNSRegistry` address in state. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| registry_ | address | Address of the `ZNSRegistry` contract | + + +### setTreasury + +```solidity +function setTreasury(address treasury_) public +``` + + +Setter function for the `ZNSTreasury` address in state. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| treasury_ | address | Address of the `ZNSTreasury` contract | + + +### setDomainToken + +```solidity +function setDomainToken(address domainToken_) public +``` + + +Setter function for the `ZNSDomainToken` address in state. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainToken_ | address | Address of the `ZNSDomainToken` contract | + + +### setAddressResolver + +```solidity +function setAddressResolver(address addressResolver_) public +``` + + +Setter function for the `ZNSAddressResolver` address in state. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| addressResolver_ | address | Address of the `ZNSAddressResolver` contract | + + +### setAccessController + +```solidity +function setAccessController(address accessController_) external +``` + + +Setter function for the `ZNSAccessController` address in state. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | Address of the `ZNSAccessController` contract | + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + +Getter function for the `ZNSAccessController` address in state. + + + + +### _setDomainData + +```solidity +function _setDomainData(bytes32 domainHash, address owner, address domainAddress) internal +``` + + +Set domain data appropriately for a newly registered domain +If no domain address is given, only the domain owner is set, otherwise +`ZNSAddressResolver` is called to assign an address to the newly registered domain. +If the `domainAddress` is not provided upon registration, a user can call `ZNSAddressResolver.setAddress` +to set the address themselves. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The domain name hash | +| owner | address | The owner of the domain | +| domainAddress | address | The content (source) it resolves to | + + +### _authorizeUpgrade + +```solidity +function _authorizeUpgrade(address newImplementation) internal view +``` + + +To use UUPS proxy we override this function and revert if `msg.sender` isn't authorized + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| newImplementation | address | The implementation contract to upgrade to | + + + diff --git a/docs/contracts/distribution/ZNSTreasury.md b/docs/contracts/distribution/ZNSTreasury.md new file mode 100644 index 000000000..1dbb84f29 --- /dev/null +++ b/docs/contracts/distribution/ZNSTreasury.md @@ -0,0 +1,256 @@ +## ZNSTreasury + + +**Contract responsible for all staking operations in ZNS and communication with `ZNSPriceOracle`.** + +This contract it called by `ZNSRegistrar` every time a staking operation is needed. +It stores all data regarding user stakes for domains, and it's also the only contract +that is aware of the `ZNSPriceOracle` which it uses to get pricing data for domains. + + + + +### priceOracle + +```solidity +contract IZNSPriceOracle priceOracle +``` + + +The address of the `ZNSPriceOracle` contract. + + + + +### stakingToken + +```solidity +contract IERC20 stakingToken +``` + + +The address of the payment/staking token. Will be set to $ZERO. + + + + +### zeroVault + +```solidity +address zeroVault +``` + + +Address of the Zero Vault, a wallet or contract which gathers all the registration fees. + + + + +### stakedForDomain + +```solidity +mapping(bytes32 => uint256) stakedForDomain +``` + + +The main mapping of the contract. It stores the amount staked for each domain +which is mapped to the domain hash. +Note that there is no address to which the stake is tied to. Instead, the owner data from `ZNSRegistry` +is used to identify a user who owns the stake. So the staking data is tied to the owner of the Name. +This should be taken into account, since any transfer of the Token to another address, +and the system, allowing them to Reclaim the Name, will also allow them to withdraw the stake. +> Stake is owned by the owner of the Name in `ZNSRegistry`! + + + + +### onlyRegistrar + +```solidity +modifier onlyRegistrar() +``` + + +Modifier used for functions that are only allowed to be called by the `ZNSRegistrar` +or any other address that has REGISTRAR_ROLE. + + + + +### initialize + +```solidity +function initialize(address accessController_, address priceOracle_, address stakingToken_, address zeroVault_) external +``` + + +`ZNSTreasury` proxy state initializer. Note that setter functions are used +instead of direct state variable assignments in order to use proper Access Control +at initialization. Only ADMIN in `ZNSAccessController` can call this function. +For this also, it is important that `ZNSAccessController` is deployed and initialized with role data +before this contract is deployed. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | The address of the `ZNSAccessController` contract. | +| priceOracle_ | address | The address of the `ZNSPriceOracle` contract. | +| stakingToken_ | address | The address of the staking token (currently $ZERO). | +| zeroVault_ | address | The address of the Zero Vault - the wallet or contract to collect all the registration fees. | + + +### stakeForDomain + +```solidity +function stakeForDomain(bytes32 domainHash, string domainName, address depositor) external +``` + + +Deposits the stake for a domain. This function is called by `ZNSRegistrar` +when a user wants to Register a domain. It transfers the stake amount and the registration fee +to the contract from the user, and records the staked amount for the domain. +Note that a user has to approve the correct amount of `domainPrice + registrationFee` +for this function to not revert. + +Calls `ZNSPriceOracle` to get the price for the domain name based on it's length, +and to get a proper `registrationFee` as a percentage of the price. +In order to avoid needing 2 different approvals, it withdraws `domainPrice + registrationFee` +to this contract and then transfers the `registrationFee` to the Zero Vault. +Sets the `stakedForDomain` mapping for the domain to the `stakeAmount` and emits a `StakeDeposited` event. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain for which the stake is being deposited. | +| domainName | string | The name of the domain for which the stake is being deposited. | +| depositor | address | The address of the user who is depositing the stake. | + + +### unstakeForDomain + +```solidity +function unstakeForDomain(bytes32 domainHash, address owner) external +``` + + +Withdraws the stake for a domain. This function is called by `ZNSRegistrar` +when a user wants to Revoke a domain. It transfers the stake amount from the contract back to the user, +and deletes the staked amount for the domain in state. +Emits a `StakeWithdrawn` event. +Since we are clearing a slot in storage, gas refund from this operation makes Revoke transactions cheaper. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain for which the stake is being withdrawn. | +| owner | address | The address of the user who is withdrawing the stake. | + + +### setZeroVaultAddress + +```solidity +function setZeroVaultAddress(address zeroVault_) public +``` + + +Setter function for the `zeroVault` state variable. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| zeroVault_ | address | The address of the new Zero Vault - the wallet or contract to collect all the fees. | + + +### setPriceOracle + +```solidity +function setPriceOracle(address priceOracle_) public +``` + + +Setter function for the `priceOracle` state variable. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| priceOracle_ | address | The address of the new `ZNSPriceOracle` contract. | + + +### setStakingToken + +```solidity +function setStakingToken(address stakingToken_) public +``` + + +Setter function for the `stakingToken` state variable. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| stakingToken_ | address | The address of the new staking token (currently $ZERO). | + + +### setAccessController + +```solidity +function setAccessController(address accessController_) public +``` + + +Setter function for the `accessController` state variable. +Only ADMIN in `ZNSAccessController` can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | The address of the new `ZNSAccessController` contract. | + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + +Getter function for the `accessController` state variable inherited from `AccessControlled`. + + + + +### _authorizeUpgrade + +```solidity +function _authorizeUpgrade(address newImplementation) internal view +``` + + +To use UUPS proxy we override this function and revert if `msg.sender` isn't authorized + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| newImplementation | address | The implementation contract to upgrade to | + + + diff --git a/docs/contracts/registry/IZNSRegistry.md b/docs/contracts/registry/IZNSRegistry.md new file mode 100644 index 000000000..b44646e39 --- /dev/null +++ b/docs/contracts/registry/IZNSRegistry.md @@ -0,0 +1,346 @@ +## IZNSRegistry + + + +The `DomainRecord` struct is meant to hold relevant information +about a domain, such as its owner and resolver. +- `owner` (address): The owner of the domain (also called the owner of the Name). +- `resolver` (address): The address of the Resolver contract where this domain's source records are stored. + +In the future, there will be multiple Resolver contracts that support different types of sources. +Currently, only the `ZNSAddressResolver` is implemented. + + + + +### DomainRecord + + + + + + + + +```solidity +struct DomainRecord { + address owner; + address resolver; +} +``` + +### DomainOwnerSet + +```solidity +event DomainOwnerSet(bytes32 domainHash, address owner) +``` + + +Emits when ownership of a domain is modified in ``records`` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | +| owner | address | The new domain owner | + + +### DomainResolverSet + +```solidity +event DomainResolverSet(bytes32 domainHash, address resolver) +``` + + +Emit when a domain's resolver is modified in ``records`` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | +| resolver | address | The new resolver address | + + +### DomainRecordDeleted + +```solidity +event DomainRecordDeleted(bytes32 domainHash) +``` + + +Emits when a domain record is deleted + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of a domain's name | + + +### OperatorPermissionSet + +```solidity +event OperatorPermissionSet(address owner, address operator, bool allowed) +``` + + +Emit when an owner allows/disallows permissions for an operator + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| owner | address | Owner of the domain in question | +| operator | address | Address that was allowed/disallowed | +| allowed | bool | Boolean status of their permission | + + +### initialize + +```solidity +function initialize(address accessController) external +``` + + +Create an instance of the ZNSRegistry contract + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController | address | The addrss of the access controller | + + +### exists + +```solidity +function exists(bytes32 domainHash) external view returns (bool) +``` + + +Check if a given domain exists + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of a domain's name | + + +### isOwnerOrOperator + +```solidity +function isOwnerOrOperator(bytes32 domainHash, address candidate) external view returns (bool) +``` + + +Checks if provided address is an owner or an operator of the provided domain + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of a domain's name | +| candidate | address | The address for which we are checking access | + + +### setOwnerOperator + +```solidity +function setOwnerOperator(address operator, bool allowed) external +``` + + +Set an `operator` as `allowed` to give or remove permissions for all +domains owned by `msg.sender` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| operator | address | The account to allow/disallow | +| allowed | bool | The true/false value to set | + + +### getDomainRecord + +```solidity +function getDomainRecord(bytes32 domainHash) external view returns (struct IZNSRegistry.DomainRecord) +``` + + +Get a record for a domain + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | + + +### getDomainOwner + +```solidity +function getDomainOwner(bytes32 domainHash) external view returns (address) +``` + + +Get the owner of the given domain + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | + + +### getDomainResolver + +```solidity +function getDomainResolver(bytes32 domainHash) external view returns (address) +``` + + +Get the default resolver for the given domain + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of a domain's name | + + +### createDomainRecord + +```solidity +function createDomainRecord(bytes32 domainHash, address owner, address resolver) external +``` + + +Create a new domain record + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain name | +| owner | address | The owner of the new domain | +| resolver | address | The resolver of the new domain | + + +### updateDomainRecord + +```solidity +function updateDomainRecord(bytes32 domainHash, address owner, address resolver) external +``` + + +Update an existing domain record's owner or resolver + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain | +| owner | address | The owner or an allowed operator of that domain | +| resolver | address | The resolver for the domain | + + +### updateDomainOwner + +```solidity +function updateDomainOwner(bytes32 domainHash, address owner) external +``` + + +Update a domain's owner + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | +| owner | address | The account to transfer ownership to | + + +### updateDomainResolver + +```solidity +function updateDomainResolver(bytes32 domainHash, address resolver) external +``` + + +Update the domain's default resolver + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | +| resolver | address | The new default resolver | + + +### deleteRecord + +```solidity +function deleteRecord(bytes32 domainHash) external +``` + + +Delete a domain's record + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain name | + + +### setAccessController + +```solidity +function setAccessController(address accessController) external +``` + + +Set the access controller contract + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController | address | The new access controller | + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + +Get the access controller contract + + + + + diff --git a/docs/contracts/registry/ZNSRegistry.md b/docs/contracts/registry/ZNSRegistry.md new file mode 100644 index 000000000..276f6f6fd --- /dev/null +++ b/docs/contracts/registry/ZNSRegistry.md @@ -0,0 +1,417 @@ +## ZNSRegistry + + +**The main reference data contract in ZNS. Also, often, the last contract +in the call chain of many operations where the most crucial Name owner data settles. +Owner of a domain in this contract also serves as the owner of the stake in `ZNSTreasury`.** + + + + + + +### records + +```solidity +mapping(bytes32 => struct IZNSRegistry.DomainRecord) records +``` + + +Mapping of `domainHash` to [DomainRecord](./IZNSRegistry.md#iznsregistry) struct to hold information +about each domain + + + + +### operators + +```solidity +mapping(address => mapping(address => bool)) operators +``` + + +Mapping of `owner` => `operator` => `bool` to show accounts that +are or aren't allowed access to domains that `owner` has access to. +Note that operators can NOT change the owner of the domain, but can change +the resolver or resolver records. + + + + +### onlyOwnerOrOperator + +```solidity +modifier onlyOwnerOrOperator(bytes32 domainHash) +``` + + +Revert if `msg.sender` is not the owner or an operator allowed by the owner + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | + + +### onlyOwner + +```solidity +modifier onlyOwner(bytes32 domainHash) +``` + + +Revert if `msg.sender` is not the owner. Used for owner restricted functions. + + + + +### onlyRegistrar + +```solidity +modifier onlyRegistrar() +``` + + +Revert if `msg.sender` is not the `ZNSRegistrar` contract +or an address holding REGISTRAR_ROLE. + + + + +### initialize + +```solidity +function initialize(address accessController_) public +``` + + +Initializer for the `ZNSRegistry` proxy. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | The address of the `ZNSAccessController` contract | + + +### exists + +```solidity +function exists(bytes32 domainHash) external view returns (bool) +``` + + +Checks if a given domain exists + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of a domain's name | + + +### isOwnerOrOperator + +```solidity +function isOwnerOrOperator(bytes32 domainHash, address candidate) public view returns (bool) +``` + + +Checks if provided address is an owner or an operator of the provided domain + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of a domain's name | +| candidate | address | The address for which we are checking access | + + +### setOwnerOperator + +```solidity +function setOwnerOperator(address operator, bool allowed) external +``` + + +Set an `operator` as `allowed` to give or remove permissions for ALL +domains owned by the owner `msg.sender`. +Emits an `OperatorPermissionSet` event. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| operator | address | The account to allow/disallow | +| allowed | bool | The true/false value to set | + + +### getDomainRecord + +```solidity +function getDomainRecord(bytes32 domainHash) external view returns (struct IZNSRegistry.DomainRecord) +``` + + +Gets a record for a domain (owner, resolver) from the internal mapping +`records`. `records` maps a domain hash to a +[DomainRecord](./IZNSRegistry.md#iznsregistry) struct. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | + + +### getDomainOwner + +```solidity +function getDomainOwner(bytes32 domainHash) external view returns (address) +``` + + +Gets the owner of the given domain + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | + + +### getDomainResolver + +```solidity +function getDomainResolver(bytes32 domainHash) external view returns (address) +``` + + +Gets the resolver set for the given domain. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | + + +### createDomainRecord + +```solidity +function createDomainRecord(bytes32 domainHash, address owner, address resolver) external +``` + + +Creates a new domain record. Only callable by the `ZNSRegistrar` +or an address that has REGISTRAR_ROLE. This is one of the last calls in the Register +flow that starts from `ZNSRegistrar.registerDomain()`. Calls 2 internal functions to set +the owner and resolver of the domain separately. +Can be called with `resolver` param as 0, which will exclude the call to set resolver. +Emits `DomainOwnerSet` and possibly `DomainResolverSet` events. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain name | +| owner | address | The owner of the new domain | +| resolver | address | The resolver of the new domain, can be 0 | + + +### updateDomainRecord + +```solidity +function updateDomainRecord(bytes32 domainHash, address owner, address resolver) external +``` + + +Updates an existing domain record's owner and resolver. +Note that this function can ONLY be called by the Name owner of the domain. +This is NOT used by the `ZNSRegistrar` contract and serves as a user facing function +for the owners of existing domains to change their data on this contract. A domain +`operator` can NOT call this, since he is not allowed to change the owner. +Emits `DomainOwnerSet` and `DomainResolverSet` events. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain | +| owner | address | The owner or an allowed operator of that domain | +| resolver | address | The resolver for the domain | + + +### updateDomainOwner + +```solidity +function updateDomainOwner(bytes32 domainHash, address owner) external +``` + + +Updates the owner of an existing domain. Can be called by either the Name owner +on this contract OR the `ZNSRegistrar` contract as part of the Reclaim flow +that starts at `ZNSRegistrar.reclaim()`. Emits an `DomainOwnerSet` event. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | +| owner | address | The account to transfer ownership to | + + +### updateDomainResolver + +```solidity +function updateDomainResolver(bytes32 domainHash, address resolver) external +``` + + +Updates the resolver of an existing domain in `records`. +Can be called by eithe the owner of the Name or an allowed operator. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | +| resolver | address | The new Resolver contract address | + + +### deleteRecord + +```solidity +function deleteRecord(bytes32 domainHash) external +``` + + +Deletes a domain's record from this contract's state. +This can ONLY be called by the `ZNSRegistrar` contract as part of the Revoke flow +or any address holding the `REGISTRAR_ROLE`. Emits a `DomainRecordDeleted` event. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The hash of the domain name | + + +### setAccessController + +```solidity +function setAccessController(address accessController) external +``` + + +Sets the `accessController` contract + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController | address | The new access controller | + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + +Gets the `accessController` from state. + + + + +### _exists + +```solidity +function _exists(bytes32 domainHash) internal view returns (bool) +``` + + +Check if a domain exists. True if the owner is not `0x0` + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | + + +### _setDomainOwner + +```solidity +function _setDomainOwner(bytes32 domainHash, address owner) internal +``` + + +Internal function to set a domain's owner in state `records`. +Owner can NOT be set to 0, since we use delete operation as part of the +``deleteRecord()`` function. +Emits a `DomainOwnerSet` event. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | +| owner | address | The owner to set | + + +### _setDomainResolver + +```solidity +function _setDomainResolver(bytes32 domainHash, address resolver) internal +``` + + +Internal function to set a domain's resolver in state `records`. +Resolver can be set to 0, since we allow partial domain data. Emits a `DomainResolverSet` event. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | the hash of a domain's name | +| resolver | address | The resolver to set | + + +### _authorizeUpgrade + +```solidity +function _authorizeUpgrade(address newImplementation) internal view +``` + + +To use UUPS proxy we override this function and revert if `msg.sender` isn't authorized + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| newImplementation | address | The implementation contract to upgrade to | + + + diff --git a/docs/contracts/resolver/IZNSAddressResolver.md b/docs/contracts/resolver/IZNSAddressResolver.md new file mode 100644 index 000000000..9692cb99c --- /dev/null +++ b/docs/contracts/resolver/IZNSAddressResolver.md @@ -0,0 +1,169 @@ +## IZNSAddressResolver + + + + + + + + +### AddressSet + +```solidity +event AddressSet(bytes32 domainHash, address newAddress) +``` + + + + +Emit when ownership of a domain is modified + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The identifying hash of a domain's name | +| newAddress | address | The new domain owner | + + +### RegistrySet + +```solidity +event RegistrySet(address registry) +``` + + + + +Emit when the registry is set + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| registry | address | The address of the registry | + + +### supportsInterface + +```solidity +function supportsInterface(bytes4 interfaceId) external view returns (bool) +``` + + + + +ERC-165 check for implementation identifier +Supports interfaces IZNSAddressResolver and IERC165 + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| interfaceId | bytes4 | ID to check, XOR of the first 4 bytes of each function signature | + + +### getAddress + +```solidity +function getAddress(bytes32 domainHash) external view returns (address) +``` + + + + +Resolves address given domain name hash + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The identifying hash of a domain's name | + + +### setAddress + +```solidity +function setAddress(bytes32 domainHash, address newAddress) external +``` + + + + +Sets the address of a domain name hash, only registry + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The identifying hash of a domain's name | +| newAddress | address | The new domain owner | + + +### getInterfaceId + +```solidity +function getInterfaceId() external pure returns (bytes4) +``` + + + + + + + +### setRegistry + +```solidity +function setRegistry(address _registry) external +``` + + + + + + + +### setAccessController + +```solidity +function setAccessController(address accessController) external +``` + + + + + + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + + + + + + +### initialize + +```solidity +function initialize(address _accessController, address _registry) external +``` + + +Initialize an instance of the ZNSAddressResolver + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| _accessController | address | The access controller | +| _registry | address | The registry address | + + + diff --git a/docs/contracts/resolver/ZNSAddressResolver.md b/docs/contracts/resolver/ZNSAddressResolver.md new file mode 100644 index 000000000..2ab4dc3ab --- /dev/null +++ b/docs/contracts/resolver/ZNSAddressResolver.md @@ -0,0 +1,199 @@ +## ZNSAddressResolver + + +**The specific Resolver for ZNS that maps domain hashes to Ethereum addresses these domains were made for.** + +This Resolver supports ONLY the address type. Every domain in ZNS made for a contract or wallet address +will have a corresponding record in this Resolver. + + + + +### registry + +```solidity +contract IZNSRegistry registry +``` + + +Address of the `ZNSRegistry` contract that holds all crucial data +for every domain in the system + + + + +### domainAddresses + +```solidity +mapping(bytes32 => address) domainAddresses +``` + + +Mapping of domain hash to address used to bind domains +to Ethereum wallets or contracts registered in ZNS. + + + + +### initialize + +```solidity +function initialize(address accessController_, address registry_) public +``` + + +Initializer for the `ZNSAddressResolver` proxy. +Note that setter functions are used instead of direct state variable assignments +to use access control at deploy time. Only ADMIN can call this function. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | The address of the `ZNSAccessController` contract | +| registry_ | address | The address of the `ZNSRegistry` contract | + + +### getAddress + +```solidity +function getAddress(bytes32 domainHash) external view returns (address) +``` + + + + +Returns address associated with a given domain name hash. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The identifying hash of a domain's name | + + +### setAddress + +```solidity +function setAddress(bytes32 domainHash, address newAddress) external +``` + + + + +Sets the address for a domain name hash. This function can only +be called by the owner, operator of the domain OR by the `ZNSRegistrar` +as a part of the Register flow. +Emits an `AddressSet` event. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| domainHash | bytes32 | The identifying hash of a domain's name | +| newAddress | address | The new address to map the domain to | + + +### supportsInterface + +```solidity +function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) +``` + + + + +ERC-165 check for implementation identifier +Supports interfaces IZNSAddressResolver and IERC165 + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| interfaceId | bytes4 | ID to check, XOR of the first 4 bytes of each function signature | + + +### getInterfaceId + +```solidity +function getInterfaceId() public pure returns (bytes4) +``` + + + + +Exposes IZNSAddressResolver interfaceId + + + +### setRegistry + +```solidity +function setRegistry(address _registry) public +``` + + + + +Sets the address of the `ZNSRegistry` contract that holds all crucial data +for every domain in the system. This function can only be called by the ADMIN. +Emits a `RegistrySet` event. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| _registry | address | The address of the `ZNSRegistry` contract | + + +### setAccessController + +```solidity +function setAccessController(address accessController) external +``` + + + + +Sets the address of the `ZNSAccessController` contract. +Can only be called by the ADMIN. Emits an `AccessControllerSet` event. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController | address | The address of the `ZNSAccessController` contract | + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + + + +Returns the address of the `ZNSAccessController` contract saved in state. + + + +### _authorizeUpgrade + +```solidity +function _authorizeUpgrade(address newImplementation) internal view +``` + + +To use UUPS proxy we override this function and revert if `msg.sender` isn't authorized + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| newImplementation | address | The implementation contract to upgrade to | + + + diff --git a/docs/contracts/token/IZNSDomainToken.md b/docs/contracts/token/IZNSDomainToken.md new file mode 100644 index 000000000..efbe76d1c --- /dev/null +++ b/docs/contracts/token/IZNSDomainToken.md @@ -0,0 +1,70 @@ +## IZNSDomainToken + + + + + + + + +### initialize + +```solidity +function initialize(address accessController, string tokenName, string tokenSymbol) external +``` + + + + + + + +### register + +```solidity +function register(address to, uint256 tokenId) external +``` + + + + + + + +### revoke + +```solidity +function revoke(uint256 tokenId) external +``` + + + + + + + +### setAccessController + +```solidity +function setAccessController(address accessController) external +``` + + + + + + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + + + + + + + diff --git a/docs/contracts/token/ZNSDomainToken.md b/docs/contracts/token/ZNSDomainToken.md new file mode 100644 index 000000000..41a86b71d --- /dev/null +++ b/docs/contracts/token/ZNSDomainToken.md @@ -0,0 +1,134 @@ +## ZNSDomainToken + + +**A contract for tokenizing domains under ZNS. Every domain in ZNS has a corresponding token +minted at Register time. This token is also an NFT that is fully ERC-721 compliant.** + + + +Note that all ZNS related functions on this contract can ONLY be called by either +the `ZNSRegistrar` contract or any address holding a REGISTRAR_ROLE. + + + +### onlyRegistrar + +```solidity +modifier onlyRegistrar() +``` + + +Modifier used in functions to be called only by the `ZNSRegistrar` contract +or address with REGISTRAR_ROLE. + + + + +### initialize + +```solidity +function initialize(address accessController_, string name_, string symbol_) external +``` + + +Initializer for the `ZNSDomainToken` proxy. +Note that this function does NOT have role protection enforced! + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | The address of the `ZNSAccessController` contract | +| name_ | string | The name of the token | +| symbol_ | string | The symbol of the token | + + +### register + +```solidity +function register(address to, uint256 tokenId) external +``` + + +Mints a token with a specified tokenId, using _safeMint, and sends it to the given address. +Used ONLY as a part of the Register flow that starts from ``ZNSRegistrar.registerDomain()``! +> TokenId is created as a hash of the domain name casted to uint256. + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| to | address | The address that will recieve the newly minted domain token (new domain owner) | +| tokenId | uint256 | The TokenId that the caller wishes to mint/register. | + + +### revoke + +```solidity +function revoke(uint256 tokenId) external +``` + + +Burns the token with the specified tokenId. +Used ONLY as a part of the Revoke flow that starts from ``ZNSRegistrar.revokeDomain()``! + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenId | uint256 | The tokenId (as `uint256(domainHash)`) that the caller wishes to burn/revoke | + + +### setAccessController + +```solidity +function setAccessController(address accessController_) external +``` + + + + +Sets the address of the `ZNSAccessController` contract. +Can only be called by the ADMIN. Emits an `AccessControllerSet` event. + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| accessController_ | address | The address of the `ZNSAccessController` contract | + + +### getAccessController + +```solidity +function getAccessController() external view returns (address) +``` + + + + +Returns the address of the `ZNSAccessController` contract saved in state. + + + +### _authorizeUpgrade + +```solidity +function _authorizeUpgrade(address newImplementation) internal view +``` + + +To use UUPS proxy we override this function and revert if `msg.sender` isn't authorized + + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| newImplementation | address | The implementation contract to upgrade to | + + + From ecccd5a03568ba65d062dae781ae8a32ae338546 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 17:56:30 -0700 Subject: [PATCH 17/20] add images --- docs/img/ac.jpg | Bin 0 -> 149048 bytes docs/img/discovery.jpg | Bin 0 -> 99659 bytes docs/img/full.jpg | Bin 0 -> 404229 bytes docs/img/register.jpg | Bin 0 -> 87773 bytes docs/img/revoke.jpg | Bin 0 -> 79028 bytes docs/img/transfer.jpg | Bin 0 -> 93058 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/ac.jpg create mode 100644 docs/img/discovery.jpg create mode 100644 docs/img/full.jpg create mode 100644 docs/img/register.jpg create mode 100644 docs/img/revoke.jpg create mode 100644 docs/img/transfer.jpg diff --git a/docs/img/ac.jpg b/docs/img/ac.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e4c5f593c4eefa44ae37d19b29abdc90d14f65d7 GIT binary patch literal 149048 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 mW^6e&+qRW%WM;|B1l=8w7;E4*vrx&t8WB literal 0 HcmV?d00001 diff --git a/docs/img/discovery.jpg b/docs/img/discovery.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f68d178bee1bb598baf999ed53545be693f70a86 GIT binary patch literal 99659 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%0D$b^W$G-3jF8D z?4Dv@3-%?O-$8exD=o3`v+k-~2I2Wh&Jc0bG>0ft-weRbOrfuTCHj+t$BzM7I1Ew9 z)6#mfN=i(`}mjBNqICu!Xan==#OpJ zw8Qn4+9lSfd3ta@w>6TH5|$v5w-C6cJ1ZwLz!83&0LEaJ47rSbf3EvwVoYP}1t|LB zhjpbkT19uO(YL%RLsoww{gK)(q*$2DDHuWgIx+V#DYO~S1jh~h9al68$u=2 zrG((zS+4RBxS>JwPGeoWZl9GWA(Vsbwqe2Q&;lN}_%;vQ+x~b~^ZvWk6qW3F5=D`x zk%<8%jQ5Ro*O`1*=V=Ix$*npNsa*4gy=W*ZAVvi|_u7nWBbdcn54xvxQT^ttZ-(;m z{ASmbY*>+S6mJ+kz6W-TYeCN0C#F=k`8aJZxk(^|Y)VjYp6DLVd|G^cu2WqGcd#O{ zbX6}BUmR5?zrvc7{gZZ$e~$v9#)P=Io>&FA!|rV2`_Z@DU~R{C zg{k_LkQ4YIbQ%l>{K{J8aPSO%H z>zpvHMF7w?4_DP#!NW9SI){R6Kd(sHf$zH}^i_H0?6e}C-+@Dq`?a(Ubt>LpVFuk! zE-}d-m(`PNlHlsA?NwE59C}rpdGR?#zQ+Jtw?KkAtn4Z7VF3Xv4aOQRLFFbD_m+|Z z0l`FqXfu*m-=jujYU>vrId&~=Sp^$y#uP+<|Mo>s!WV;6sL!6uKeP$e4$0DB`sI4g z1QJY$x&+q@RgyLv0Q%B94GlZ0EuQ6Dmr_En9-2Aq+Jx*adUi-=zw?nd*!o(4FDdj; z2n2$mHWBHqRbL~&6Cst3u#Wr&&!I2A2NpnS<+{aFUGAH!Hb{55b|{!w_QSMWf>uUg zJv2J+V8}3+`AZML9ZHfNpoU=D6T)a}>`En~P|z<99_{C^+5`G`AXHYfz?3>f7?@WC2ga z`@w#z<=3$|OVuEk!sBE4Acq(lenU_yN)TOGcz&{xJ^InG&U48+mrC`!FC5KatMJ@q zY5Am!ZSeS_q#twag!ri1L1{!dtd+XHVvX-)}TD+gUbZ<_IS__S2bo(Q)Yi?mY&hdvI(SKZq#R?W}2(eZ=Zb9~{T zH<$t@^vKiPyOdtQ#8u=Ti{RlF4LaTx-!^cCXnE9EA5K``gVM&9IjkKjIm_23B6@t# zy)UFW;;V;H=h85yWEkR-aP;^y6PWbu+gt|UAZyT9k0(u~G(~~7h(fCVehI`T>PnMu zik}DFhf&V^WwH2LAPLNy)aRYujQ(X%!?X$iX{&JECvY%>w?P@p-K)3nTZjoZ`tC#l zHBi;?GfNip+6bc)md@1sH^g;!f`~9XU`Za_a3CwTQ{dV;6DwSqUhq+f&=RM8U$M9F zX1No|jL=}%DJ*`%@>3jW{Igi=qtcP0r5Zabl`Xr*WCvg*gc~b&jPsqsw51hZnY|FC z>N=p8bEp0>?g^dU_DPMAmr4D`Rd^#rv$^Jd-)FA0GINL$f%X{ifV>* zjNP?Lb7}E_A%`lhS=HBm3-{;WqS7ff(D)oM0D&jcbq9%i+_i(8yCGH6e$mmZRg+kG zp2ZA)(5(9po$)qgd7O?k6(C&y>L1SLnM&>xF9}zi%1g@1=%D#( z=?+lP^~!GbPt~l=KD|HeW37QCPYk5dZrxfyx>|bX#%BM774++}Q{~2vDf#|H{K2Q) z04XPQxpVfz+Mdk)DMBEcQTd4!<7FrWHAdS6_tdEbDP2>SJz*I+SlM<*4BdJD<;Ncjw5J- z4g<&=`R11HDZkS;+Wg#;;~B$QF43rGpQ zNQXc`ddKgXckSMQyo5O{IRghdhY$pEAa9jL7Zb0bsbi5j2-w8HH`bLgn4FZ-b zC#!yNtsaV%yKneE4XOaD;GWi+-@mGbXq`feSx4>gTRa;oK27b-s;(Sek`L%RMNSc} zN({QU?+>bkK`v5t<^VSazuPBmmU!k^bs_}?spK<`5*1c+S&BR9Z#paaV#lUToOMj^ z@$+~8;3}T`!Nr<9Wb@TMsqGwf<<$2bN+0?1ChHC+M3^Px(HlH+C(oJ{+4}a&uDXm7 z%dMBrUdQUhd$&r&$D$x2xM;?@>_@8#?E`VtSowvBkKg=kbmslJ2|K-bkGRCi(p%JC z&l+5#wJ7;Y-ZNT4HmuNb!sW|%-Gy@7-Q{Am130cNH(>Ex@lXMazuzaofEO=Y0pGb| zvly%zJt~n(WadAUT^R54m6){u!R6|X_`xM#@Plj2XJRGBJ7I*lYeh_nle3L?Z%~Cn z7dTfn6nYv>r3Rz@f@ zNWQV9baZAs|HXky3kJdS1*|AgJ|i&1N=j*`RNomal+2qN{Pi-b)0#(63>2!P3mXBn zlYDP?Y6vyZcDKkvH-Zw#M637 zbxG>>K#9swI1@Wo_zc~-GC-1wdQ?#(tZV>zWvwXHdc6>VbZIK?wziC#-?^Y%*+SFR znZuFO@>(koe9{25OynOwxW1gy+7=byN1{`l%S0U2yVLxF9yVybdTe5C(!yk9*?L5DlREDOik8`L6y|%4|u4y`|+Qh*J zr4wu3^vAD9K)i!f{-(3H5)hhY)4GqCz;P^-Jlio`FJZX_+CWIDs=(Nk$({}OTMJ*W z&kqqn3LCc@Oy(ITCbk7gC3pNA)Q{nSw;h?DK|~w zesxIn*XsdHgmgxLG(2g;y++clvt6lBDC~*FUh+$){%7`*be-9t+c2N@__YR>Z5ji# zZhDr*lh>4BdUDirH{>88%WdryV5d}YBnB8K3I{7(9PDae9ah`3yyo(3V|-F_>(w%K zI+A{AR$OA|k-oRqvrrf+Uh^J_-4O7pG$lO4Sp*Cn0{Xo~Iy*PRv&=B{*K0ZW;o@Rl z%M_k{Af-5@YEkD`+wR@p5W5l--ZK*N0d5LtYw>I*MkII;Gdx=U?}Sfv4j3ab?l#Z`K~n$H(iM3_ywvfTcG;wt2;( z>sU&Ims~_Ot|qIhndW4?5w1;feOLi z;Iz#z0ql7{|L_)MHae2QvpiiH|)>C1Dvip=(K3C)#ReZv*=F_Oi%3ka;vgT zIm>k`F&IQbkjc$ljH$IP8wkGcpB`rIg?L+<)ah2ycGucA^`r4|8`(j_01aGEJY~)= zU_=vhWn*0UMZm=BB#%2f0h21AfAy1_>eBg;DraOaAPtM4?T>1yX#Y9+N3rrwHWfcN zn-``N=X-64HUceqhsZo38{m;~A)yglX>2p>wfDHh+(@x9YwBxri4bK~T()`jTJxOb z0{&B6rx%$qd~J#3mK~PxAVaD=r3$7O_*?p$=GT?PMvz*NnkohIw_#Z3i0HC3TF zR6L{&3S^?czPlILCuF1KymP!(pb;z8vJ`-fG&jGy1pcJCilDW5D}K|d%1zoCC9Cou(piaTb2~#S2nkzE=H+Q!_y63~en(BmDh;wiy-%zDLP}(>9^_tBl z<-w}uO85o(kuB0ny`luM&Lux=a76n8`P#}zP})?1hd2S;b-xG3eqLY9vY~jcgOk%7 ztWmT1afW22jB7x?jac}qN=GLGw3ObICOedssTDifpFtMBBV z@ymC6$^sg${v41y3TvSyBw2kUIPQpANFd4mokOxM(|`@2z1Y!ZF6h|v0KTllI|BlH z2(j<^L)o`oW{~An7DM9A+;O<*V|u3%!Y89|orVN^fGwLZ4*E;LhUd$cb$8xyZhe?I zzAN^pwr)&!NPecXIj|@oC%tbc^wj1DQ%&a-F?LLGGF?M*>(h(#v0u~A87Q2}!jyz& z+G7<^>9|)39{Eetv7+;is(7AhnD6eL=i4<6o>qkdsoarHo15@K?@|FunA3TkfzIX& zdGibmfHaSpgJ-XOkAFM1jbZI|9N*2b+qrQ8F?=)T<_Z@O$yrUW#ZBqt8*9&`A-edY&ZKBUQ zp-reLJOs$0hjMdl8H=P!>tc%BMVoWheM%)B>U7itG|ijAzxPSK^*V{=KO!=#x`+zU z(U)iUz(yQ(jvRF!wV>=EZpq+!R6w5$T7gQSdq0h-nvJW03o>ld&Wa^ldsj+|2$thxJ~Q6pXSnb za}Te$;6V~>qQBOd`)n2DKLf8s;wTf1ssflH6gn>@Lzdvaq>|A|7e0H~XZ#ptv8yrV zHf`EZCf*y#Mg*TW{jHLKc<>V0+tqa^Gr5HwwW)IuMcIuvtvgd?uT);LI~EZqpp7kZ zpXk+N+2Rwff+}n2D!NB!doop}dv8yS=OGnytuzaqda>|fLb1HH!TqTbzQT-xcmTkN zhv0hb(ueXImvcot2UZuC5)J9DMytkBtxLxG)^p2fSUwf@-P1xfo?ICwT*Qqa$R3;; z`1p!X%{x0-#ng$?IRdS=m!F)WXT% zD>M>b9qqJ*mrVz9CWP^faoIi{W8DB%L&JQ|YJ)r3JYAHO|_ukr-*PGLND9@X(y?Wqa4* z9m4lB`#HiuvAa+jLg!mm?=C@-?|DzI8A;7&A#m=I1=DYgiWTxYqMENL(8FY`F12SB zKDbe>cP1)Ke&#Nh)6^eJ2(}YCjq)4=^@UzA%r8)v}nmxL3XuH(blNFtVeC?OW4QuUg;!9pQp*$ect_Vf=e&=i zy10QizacRKd4&o>&MYyd{Kv94>>?J-Nb8<~yDcj_AgoH-xR(0yF z>dr0w+SR3iO6HbrcL=pIV1Fwx@sZ&zy|u0h{R6Koj?+>0L|R8cVMM&&Ai8OG@7i!arjRIgXbTs~X7wNX3j ze$8iPCI!H!k?(Fr{rzIwWkNX0$SZliM$~)!#Kz;s?6M)EMAN|Qq9P-smWCaqHc&oH zuN6y73s3W&m-~(9amq|{?qSPNP5t}gW5)G%B-UK-lj$8!F}%^|Jz+KYB=aL(QB^#4 ztf)ix;4jqQC!P;r7WAm8(Y`roxO4i)rRtVhv-AzoVRB)dYyehg8tPYr0FigkFO;T^ zARdp)T}9r9n_i`s_ZUXc#nPo`><21kzc2XZRLv=8*-%&Czc!9D^HtSQztaOq1-`o= zP5^n57&q==pEck86d`1JBKKhrr*u*+TahYw{J5I0h4fPVOGFM&4$St7Z=ffxuh7I< zu1H_~{uOki($|-EF*`$eJNSUZ(`uUngUcRF@5BH}GwEgSv3DBxHoa;WMf46bYup17 z2dTAHO$H+R;ZHVB4*)I;AAIg_n{{WZ%B6D0*($w=lC~GAcQM$H9I|rFPqp+HZn^*bx2`BJzJX@c-*I9LvYMj#*`~Iz)cI(`X=FtO|H2^I-k(Ktb&qn|yNaRAu63 z+~e6e`zys=T32csd1HhZI2dk5%0FcrOmV}kIF{W@23?!4HJ(K)usly&`s6vMhP?iW zdFRKh41!q6+-8aw_%?9T8^ry zH_!^k${17q@81|ty*^r?CysRx2g;KcYkg<-Om3xrtX^C{d90vSb_+?oATG};fgUN(50$*z1GQ(P^`kg%?q|FYo$D7=BlH|pmlMF!7P zcFtVPrPVArFnZOQ@AIp>^^ZVnzcy&9UTSw<2ixE%oho)uEN}iFuE)i7^zFwDm7_g4 zBraX*`a6b}E~H&bt2h@-1#O!jPDD=lo< zy+A8Qcw-NPMpQiV=9pMrpo*q)Q?QL-o4do8)4Uiw?zrWGS9WE>`-em=EC_x^=kHJL zz^t2U72i|`dsBk_C`p(a_Ze&LpnM%&{Oelxcd)~kMe42%wTkgvE4TiC7xz~bJwG+( zZ^w?QG<(2L+a|;z*_A>p-}jy#Hap^0TuP?k49cau?m3l1C`U^V;=*Om zuckuVMJv^OG>?58?ul#R`Q3TKU^Hbb^LoWo*6HK4rRFQ;kG45Z>{%;fDmjBq=fPj` zUnt(Nqxm0Lpc0?2D85ULdEGq`s7bPtLj=DM$cu8+t`CK;)Vz^-b#!@Y+qk<~88%H<9g@s< zw|h`|P3GkcJjGKm9LUF7OTrmQDf|`e&HGf_L0X&+oYoRWVgzR8;yyam0}8Ps9<6uX z%OK?mnYhT5*LP0`jJfE2)}yPy=Aw>!miQ-pr@#|G#ycn5c$6g}K7wV!lE?^&!D&<( zR`IGw-uxoPdJ0SL9_J(E@!x5-z^|&;I*KsC2y{F| zfP&}dGr}g$YbLpL%b2+4RZw?fLqW3s9v=Caohb*>rbGX^(|_J$drF@AF!{Y&8RJj! zREqTtofk&pPD<3lQ-(`JwB^sLSAA)gRZa`Bwk)D8dM^7`b3Aq-BGbkP>K7hznYBwO z4r@QyyN6j&XfO0ZdiLDv$%G)JF3mKyO`r9e`;5TCbmsnQ4&|I5=WjOIv4EM6gXHa+ zuA{-l)qBC*trz444!d8!Ep8L<3f&wR9a8H)VghS`aWrJ{shIs&LD#Paj`jGi5HqzWYWd0ua4*APN5>fnpzfW19COmO6!PI zDor#Gx&tbsY{@n~7CPYXONRuc%7$g%mg^IR2^08p|Q^RFj~K zP2J>;k-fxTU7W+t^CN@B!(OZqg6~pkpU^F~1ArJR5(h<8tgfJMbS(-wlRg1uh{kFE zy=IS+?k?2`Pfw4hyX<>w?hWQsrovZ!e{k)*z}J-=Z8IM`DEB$s<*&(0O)X1BsNLLr{a`z z0_+VrJ*U(gbkX_0ObQroSXgot`{px5Pm>13yVUYB6X^W92#u(iFGLE@jz0|QGKZt~ zrzu?0*!F%`UVlk2*(k*xmHLw2zxaml0t^12T2RRAv!@4TvYklGd@g-fKFOvTcgzOXcq=a!IUrN{?U@%vjPm^r3YGHJy}JCHcO@N!W&+6LEYZSlNs zP~&4I+~Qtwknj(#bT4-F{GeW?@C30B4P>P2DFO|iuq`QSqG*}*f;Z1q-G;oRgj=}< zcpj(F4iE9BDU-BHn7=0TIb+N}CuszeonP=iqblJegvTjPZ~vd{ip9oLJFkOx!!qX9 zxAQ(`8OIOj>o}jy8*ncOv$bhAjpjkl#dEhXB^#jZTDf~X-;Q{;7e>eW7xoA%as-e2 zLVDp}HJWBEq`R6WBw)IB#76q*tXOwh{CM)okq-xo_0q5|5QU8{^YE~;p-hms`*F;} zlAiL3i}<`fpBA)bH37E~sHZ&XlTW~@kv}_leolqc#Uw!(6KC6ME@UG`~m6X*2b7ftWMHl&{?dwFZ3b=4sjkPao^r~}( zopj4|8BqQbPs)o%)IY+vA@pnW@n)M(@^4G7;Okf?BEM}b>t@tDHx<0$O#;O@+e#m- zkuOH`1gTmQH!C50e0=@@k;AN_@harKnkgdUK{4fl{Eb4lr3lRXVhc4&TG-YyEPZde zFRZ=vTma-IN;daf-|)#lVr{)^&02LeM`iTOoqR(%ws=j*v_HHjdJS+|c!|?n*#MScgqz(*~H;I5Nv?=*Bz!RzEs&8Dnnktvra_HAr;7!Or$9 zs@4R=ry+N!Vj$FY$Ru8Anm=pvw&Coc|b7fh`9de`3A2lo_$!rIUb90*}lS z?eSFCvo>18pxHuN=dej|YKo{*SF>ldtpw1cEley720JQ#_}w$9b$0*1F_!Vj)^ z2_z?J;c9V0n;RiAF7ny0^X~5B4$8M4IYJ5?A!-s3VpR0%Wid0ZU*gjZ7yL^tv1_+W zEH^^HQ)OmP+}(gY5R2SE4{oW7;Hd|Ox`s% zxb-0Go{}rLy2mNS>+NK62-RF(vY_ByoRyOv_~NK5$cqUEIwzj1vE#36HM`$?&Tpoc zublkEV;>giadOYtdONZ_RG|a&dSGzCLmXAWNP3#yQ8bHTy*Gde#}q*0Xq&9j9cH)< zCvQCpUZ@8MC8~} z3ANBaz*~Kh?;=WBwNaWs4RbK_TXkI_$wrG!tew(4J*>8iuRA2i9NuvP*g5~%E6@FX zTq=|Na;;<PIRP-+#60%<=AY(@`WZ#j53y?R zGFi_Yl3LG-J{W~4@$zz>Cm6KE&O$w~wyDvzU!Gt9gl5EM#*9^1+(xuxnGJ2ln{G>m z#a5Vg^%?PLAOl_+=f=|Xnmb{d3OC-JJWW=U$P;Sz4m*|xmR?p?iVI7qWF57B`Lyx=??q!jFE0|rPncSh(xKLf*SBCvZhKOJW##5-gF2 za*Rd3vP>U!(uEBOOv_re%`nhUJZ|%r4lIee*VgN789ZoxF6DAReM-ldE|S3qaI=1S zS^LxacmAiFIqS78_jrMgIKNAl+d2R9682h9;`?8HV|GGM54+)qf1sJSu zGMAK@3&U*>xSw@G{^?Lb&!DdaBWXriienzfC zo4(a4BVJsiL>d!8Sezl`w@00j`tRNCU-h5Pl`Nby{v6KZ*tFrOz!>si=c9E+v76+; zt2%jjh?wvw)faHNfUf8$DgLz91Y0gWb<30p&TU$Wm2RL07)nZ!*z@R>MrlJToJ?*jhjlJ~~#9ju8@D4Kx^S6k*ua&-8ve>Gyl;;wl8DX_+GBXmml{6~wFsCwp8t<3?ZF}fl{`tRs{nM2BB|+<_nI+ord?BxFWTV`as)BZCmvTe-Qj9f> z!Ft+=D;A%3D^j;d8}AcmDgi$cQZa#iBk$jr2R8lj^t)d5Tv2w%drPWlSWO_C5IOF)S6W94%C|qplcH zE7$sWiK#QpD^#ejR5u2?td?Ey?`y$cOr++ehxkP8oQpA6Vw+|vWqibetbne`6N7g^ z^eZo38zmFsjMWyT?(884?4qI*0J@-8?ZNB)f7|9h?%({rEHS(_2LL-%VK6vL0Cv#0 z_S05%^h)?o+v0yQ`cuDsE{{-hveAP*n-DZhH~%NIY_nDU$b*tjVf_>4S&V3b43Qo} zmTtsvPD<-5W!G~YJbUFyCCKPG9UUDlVBwbUu-X{1<^@MxlhKHu;+KYk z_SDRnn>C$X_nIC)n}+d1ij;wH(;0=m1WdL0GppxH8vxYPXeUp{pqwtC`e3>$%s~7zjwzZ%q3V7%2LcloOGHj`w>UFGH1!zx`HH}27s}%iQrZ5R@q1>! z^0T%w_ob_LP`Q^<4O)PIwYXE+*^p5rCPpXx71eX6YRTjOu>GERn zYx4b=pWfX0FaG%d^J75*BITl`Q~c@habHh_HQQt%OhsaNK7l{yy=^C-P^_+LJ9I28 z5qq@nU*BC-cu+3-+3{Vnc%^b|x#6}9CaqzsfNmk%*$~wOGw$oE=BbDMe%|Ki3mpMX zc*A@}1-hi-!eTmy$TVI&#!LaUJ-Q7mfdY)qoJ);fQPV?{ft<;2$H?a!Z~;A?7ClW- zaY@%SnlgpS;_F%u|Mh!u^gYCtuLlZ+J-2*vYn$~UMka&DD67tRmz1LXwe(j*UO;vQ z95CdSDY^HK(Wp%e4lqvdwib5+^oH(w570u4KryRj*I-L#X17I;+J8ou|>4$bpazN0!0-MI~iDQQ_>Y}`T2RHhpy%HAkD{YV49GWyjhtzwEi(~zb zhptGiq()V%mQC9-KneG`5V4pEF>v>#%j<~-i^|Nax;Yw|mNX0aT`9JMUNzNZ`U~L9 zxH!E(Q}N;3sgXuK8v9b5`zSc9`{j#a+(M+Wfj2R^`7&`fKUgazy+nR4Z7~DF9qz|2 zUpb%3TFJGqdy~WzcZ60fGZx977j}HxTI#0}TNz_=jdmHMhoUA&OE>c}U+K%MF)Gck zU;c9aeG(8cIC3X|XiYduv1B&ioeJnO=FN)60yDjVT-Z^x%O~XZ$984U;PvHw@b^8J z#0$aVW_G@VQ_r_ z(m6$=1$5dtFJ%LZSD>}wu3ckORuA8^DPPZ<@wWeotC0rN@dAf}w*u%|JaMkN2EnaT zA+@r4wBaw&*PcUehl;G58ZLjGD_wpmJ=03!uNI!jGPKU$IlDD6u!O-IXcX5NZ|X_J zx9b6aOqS>fjC+_&szAQ;4K7Ktd2FoE;%B6z)D7?FfMM$^J@oeIE`6a&;<^VN#>}_H z3(SJre`|O>!!AjI3TfGVZ{`%YKtMP>?{(4N8CZ{X- z{V9a^pMq)+uU%`2T5@7%z_`la723$Iz+g1Q?N_F2 zRhK-~wLXi)GLRYKH7X_HcB^0@@fZ+;2#@o~Nsp<#wjdkyX1?Y(*qcYGKECZvx(R!OmKnbrft_*z?-*A~9v-UV>wZ=JQ~h~~aezHTD?{TlL{N6Vf*g92`L z)PdO{iu2qW)_nrs>SOYcb@fWt(Yi3?yw z2_nehK;rMj_;rblE$z=U8u>}K3Xz2m7N`K1ddlbwZcb7sqJ9}NG6WOp@05VAsa_(- zbiePt6Qox&qiiDQW6YIXHjwqo-qXSs1agXmQJo45VBD_^xTD5qx(P*yM$-C9NMX>) za|}OJyC<(QBRBKFz`Fqb>BbdDcc&REkD!!J$%lP;d%+1T)bTyRhSGAWsu@1s?*rdTVL|5YQ+kyY zp2WmLTqTT~r;Gd~e9)HkHuJ;7GOG3`R8n4dKulG%-Kdp>uWUyw=P+h)3JTpZW8)GB z{&cMx+_ujpGCoS14SR#>&>H}ur(XjfC1%R5*ZkqWE&LOwofOfpC7t^W%epML)RwlGym7LPb%-_^tGLKtGiB zcgT}G|Mu&FAA1=$6xu~@1$|KD#w_C^XWtA%t`wqdsEFcgZKvoert68FUnn(Qd4I8A z@dPPbA)*#)o_0>ecS9JYWM)`rNtek~FjyS$v6fU=qAkeIMYGvM&;8KXf=>EqepGRdr>t;^0pmgoj-%NJxfVVEu?00o}nSgw2u~a{~PaNRP zVW3dmKSou5a6K4S-LtD5dvZGN)WYX1Zq@du9`Mx0tK>%IEa!4DU)o0EM}=N<6Uqu) zr3~tzf)A=u6zz;VNV@ueX+a!4IF4nk@TJ?{sx5!ac`{gl=QlzZj!2WoVaJM1jhR7d zA|_5$M-k#&;v{{PX=tJNqL zB=_|`h>xw+CmFS;&k;Megq0)4M_HGv9)B26*g3WkkxQk9wOws>YG$3ep4E1CGhIos+7m!PVD801pfTpl>` zkvAbB*os6+fglr?MwcWhAp1E0Irq7vZT*)=Pq_Z)>qslB!*v3GFY;NLIEKA1MY^TN zWzxtxj>3$^=ruB#AYp-pL3MO3`fpby^Ea%igZ0#tEQ#LyE$?+w6Ut7s@od_5!f3k2 zoe(~OdOmKmU$KLA6b2QDO}~bzS))_E&oFPs86sWf{kPXk4NBJtgrz?9cxJxc3)|d5 zee5S$Y^B{J5@NsmYUSU9!8pdOve13YIDM%bB&(In9%OM^3z-?1?m2wRIXHBhI^GRi zdRq$FcbN>pW4oGuaG6R7iWij5Q6}bwDXV|<&d1pns4!aNBq^z=a~ie=#vNzbopyNT zp~!_63SbD)es5|FE_ooHE5+$gzuC8XYqd zK;t!ar7!;8_&cL7VV(mA=QCU#a;sb`>Du!gvtCv6)Kq10X}qE*k=#qz7SDfHnB%-s z)TT8lJ``SNTe$m!D`xb%D2#{ZpX}(PE&OoCWaGn^hW7v~Vh#XX`wxEyXBMY%PfFbP zJM*;dS%*&XNIhIB z(^yGMutRUTT&wvTr87dh`2NZ{4Ii7B%kh`Xoo``!tvy#UuUZ8asvY&^bbRxgqPxSL zb_`}MR;^{l@`ElJyzbFGdmK=WFi6tX(GS(takc03C4>K2(Ea#Qi%gRqulTU`&r#P~ zA#pI<>vo&+%lRphjfL&te zO=6%1%DPTDO9B~PP2%%6H4Xf(I>OJAL6)J;&c0~#qR>aZ*8R&yIV!*zJTVt5UVU*Y z;mQEj7r^D|@}Ti*>#&zt)al-|7Z=}#)eO-J%HYFj0W}I38d!h3pwvRVP(urQ1(!&P z=Lr%aR;!6)?%gH-L{K`v1<8**r?O6|!53{+uzGLpBzw7rI!~M8!yl@n@({1TFXspp zG+NTn4zSSqnf`EP)^Tb#g++}_DbgW-h6NM+0{6Y&j?3_$Q&vQY2(Gf*<)UElPk2m4 zf@3Gkf*xn$HbEo@7f^i(`3far$#qkvg|C=0Eh}}{32O}Yg7Sd9?ql+OEsYzKc-7&o zO-K``uP!;_?yQ4|;?SD3UEdqWD$9ioSlO(RsP63#F4jfJ8Ny( zfxU_*_|}}@QB+ku72nj>aKiJJB7N9}4NSg zj*2fol{W2!;Sa7A+v5jY5jz>m83y$^#cz4w?(5kV zvjLLf6}!Wsdn3a*Bj54Gkv74 zIl9KF3d@juK!(TSTSiisc2y{e_+U=C+0}{Cg`_IBY`V{HF%K>ArsYWa%h9rtFvH45e+_(ETDoJa~?Gz9{V%5qT_dE zDVCRZ!C;YdwY6&wLb=1URNvV2u8IPvGLaH8a4}Y2veDiID66Y9tO2LXL}_oGsnhnUR;tH}-Kk zy3Ko!b;|gYW~8}?a^juWKF29+1W{ zaBZT+p*!-$UpMXE3Rq}+H6%AAayVH7B zX^#f%>I#8E%Ugt}T?_E{vuZ}k?smq<7m|-M;rb3uZW%^A@d;l#WH$!%LY&~e5}WIC8smW1YtJCl@IgZ=Q*0Is22J9RRXTTnV@P{^u@0>e)p(BS7rXZ z(NtJG#fN%KBUZB-AqpK$MB0p_5SccHMF9NT1kJ?*N8xv@b0`Skz|~G0Vy0HRWR%!> z{>^u%NWrI0DPek|p~VZHzoes~ajDu2wajgGuGHEUZ6_aT z{YPWbyanY7DT5>frS5c!ygbMsf0r2;dN*P-d6D-wdl*${Ba~KdUHVF{K|akXzS;{R z{JeStUvwXrp7GhEx;x$?Y-e-GX&^XWea-FsVr<$h>2*vdmY?c(7Sg^#}c$(!~ zTueDA5IxV<5AMs`j8*78%TH%oVvou&Z4|aa@R)10JARj+(mVnRqA&Ku!rJu+1gweE z`Y$(Ed-lFWylWpQl!M$^n(YBAH9qlZ+SHZ19mBY1yOu6>ZEl-tL+@Okc z636W`x=+^R;B9)~!j zSc{YJMFF_i=G|RIg2L$ybXZ4XIBtwjP4n03tzcuT4$ewt*@I+da%TTQnP+DSp=m4y z*1Y#h@yT#xxB7-Fztf8Hv_TpI-h5uck0B`9(#M%BSMoCLKbd? zy>gN`)9d+Dx>F+@n5(@JpTO*`I2Fpns^(k<+SAwg^{Ahk5W~_DY9;ZE&u-PW3PSpl z5$?Qm-U1iV75Q|}t=8#DSf~w34@Kyl-x&IR86=2l7Sy))io2e^_m`9q`A*+`797Mx zr;jAhYKGJZH&nMrKA^oo`ly5JC9Edv-BAvz%r4V_;_*6`fwEx2Mc#nz~DtUjlW7Wt)CRxf84^76o1;7;uDTpe#I2oW2-~fV@ zciBSO6godS^Xm5Nh7r-60{+2?FjKP-)0y(x~9YVeDB^M51h-LDhkgFgo5Vt;YJ&_HJui3bz!0p zyir>zuXjMq>gZR#1l4`q^oWJi(ZTUg8=p<|DOQn^WVI>wmixgcwcu8mrs`c0f$P_z z+i^NXN8u~sFMJ7JY2sc?(z3gKW?V^xqm|~DWsJTa3e#?rc%x-i*-0?c*#^Ir_80Wv z^L46;<+n%;mbtPD!HZeg_U$neF`H8`*57Mda&&3p2bWce22aVi^8LH3_whRqcoCt}4!BU7=gI)nkn~JjG-g*LwMuEqRw0{P~SJr1##rADXRX zS1Dz4vtS}n_|a~fjHiZRe1Pt!^@Jcn0L>}uVkwvIZKZ{?-AD|p@{+DwpOLhKI`?P6>fB#ykM?Klb>{~oL z4_&AVSJ4j2jJRCa{KEyLQ|wjm!>=l{#Scv8q{RA?R{-MMAPCYwoKP%6$_g-uL{xR~^p6zf0u%M2%&J2+wiJ^&A8&%6z8u@C%ko4haT%J7& zNHotVZf&809p+KD+!*JQF1XLeHFR#UDai$oKFw^@ifzV&-CF2M4CR;4F0X>ur_;N6 znqgaDtT`wh*q;djqBIlz+rdG#`{a+F(xq$c!oifW>y`}fMb#*)!>2>mBHE%Fk}E^FXVXD=1Qf`LoGkfjgGmR!a8bQgkit@go`al z`4<~>z&Kn@>1Xi@1dOkQP>OVa^*CtVEALnlTzhM7c8h9#v>VDWhhN&g>-v*tN&scm z9$TV69_@nL@{u*07>1illh17A$7uTP+)k3u!QN8mDGuP>hdam#P|O+O9)Z4tq(QUo zpZj~wE@S5jQ*t94EuP|HJBU>{B74FtFy~0=oS)W{MhDtIN;_9Mp1?U=nj28RGsVCkUv6EUCh4Nn8pn9Cf!XfK1 z89hyrbc)<0r|LoVgCtz~gFBrM-Vgch+Oa2c4h8N7MYmtG@(=&uo|(DyXyDu^`O2qQ zJuPTEd%k!Vc}JfZWiWheS!iBk@j%4zY8@#AXYZ=iK$ZuEc}l=wWpz(~r9`m3+1}U? zEl>Sx6!Lv+nQJjQ`0CSh%r4uxMVJgbQ9fr8>plvHwufjf8m*k?A3ntlyB>XOgq2XO znXOZ7=8Aw@%i~gF;YDM~$XvLGuweemNgNG{8m!-W@C4}A|+x_T3o=*52BqyGQY=nq= zmbjE0^`z_ceqERw8zf2mi!&$r+7JyBC)QrPnQyfc*d`@BqJ<6#y|V=mFchlEvWvF#uv#28YDUs1Jh2l z7n_Wr88d#~fEWV^q)L=(7q~B6xX%BISdGu>xbaluEs}$C$f4J)*Ly=`;L(0E!W0s} zelfZAl+^d<4^eS=cSO+r=NCWP-{+PkO1`c1t<9SI>^1O&W-wM#2&l#t6}I^GgVAHf zlN=7hH@dKUVu=`T&-blelB9wSj}XT)NlwpJ5R6?%HhD~2xCQ!RPkPp>{TM5b(YI1- z4f0MS_iFa$2~YjDZy9Hng$Fi$*Q9bzy*!)mX?!}M%mH0+%IcB5f^yghO4E$rQM3pG z;pq(6`A)--r;9OK$Q5W3>q&ieYifeP;BKB?bH z?;btnDNqK?Yzk)PqZL!=MX(?kT(ED3t*~dWYrc}c5$Rqu>6+c|7iNwAl;>4cuXCfK z%`s~bv#aYcIH{JOOMKquP9^PSbX^jy3WToiNO61VNut!@b4Z7?Pu zHKnM`o++pg@M{%FUw?jgnLk`ytx6as=Yptwv{MrQaCyQ&@<$_B{J zN^)^az7p~vYRcXlj1 zaQ9GkGmGj(^Ay(OI7DN*n)abd|kau&%k8_(2$J!p7%A z(xp|K7x~*bl>h-@a4|7;(CD~xPFCbE)#5^~MNx*3bosi7h->FP-DRhpE{9?QA3cj! zsP#mZ+XeyUC-PCkXI1V^5XUI#pp`Mmd>gSyzkLTK!nir4GoHnq(@XAv^xCm5ViaW1 zS4hTW% zq;jc@k3Ao&Yf{5sFRFjWzs|}Xg&T!9Os)D%!BO~cXKm{P%;6jHZRL*j3&&=3PbFL+ z@<@FJbw&Ln8#A$Xk)NR*mmgF^vbSei&Ag}q8&T~nWkP%Z&o`#fqLz9!XJW%&Pf$LA zhW+&A3;4J(L!-Vn%Hiu-2;JLS*@0QaMso>00bw%fqD+*aSd>Z9=aRJIu+jbCe&L%*|2Y8nG>BjI1ksBY!#P1 znDl5yd*u>?R2l@wT#wP=Ag%R;k)soxmYoqM{nt7^T(4{iGBOu47SLC2>;AnwgMkZQeK)IH0&|$e;z-3QvDH>DHB+q->C2E6KyWqhCL18>Ul!zk zU*!T*J6FTdgfN6$40j(Z&H^mVRmIsd09OtRI7clSH*(qa(|O=G6G zDZQ|v-1^PdXcg(@!miN|I|D3w`Xt`3)|1|+(3Q<$*5xJ{OHL$t=O!^>S^yAh0vV#Q z_im>3Q|8|6cN_Qpy&B(9iBN-~$PL*()yn+%^_vdgmRuWb^p4T(oQH7);HEHGi?#Pm z51f+w%A~Pc{u^X49(i}?n=zhsi?vPsVsJLYY^*S=y`1Ea9Gfx@B{T5Hra7euN3Vh5 zF3Xo3yCi%_PY4OAb1&rTtf8@=%Iuh-;cdsZsmbjh)S%a&^egZ0Xd2dNK=<*jxUAk6 zE7;gVL%Y09o(u{I?@MP7yjaw3X;FHhR9y&A)>=BguJfS3>>BUab`D=!u z=Q^dFJX$Bj>SrR><|N(OPR_~Lbxr1{OpU&C~=(&JdVRfp1S zO4B-bDy^|>nFMBd!7`3wlIJa+4wiFn_-!ANm=Eu%XFJRS35GCNl|LjAR4%H$UMu+a z-NV%!UUO6&y>?WSk|4iFv#Wwf_3aQVga;KJUYTlAG4xiiECxWEnV3-c&gF9F$_&Kl z3=~T40+$1#sy*K{wVY!-uu*fo(WS&a{<&e4BBI!3ep$Fg$FuTcSIo0`BQJ3sQDGo3 z6=IcPHKJ6zKX?+?dE#V=8L;@gmg>>O8Fjdu>zGAOA?B0dMpKmJGLlnVZbior2IYNV zTEoAdftiFJY^ZrVZt#tf148Fr3^Yl+__ACLHO`+=zwwI@1nxX!c^i>ITa zXo($I3y8D{yI{Jc2C`R~+};q96meVi*P+|ZS>4I1$LXI&O4RAg&=CfbnM(3>NK(Bo|`;mLBxCBLTvpmS}*b z%@l+MgB0SnY9*aAY>RV!A4lBm)O>EE8s9q;)XqR$xkE`n#|N%hL{#^+RWE#1yB0jG zb)NjQ_K=%Gj^Ayt%Ieh@R7JRy#MhR7;JjtU62rb~84m&2ltmV*pMV~7jBt;`%$naB? zVKS)JNZHFV5TJU4%JN^%$#}mwJbS%uGi5GBjF1;Qus#xy74LpFt8i0T7hrRoN~2&` z&T2szr&lR~%9?H=-0d1su*<5i2rR?t6FO z_7ZXH%2+{>zUIyHS^iyHp5UBMU0HtLgP4Zfw-SBdjuUIQH|7W_{^8-O5i9}H1;%-ji4g^TIga%k`|HuJad(0%NGhsnpHNKLg~-c_ zEfb?TaaS)8Arx(rWt>Ri!?~0r#ZMkKs|N%q^~B%J6)it_A`dK^BU|T$ynY~QlWo{l zg0&P#rVvwv&!oMV)Hi)5I+mAJQ68~1Foa}wE0_2OKrLsB7tPy+yJxNncF zn_^v`m<$yVqYavue3VUkpT-WHW!HadUh`6D=yVS8X3IN1AGz=?aKW7i_nD|sTWGf6 zSPE;bj~C7d)5%9hqZFLZu$L8k^O01J`b_SMWunE%zVEz#+xMthwZ$**Ej1Kp9_|w7 zw8i5Jvy{JHHMkntFb3Kw7&US-%e(xebo0f}++!W~JOs>#b5Hx=8a>5BmgS;_@3MHK z7}HQS(IxE<7726Q3QWC?`PikFFv8n(WZzm*k^4`RFPPlgo02^=ygFngk_91T$t#Du0hv(PE8{&AGctT z%*4YjO&yJc8S`_Yb6muf*%lO_{>E_>ct|&y7-76&f6R~H6bpUCB{|#b$$1jWMiZO2 z`q^#B(Gt9a6r@54GwLY_=%3pGsB7Ufvkbgh(X9K2sW<1->BHte)YMdb<24ykbsbRv z-Y7gnz`@Zziy>MIi@KK%k6Rv4$Q#Ozg4+v;)lfEOB1>*5yuX6thHCM|$MT1l_-O$g z{5IFRRXp$F_T*{Pkd&yX0ymB41#|e!_#dSnhaME}AQCVQv0@anT>goL8&x5GMgPF3 z^uT}@8SKNML@vD3;6w{U>UasSjt)iF`e|9UYs2wQ5o>xdkr89e5~l6VuP3iVv4y8Q zLI7%!jIgJNEZHn^lu8XXTy9!142dT2!qjI{#pRnqwhS_D28hlom1=g=ad083TcNGW z>6%SKeG2Ivf2g7Z^=u>W z8AKksrFzSAAL68@f`{kamg;p!r~njffrp-GYpNn#K#_r3Luxw=1{XfFuHtZd@^LV$ z@1$GqyDN=+c2TfHy!AUOo^RXFJU@coiCF1tFS;=09gWhV*%P~6;N3bwYT{LR)|vEp z%?r=pexNTG^}QX1EETrkzYn^Stw8#9WA&tBWUs<(d=l1F0IVd?lkc^R*d-^g@PlF>6Gzp_eWJ;!xsVIpz7vt?x? zxd{c6F$M(-!?dO{Js$c#53Ey)YPBsCO_jBM={M+!DRm5q-*)l0220M(feAchAySdG z6OnQp7WB54E)I1hZeBYWz~P8+JGmBBSihQ)o@PHF(Olt>#?M}6Jq$UCe6jLKJDX7( z+SwZ{6Zdo@M;;CJXY;GkZXu9)B6qJx~xAi$LiB{y;>>taJ^Q%nN#p;^B|62%`g( zWvkI8W9dvTMe)-B1gxzC=$SgjSx342N`>aBFycz%@8_0Au|DfkK>4M6kS+6&Lj1Uo z6o@GpqG=42`$3<-zVp3c>fy@bmmcwVCEb4R&1P7uH^m!U)yg15o#zQWvXMW+R1O(f z-s;G$)|1aV6pgyPRSTyz6)2st)3$Q424=BiVAaP_s-0yq8hF!? z>ZQj%GV_7F5AL8*@4k=#KryjgXc(xGllGwt?fXiGds1{E&<9lsA8qJnA^!% zC*?Uds>t4%!2*@|T!?{mdOD1&iNEE>i6rI%q{Ji%->)j{t|)K`_yC_$H@j#;?H%j6 zB5J(ZrZUu7Wj30LvZGW1t9FOHr8!d_d`78jLfeRDKH})-S9Nn%4pRya`Cd2m5#R#S z*&^CVlwckmNJXf9KetbKbw|`WMz{3cw91=aOxRI$dSfO=#&*vc+~m*1O>S1vvbXGi zo>WnPnR?U}!}-Yt+d-+DludOD!_rMwk$Thg0QibDz>s-jv+wiDQzQY@!6Ivo79n=j4G&D#5gR~*Spr3^}3jwu#( zQWPYa!kYY(ljJRsT7?a`_s5#6#|488NOx=pqHn9`e27QdxIH{}>f5|vz2zUud-1d= z6m;EE1iLb0>Y%#Gnyh_`HE`*${Kt0x|M>jhuT=d%PUt_}{Gw>dmyAh0jZwM6f3gi4 zEbkP1bI-u@$t3&K8oYv#`_=A3#4P@E z5d5LyFB{Mw1+xWg{^-5^VH<|ace$rr-NTxXVk1ib(D*V_|H)qe2j#~9Eq8uVJ@1!T z{0sCTzhqc{y3bddLr%@L@X$z3XbnnBSFUWthf{+HU5n_@m)+?PKz>RZ?|0Skr+c_5M#A`Mtwm0Du0XasAm&`@dYW;?J4-iwO{aZg79%=zmlD_+Piw5Y~N) zi<6q6hOOU3fA}LmCR&T@vU45t{kgb>`@=a~F}Z`#=Zl9w z)RNMsAQ_>WmQ|Xae|P)aCI4%$l2e+~ACc!uCS}N*nVVTPCS+O^&)YUGa!HywO&2Ha zdsgaFJ8zS7iuEAM1y?`YZSEKzA5V|RE!CgMca|ZKY{G6n|NgJK+5filw+H_Az~3JD O+XMfu2M+w!^Zx)W*BDy> literal 0 HcmV?d00001 diff --git a/docs/img/full.jpg b/docs/img/full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d15a6993a7fc3463f01aa56aa3655e52c5d6e7f2 GIT binary patch literal 404229 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 literal 0 HcmV?d00001 diff --git a/docs/img/register.jpg b/docs/img/register.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5d1245d159f4018689185f20801f3399be3d9a2 GIT binary patch literal 87773 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 literal 0 HcmV?d00001 diff --git a/docs/img/transfer.jpg b/docs/img/transfer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3cb2666f643da4076e8171e79b377a136425972f GIT binary patch literal 93058 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
@WwFkF(7jo( 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 Sz9aA*f$s?X?+D!eGW=g1N^)%g literal 0 HcmV?d00001 From 706d4e17b6a83c16fae7d2d82731f09fb260c72c Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 17:56:53 -0700 Subject: [PATCH 18/20] add architecture doc --- docs/architecture.md | 105 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 docs/architecture.md diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 000000000..b573bb937 --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,105 @@ +# System Architecture + +![zNS Smart Contract Connections and Call Routing](./img/full.jpg) + + +## [ZNSAccessController](./contracts/access/ZNSAccessController.md) and [AccessControlled](./contracts/access/AccessControlled.md) + +![Access Control](./img/ac.jpg) + +This is the module for access control of the whole ZNS system. Every contract inherits AccessControlled abstract contract that implements: + +- `accessController` as a state variable to be present in every child +- a getter for accessController +- a setter declaration for `accessController` to make sure every child contract implements it locally +- an event to fire every time `accessController` is changes in state +- `onlyAdmin` modifier since it is used in most child contracts + +Upon inheriting the `AccessControlled` every contract is connected to the overall access control of the system through `ZNSAccessController` address that has to be passed at initialization time in order to prevent non-admin accounts from setting crucial values in storage. + +`ZNSAccessController` itself inherits `AccessControl` from Open Zeppelin and adds some specific logic to provide ZNS contracts with necessary functions to limit system access to crucial functions. + +### Key responsibilities +- Provide a template for every contract in the system on how to add access control to its logic (via 1) +- Make sure important functions are implemented in children so that accessController variable can not be lost and can be reset on a live system +- Provide constants for all active roles in the system that will be used in production to validate callers +- Provide functionality to set good role structure for system safety +- Provide functionality to set and remove roles from accounts +- Provide easy checking functionality that all contracts using this module can access within their logic + +## [ZNSRegistry](./contracts/registry/ZNSRegistry.md) + +Key storage contract of the system responsible for basic crucial data about every domain/subdomain registered. The below data is mapped to each domain’s hash in `ZNSRegistry.records`. + +- `owner` (address) - owner of a domain. This address is necessary for the system to keep track of owners of domains and to provide secure access to domain management functionality. Only domain owner can modify and control a domain. Can be any arbitrary Ethereum address: smart contract, EOA. In cases when subdomain distribution (or other functionality) is being managed by the arbitrary contract, this contract has to be the owner of the parent domain. +- `resolver` (address) - address of a contract responsible for binding each domain name to a content of a certain type (e.g. ethereum address). For more info see “Resolvers” section. + +Every domain registered HAS to settle on this contract with its crucial data (above) written into a mapping keyed by domain name hash (bytes32). + +ZNSRegistry also has a mapping of `operators` in its state to manage operators for each owner. + +### Key responsibilities +- Serves as the last step of a domain registration process by saving the domain data in its storage +- Official final reference of an existence of a certain domain - we call ZNSRegistry to verify that a new domain being minted has not been minted already +- Is the first step in domain source discovery - we call `ZNSRegistry.getDomainResolver()` to find the Resolver that will tell us what this domain was created for (contract or wallet address, string, metadata hash, etc.). Currently ONLY ZNSAddressResolver is implemented, but more resolvers to come in the future for more data types. +- Reference for crucial domain related data (owner, resolver). +- Provide a way to install operators for any owner to allow them access to changing resolvers without the presence of the owner + +## [ZNSDomainToken](./contracts/token/ZNSDomainToken.md) + +A single token contract (ERC-721) responsible for tokenizing every domain/subdomain in the system, providing standard token functionality (e.g. transfer, mint, burn, etc.) for the ease of domain management along with ZNS specific functionality added on top of ERC ABI. + +### Key responsibilities +- Mint a new token every time a domain is registered atomically within the register transaction (`ZNSRegistrar.register()` -> `ZNSDomainToken.register()`) +- Burn the respective token every time a domain is revoked atomically within the revoke transaction (`ZNSRegistrar.revokeDomain()` -> `ZNSDomainToken.revoke()`) +- Determine and check owner of any given domain token by the tokenId +- Transfer domain token to change the owner +- Serve as a standard ERC-721 token with all the functionality provided, so the token can be traded and managed by other applications + +## Resolvers and [ZNSAddressResolver](./contracts/resolver/ZNSAddressResolver.md) +System is expected to have multiple Resolver contracts, each being responsible for resolutions to their own supported types for domain sources. Zero will deploy a certain amount of them to support data types planned (FUTURE) , but these Resolvers can potentially be developed, deployed and managed by any parent domain owner to provide more data type resolutions for their subdomains. + +Resolver is structured to be a simple contract, having a mapping of a domain namehash to the specific source type (e.g. `bytes32 => address` OR `bytes32 => bytes`, etc.). Each Resolver can support one data type at a time or can be a combined one, supporting multiple. + +The ONLY resolver currently implemented is `ZNSAddressResolver`. It supports only address data type and has a simple mapping of `bytes32 domainHash => address contentAddress`. + +### Key responsibilities +- Provide a straightforward binging of a domain namehash to specific domain source data (e.g. `hash(“cooldomainname”) => 0x1bc5d767ff…`) +- Provide a simple and straightforward resolution from a name to domain source +- Provide the way for any DO to change their domain source at any point in time along with simple access control which will not allow anyone else, other than the domain owner, to change this data +- Interface checking logic (ERC-165) to provide easy type checking on supported types for the current Resolver. + +## [ZNSPriceOracle](./contracts/distribution/ZNSPriceOracle.md) +Price Oracle contract serves as the trusted source of pricing data and determines prices of domain names based on the predefined formula and length of the domain name. Current implementation includes a formula, all the base values necessary to calculate prices and their setters. + +`ZNSPriceOracle` is called by `ZNSTreasury` contract within the operation of staking user funds to register a new domain. Beside the actual pricing, ZNSPriceOracle also provides calculation of the fees based on the price of the domain. Upon determining the price + fee, the data comes back to ZNSTreasury that performs it’s own state writes and withdraws the funds from user’s wallet. + +### Key responsibilities +- Provide deterministic formula for domain name price calculations based on the length of the label string +- Provide a way to get a calculated fee value based on the price of the domain +- Provide ways to reconfigure pricing and fees on a live system based on the set of variables through their setters + +## [ZNSTreasury](./contracts/distribution/ZNSTreasury.md) +This contract performs staking logic with the help of `ZNSPriceOracle`, which it uses to get pricing and fees for every domain registered. Treasury itself performs the actual stake transfers and stores their amounts mapped by `domainHash`. These amounts are used to unstake upon domain revocation later. + +It also moves fees to `zeroVault` address specified by the ZNS Admin along with `stakingToken` which represents any ERC-20 that is chosen to use as the token for domain payments (staking). The original `stakingToken` will be `$ZERO`, but the contract is made to support any other standard ERC-20 token in the future, which can easily be re-set in state. + +### Key responsibilities +- Perform actual stake transfers based on the prices and fees acquired from ZNSPriceOracle as a part of the register transaction (locked to ZNSRegistrar only) +- Perform stake withdrawals for users who are removing their domains from ZNS as a part of the revoke transaction (locked to ZNSRegistrar only) +- Store staked amount in state (and possibly token address), tied to the domain hash and not a specific owner to be more adaptable to owner changes without the need to perform extra logic +- Store the address of the ERC-20 staking token and provide ways to re-set it in production +- Store the address of the ZNSPriceOracle contract in order to perform calls to get prices and fees. + +## [ZNSRegistrar](./contracts/distribution/ZNSRegistrar.md) +While Registrars in general can have arbitrary distribution logic (e.g. sales, auctions, giveaways, etc.) `ZNSRegistrar` is specifically designed to distribute all Root Domains of ZNS. It will do it through staking logic in conjunctions with other possible SCs. + +`ZNSRegistrar` is the entry point to the ZNS system for most main domain operations (register, reclaim, revoke) and is connected to all other contracts besides `ZNSPriceOracle`. It combines multiple operations into atomic transactions and routes the logic inside ZNS to achieve proper results for main domain operations. It also ensures proper sequences in which operations should be performed. + +`ZNSRegistrar` is the only contract in the system that has a proper ROLE assigned to it in `ZNSAccessController` to use it as a way to protect other contracts to be called only by the ZNSRegistrar, which protects the data in the system and ensures proper operation execution. Many other contract functions have `onlyRegistrar()` modifiers which make sure that the caller is a contract with REGISTRAR_ROLE. + +### Key responsibilities +- Store all system crucial modules (beside ZNSPriceOracle) in state to be able to call required contracts for any flow. +- Provide the main function for registering Root Domains, make sure that operations, especially ones using other contracts are performed properly and in proper sequence. Combine logic of other contracts in one atomic transaction. Check name existence, take the stake from the user, mint a domain token, set the data in ZNSRegistry. +- Provide the main function for reclaiming full domain ownership for owners of the specific Domain Token. Ensure that ONLY the owner of the actual token (tokenId) can do this, call ZNSRegistry to update the owner in records. +- Provide the main function for revoking domains. Make sure that the only address allowed to do that is both: owner of the Name and owner of the Token. Call ZNSRegistry to delete record, call ZNSDomainToken to burn the token, call ZNSTreasury to unstake. \ No newline at end of file From 35f70b1645a0bf0337fabd7753ad9890a4c767a7 Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 17:57:02 -0700 Subject: [PATCH 19/20] add flows doc with pics --- docs/flows.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs/flows.md diff --git a/docs/flows.md b/docs/flows.md new file mode 100644 index 000000000..3d5507d22 --- /dev/null +++ b/docs/flows.md @@ -0,0 +1,13 @@ +# ZNS Flow Diagrams + +## Domain Content Discovery +![pic](./img/discovery.jpg) + +## Domain Registration +![pic](./img/register.jpg) + +## Domain Transfer +![pic](./img/transfer.jpg) + +## Domain Revocation +![pic](./img/revoke.jpg) \ No newline at end of file From 438d0f2756fdfeaf32f061a932e7e7e4adf641bd Mon Sep 17 00:00:00 2001 From: Kirill Date: Tue, 11 Jul 2023 17:57:16 -0700 Subject: [PATCH 20/20] add doc links to Readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index ca7698791..fc65f483a 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,7 @@ [![CircleCI](https://dl.circleci.com/status-badge/img/gh/zer0-os/zNS/tree/development.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/zer0-os/zNS/tree/development) # zNS + +### [System Architecture](./docs/architecture.md) +### [Smart Contract Docs](./docs/contracts) +### [Flow Diagrams](./docs/flows.md) \ No newline at end of file