Modify discover contract in order to remove unnecessary rows
This commit is contained in:
parent
6b704dc1a8
commit
6927dfb4fb
|
@ -93,9 +93,7 @@ contract Discover is ApproveAndCallFallBack, BancorFormula {
|
||||||
* @param _amount uint, included for approveAndCallFallBack
|
* @param _amount uint, included for approveAndCallFallBack
|
||||||
*/
|
*/
|
||||||
function downvote(bytes32 _id, uint _amount) external {
|
function downvote(bytes32 _id, uint _amount) external {
|
||||||
(,,uint c) = downvoteCost(_id);
|
_downvote(msg.sender, _id, _amount);
|
||||||
require(_amount == c, "Incorrect amount: valid iff effect on ranking is 1%");
|
|
||||||
_downvote(msg.sender, _id, c);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -105,9 +103,7 @@ contract Discover is ApproveAndCallFallBack, BancorFormula {
|
||||||
* @param _amount of tokens to withdraw from DApp's overall balance.
|
* @param _amount of tokens to withdraw from DApp's overall balance.
|
||||||
*/
|
*/
|
||||||
function withdraw(bytes32 _id, uint _amount) external {
|
function withdraw(bytes32 _id, uint _amount) external {
|
||||||
uint dappIdx = id2index[_id];
|
Data storage d = _getDAppById(_id);
|
||||||
Data storage d = dapps[dappIdx];
|
|
||||||
require(d.id == _id, "Error fetching correct data");
|
|
||||||
|
|
||||||
require(msg.sender == d.developer, "Only the developer can withdraw SNT staked on this data");
|
require(msg.sender == d.developer, "Only the developer can withdraw SNT staked on this data");
|
||||||
require(_amount <= d.available, "You can only withdraw a percentage of the SNT staked, less what you have already received");
|
require(_amount <= d.available, "You can only withdraw a percentage of the SNT staked, less what you have already received");
|
||||||
|
@ -154,6 +150,14 @@ contract Discover is ApproveAndCallFallBack, BancorFormula {
|
||||||
emit MetadataUpdated(_id);
|
emit MetadataUpdated(_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dev Used in UI in order to fetch all dapps
|
||||||
|
* @return dapps count
|
||||||
|
*/
|
||||||
|
function getDAppsCount() external view returns(uint) {
|
||||||
|
return dapps.length;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notice Support for "approveAndCall".
|
* @notice Support for "approveAndCall".
|
||||||
* @param _from Who approved.
|
* @param _from Who approved.
|
||||||
|
@ -203,9 +207,7 @@ contract Discover is ApproveAndCallFallBack, BancorFormula {
|
||||||
* @return effect of donation on DApp's effectiveBalance
|
* @return effect of donation on DApp's effectiveBalance
|
||||||
*/
|
*/
|
||||||
function upvoteEffect(bytes32 _id, uint _amount) external view returns(uint effect) {
|
function upvoteEffect(bytes32 _id, uint _amount) external view returns(uint effect) {
|
||||||
uint dappIdx = id2index[_id];
|
Data memory d = _getDAppById(_id);
|
||||||
Data memory d = dapps[dappIdx];
|
|
||||||
require(d.id == _id, "Error fetching correct data");
|
|
||||||
require(d.balance.add(_amount) <= safeMax, "You cannot upvote by this much, try with a lower amount");
|
require(d.balance.add(_amount) <= safeMax, "You cannot upvote by this much, try with a lower amount");
|
||||||
|
|
||||||
// Special case - no downvotes yet cast
|
// Special case - no downvotes yet cast
|
||||||
|
@ -243,16 +245,8 @@ contract Discover is ApproveAndCallFallBack, BancorFormula {
|
||||||
* @return balance_down_by, votes_required, cost
|
* @return balance_down_by, votes_required, cost
|
||||||
*/
|
*/
|
||||||
function downvoteCost(bytes32 _id) public view returns(uint b, uint vR, uint c) {
|
function downvoteCost(bytes32 _id) public view returns(uint b, uint vR, uint c) {
|
||||||
uint dappIdx = id2index[_id];
|
Data memory d = _getDAppById(_id);
|
||||||
Data memory d = dapps[dappIdx];
|
return _downvoteCost(d);
|
||||||
require(d.id == _id, "Error fetching correct data");
|
|
||||||
|
|
||||||
uint balanceDownBy = (d.effectiveBalance.div(100));
|
|
||||||
uint votesRequired = (balanceDownBy.mul(d.votesMinted).mul(d.rate)).div(d.available);
|
|
||||||
uint votesAvailable = d.votesMinted.sub(d.votesCast).sub(votesRequired);
|
|
||||||
uint temp = (d.available.div(votesAvailable)).mul(votesRequired);
|
|
||||||
uint cost = temp.div(decimals);
|
|
||||||
return (balanceDownBy, votesRequired, cost);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _createDApp(
|
function _createDApp(
|
||||||
|
@ -306,9 +300,7 @@ contract Discover is ApproveAndCallFallBack, BancorFormula {
|
||||||
function _upvote(address _from, bytes32 _id, uint _amount) internal {
|
function _upvote(address _from, bytes32 _id, uint _amount) internal {
|
||||||
require(_amount > 0, "You must send some SNT in order to upvote");
|
require(_amount > 0, "You must send some SNT in order to upvote");
|
||||||
|
|
||||||
uint dappIdx = id2index[_id];
|
Data storage d = _getDAppById(_id);
|
||||||
Data storage d = dapps[dappIdx];
|
|
||||||
require(d.id == _id, "Error fetching correct data");
|
|
||||||
|
|
||||||
require(d.balance.add(_amount) <= safeMax, "You cannot upvote by this much, try with a lower amount");
|
require(d.balance.add(_amount) <= safeMax, "You cannot upvote by this much, try with a lower amount");
|
||||||
|
|
||||||
|
@ -340,11 +332,8 @@ contract Discover is ApproveAndCallFallBack, BancorFormula {
|
||||||
}
|
}
|
||||||
|
|
||||||
function _downvote(address _from, bytes32 _id, uint _amount) internal {
|
function _downvote(address _from, bytes32 _id, uint _amount) internal {
|
||||||
uint dappIdx = id2index[_id];
|
Data storage d = _getDAppById(_id);
|
||||||
Data storage d = dapps[dappIdx];
|
(uint b, uint vR, uint c) = _downvoteCost(d);
|
||||||
require(d.id == _id, "Error fetching correct data");
|
|
||||||
|
|
||||||
(uint b, uint vR, uint c) = downvoteCost(_id);
|
|
||||||
|
|
||||||
require(_amount == c, "Incorrect amount: valid iff effect on ranking is 1%");
|
require(_amount == c, "Incorrect amount: valid iff effect on ranking is 1%");
|
||||||
|
|
||||||
|
@ -359,7 +348,29 @@ contract Discover is ApproveAndCallFallBack, BancorFormula {
|
||||||
emit Downvote(_id, d.effectiveBalance);
|
emit Downvote(_id, d.effectiveBalance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _downvoteCost(Data memory d) internal view returns(uint b, uint vR, uint c) {
|
||||||
|
uint balanceDownBy = (d.effectiveBalance.div(100));
|
||||||
|
uint votesRequired = (balanceDownBy.mul(d.votesMinted).mul(d.rate)).div(d.available);
|
||||||
|
uint votesAvailable = d.votesMinted.sub(d.votesCast).sub(votesRequired);
|
||||||
|
uint temp = (d.available.div(votesAvailable)).mul(votesRequired);
|
||||||
|
uint cost = temp.div(decimals);
|
||||||
|
return (balanceDownBy, votesRequired, cost);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @dev Used internally in order to get a dapp while checking if it exists
|
||||||
|
* @return existing dapp
|
||||||
|
*/
|
||||||
|
function _getDAppById(bytes32 _id) internal view returns(Data storage d) {
|
||||||
|
uint dappIdx = id2index[_id];
|
||||||
|
Data memory d = dapps[dappIdx];
|
||||||
|
require(d.id == _id, "Error fetching correct data");
|
||||||
|
|
||||||
|
return dapps[dappIdx];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
* @dev Decodes abi encoded data with selector for "functionName(bytes32,uint256)".
|
* @dev Decodes abi encoded data with selector for "functionName(bytes32,uint256)".
|
||||||
* @param _data Abi encoded data.
|
* @param _data Abi encoded data.
|
||||||
* @return Decoded registry call.
|
* @return Decoded registry call.
|
||||||
|
|
Loading…
Reference in New Issue