commit
ebda87dd3c
@ -0,0 +1,31 @@ |
|||||||
|
/* eslint-env node, mocha */ |
||||||
|
/* global artifacts, contract, assert */ |
||||||
|
|
||||||
|
const Web3 = require('web3'); |
||||||
|
const ethUtil = require('ethereumjs-util'); |
||||||
|
|
||||||
|
const provider = new Web3.providers.HttpProvider('http://localhost:8555'); // testrpc-sc
|
||||||
|
const web3 = new Web3(provider); |
||||||
|
const Simple = artifacts.require('./Simple.sol'); |
||||||
|
|
||||||
|
contract('Simple', accounts => { |
||||||
|
it('should set x to 5', () => { |
||||||
|
let simple; |
||||||
|
return Simple.deployed() |
||||||
|
.then(instance => instance.test(5)) // We need this line to generate some coverage
|
||||||
|
.then(() => { |
||||||
|
const message = 'Enclosed is my formal application for permanent residency in New Zealand'; |
||||||
|
const messageSha3 = web3.sha3(message); |
||||||
|
const signature = web3.eth.sign(accounts[0], messageSha3); |
||||||
|
|
||||||
|
const messageBuffer = new Buffer(messageSha3.replace('0x', ''), 'hex'); |
||||||
|
const messagePersonalHash = ethUtil.hashPersonalMessage(messageBuffer); |
||||||
|
|
||||||
|
const sigParams = ethUtil.fromRpcSig(signature); |
||||||
|
const publicKey = ethUtil.ecrecover(messagePersonalHash, sigParams.v, sigParams.r, sigParams.s); |
||||||
|
const senderBuffer = ethUtil.pubToAddress(publicKey); |
||||||
|
const sender = ethUtil.bufferToHex(senderBuffer); |
||||||
|
assert.equal(sender, accounts[0]); |
||||||
|
}); |
||||||
|
}); |
||||||
|
}); |
@ -1,22 +1,22 @@ |
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const fs = require('fs') |
const fs = require('fs'); |
||||||
const request = require('request') |
const request = require('request'); |
||||||
|
|
||||||
request({ |
request({ |
||||||
uri: 'http://localhost:8888', |
uri: 'http://localhost:8888', |
||||||
body: { |
body: { |
||||||
jsonrpc: "2.0", |
jsonrpc: '2.0', |
||||||
method: "web3_clientVersion", |
method: 'web3_clientVersion', |
||||||
params: [], |
params: [], |
||||||
id: 0 |
id: 0, |
||||||
}, |
}, |
||||||
json: true |
json: true, |
||||||
}, (error, response, body) => { |
}, (error, response, body) => { |
||||||
if (error) { |
if (error) { |
||||||
console.error(error) |
console.error(error); |
||||||
process.exit(1) |
process.exit(1); |
||||||
} |
} |
||||||
fs.writeFileSync('../allFiredEvents', 'foobar') |
fs.writeFileSync('../allFiredEvents', 'foobar'); |
||||||
process.exit(0) |
process.exit(0); |
||||||
}) |
}); |
||||||
|
Loading…
Reference in new issue