Created
March 9, 2018 19:21
-
-
Save NFhbar/ce4b22d5fc3a65559f694ab3bf9ab418 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma solidity 0.4.19; | |
contract Factory { | |
/* | |
* Events | |
*/ | |
event ContractInstantiation(address sender, address instantiation); | |
/* | |
* Storage | |
*/ | |
mapping(address => bool) public isInstantiation; | |
mapping(address => address[]) public instantiations; | |
/* | |
* Public functions | |
*/ | |
/// @dev Returns number of instantiations by creator. | |
/// @param creator Contract creator. | |
/// @return Returns number of instantiations by creator. | |
function getInstantiationCount(address creator) | |
public | |
constant | |
returns (uint) | |
{ | |
return instantiations[creator].length; | |
} | |
/* | |
* Internal functions | |
*/ | |
/// @dev Registers contract in factory registry. | |
/// @param instantiation Address of contract instantiation. | |
function register(address instantiation) | |
internal | |
{ | |
isInstantiation[instantiation] = true; | |
instantiations[msg.sender].push(instantiation); | |
ContractInstantiation(msg.sender, instantiation); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment