Merge pull request #94 from nfnty/reserve

Rename "second sale" to "reserve".
This commit is contained in:
Jarrad 2017-06-16 14:25:55 +08:00 committed by GitHub
commit 8956cb5c2e
4 changed files with 21 additions and 22 deletions

View File

@ -2,14 +2,14 @@
## Functional Specification
### Distribution
- 29% is for a Secondary contribution period (multisig)
- 29% is for reserve (multisig)
- 20% goes to the status team and founders (multisig, 2 Year Vesting Contract, 6 month cliffs)
- Remaining 51% is divided between the initial contribution period itself and SGT, where SGT is <= 10% of total supply.
### Whitelist
Addresses can be whitelisted and have guaranteed participation up to a set maximum amount, ignores Dynamic Ceiling. Sending ETH to the smart contract address should be no different, whether whitelisted or not.
Status Genesis Tokens
SGT is a Minime Token thats total supply of 500,000,000 maps to, and cannot exceed 10% of the total supply.
SGT is a Minime Token thats total supply of 500,000,000 maps to, and cannot exceed 10% of the total supply.
ie. If 250,000,000 of SGT is allocated then SGT maps to 5% of the total supply.
SGT can be redeemed for SNT after contribution period.

View File

@ -50,7 +50,7 @@ contract StatusContribution is Owned, TokenController {
address public destEthDevs;
address public destTokensDevs;
address public destTokensSecondarySale;
address public destTokensReserve;
uint256 public maxSGTSupply;
address public destTokensSgt;
DynamicCeiling public dynamicCeiling;
@ -90,8 +90,7 @@ contract StatusContribution is Owned, TokenController {
/// @param _dynamicCeiling Address of the contract that controls the ceiling
/// @param _destEthDevs Destination address where the contribution ether is sent
/// @param _destTokensDevs Address where the tokens for the dev are sent
/// @param _destTokensSecondarySale Address where the tokens for the secondary sell
/// are going to be sent
/// @param _destTokensReserve Address where the tokens for the reserve are sent
/// @param _sgt Address of the SGT token contract
/// @param _destTokensSgt Address of the exchanger SGT-SNT where the SNT are sent
/// to be distributed to the SGT holders.
@ -107,7 +106,7 @@ contract StatusContribution is Owned, TokenController {
address _destEthDevs,
address _destTokensDevs,
address _destTokensSecondarySale,
address _destTokensReserve,
address _sgt,
address _destTokensSgt,
@ -137,8 +136,8 @@ contract StatusContribution is Owned, TokenController {
require(_destTokensDevs != 0x0);
destTokensDevs = _destTokensDevs;
require(_destTokensSecondarySale != 0x0);
destTokensSecondarySale = _destTokensSecondarySale;
require(_destTokensReserve != 0x0);
destTokensReserve = _destTokensReserve;
require(_sgt != 0x0);
SGT = MiniMeToken(_sgt);
@ -316,12 +315,12 @@ contract StatusContribution is Owned, TokenController {
//
uint256 percentageToContributors = percent(41).add(percent(10).sub(percentageToSgt));
uint256 percentageToSecondary = percent(29);
uint256 percentageToReserve = percent(29);
// SNT.totalSupply() -> Tokens minted during the contribution
// totalTokens -> Total tokens that should be after the allocation
// of devTokens, sgtTokens and secondary
// of devTokens, sgtTokens and reserve
// percentageToContributors -> Which percentage should go to the
// contribution participants
// (x per 10**18 format)
@ -342,13 +341,13 @@ contract StatusContribution is Owned, TokenController {
// Generate tokens for SGT Holders.
//
// percentageToSecondary
// secondContribTokens = ----------------------- * totalTokens
// percentage(100)
// percentageToReserve
// reserveTokens = ----------------------- * totalTokens
// percentage(100)
//
assert(SNT.generateTokens(
destTokensSecondarySale,
totalTokens.mul(percentageToSecondary).div(percent(100))));
destTokensReserve,
totalTokens.mul(percentageToReserve).div(percent(100))));
//
// percentageToSgt

View File

@ -18,7 +18,7 @@ const assertFail = require("./helpers/assertFail");
contract("StatusContribution", (accounts) => {
let multisigStatus;
let multisigComunity;
let multisigSecondarySell;
let multisigReserve;
let multisigDevs;
let miniMeFactory;
let sgt;
@ -42,7 +42,7 @@ contract("StatusContribution", (accounts) => {
it("Should deploy Contribution contracts", async () => {
multisigStatus = await MultiSigWallet.new([accounts[0]], 1);
multisigComunity = await MultiSigWallet.new([accounts[1]], 1);
multisigSecondarySell = await MultiSigWallet.new([accounts[2]], 1);
multisigReserve = await MultiSigWallet.new([accounts[2]], 1);
multisigDevs = await MultiSigWallet.new([accounts[3]], 1);
miniMeFactory = await MiniMeTokenFactory.new();
sgt = await SGT.new(miniMeFactory.address);
@ -81,7 +81,7 @@ contract("StatusContribution", (accounts) => {
devTokensHolder.address,
multisigSecondarySell.address,
multisigReserve.address,
sgt.address,
sgtExchanger.address,

View File

@ -17,7 +17,7 @@ const assertFail = require("./helpers/assertFail");
contract("StatusContribution", (accounts) => {
let multisigStatus;
let multisigComunity;
let multisigSecondarySell;
let multisigReserve;
let multisigDevs;
let miniMeFactory;
let sgt;
@ -43,7 +43,7 @@ contract("StatusContribution", (accounts) => {
it("Should deploy Contribution contracts", async () => {
multisigStatus = await MultiSigWallet.new([accounts[0]], 1);
multisigComunity = await MultiSigWallet.new([accounts[1]], 1);
multisigSecondarySell = await MultiSigWallet.new([accounts[2]], 1);
multisigReserve = await MultiSigWallet.new([accounts[2]], 1);
multisigDevs = await MultiSigWallet.new([accounts[3]], 1);
miniMeFactory = await MiniMeTokenFactory.new();
sgt = await SGT.new(miniMeFactory.address);
@ -83,7 +83,7 @@ contract("StatusContribution", (accounts) => {
devTokensHolder.address,
multisigSecondarySell.address,
multisigReserve.address,
sgt.address,
sgtExchanger.address,
@ -275,7 +275,7 @@ contract("StatusContribution", (accounts) => {
const balanceDevs = await snt.balanceOf(devTokensHolder.address);
assert.equal(balanceDevs.toNumber(), totalSupply.mul(0.20).toNumber());
const balanceSecondary = await snt.balanceOf(multisigSecondarySell.address);
const balanceSecondary = await snt.balanceOf(multisigReserve.address);
assert.equal(balanceSecondary.toNumber(), totalSupply.mul(0.29).toNumber());
});