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
it("should send coin correctly", function() { | |
var meta; | |
// Get initial balances of first and second account. | |
var account_one = accounts[0]; | |
var account_two = accounts[1]; | |
var account_one_starting_balance; | |
var account_two_starting_balance; | |
var account_one_ending_balance; |
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
it("should successfully call specialFn because enough time passed", async function () { | |
let meta = await MetaCoin.new(); | |
await timeTravel(86400 * 3) //3 days later | |
await mineBlock() // workaround for https://github.com/ethereumjs/testrpc/issues/336 | |
let status = await meta.specialFn.call(); | |
assert.equal(status, true, "specialFn should be callable after 1 day") | |
}) |
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
const timeTravel = function (time) { | |
return new Promise((resolve, reject) => { | |
web3.currentProvider.sendAsync({ | |
jsonrpc: "2.0", | |
method: "evm_increaseTime", | |
params: [time], // 86400 is num seconds in day | |
id: new Date().getTime() | |
}, (err, result) => { | |
if(err){ return reject(err) } | |
return resolve(result) |
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
contract MetaCoin { | |
//...Code | |
uint endTime; | |
//...Code | |
modifier onlyAfterDate() { | |
if(now <= endTime) { | |
throw; | |
} | |
_; | |
} |
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
it("should fail because function does not exist on contract", async function () { | |
let meta = await MetaCoin.deployed(); | |
try { | |
await meta.someNonExistentFn.call(); | |
} catch (e) { | |
return true; | |
} | |
throw new Error("I should never see this!") | |
}) |
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
var MetaCoin = artifacts.require("./MetaCoin.sol"); | |
// ... more code | |
contract('MetaCoin', function(accounts) { | |
it("should put 10000 MetaCoin in the first account", async function() { | |
let meta = await MetaCoin.deployed(); | |
let balance = await meta.getBalance.call(accounts[0]); | |
assert.equal(balance.valueOf(), 10000, "10000 wasn't in the first account") | |
}); | |
// ... more code |
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
const operationOne = function async (data) { | |
let step1 = await somePromise(data) | |
let step2 = await anotherPromise(step1) | |
return step2.data | |
} | |
actionOne() | |
.then(operationOne) | |
.then(data => { | |
//more work | |
}) |
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
const status = () => { | |
return MetaCoin.deployed() | |
.then(instance => { | |
return instance.getBalance.call(accounts[0]); | |
}) | |
.then(balance => { | |
assert.equal(balance.valueOf(), 10000, "10000 wasn't in the first account"); | |
}) | |
} |
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
//... | |
const SignVerifyArtifact = require('./contracts/SignAndVerifyExample') | |
const SignVerify = contract(SignVerifyArtifact) | |
SignVerify.setProvider(provider) | |
//... | |
SignVerify | |
.deployed() | |
.then(instance => { | |
let fixed_msg = `\x19Ethereum Signed Message:\n${msg.length}${msg}` | |
let fixed_msg_sha = web3.sha3(fixed_msg) |
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
signature = signature.substr(2); //remove 0x | |
const r = '0x' + signature.slice(0, 64) | |
const s = '0x' + signature.slice(64, 128) | |
const v = '0x' + signature.slice(128, 130) | |
const v_decimal = web3.toDecimal(v) |