Merge pull request #94 from nfnty/reserve
Rename "second sale" to "reserve".
This commit is contained in:
commit
8956cb5c2e
4
SPEC.md
4
SPEC.md
|
@ -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 that’s total supply of 500,000,000 maps to, and cannot exceed 10% of the total supply.
|
||||
SGT is a Minime Token that’s 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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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());
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue