Merge pull request #16 from smartkek/tests

Tests
This commit is contained in:
Evgeny 2019-06-23 16:34:03 +03:00 committed by GitHub
commit f28a4d123c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 3 deletions

View File

@ -15,9 +15,9 @@ contract VerifierProxy is IVerifier {
// Truffle gives `UnimplementedFeatureError: Encoding struct from calldata is not yet supported.`
// that's why function is public and uses memory location modifier
function isValid(Data memory data, Proof memory proof) public returns (bool) {
bytes memory payload = abi.encodeWithSelector(verifier.verifyTx.selector, proof, data);
bytes memory payload = abi.encodeWithSelector(verifier.verifyTx.selector, proof.a, proof.b, proof.c, data.input);
(bool success, bytes memory r) = address(verifier).call(payload);
require(success);
return abi.decode(r, (bool));
return success && abi.decode(r, (bool));
// return verifier.verifyTx(proof.a, proof.b, proof.c, data.input);
}
}

38
truffle/test/test.js Normal file
View File

@ -0,0 +1,38 @@
const Lazy = artifacts.require('./Lazy.sol');
const Verifier = artifacts.require('./Verifier.sol');
contract("Testing Lazy", accounts => {
it("should deploy with 2 tasks", async () => {
let instance = await Lazy.deployed();
let tasksNum = await instance.tasksNum.call();
assert.equal(tasksNum.valueOf(), 2);
});
it("should detect incorrect proof", async () => {
let instance = await Lazy.deployed();
let task = await instance.tasks(0);
assert.equal(task.status, 0);
await instance.challenge(0);
task = await instance.tasks(0);
assert.equal(task.status, 2);
});
});
contract("Testing Verifier", accounts => {
const a = ["0x12d0dbcfc1da3ea29bc017288fceea3929401f4f12dbd0bba73781420d31aa2d","0x2811c1eaa63f4a804951bd7f994cbb6bea9df64591793b8392400e8756d1bca7"];
const b = [["0x04c33f68e1bd55be0928b086c647debcdf7aa0e3c3efc6a8efbc2596a77a0e67","0x17e7392e0e3ec2b5701e675e6e0569330d03ffffe476fc8d63cfeaa0ba1c8a97"],["0x2fc402693a54cd1b176abeed209674f2f12ced1496c6ce27ba8cf16903daa4cc","0x2c47efba3f4f260da643bb6427d08b551bb3446537d6ac4857d611be2355a446"]];
const c = ["0x04d40f14694092d0f70890a20492b2b68e7eaabdcee744e519678d687c9c3ed0","0x28de140e393154b0e70b3ef12806af963a4a33b45c24e7864391093b6028fa2b"];
const input = ["0x00000000000000000000000000000000c6481e22c5ff4164af680b8cfaa5e8ed","0x000000000000000000000000000000003120eeff89c4f307c4a6faaae059ce10","0x000000000000000000000000000000005b6d7d198c48c17c9540d29275a04662","0x00000000000000000000000000000000f7a9aa434629a33c84eec3e16e196f27","0x0000000000000000000000000000000000000000000000000000000000000001"]
it("should process proofs", async () => {
let instance = await Verifier.deployed();
let result = await instance.verifyTx.call(a,b,c,input);
console.log("verfifier thinks that result is " + result)
// assert.equal(result.valueOf(), false);
});
});