diff --git a/DISCLAIMERS b/DISCLAIMERS new file mode 100644 index 0000000..8d48ced --- /dev/null +++ b/DISCLAIMERS @@ -0,0 +1,32 @@ +Disclaimers for DECA offering: + +General Disclaimer: + + This Offering may be subject to securities regulations in your country of +residence. As such, you may wish to consult with your investment advisor. +The complete explanation of the DECA project and the merits of the investment +in DECA are outlined in the White Paper and other supporting documents. +These are available for review on the DECA website (https://deca.eco). + +Further Disclaimer if investor is located in North America: + + This Offering may be subject to securities regulations in your country of +residence. As such, you may wish to consult with your investment advisor. +The complete explanation of the DECA project and the merits of the investment +in DECA are outlined in the White Paper and other supporting documents. +These are available for review on the DECA website (https://deca.eco). + + Investors who are located in North America may qualify for investment under an +“accredited investor” exemption. While this exemption may vary by jurisdiction, +the general criteria is outlined as follows: + + “Accredited Investor”, means a purchaser that: +  +(a) Has, in each of the past two years, had gross income before taxes of + $200,000 (or $300,000 with a spouse) and has a reasonable expectation of + achieving such income in the current year; +  +(b) Has financial assets of $1,000,000 (either alone or with a spouse), where + financial assets means cash and securities; or +  +(c) Has net assets of $5,000,000 (either alone or with a spouse). diff --git a/contracts/DECA.sol b/contracts/DECA.sol index 6076917..9c3752b 100644 --- a/contracts/DECA.sol +++ b/contracts/DECA.sol @@ -153,6 +153,13 @@ contract DECA is ERC20, Ownable { _mint(msg.sender, toSender); } + //Add weeks in case ICO gets not enough funds + function appendWeeks(uint addWeeks ) public onlyOwner { + require(now >= bonus2Ends && now < endDate); + // add weeks to the endDate + endDate += (addWeeks * 1 weeks); + } + //Close down the ICO and claim the Ether. function getETH() public onlyOwner { require(now >= endDate); diff --git a/test/DECA.js b/test/DECA.js index ec37d50..4cf9fb4 100644 --- a/test/DECA.js +++ b/test/DECA.js @@ -84,63 +84,64 @@ contract('DECA', function (accs) { }) }), - describe('check pause', function () { - it('should get/set pause', async function () { - let p = await this.deca.getPause.call(); - assert.equal(false, p, "pause should be disabled") - await this.deca.setPause(true, {from: this.creator.address, gas: 6712390}) - p = await this.deca.getPause.call(); - assert.equal(true, p, "pause should be enabled") - }) - it('should fail on pay', async function () { - await this.deca.setPause(true, {from: this.creator.address, gas: 6712390}) - let wasErr = false; - try { - let rs = await web3.eth.sendTransaction({ - from: this.creator.address, - to: this.deca.address, - value: 225, - gas: 6712390 - }); - } catch (err) { - wasErr = true; - } - await this.deca.setPause(false, {from: this.creator.address, gas: 6712390}) - wasErr = false; - try { - let rs = await web3.eth.sendTransaction({ - from: this.creator.address, - to: this.deca.address, - value: 225, - gas: 6712390 - }); - } catch (err) { - wasErr = true; - } - assert.equal(false, wasErr, "pause should work") - }) - it('check intruder pause', async function () { - var sender = await getHighBalance(); - await increaseTime(duration.days(1)) - await web3.eth.sendTransaction({ - from: sender.address, + describe('check pause', function () { + it('should get/set pause', async function () { + let p = await this.deca.getPause.call(); + assert.equal(false, p, "pause should be disabled") + await this.deca.setPause(true, {from: this.creator.address, gas: 6712390}) + p = await this.deca.getPause.call(); + assert.equal(true, p, "pause should be enabled") + }) + it('should fail on pay', async function () { + await this.deca.setPause(true, {from: this.creator.address, gas: 6712390}) + let wasErr = false; + try { + let rs = await web3.eth.sendTransaction({ + from: this.creator.address, to: this.deca.address, - value: 1, + value: 225, gas: 6712390 }); - let wasErr = false; - try { - await this.deca.setPause(true, {from: sender.address, gas: 6712390}) - } catch (err) { - wasErr = true; - } - assert.equal(true, wasErr, "only owner could pause") - let own = await this.deca.owner(); - assert.equal(this.creator.address, own, "owner does not match") - }) + } catch (err) { + wasErr = true; + } + await this.deca.setPause(false, {from: this.creator.address, gas: 6712390}) + wasErr = false; + try { + let rs = await web3.eth.sendTransaction({ + from: this.creator.address, + to: this.deca.address, + value: 225, + gas: 6712390 + }); + } catch (err) { + wasErr = true; + } + assert.equal(false, wasErr, "pause should work") }) + it('check intruder pause', async function () { + var sender = await getHighBalance(); + await increaseTime(duration.days(1)) + await web3.eth.sendTransaction({ + from: sender.address, + to: this.deca.address, + value: 1, + gas: 6712390 + }); + let wasErr = false; + try { + await this.deca.setPause(true, {from: sender.address, gas: 6712390}) + } catch (err) { + wasErr = true; + } + assert.equal(true, wasErr, "only owner could pause") + let own = await this.deca.owner(); + assert.equal(this.creator.address, own, "owner does not match") + }) + + }) describe('check crowdsale dates', function () { it('check preICOEnds', async function () { @@ -199,8 +200,22 @@ contract('DECA', function (accs) { assert.equal(true, wasErr, "crowdsale should be stopped") }) - + it('check appendWeeks', async function () { + await increaseTime(duration.weeks(10)) + // get endDate before + let endDateBefore = await this.deca.endDate.call(); + // add one week + await this.deca.appendWeeks(1, { + from: this.creator.address, + gas: 6712390 + }); + // get endDate after + let endDateAfter = await this.deca.endDate.call(); + // 1 week = 604800 seconds + assert.equal(604800, endDateAfter - endDateBefore, "appendWeeks does not work"); + }) }) + describe('transferAnyERC20Token', async function () { it('check transfer from external', async function () {