Skip to content

Commit

Permalink
QR code passing
Browse files Browse the repository at this point in the history
  • Loading branch information
mm-zk committed Sep 1, 2024
1 parent 0adb8ce commit e74b266
Show file tree
Hide file tree
Showing 9 changed files with 1,119 additions and 70 deletions.
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,26 @@ And then finally, the 'small' (KZG) proof (will take multiple minutes) - and thi
RUST_LOG=info cargo run --bin evm --release -- --input-file=../tmp/output_file.json --output-proof-file=../tmp/proof.json
```

### Generating QR code with proof

Now you can generate the QR code that will contain your proof:

```shell
cargo run -- --input-file=../examples/proof_nft.json --output-file=../examples/proof_nft_qr.jpg
```


### Verify (on raspberry pi)

Finally you can verify the proof from the QR code on your offline device:

```shell
python3 verifier.py
python3 verifier.py qr ../examples/proof_nft_qr.jpg
```

In this case, you also have to 'hardcode' the verification key in the device code.


## Stuff to do

* Verify that transaction has executed correctly (get the receipt too).
Expand Down
15 changes: 15 additions & 0 deletions examples/proof.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"structType": "0",
"sender": "0x78E7Ce0a792FBf1141D200770320370C65b70c4E",
"receiver": "0xeaD5D45Df30e1036607736FaC20936809fBFF277",
"token": "0x6E893d508031b9bde1AA5969288fA5d197E5a480",
"amount": "65055097000000000000",
"txId": "0xbe8d5c1eba50aec04e07d627fb2bfcf71cafd242c9e231681ffc5aba12cc385c",
"nft": "0x0000000000000000000000000000000000000000",
"owner": "0x0000000000000000000000000000000000000000",
"batchNumber": "0",
"slotPosition": "0",
"vkey": "0x00238ded04e76b8ba857754a53926a85650366a0ccfdd71a1430dc6cccdf1c28",
"publicValues": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000078e7ce0a792fbf1141d200770320370c65b70c4e000000000000000000000000ead5d45df30e1036607736fac20936809fbff2770000000000000000000000006e893d508031b9bde1aa5969288fa5d197e5a48000000000000000000000000000000000000000000000000386d2220b79949000be8d5c1eba50aec04e07d627fb2bfcf71cafd242c9e231681ffc5aba12cc385c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"proof": "0xc430ff7f0175e4c8b8eb4161978aeae22e4375869f6054ea097f4329c3ba3dbe617d26c1170d09b2365d9f95aa1bb49c9b8c76ed8ac0978e3020773e6bd928e1caa3e9390fa75b51f5e38f8527ee2e8945d2dd00cc5a0611b7e64680e82760e90693933101709c4e7295db95af8e505ac0b7fa06d824fd93893d0fbee3b5d4b17bd1ed091fdab9779d26aa180c15227261ad8d1593a449a48ce17792dc82fd7090c2f14f0e5ff847cede5c966b4492e1bc2083f4fccb07e449ee796673e4d45105694319265c39fb56f4519a4ca76597e871670c6de00c565ac8fb4289ffcbcaf593048f1b5cd2b33ec96b2c91d28ca4fb5a12313c2b1a764fc909cd84f8ed42d0a150fb069b201b0b240a0409909419cf20ea4bc80048907c03b63e40c5697c946fc7da0e9c663fcf9ca5136d771e60c004d33da329f15d547eac52ac5c6d1f7f8cb8a900f043de2d8cd469379ad8e7651ff3561bfa35823ab7e6fd9316f1ec2220c70926cf24c2e21c44b17af864c4c3d2e61bcbf0e8040dbeba157c4d7e79fdf5ec8c2f3f0427043bfae87b42ec1fc7b997527a9a3ef2dbd9f7f7fedf79c819fe63c22a3e6115db384943959882cbb5e8541cb3cdc824de0cc6cb6948c612831b09de09bb16f61437b9a5298d554a61840fbfd8344c33da47885d43aba1ce394b0c7d05ee92172592921b7873d1582cc24a1ceb6f6894e192b975e88e47bb8b62fb7f09fdd07c8845151845a94a2d6de7218da6b167d670fe50ce49a1b9a6e8eb062305fb01f9cba10ebd020294e273d113f92d0802339771b86d1a6eae25f42e1dcf07791ea4a461b49195347137926102c8d77294615b39301515921c9a493ea21a2712207d4bf2cf9775cc20f7f0621aab57a6e9d86543ff4f717e69440448f41d227041505f8bed378a2c624c1c9c385b86aeb50b99ae6ef9d197a793f7a203680734b3cc34e5b07c41c199f416feeeae1bb945c361c8f78b3bba6d921c9e61560d164f2436ec79591213e9f67dad4c2a8ea99e987f053c6657b41b404c0ce710101c583cd2ea7cbcf6826e7b0ef4d0dbe12c1eb6a66ff261cf45de238de931a71622589a69a37063019c53878a87f887bc999dd2f0004521051d8665967202892ded4a4b7bc489db8a5b8e9a5cbf87fecb4db86cb3d51ad81ce668a3bb388fc2085dce3342c93b4dbec22acd05ed3de10125740c7ca4611b3ddef06d9d141d1b"
}
15 changes: 15 additions & 0 deletions examples/proof_nft.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"structType": "1",
"sender": "0x0000000000000000000000000000000000000000",
"receiver": "0x0000000000000000000000000000000000000000",
"token": "0x0000000000000000000000000000000000000000",
"amount": "0",
"txId": "0x0000000000000000000000000000000000000000000000000000000000000000",
"nft": "0x1F13941D0995e111675124aF4B0F9bDcc70390C3",
"owner": "0xFac041BCF2c4b43319c2C0a39ABA53F4CbE44Fe5",
"batchNumber": "491506",
"slotPosition": "3",
"vkey": "0x00238ded04e76b8ba857754a53926a85650366a0ccfdd71a1430dc6cccdf1c28",
"publicValues": "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f13941d0995e111675124af4b0f9bdcc70390c3000000000000000000000000fac041bcf2c4b43319c2c0a39aba53f4cbe44fe50000000000000000000000000000000000000000000000000000000000077ff20000000000000000000000000000000000000000000000000000000000000003",
"proof": "0xc430ff7f2a651dc5ffc8d7ae9f40d96fa0f96e8ae9c1c837ee42122c6a0d44993f0b35db0a3759f8ef8d20ae69e017ecd26b579d1db7ba757ad49c82eca5d6444d3bc692253427ca037f54e5e0b2f353063c69c4a95d0e42198656dd9fbca10df1d4b0f61393d3d9251cf06bba80455222e2d3172fb4080293f28a23f03085b27e8315fb027985e7a45c9f28aec94b14fea74344549f8ff4d59b23c7d6a839ec5b168ad303d58d91d0c6d5bc2567bd1f2077f553042a487005b268fa38255a0336bfad8f2ff42eff7997be86ff53130fc7677978a5ad167f1b8e10d9c7b7b6ddd2c9b10104d90df1ad4fdc3b799a7c71d01e8d0c217c003f6334704edf68178e2437db89122f16f650663f8aff65cfda5d3f801137987e4c7413aaa2f27d3dfb0924407c2b0b1c0b47e64577426fd5b9353e0bcda0fd0de87a942a43e5cdf3306ab55a570efce757c808bc15118cb014cecf5ccc5c20bb89e0ab35c50da1044384c1ba9400e8455d4981c77d9d30d3183cf0ec8eeba910aa7bfaf5fb85d417c3f2c0ebca1b090d187e7a94b06060fb8063f1aaafe8580ccfbc4ea3aa2f2d7a35a8ecd2d8203b2627811cfb36da3bc7c40dea60242982e649384b9aeb16c375d6a73301320753e96d83b27fc6e9384046005467d76b79380802df6425d29747edf02495e424e3b35bad6fe5c99926701f194fd4c18fbf998d57ad8f18fb37f46b5506c01e1de76d4d79ff56a553b991a16d7959dd28a651a2fa024fd86f65af1399be99081a77ae93a64de84a08a7bd9890c7f63c7ad6c20fb16b9ca0a17c7a441efbdaeb039df696a30e0a9cf7121447f7eb387123c37bbc7e511c56a335f5383d67963005b08fd9c2903fd09751b4d0b0b12c94b14620cf77ee510b00e6ec70d745d3682855657166a065ca2e809d18394f579358aa54f3017e3f854fa222a581950a8c000deb71132791b294cfc19b5ed3fdea074abe0ba3087ce80325d449a86778c703f5866636e5bdbeb28c4f7348136d2283728264c41865e69de34f936da743c62e262c34be76d19f5d900b319b93c6432020c9943668b149128fc6290822febf28a4b8a14976ec74876e82bf919f9c2ee6949fec292596ccd9b51687d25c08e40cef603ef253f5197987d69a2d4b2e02bc69a522cd255e15726226eed769b6292199135082260894aba0a7f2cf60c02ccaa1949b3e904a3377af4eb32c39baec"
}
Binary file added examples/proof_nft_qr.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/proof_qr.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit e74b266

Please sign in to comment.