mirror of
https://github.com/fluencelabs/lazy-snark
synced 2025-04-25 06:52:14 +00:00
commit
f28a4d123c
@ -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
38
truffle/test/test.js
Normal 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);
|
||||
});
|
||||
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user