diff --git a/CHANGELOG.md b/CHANGELOG.md index 9df9bec662..07ebe2c562 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,13 +15,21 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm _Security_ in case of vulnerabilities. --> -## [Unreleased](https://github.com/o1-labs/snarkyjs/compare/161b69d602...HEAD) +## [Unreleased](https://github.com/o1-labs/snarkyjs/compare/b1d8d5910...HEAD) + +> No unreleased changes yet + +## [0.12.1](https://github.com/o1-labs/snarkyjs/compare/161b69d602...b1d8d5910) ### Added - Added a method `createTestNullifier` to the Nullifier class for testing purposes. It is recommended to use mina-signer to create Nullifiers in production, since it does not leak the private key of the user. The `Nullifier.createTestNullifier` method requires the private key as an input _outside of the users wallet_. https://github.com/o1-labs/snarkyjs/pull/1026 - Added `field.isEven` to check if a Field element is odd or even. https://github.com/o1-labs/snarkyjs/pull/1026 +### Fixed + +- Revert verification key hash change from previous release to stay compatible with the current testnet https://github.com/o1-labs/snarkyjs/pull/1032 + ## [0.12.0](https://github.com/o1-labs/snarkyjs/compare/eaa39dca0...161b69d602) ### Breaking Changes diff --git a/package-lock.json b/package-lock.json index fa0fd55990..1d3f046ac1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "snarkyjs", - "version": "0.12.0", + "version": "0.12.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "snarkyjs", - "version": "0.12.0", + "version": "0.12.1", "license": "Apache-2.0", "dependencies": { "blakejs": "1.2.1", diff --git a/package.json b/package.json index f5c574608b..a489e8e919 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "snarkyjs", "description": "TypeScript framework for zk-SNARKs and zkApps", - "version": "0.12.0", + "version": "0.12.1", "license": "Apache-2.0", "homepage": "https://github.com/o1-labs/snarkyjs/", "keywords": [ diff --git a/src/bindings b/src/bindings index 2c4c713390..4a76d8d90b 160000 --- a/src/bindings +++ b/src/bindings @@ -1 +1 @@ -Subproject commit 2c4c71339073ffe1f038cd538eebfcb44eb526fa +Subproject commit 4a76d8d90b781282bce9162ed960256b7361e011 diff --git a/src/examples/regression_test.json b/src/examples/regression_test.json index 12a838e3ed..0072acb530 100644 --- a/src/examples/regression_test.json +++ b/src/examples/regression_test.json @@ -1,14 +1,14 @@ { "Voting_": { - "digest": "1ea9c9b3a7a4a496b7ff475c22703afc1d76e1d43a083f158a8e0fcdf5c38299", + "digest": "be2fb91778c112dba345230d33f53b60d6aebc9d21c34af42d2d06169c03521", "methods": { "voterRegistration": { - "rows": 1260, - "digest": "bc9b5a182fe80fa0b43f69288260cdb6" + "rows": 1259, + "digest": "252726e585fdd28607537e32214069ab" }, "candidateRegistration": { - "rows": 1260, - "digest": "d438f0c0e3cb25047169b9337fc14c82" + "rows": 1259, + "digest": "7dc288527edd810f3c783657a601c1c4" }, "approveRegistrations": { "rows": 1146, @@ -24,16 +24,16 @@ } }, "verificationKey": { - "data": "AACYleKdZbT/a5vtaOprNqqTIsYqzmPEkcrZ+6OsalhEB78rwASNIdHL4GB76R4W2YNnSxj3tJf8fRy+6MZ4Zl0vRsTGgMVzYsH3VjaSv30IiYmsFGrKkDHixTxoEqVlpxQ46WPwaYWEo9SWRXpuaDKVbbZRD/1KiyOifIoEKbo1JFG8xrNqSAPmpYv0peN5nmGV/VXWW7HZXWQpu5Kh+586dYTsT+LW08yA5tndb2TYz3qDyqyPnvOpTRdgVFmldSX7JzQdPxr5O1P26rJvOkC7NDWLAQYP02gEVu312pHuGjm4Ra3Mjap0NSIw/cCGroJCdPB3Wq2oEpy/urMBHuQBK2P4XpBpuqt1hhkBS2jSGwz47FnMeaKvYaLgmY//0ix/f67LshCF4lXbLxzBLtTgaFnG/xHSvTIdKnN3x66TJeyU+8gvUQ4b3xrKxNgRmaS/cxyZ6tfOaoPWeTW9sgE2WzBw7eKTzzMb09cJWw7KSzq93Zkx12JJN+cA2MF0DQxum82Ai4ELYbM2s5mTD57TuF1P2PQL+nZsLy3NcoA+D2JmuIeuJzt87c3S83FufRQraBKtstcEmhMSBPAp/bAOAB+gHFLYMLnHRKeRdsvk1ILxe+/GsdYa2vm7I8J+89k82ASEI4hXDwLZ5gT4HS1LBB9jgImT3307MNzK8DCa8AnQJrlP8Dpkz3lojBZbP2mQ6HoYGXONWhlmVY9Hj4puFGfFd6DDF1i+7LQHMvNDXIPyxlP4siMhdDjNoLCMJ/E0Ch+LWJJnYCGTqnqrBMDLwDBi4V3qD7hr0IfkHs6cDSZPnzZrs5KHv/wwOSoepStJEcuSCl4y4vR9uLvL/5mgNdvGR5DKk0mYw7pPsSnyXTBPL24TWERtKUBBVU/A8xkuRKMAellfERh/Odt3pbhpfNb7swkG/Rukd8j7nrfGyA0JjTPMWRQXq3ePdog1UV+XjSyByBXuSzW+Tyivw7eWCKX8gEmhlwB/Vqj9PhbKp2+rlEu/CX7YOPtrqQ5E/k88AiCBbAmZqN/8zfHstFiL6fWZw/9zhl1dfNhxnDrRziETke22ROhN7gQvGJGZ6XCgJdqEjGsMnsDFkZf4zI9UE34xLEH8zxM1NJld8+ii4Ae0jhRg/Xfa/WVtDQsqNzQiixlGgjkUtyseMzqFJt3LAQZyAcIlWLndInCeCU1S9xeZLhra0/e9yxvzzhftKetck1CU67/gusv9BIasq6n7OuMg/mJnJ0gw1m0R3KMChci3/eZFUxH6/xPcixMvPccj0BHctfSUeUhy/If601NlQH5pDAM/UDAXSwc4548TEAofRoDmhwBdsxUNt9Nwx/dh81yV6rI4FS+MW31IjN3mE4c6lCkXpBdQRrJrfmxkobcmmzk+mw19NPaHVIt7VCcpHg7IL3eJOrIuohzaDcgig9nM4dwz+IRcEKfT0yWNOD7qzBk25AeLJ1Q+QyXv/sXLJk7ngoqpw4PcUs+6GTmHN3AYU73WngRGlYQrTr7+LT44o+w51Dd9Gj8x2neFLqEOw+VpZAJMq1t8+b7xuG8c4luK34/I0JH32b+H5GeWuy+sjCzoWdrU1K/1Wljw1/8yjzkoScgmdCt5w3Ev/eh7EXEyrfSKlqsMb7yqCgEwyZRzP8Mwazb9nDYYzMS77YgGVdW+h6LzlQA2aVJs7GThN/27PqkWTsk/sbAJ/j4BSSVbcXTZf6LQ9+bteD0Zan2DAGMn1f5LQdmZxW2GOCA4Kn3OeEXPr9slJ4G9Ca9r2HEF/CSAfELSzfh3wzUduwcbI1UW5x/gYSWyuLL/c13cITGNUdv6KjxNYBCfjaegQzrULV10SXwF4abFdnpv0AARVLQOgpgaprIBSQgL+WNSOABlwsy1Hl2vrJefA3gW/HUTyOUv+HeX3ILOJ/ZXoUEOH0hFq7Wwlw3H4apdRHJPpT0EgZx2kt5NK+b4j81NIJAvuSFEN0gH65qjQ6lPl8r5zqc4yFUE1BVu+OiPhMbZ6R3HyZngRAgAd4k5skjHaXLO+6y3T9miWX96Mc0RV+/aI619JDpQtQf5TM6tGWjge+Rz3osOwlsuZuTTiGf0k+E0leYsSBvp6vncWfqKNB7piVQaM5uHtuzpl9WcVDq3pSspgBno/Rj+3qvVyM8tcy6+XmhH/LlR0mNOpr9sMOvWM6i8VRrsOPoxWO+crHyAujeGRcignfeb8tPFk8LxaQc2KObcBmd8Z7GrZULmdX5ASr7h1SJyPm698SA/WVYYAz1ldhmpCLpkOby1plXa4Z11sGNmnB9DTO0xCZ2TiOWnKoVJXgKtA0qto9utKPPUg/gokexpZ4FmfT+CBNoKkeoahRxFki+l85RGCXEWtsSNKeTOxIvdcXz2yGRSFG+rSxQ=", - "hash": "16088361010868812988430255572780959696328959791764991287776763833553815662393" + "data": "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", + "hash": "19660443494021854527802902390933343450736384143471742497399717759257180156257" } }, "Membership_": { - "digest": "29f5da6bf80f85afa4c650a076a7c0635156604111daca1caf850a38fe793221", + "digest": "20f27b15aa065df16fd1b5653eea3fac87a682d42e899b2b42c9c8f43dd8fab2", "methods": { "addEntry": { - "rows": 1354, - "digest": "e92325079707d82f16658d137cdd1f62" + "rows": 1353, + "digest": "4c8fef89cf61238eb8b76a9f6654d9b3" }, "isMember": { "rows": 470, @@ -45,8 +45,8 @@ } }, "verificationKey": { - "data": "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", - "hash": "26949318246233087045520854747894573043663192899239087552226340963263465727896" + "data": "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", + "hash": "25142559489010514551225407990905109333510883659762869393785257160030709140494" } }, "HelloWorld": { @@ -63,19 +63,19 @@ } }, "TokenContract": { - "digest": "3f97cd7633f9f4bda4da70fe8b5be3e4c330aa3da672d77071214846c10497fa", + "digest": "3f7b82bb5d0aa4a349f8fec7d55a513db4505b91cd7809c224fc23fec5d2c31", "methods": { "init": { - "rows": 656, - "digest": "421d2cc638792380c37a6122f812a81b" + "rows": 655, + "digest": "f70ee741569f58c79880927f600447eb" }, "init2": { "rows": 653, - "digest": "825095c422222e189bee65e5a9b85e4c" + "digest": "b0a2c5dc60db678eec6958d6070d01cd" }, "deployZkapp": { - "rows": 703, - "digest": "12328ddb729b9a80aee4d63faec5760a" + "rows": 702, + "digest": "aba2a3ce9a3a9938c01f42c9c68cab88" }, "approveUpdate": { "rows": 1929, @@ -87,32 +87,32 @@ }, "approveUpdateAndSend": { "rows": 2322, - "digest": "07a3c3067fd51710b5d94e0cdd3bbbf7" + "digest": "334536e42c982fb88416a9ba60f5ec4e" }, "transferToAddress": { - "rows": 1045, - "digest": "f5e8e39fc8ca8842fb5de72f82380007" + "rows": 1044, + "digest": "993432cac8b21c8711d00a1e3f4b59b2" }, "transferToUpdate": { - "rows": 2327, - "digest": "9de912b958ed80d6e5fa153d19fa362e" + "rows": 2326, + "digest": "ec0ab4c66e0f9ffe9ae6b464dc958f91" }, "getBalance": { "rows": 687, - "digest": "d88c3c16a17f8f8982523f2e37e3bfdc" + "digest": "2582608a57284514cd4e5e606398658d" } }, "verificationKey": { - "data": "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", - "hash": "18314844323530173907586590420689136318904984002610804536021168972801980443018" + "data": "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", + "hash": "6155486567758623619833493294960611240514732748370489740943279582502839222938" } }, "Dex": { - "digest": "1bec7721157a004731bfe275e990951f53edc1bd8094ae75fe29ee9daffafab0", + "digest": "26690a8deb2871a469dc694debd92a86bd35b8e9ff442eb0bb13f696eeeb884c", "methods": { "supplyLiquidityBase": { - "rows": 3752, - "digest": "e655bc364f246c3acf40f044f605f403" + "rows": 3750, + "digest": "44f81dcd43bdeca0087a3739a116f117" }, "swapX": { "rows": 1986, @@ -124,16 +124,16 @@ }, "burnLiquidity": { "rows": 719, - "digest": "f15f2cb57be380f8eed647e9cf693c9d" + "digest": "195792d9247af6beac2a47098cbe3853" }, "transfer": { - "rows": 1045, - "digest": "c3f6cd2bd5e2b502ed77d54e07525808" + "rows": 1044, + "digest": "bff9ae6e5f3679ed889b7d88c5f0c661" } }, "verificationKey": { - "data": "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", - "hash": "26666290820393812024160635916660181119426685959977866416932801123172621619133" + "data": "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", + "hash": "22927084896663477016096997193081299898252315402907206057377208440233983904154" } }, "Group Primitive": { diff --git a/src/lib/account_update.ts b/src/lib/account_update.ts index 7a5511efda..c1518b1cfa 100644 --- a/src/lib/account_update.ts +++ b/src/lib/account_update.ts @@ -18,13 +18,7 @@ import { UInt64, UInt32, Int64, Sign } from './int.js'; import * as Mina from './mina.js'; import { SmartContract } from './zkapp.js'; import * as Precondition from './precondition.js'; -import { - dummyBase64Proof, - dummyVerificationKeyHash, - Empty, - Proof, - Prover, -} from './proof_system.js'; +import { dummyBase64Proof, Empty, Proof, Prover } from './proof_system.js'; import { Memo } from '../mina-signer/src/memo.js'; import { Events, @@ -32,7 +26,7 @@ import { } from '../bindings/mina-transaction/transaction-leaves.js'; import { TokenId as Base58TokenId } from './base58-encodings.js'; import { hashWithPrefix, packToFields } from './hash.js'; -import { prefixes } from '../bindings/crypto/constants.js'; +import { mocks, prefixes } from '../bindings/crypto/constants.js'; import { Context } from './global-context.js'; import { assert } from './errors.js'; import { MlArray } from './ml/base.js'; @@ -1808,8 +1802,9 @@ const Authorization = { signature ??= {}; accountUpdate.body.authorizationKind.isSigned = Bool(true); accountUpdate.body.authorizationKind.isProved = Bool(false); - accountUpdate.body.authorizationKind.verificationKeyHash = - dummyVerificationKeyHash(); + accountUpdate.body.authorizationKind.verificationKeyHash = Field( + mocks.dummyVerificationKeyHash + ); accountUpdate.authorization = {}; accountUpdate.lazyAuthorization = { ...signature, kind: 'lazy-signature' }; }, @@ -1867,8 +1862,9 @@ const Authorization = { setLazyNone(accountUpdate: AccountUpdate) { accountUpdate.body.authorizationKind.isSigned = Bool(false); accountUpdate.body.authorizationKind.isProved = Bool(false); - accountUpdate.body.authorizationKind.verificationKeyHash = - dummyVerificationKeyHash(); + accountUpdate.body.authorizationKind.verificationKeyHash = Field( + mocks.dummyVerificationKeyHash + ); accountUpdate.authorization = {}; accountUpdate.lazyAuthorization = { kind: 'lazy-none' }; }, diff --git a/src/lib/account_update.unit-test.ts b/src/lib/account_update.unit-test.ts index df435fefdb..a598c9dd5c 100644 --- a/src/lib/account_update.unit-test.ts +++ b/src/lib/account_update.unit-test.ts @@ -9,7 +9,6 @@ import { } from '../index.js'; import { Test } from '../snarky.js'; import { expect } from 'expect'; -import { dummyVerificationKeyHash } from './proof_system.js'; let address = PrivateKey.random().toPublicKey(); @@ -103,7 +102,7 @@ function createAccountUpdate() { let accountUpdate = createAccountUpdate(); expect( accountUpdate.body.authorizationKind.verificationKeyHash.toString() - ).toEqual(dummyVerificationKeyHash().toString()); + ).toEqual('0'); } // does not throw an error if private key is missing unless if .send is executed diff --git a/src/lib/field.ts b/src/lib/field.ts index 7341729d9e..f078922e17 100644 --- a/src/lib/field.ts +++ b/src/lib/field.ts @@ -416,7 +416,7 @@ class Field { // check composition xDiv2.mul(2).add(isOdd).assertEquals(this); - return new Bool(isOddVar); + return new Bool(isOddVar).not(); } /** diff --git a/src/lib/field.unit-test.ts b/src/lib/field.unit-test.ts index 657a8c4dbd..cf9966311e 100644 --- a/src/lib/field.unit-test.ts +++ b/src/lib/field.unit-test.ts @@ -115,6 +115,11 @@ equivalentVoid1( (x) => x.assertBool(), (x) => x === 0n || x === 1n || throwError('not boolean') ); +equivalent1( + (x) => x.isEven().toField(), + (x) => BigInt((x & 1n) === 0n), + SmallField +); // non-constant field vars test(Random.field, (x0, assert) => { diff --git a/src/lib/proof_system.ts b/src/lib/proof_system.ts index a4cd287d1b..2b13a320e6 100644 --- a/src/lib/proof_system.ts +++ b/src/lib/proof_system.ts @@ -52,7 +52,6 @@ export { isAsFields, Prover, dummyBase64Proof, - dummyVerificationKeyHash, }; type Undefined = undefined; @@ -809,11 +808,6 @@ function dummyBase64Proof() { return withThreadPool(async () => Pickles.dummyBase64Proof()); } -function dummyVerificationKeyHash() { - let [, , hash] = Pickles.dummyVerificationKey(); - return Field.fromBytes([...hash]); -} - // helpers for circuit context function Prover() { diff --git a/src/mina-signer/src/sign-zkapp-command.unit-test.ts b/src/mina-signer/src/sign-zkapp-command.unit-test.ts index a0c943d03c..44e5c06b0c 100644 --- a/src/mina-signer/src/sign-zkapp-command.unit-test.ts +++ b/src/mina-signer/src/sign-zkapp-command.unit-test.ts @@ -272,10 +272,10 @@ console.log('to/from json, hashes & signatures are consistent! 🎉'); function fixVerificationKey(a: AccountUpdate) { // ensure verification key is valid if (a.body.update.verificationKey.isSome === 1n) { - let [, data] = Pickles.dummyVerificationKey(); + let [, data, hash] = Pickles.dummyVerificationKey(); a.body.update.verificationKey.value = { data, - hash: Field(mocks.dummyVerificationKeyHash), + hash: Field.fromBytes([...hash]), }; } else { a.body.update.verificationKey.value = {