Skip to content

Commit

Permalink
Fixed tests for chaingear
Browse files Browse the repository at this point in the history
  • Loading branch information
cyborgshead committed Dec 4, 2018
1 parent 393605e commit 345dd14
Show file tree
Hide file tree
Showing 12 changed files with 495 additions and 472 deletions.
123 changes: 86 additions & 37 deletions contracts/chaingear/Chaingear.sol
Expand Up @@ -5,6 +5,7 @@ import "openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol";
import "openzeppelin-solidity/contracts/payment/SplitPayment.sol";
import "openzeppelin-solidity/contracts/lifecycle/Pausable.sol";
import "openzeppelin-solidity/contracts/math/SafeMath.sol";
import "openzeppelin-solidity/contracts/AddressUtils.sol";

import "../common/IDatabaseBuilder.sol";
import "../common/IDatabase.sol";
Expand All @@ -20,6 +21,7 @@ import "../common/IChaingear.sol";
contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPayment, ERC721Token {

using SafeMath for uint256;
using AddressUtils for address;

/*
* Storage
Expand All @@ -42,13 +44,14 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
}

DatabaseMeta[] private databases;

uint256 private headTokenID = 0;

mapping(string => bool) private databasesNamesIndex;
mapping(string => bool) private databasesSymbolsIndex;


uint256 private headTokenID = 0;
mapping(address => uint256) private databasesIDsByAddressesIndex;

uint256 private amountOfBuilders = 0;
mapping(uint256 => string) private buildersVersionIndex;
mapping(string => DatabaseBuilder) private buildersVersion;

Safe private chaingearSafe;
Expand Down Expand Up @@ -115,31 +118,46 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
*/

function addDatabaseBuilderVersion(
string _version,
IDatabaseBuilder _builderAddress,
string _linkToABI,
string _description
string _version,
IDatabaseBuilder _builderAddress,
string _linkToABI,
string _description
)
external
onlyOwner
whenNotPaused
{
require(buildersVersion[_version].builderAddress == address(0));
require(address(_builderAddress).isContract() == true);

buildersVersion[_version] = (DatabaseBuilder(
{
builderAddress: _builderAddress,
linkToABI: _linkToABI,
description: _description
}));
buildersVersionIndex[amountOfBuilders] = _version;
amountOfBuilders = amountOfBuilders.add(1);
}

function updateDatabaseBuilderDescription(
string _version,
string _description
)
external
onlyOwner
whenNotPaused
{
require(buildersVersion[_version].builderAddress != address(0));
buildersVersion[_version].description = _description;
}

function createDatabase(
string _version,
address[] _benefitiaries,
uint256[] _shares,
string _name,
string _symbol
string _version,
address[] _benefitiaries,
uint256[] _shares,
string _name,
string _symbol
)
external
payable
Expand Down Expand Up @@ -218,7 +236,7 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
chaingearSafe.claim(msg.sender, _amount);
}

function updateRegistrationFee(uint256 _newFee)
function updateCreationFee(uint256 _newFee)
external
onlyOwner
whenPaused
Expand All @@ -230,6 +248,22 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
* Views
*/

function getAmountOfBuilders()
external
view
returns(uint256)
{
return amountOfBuilders;
}

function getBuilderById(uint256 _id)
external
view
returns(string)
{
return buildersVersionIndex[_id];
}

function getDatabaseBuilder(string _version)
external
view
Expand All @@ -246,6 +280,24 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
);
}

function getDatabasesIDs()
external
view
returns (uint256[])
{
return allTokens;
}

function getDatabaseIDByAddress(address _databaseAddress)
external
view
returns(uint256)
{
uint256 id = databasesIDsByAddressesIndex[_databaseAddress];
require(exists(id) == true);
return id;
}

function getDatabase(uint256 _databaseID)
external
view
Expand Down Expand Up @@ -278,7 +330,6 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
view
returns (uint256, uint256)
{
require(exists(_databaseID) == true);
uint256 databaseIndex = allTokensIndex[_databaseID];

return (
Expand All @@ -287,24 +338,6 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
);
}

function getDatabasesIDs()
external
view
returns (uint256[])
{
return allTokens;
}

function getDatabaseIDByAddress(address _databaseAddress)
external
view
returns(uint256)
{
uint256 id = databasesIDsByAddressesIndex[_databaseAddress];
require(exists(id) == true);
return id;
}

function getChaingearDescription()
external
pure
Expand All @@ -313,7 +346,7 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
return CHAINGEAR_DESCRIPTION;
}

function getRegistrationFeeWei()
function getCreationFeeWei()
external
view
returns (uint256)
Expand All @@ -337,6 +370,22 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
return chaingearSafe;
}

function getNameExist(string _name)
external
view
returns (bool)
{
return databasesNamesIndex[_name];
}

function getSymbolExist(string _symbol)
external
view
returns (bool)
{
return databasesSymbolsIndex[_symbol];
}

/*
* Public functions
*/
Expand Down Expand Up @@ -418,14 +467,14 @@ contract Chaingear is IChaingear, SupportsInterfaceWithLookup, Pausable, SplitPa
versionOfDatabase: _version,
linkABI: buildersVersion[_version].linkToABI, // delete this
createdTimestamp: block.timestamp,
currentWei: uint256(0),
accumulatedWei: uint256(0)
currentWei: 0,
accumulatedWei: 0
}));

databases.push(database);

databasesNamesIndex[_name] = true;
databasesSymbolsIndex[_name] = true;
databasesSymbolsIndex[_symbol] = true;

uint256 newTokenID = headTokenID;
databasesIDsByAddressesIndex[databaseAddress] = newTokenID;
Expand Down
2 changes: 1 addition & 1 deletion contracts/common/Safe.sol
Expand Up @@ -24,7 +24,7 @@ contract Safe {
external
{
require(msg.sender == owner);
require(_amount <= address(this).balance);
// require(_amount <= address(this).balance);
require(_entryOwner != address(0));

_entryOwner.transfer(_amount);
Expand Down
File renamed without changes.
1 change: 1 addition & 0 deletions openzeppelin-solidity

0 comments on commit 345dd14

Please sign in to comment.