Last active
April 3, 2018 11:49
-
-
Save kirillsurkov/3bc186bcddb7284ee475784a455f03af to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| let FaceterToken = artifacts.require("./FaceterToken.sol"); | |
| let FaceterTokenLock = artifacts.require("./FaceterTokenLockV2.sol"); | |
| let toNumber = (value, decimals) => value.slice(0, value.length-decimals) + "." + value.slice(value.length-decimals); | |
| let getTime = () => new Promise(next => web3.eth.getBlock("latest", (err, block) => next(block.timestamp))); | |
| let incTime = seconds => new Promise(next => | |
| web3.currentProvider.sendAsync({jsonrpc: "2.0", method: "evm_increaseTime", params: [seconds], id: 0}, () => | |
| web3.currentProvider.sendAsync({jsonrpc: "2.0", method: "evm_mine", id: 0}, next) | |
| ) | |
| ); | |
| const THREE_MONTHS = 7948800; | |
| module.exports = function(deployer, network, accounts) { | |
| const buffer = accounts[0]; | |
| const customer = accounts[1]; | |
| const whitelisted = accounts[2]; | |
| deployer.deploy(FaceterToken, buffer).then(() => FaceterToken.deployed()).then(async faceterToken => { | |
| console.log("running tests\n"); | |
| console.log("adding '" + whitelisted + "' to whitelist"); | |
| await faceterToken.addToWhitelist(whitelisted); | |
| const faceterTokenLock = FaceterTokenLock.at(await faceterToken.holder()); | |
| const decimals = parseInt((await faceterToken.decimals()).toString()); | |
| let unlock = async () => { | |
| console.log("time: " + await getTime()); | |
| console.log("step: " + await faceterTokenLock.unlockStep()); | |
| console.log("trying to unlock"); | |
| try { | |
| await faceterTokenLock.unlock(); | |
| console.log("success"); | |
| } catch(e) { | |
| console.log("failed"); | |
| } | |
| console.log("buffer balance: " + (await faceterToken.balanceOf(buffer)).div("1" + Array(decimals).fill("0").join("")).toString() + "\n"); | |
| }; | |
| for (let i = 0; i < 10; i++) { | |
| await unlock(); | |
| await incTime(THREE_MONTHS); | |
| } | |
| console.log(); | |
| let transfer = async from => { | |
| console.log("transfer to buffer from '" + from + "'"); | |
| try { | |
| await faceterToken.transfer(buffer, 1000, {from: from}); | |
| console.log("success"); | |
| } catch(e) { | |
| console.log("failed"); | |
| } | |
| }; | |
| let transferFrom = async from => { | |
| console.log("transferFrom to buffer from '" + from + "'"); | |
| try { | |
| await faceterToken.transferFrom(buffer, buffer, 1000, {from: from}); | |
| console.log("success"); | |
| } catch(e) { | |
| console.log("failed"); | |
| } | |
| }; | |
| let testWhitelist = async () => { | |
| console.log("paused: " + await faceterToken.paused()); | |
| await transfer(customer); | |
| await transferFrom(customer); | |
| await transfer(whitelisted); | |
| await transferFrom(whitelisted); | |
| }; | |
| await faceterToken.transfer(customer, 2000, {from: buffer}); | |
| await faceterToken.transfer(whitelisted, 2000, {from: buffer}); | |
| await faceterToken.approve(customer, 2000, {from: buffer}); | |
| await faceterToken.approve(whitelisted, 2000, {from: buffer}); | |
| await testWhitelist(); | |
| console.log(); | |
| await faceterToken.unpause(); | |
| await testWhitelist(); | |
| }); | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment