From 88878f5d1108765636ed5843c5c3b734278e7845 Mon Sep 17 00:00:00 2001 From: Gareth Davies Date: Mon, 26 Oct 2026 18:57:53 +0000 Subject: [PATCH 1/5] Upgrade to o1js 3.1.0 for the Mesa hard fork Mina devnet forked to Mesa on 2026-08-19 and mainnet on 2026-09-03. o1js 2.x builds zkApp commands with 8 state fields and transaction version 3, which Mesa nodes reject, so the published 0.2.0 can no longer deploy settlement contracts. Pin o1js and @o1js/native to 3.1.0 in every package and update the lockfile. mina-fungible-token 1.1.0, the last release before its repository was archived, declares a peer of o1js ^2.1.0, so a fresh npm install fails with ERESOLVE. Override its o1js to 3.1.0. The settlement suite's custom token cases, which deploy and use FungibleToken, pass on 3.1.0. --- package-lock.json | 233 +++++++++++++++++++++++++----- package.json | 5 + packages/api/package.json | 2 +- packages/cli/package.json | 2 +- packages/common/package.json | 2 +- packages/deployment/package.json | 2 +- packages/indexer/package.json | 2 +- packages/library/package.json | 2 +- packages/module/package.json | 2 +- packages/persistance/package.json | 2 +- packages/processor/package.json | 2 +- packages/protocol/package.json | 2 +- packages/sdk/package.json | 2 +- packages/sequencer/package.json | 2 +- packages/stack/package.json | 4 +- 15 files changed, 213 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac390bbe9..49e574582 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3303,22 +3303,21 @@ } }, "node_modules/@o1js/native": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@o1js/native/-/native-2.15.0.tgz", - "integrity": "sha512-te/piape+Nn9bgctqZk1ARnBMilKwq+IkWT4Z4jKh3HNuGj/Z5rngVGMRAPzJzxyjQEh7Dm+/BN6M9D6VY0kdw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@o1js/native/-/native-3.1.0.tgz", + "integrity": "sha512-paioKvsLNwKumJ9ls1TZ44Sbc2NInbaePfCGAnPBMZCdN8XEe6uofvzrD3IGg5Y0sZ7/avAtHEWIiQStgG5bGQ==", "peer": true, "optionalDependencies": { - "@o1js/native-darwin-arm64": "2.15.0", - "@o1js/native-darwin-x64": "2.15.0", - "@o1js/native-linux-arm64": "2.15.0", - "@o1js/native-linux-x64": "2.15.0", - "@o1js/native-win32-x64": "2.15.0" + "@o1js/native-darwin-arm64": "3.1.0", + "@o1js/native-darwin-x64": "3.1.0", + "@o1js/native-linux-arm64": "3.1.0", + "@o1js/native-linux-x64": "3.1.0" } }, "node_modules/@o1js/native-darwin-arm64": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@o1js/native-darwin-arm64/-/native-darwin-arm64-2.15.0.tgz", - "integrity": "sha512-4S1hf6Z6KLI1ITnbecMS6y3q3D+IqIGjF9vC5xSHQETUGPS0IFbWGUwai/52RIfH65eXBK5MXWYwwAlc6rcz5g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@o1js/native-darwin-arm64/-/native-darwin-arm64-3.1.0.tgz", + "integrity": "sha512-AwlQU9glKi7Enacf6UN2yYxpHessOwL2TG0vENsnDbd803mFPitjShjgfsM/PXvhFclDXRD+VirfLxhN5eH+TA==", "cpu": [ "arm64" ], @@ -3329,9 +3328,9 @@ "peer": true }, "node_modules/@o1js/native-darwin-x64": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@o1js/native-darwin-x64/-/native-darwin-x64-2.15.0.tgz", - "integrity": "sha512-zsCvwBJK3j9yDcfpdK0QypaQKTRFnQTmCH989JEYr61yqFQ5Uxz03oEVkCU02p2+w2bZzKWIy/7rTTAVaCiYqg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@o1js/native-darwin-x64/-/native-darwin-x64-3.1.0.tgz", + "integrity": "sha512-tGNAYt/bJkMb2FWnx52J2IZXRsnUXxj32IEleV8LOaFXiH/m0aSMcswUHLJdp1nrHThOUmR+qfOLD6fDepM8MQ==", "cpu": [ "x64" ], @@ -3342,9 +3341,9 @@ "peer": true }, "node_modules/@o1js/native-linux-arm64": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@o1js/native-linux-arm64/-/native-linux-arm64-2.15.0.tgz", - "integrity": "sha512-Fa1tWgvrZSCDpJ2c4rHZKnfhxpZc/XkqGNVW5gDocr6FArSpWyEyKn0tPJJKtDUIzkUCozjxnFO8EWws0HJ6MA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@o1js/native-linux-arm64/-/native-linux-arm64-3.1.0.tgz", + "integrity": "sha512-oHiuM47oSe0An9M3Rx3hyjpylnXvodNpU/HddkBQtHtkYnkWbuJrS80Xyi9xTHsyiFiTkbOoeL73G6K2kDOEpg==", "cpu": [ "arm64" ], @@ -3355,9 +3354,9 @@ "peer": true }, "node_modules/@o1js/native-linux-x64": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@o1js/native-linux-x64/-/native-linux-x64-2.15.0.tgz", - "integrity": "sha512-D2Z3NBb7mtehYRzPPlCT+m4/ojJYyo0MJc/9f0MtwIXIlTRL1jVBg6qH8TQdIK5j3LYlFuAhjDqaWfjAxQGwMA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@o1js/native-linux-x64/-/native-linux-x64-3.1.0.tgz", + "integrity": "sha512-MBehvjwYxuKedJbBZpqs7bDvRa/Q2OOWlKRUdDBExxWt2NKxVUSoQpIyi3Nv/Tt9BJ4lUBpiCtP8BenA5haCtA==", "cpu": [ "x64" ], @@ -5984,6 +5983,162 @@ "node": ">=10" } }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.13.tgz", + "integrity": "sha512-cVifxQUKhaE7qcO/y9Mq6PEhoyvN9tSLzCnnFZ4EIabFHBuLtDDO6a+vLveOy98hAs5Qu1+bb5Nv0oa1Pihe3Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.13.tgz", + "integrity": "sha512-t+xxEzZ48enl/wGGy7SRYd7kImWQ/+wvVFD7g5JZo234g6/QnIgZ+YdfIyjHB+ZJI3F7a2IQHS7RNjxF29UkWw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.13.tgz", + "integrity": "sha512-VndeGvKmTXFn6AGwjy0Kg8i7HccOCE7Jt/vmZwRxGtOfNZM1RLYRQ7MfDLo6T0h1Bq6eYzps3L5Ma4zBmjOnOg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.13.tgz", + "integrity": "sha512-SmZ9m+XqCB35NddHCctvHFLqPZDAs5j8IgD36GoutufDJmeq2VNfgk5rQoqNqKmAK3Y7iFdEmI76QoHIWiCLyw==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.13.tgz", + "integrity": "sha512-5rij+vB9a29aNkHq72EXI2ihDZPszJb4zlApJY4aCC/q6utgqFA6CkrfTfIb+O8hxtG3zP5KERETz8mfFK6A0A==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.13.tgz", + "integrity": "sha512-OlSlaOK9JplQ5qn07WiBLibkOw7iml2++ojEXhhR3rbWrNEKCD7sd8+6wSavsInyFdw4PhLA+Hy6YyDBIE23Yw==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.13.tgz", + "integrity": "sha512-zwQii5YVdsfG8Ti9gIKgBKZg8qMkRZxl+OlYWUT5D93Jl4NuNBRausP20tfEkQdAPSRrMCSUZBM6FhW7izAZRg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.13.tgz", + "integrity": "sha512-hYXvyVVntqRlYoAIDwNzkS3tL2ijP3rxyWQMNKaxcCxxkCDto/w3meOK/OB6rbQSkNw0qTUcBfU9k+T0ptYdfQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.13", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.13.tgz", + "integrity": "sha512-XTzKs7c/vYCcjmcwawnQvlHHNS1naJEAzcBckMI5OJlnrcgW8UtcX9NHFYvNjGtXuKv0/9KvqL4fuahdvlNGKw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", @@ -22028,9 +22183,9 @@ } }, "node_modules/o1js": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/o1js/-/o1js-2.15.0.tgz", - "integrity": "sha512-Jre/zfmqtgraEJGjTDykWjN+sgnMS2OFd3AzIcJJ05MSm5BVYW0HEq3MOr191vj3jD1AbSF7TcOH44RSjbAU+A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/o1js/-/o1js-3.1.0.tgz", + "integrity": "sha512-uYpSAsQeLv6DKmahf3UxlmUVVJk9NhkLAjMg6UzpUU85S8230HuqbLyWPuGHdRTO3rFVQwE69u0ihsOG1qc3NA==", "license": "Apache-2.0", "peer": true, "dependencies": { @@ -22046,10 +22201,10 @@ "snarky-run": "src/build/run.js" }, "engines": { - "node": ">=18.14.0" + "node": ">=22.19.5" }, "optionalDependencies": { - "@o1js/native": "2.15.0" + "@o1js/native": "3.1.0" } }, "node_modules/o1js/node_modules/cachedir": { @@ -28591,7 +28746,7 @@ "@proto-kit/module": "*", "@proto-kit/protocol": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -28630,7 +28785,7 @@ "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", "@proto-kit/stack": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -28767,7 +28922,7 @@ "@types/lodash": "^4.14.194" }, "peerDependencies": { - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -28803,7 +28958,7 @@ "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", "bullmq": "^4.18.3", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -28860,7 +29015,7 @@ "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", "koa": "^2.14.2", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0", "type-graphql": "2.0.0-rc.2", "typegraphql-prisma": "0.28" @@ -28885,7 +29040,7 @@ "@proto-kit/module": "*", "@proto-kit/protocol": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -28905,7 +29060,7 @@ "peerDependencies": { "@proto-kit/common": "*", "@proto-kit/protocol": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -28929,7 +29084,7 @@ "@proto-kit/module": "*", "@proto-kit/protocol": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -28972,7 +29127,7 @@ "@proto-kit/protocol": "*", "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0", "type-graphql": "2.0.0-rc.2", "typegraphql-prisma": "^0.28" @@ -28994,7 +29149,7 @@ }, "peerDependencies": { "@proto-kit/common": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "ts-pattern": "^4.3.0", "tsyringe": "^4.10.0" } @@ -29020,7 +29175,7 @@ "@proto-kit/module": "*", "@proto-kit/protocol": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -29047,7 +29202,7 @@ "@proto-kit/common": "*", "@proto-kit/module": "*", "@proto-kit/protocol": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, @@ -29115,7 +29270,7 @@ "cachedir": "^2.4.0" }, "peerDependencies": { - "@o1js/native": "2.15.0", + "@o1js/native": "3.1.0", "@proto-kit/api": "*", "@proto-kit/common": "*", "@proto-kit/deployment": "*", @@ -29127,7 +29282,7 @@ "@proto-kit/protocol": "*", "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" } }, diff --git a/package.json b/package.json index a03494199..f6ac74258 100644 --- a/package.json +++ b/package.json @@ -79,5 +79,10 @@ }, "dependencies": { "react-json-view-lite": "^1.4.0" + }, + "overrides": { + "mina-fungible-token": { + "o1js": "3.1.0" + } } } diff --git a/packages/api/package.json b/packages/api/package.json index bf085225c..7b8bda0f1 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -49,7 +49,7 @@ "@proto-kit/module": "*", "@proto-kit/protocol": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 14fadd3da..5e200495b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -43,7 +43,7 @@ "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", "@proto-kit/stack": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { diff --git a/packages/common/package.json b/packages/common/package.json index 12efe004a..b6f40289c 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -26,7 +26,7 @@ "typescript-memoize": "^1.1.1" }, "peerDependencies": { - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { diff --git a/packages/deployment/package.json b/packages/deployment/package.json index dcb561164..7aa3b6d91 100644 --- a/packages/deployment/package.json +++ b/packages/deployment/package.json @@ -33,7 +33,7 @@ "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", "bullmq": "^4.18.3", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { diff --git a/packages/indexer/package.json b/packages/indexer/package.json index 4d288c2aa..37d57527d 100644 --- a/packages/indexer/package.json +++ b/packages/indexer/package.json @@ -43,7 +43,7 @@ "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", "koa": "^2.14.2", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0", "type-graphql": "2.0.0-rc.2", "typegraphql-prisma": "0.28" diff --git a/packages/library/package.json b/packages/library/package.json index aed8fb526..66c56ebbc 100644 --- a/packages/library/package.json +++ b/packages/library/package.json @@ -28,7 +28,7 @@ "@proto-kit/module": "*", "@proto-kit/protocol": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { diff --git a/packages/module/package.json b/packages/module/package.json index bf012be96..d102a6c90 100644 --- a/packages/module/package.json +++ b/packages/module/package.json @@ -29,7 +29,7 @@ "peerDependencies": { "@proto-kit/common": "*", "@proto-kit/protocol": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "gitHead": "32f368c2adf45ca3c5e22a7768ecfad469f6ceb8" diff --git a/packages/persistance/package.json b/packages/persistance/package.json index e401938fa..7a018f93b 100644 --- a/packages/persistance/package.json +++ b/packages/persistance/package.json @@ -32,7 +32,7 @@ "@proto-kit/module": "*", "@proto-kit/protocol": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { diff --git a/packages/processor/package.json b/packages/processor/package.json index 0eb64a95f..dc7684f2d 100644 --- a/packages/processor/package.json +++ b/packages/processor/package.json @@ -45,7 +45,7 @@ "@proto-kit/protocol": "*", "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0", "type-graphql": "2.0.0-rc.2", "typegraphql-prisma": "^0.28" diff --git a/packages/protocol/package.json b/packages/protocol/package.json index 0f98f2373..c4a520380 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -25,7 +25,7 @@ }, "peerDependencies": { "@proto-kit/common": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "ts-pattern": "^4.3.0", "tsyringe": "^4.10.0" }, diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 7ccad4306..c3dc17c89 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -30,7 +30,7 @@ "@proto-kit/module": "*", "@proto-kit/protocol": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { diff --git a/packages/sequencer/package.json b/packages/sequencer/package.json index d01d3fd0d..e5846e920 100644 --- a/packages/sequencer/package.json +++ b/packages/sequencer/package.json @@ -23,7 +23,7 @@ "@proto-kit/common": "*", "@proto-kit/module": "*", "@proto-kit/protocol": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { diff --git a/packages/stack/package.json b/packages/stack/package.json index dd1f61d5b..a5c75ba24 100644 --- a/packages/stack/package.json +++ b/packages/stack/package.json @@ -21,7 +21,7 @@ "access": "public" }, "peerDependencies": { - "@o1js/native": "2.15.0", + "@o1js/native": "3.1.0", "@proto-kit/api": "*", "@proto-kit/common": "*", "@proto-kit/deployment": "*", @@ -33,7 +33,7 @@ "@proto-kit/protocol": "*", "@proto-kit/sdk": "*", "@proto-kit/sequencer": "*", - "o1js": "2.15.0", + "o1js": "3.1.0", "tsyringe": "^4.10.0" }, "devDependencies": { From 160007832d6715d503856a6eeab5edf3e6a7f171 Mon Sep 17 00:00:00 2001 From: Gareth Davies Date: Mon, 26 Oct 2026 16:38:01 +0000 Subject: [PATCH 2/5] Handle 32 zkApp state fields in MinaTransactionSimulator Mesa raised zkApp app state from 8 to 32 fields. The simulator allocated 8 fields for new zkApp accounts and looped over 8 entries when checking preconditions and applying updates. Size the new account's state from the update and loop over the supplied arrays instead. --- .../settlement/transactions/MinaTransactionSimulator.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/sequencer/src/settlement/transactions/MinaTransactionSimulator.ts b/packages/sequencer/src/settlement/transactions/MinaTransactionSimulator.ts index 0323312b0..8bd6baba6 100644 --- a/packages/sequencer/src/settlement/transactions/MinaTransactionSimulator.ts +++ b/packages/sequencer/src/settlement/transactions/MinaTransactionSimulator.ts @@ -240,7 +240,7 @@ export class MinaTransactionSimulator { ); } - for (let i = 0; i < 8; i++) { + for (let i = 0; i < state.length; i++) { if (state[i].isSome.toBoolean() && account.zkapp !== undefined) { const stateIValid = account .zkapp!.appState[i].equals(state[i].value) @@ -276,9 +276,7 @@ export class MinaTransactionSimulator { if (update.verificationKey.isSome.toBoolean()) { (account.zkapp ??= { - appState: Array(8) - .fill(0) - .map(() => Field(0)), + appState: update.appState.map(() => Field(0)), verificationKey: undefined, actionState: Array(5) .fill(0) @@ -299,7 +297,7 @@ export class MinaTransactionSimulator { ) { if (account.zkapp !== undefined) { const { appState } = update; - for (let i = 0; i < 8; i++) { + for (let i = 0; i < appState.length; i++) { if (appState[i].isSome.toBoolean()) { account.zkapp.appState[i] = appState[i].value; } From 93aaeeb18abb31ae5dc82af17af6faab87b0ec11 Mon Sep 17 00:00:00 2001 From: Gareth Davies Date: Mon, 26 Oct 2026 16:38:01 +0000 Subject: [PATCH 3/5] Changelog: o1js 3.1.0 and Mesa support --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 125621a5c..56e2d119d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Changed +- Upgraded to o1js 3.1.0 for the Mesa hard fork. Mesa has 32 zkApp state fields + and transaction version 4, so settlement contracts deployed before the fork + need new verification keys - Upgraded to o1js 2.15.0 (native prover release) [#517](https://github.com/proto-kit/framework/pull/517) ## 0.2.0 From 70e52a6005753fd0ac8702ea9ad5bae20893b426 Mon Sep 17 00:00:00 2001 From: Gareth Davies Date: Mon, 26 Oct 2026 16:41:41 +0000 Subject: [PATCH 4/5] Stop the bridge scripts logging the sender's private key The deposit and withdraw scripts passed the sender's PrivateKey to Provable.log, which prints its scalar in decimal. That number is the full private key, so every deposit and withdrawal wrote the key to stdout and to any log that captures it. Log the sender's public key instead. Both lines are also in the published @proto-kit/cli 0.2.0. --- packages/cli/src/scripts/bridge/deposit.ts | 2 +- packages/cli/src/scripts/bridge/withdraw.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/cli/src/scripts/bridge/deposit.ts b/packages/cli/src/scripts/bridge/deposit.ts index 50b471313..b6762380d 100644 --- a/packages/cli/src/scripts/bridge/deposit.ts +++ b/packages/cli/src/scripts/bridge/deposit.ts @@ -77,7 +77,7 @@ export default async function ( Provable.log("Preparing to deposit", { tokenId, - fromPrivateKey, + from: fromPrivateKey.toPublicKey(), toPublicKey, amount, fee, diff --git a/packages/cli/src/scripts/bridge/withdraw.ts b/packages/cli/src/scripts/bridge/withdraw.ts index bc6608556..18aa50b87 100644 --- a/packages/cli/src/scripts/bridge/withdraw.ts +++ b/packages/cli/src/scripts/bridge/withdraw.ts @@ -54,7 +54,6 @@ export default async function ( signer.config.signer = senderPrivateKey; Provable.log("debug", { - senderPrivateKey, senderPublicKey, amount, tokenId, From 3dce0dad8eb0b76a0630bd7992d14f20b701e81c Mon Sep 17 00:00:00 2001 From: Gareth Davies Date: Mon, 26 Oct 2026 16:41:41 +0000 Subject: [PATCH 5/5] Changelog: bridge script key logging fix --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56e2d119d..acaa9769d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) need new verification keys - Upgraded to o1js 2.15.0 (native prover release) [#517](https://github.com/proto-kit/framework/pull/517) +### Fixed + +- The bridge deposit and withdraw scripts no longer log the sender's private key + ## 0.2.0 ### Added