The Bepro.Network

A product for decentralized open source development

The Network is a decentralized marketplace and system that connects developers with operators - anyone looking to build open-source development repositories.

Here you can request features for your open-source tool and take advantage of all the BEPRO Network management tools. Current known issues of the Alpha Version (not decentralized) - that will be solved once the mainnet version is deployed :

  • Easier Feature Process Opening for Projects & Managers

  • Automated Distribution of Bounty Rewards (more than 1 developer)

  • Provide a % of the bounty directly to reviewers of the issue

  • Agnostic Dispute/Resolution system in case developers & operators disagree on issue finalization or bounty distributions

  • Easier Overview for Developers of all the issues worked on & bounties received

  • Easier Overview for Projects of all the bounty distribution

Open Issues and process bounties automatically

Here you will be able to find a way to create your features in an automated fashion, by locking the bounty price initially and trusting the BEPRO Network holders to resolve any further disputes in case the parties don't agree if the issue was well executed or if any development is necessary.

Create/Resolve disputes by using $BEPRO in your oracle reporting

Oracle the information based on Github issue development to provide an accurate oracle reporting to the Network, lock your $BEPRO against what you know is the correct outcome of the correct distribution of the bounties.

Oracle Reporting

Propose merges to decentralize the bounties distribution

Our system was created to make it easier for operators & other developers to propose bounty distributions for all participating developers. Only entities with more than 25M $BEPRO are allowed to propose merge proposals & its distributions of the bounties to avoid spam in the network

Propose Merge Proposals, Distributions & Rewards

Creating Merge Proposals with distribution to the right bounty participators is done like this:

/**
* @dev Owner finalizes the issue and distributes the transaction tokens or rejects the PR
* @param _issueID issue id (mapping with github)
* @param _prAddresses PR Address
* @param _prAmounts PR Amounts
*/
function proposeIssueMerge(uint256 _issueID, address[] memory _prAddresses, uint256[] memory _prAmounts) public whenNotPaused {
Issue memory issue = issues[_issueID];
require(issue._id != 0 , "Issue has to exist");
require(issue.finalized == false, "Issue has to be opened");
require(_prAmounts.length == _prAddresses.length, "Amounts has to equal addresses length");
require(transactionToken.balanceOf(msg.sender) > COUNCIL_AMOUNT*10**18, "To propose merges the proposer has to be a Council (COUNCIL_AMOUNT)");
MergeProposal memory mergeProposal;
mergeProposal._id = issue.mergeIDIncrement;
mergeProposal.prAmounts = _prAmounts;
mergeProposal.prAddresses = _prAddresses;
mergeProposal.proposalAddress = msg.sender;
uint256 total = ((issues[_issueID].tokensStaked * (mergeCreatorFeeShare)) / 100); // Fee + Merge Creator Fee + 0
for(uint i = 0; i < _prAddresses.length; i++){
total = total.add((_prAmounts[i] * (100-mergeCreatorFeeShare)) / 100);
}
require(total == issues[_issueID].tokensStaked, "Totals dont match");
issues[_issueID].mergeProposals[issue.mergeIDIncrement] = mergeProposal;
issues[_issueID].mergeIDIncrement = issues[_issueID].mergeIDIncrement + 1;
emit MergeProposalCreated(_issueID, mergeProposal._id, msg.sender);
}