function rpc(method, arg) { var req = { jsonrpc: "2.0", method: method, id: new Date().getTime() }; if (arg) req.params = arg; return new Promise((resolve, reject) => { web3.currentProvider.sendAsync(req, (err, result) => { if (err) return reject(err) if (result && result.error) { return reject(new Error("RPC Error: " + (result.error.message || result.error))) } resolve(result) }) }) } // Change block time using the rpc call "evm_setTimestamp" available in the testrpc fork https://github.com/Georgi87/testrpc web3.evm = web3.evm || {} web3.evm.setTimestamp = function (time) { return rpc('evm_setTimestamp', [time]) }