From cba23d980376324c95f4535e76c5f0ce4686df65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Fri, 13 Mar 2026 17:50:17 -0400 Subject: [PATCH 01/13] Update packages and yarn version --- package.json | 6 ++--- packages/simulator/package.json | 4 ++-- yarn.lock | 41 +++++++++++++++++++-------------- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 09793ffa..1e81c7e2 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "openzeppelin-compact", "description": "Secure Smart Contract library written in Compact for Midnight", "private": true, - "packageManager": "yarn@4.12.0", + "packageManager": "yarn@4.13.0", "workspaces": [ "contracts/", "packages/*" @@ -22,11 +22,11 @@ "glob": "~10.5.0" }, "dependencies": { - "@midnight-ntwrk/compact-runtime": "0.14.0" + "@midnight-ntwrk/compact-runtime": "0.15.0-rc.0" }, "devDependencies": { "@biomejs/biome": "^2.4.6", - "@midnight-ntwrk/ledger-v7": "7.0.0", + "@midnight-ntwrk/ledger-v8": "8.0.0", "@midnight-ntwrk/zswap": "^4.0.0", "@types/node": "24.10.0", "ts-node": "^10.9.2", diff --git a/packages/simulator/package.json b/packages/simulator/package.json index 043fa33b..d774b2d3 100644 --- a/packages/simulator/package.json +++ b/packages/simulator/package.json @@ -29,7 +29,7 @@ "clean": "git clean -fXd" }, "devDependencies": { - "@midnight-ntwrk/ledger-v7": "7.0.0", + "@midnight-ntwrk/ledger-v8": "8.0.2", "@midnight-ntwrk/zswap": "^4.0.0", "@tsconfig/node24": "^24.0.3", "@types/node": "24.10.0", @@ -38,6 +38,6 @@ "vitest": "^4.0.16" }, "dependencies": { - "@midnight-ntwrk/compact-runtime": "0.14.0" + "@midnight-ntwrk/compact-runtime": "0.15.0-rc.0" } } diff --git a/yarn.lock b/yarn.lock index fe572315..9dfa1567 100644 --- a/yarn.lock +++ b/yarn.lock @@ -334,28 +334,35 @@ __metadata: languageName: node linkType: hard -"@midnight-ntwrk/compact-runtime@npm:0.14.0": - version: 0.14.0 - resolution: "@midnight-ntwrk/compact-runtime@npm:0.14.0" +"@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.0": + version: 0.15.0-rc.0 + resolution: "@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.0" dependencies: - "@midnight-ntwrk/onchain-runtime-v2": "npm:^2.0.0" + "@midnight-ntwrk/onchain-runtime-v3": "npm:^3.0.0-rc.1" "@types/object-inspect": "npm:^1.8.1" object-inspect: "npm:^1.12.3" - checksum: 10/bba44d09770b172b7a5ba193f59d2ec57ca0dff2e3fd538326942e102e8cbe0b0cc1cb736e1f469afc74258517e7d25fc4dfa7f89a299aed900efc89f1eed3a7 + checksum: 10/b3647509d421e7d4a0adc6202abd047d2901a1894ef83404e054d6906f93c80f5524952684d60c12ebb68e99a7c3ba26f2d1b1f606ad7c0901b94b1ec445bc23 languageName: node linkType: hard -"@midnight-ntwrk/ledger-v7@npm:7.0.0": - version: 7.0.0 - resolution: "@midnight-ntwrk/ledger-v7@npm:7.0.0" - checksum: 10/cd04c6cdfb2e15192c10c3beb4a3b65f5c6419eedb0f52f65d67cb50ae6ecb492a1fa96e76479f2db2796d89512d4290cf26de4424e47378c90c743529ddb82a +"@midnight-ntwrk/ledger-v8@npm:8.0.0": + version: 8.0.0 + resolution: "@midnight-ntwrk/ledger-v8@npm:8.0.0" + checksum: 10/703f73f3653c79bccb88beaa3c960154f2c6ae3a0532328e1cf5d47bb370d2c75d6bd06d0c0b6e241a7bdaa77f0e2ec59399159df121cb15f987e95111127b7a languageName: node linkType: hard -"@midnight-ntwrk/onchain-runtime-v2@npm:^2.0.0": - version: 2.0.0 - resolution: "@midnight-ntwrk/onchain-runtime-v2@npm:2.0.0" - checksum: 10/71b2b5e2270ce36fbdb63c0bd531f09f2de9151b286b6c7389966279750080b300893aef973621e438a934f9274277181cdf9bdc1350abc0e244fa892a145b19 +"@midnight-ntwrk/ledger-v8@npm:8.0.2": + version: 8.0.2 + resolution: "@midnight-ntwrk/ledger-v8@npm:8.0.2" + checksum: 10/2c4b9a8cadbd22da8fc23652f598467b670a062b515a5a67de9a03ac09b597bf93ee36d1122f196933cf5c6897eca55d383e683959449d21fb9dd7f831bf3656 + languageName: node + linkType: hard + +"@midnight-ntwrk/onchain-runtime-v3@npm:^3.0.0-rc.1": + version: 3.0.0 + resolution: "@midnight-ntwrk/onchain-runtime-v3@npm:3.0.0" + checksum: 10/873aeb9e631c3678373c62b5aef847de454de94427028fb3d3f28bfdc8b2c02a3c770bd79d9bfef183eb9db6fb8c23e6826636f2e512ffd6eacbcf7cc0651c5d languageName: node linkType: hard @@ -409,8 +416,8 @@ __metadata: version: 0.0.0-use.local resolution: "@openzeppelin-compact/contracts-simulator@workspace:packages/simulator" dependencies: - "@midnight-ntwrk/compact-runtime": "npm:0.14.0" - "@midnight-ntwrk/ledger-v7": "npm:7.0.0" + "@midnight-ntwrk/compact-runtime": "npm:0.15.0-rc.0" + "@midnight-ntwrk/ledger-v8": "npm:8.0.2" "@midnight-ntwrk/zswap": "npm:^4.0.0" "@tsconfig/node24": "npm:^24.0.3" "@types/node": "npm:24.10.0" @@ -1529,8 +1536,8 @@ __metadata: resolution: "openzeppelin-compact@workspace:." dependencies: "@biomejs/biome": "npm:^2.4.6" - "@midnight-ntwrk/compact-runtime": "npm:0.14.0" - "@midnight-ntwrk/ledger-v7": "npm:7.0.0" + "@midnight-ntwrk/compact-runtime": "npm:0.15.0-rc.0" + "@midnight-ntwrk/ledger-v8": "npm:8.0.0" "@midnight-ntwrk/zswap": "npm:^4.0.0" "@types/node": "npm:24.10.0" ts-node: "npm:^10.9.2" From 11e75abd03a76678c31431e58dc68eef9655cdc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Fri, 13 Mar 2026 17:50:43 -0400 Subject: [PATCH 02/13] bump pragma version --- contracts/src/access/AccessControl.compact | 2 +- contracts/src/access/Ownable.compact | 2 +- contracts/src/access/ZOwnablePK.compact | 2 +- contracts/src/access/test/mocks/MockAccessControl.compact | 2 +- contracts/src/access/test/mocks/MockOwnable.compact | 2 +- contracts/src/access/test/mocks/MockZOwnablePK.compact | 2 +- contracts/src/archive/ShieldedToken.compact | 2 +- contracts/src/archive/test/mocks/MockShieldedToken.compact | 2 +- contracts/src/security/Initializable.compact | 2 +- contracts/src/security/Pausable.compact | 2 +- contracts/src/security/test/mocks/MockInitializable.compact | 2 +- contracts/src/security/test/mocks/MockPausable.compact | 2 +- contracts/src/token/FungibleToken.compact | 2 +- contracts/src/token/MultiToken.compact | 2 +- contracts/src/token/NonFungibleToken.compact | 2 +- contracts/src/token/test/mocks/MockFungibleToken.compact | 2 +- contracts/src/token/test/mocks/MockMultiToken.compact | 2 +- contracts/src/token/test/mocks/MockNonFungibleToken.compact | 2 +- contracts/src/utils/Utils.compact | 2 +- contracts/src/utils/test/mocks/MockUtils.compact | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/contracts/src/access/AccessControl.compact b/contracts/src/access/AccessControl.compact index 021d2e43..e3143e60 100644 --- a/contracts/src/access/AccessControl.compact +++ b/contracts/src/access/AccessControl.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (access/AccessControl.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module AccessControl diff --git a/contracts/src/access/Ownable.compact b/contracts/src/access/Ownable.compact index 5c15f5a5..f8584e00 100644 --- a/contracts/src/access/Ownable.compact +++ b/contracts/src/access/Ownable.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (access/Ownable.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module Ownable diff --git a/contracts/src/access/ZOwnablePK.compact b/contracts/src/access/ZOwnablePK.compact index a8c0199d..a8b68dc6 100644 --- a/contracts/src/access/ZOwnablePK.compact +++ b/contracts/src/access/ZOwnablePK.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (access/ZOwnablePK.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module ZOwnablePK diff --git a/contracts/src/access/test/mocks/MockAccessControl.compact b/contracts/src/access/test/mocks/MockAccessControl.compact index 273121cc..5715d49f 100644 --- a/contracts/src/access/test/mocks/MockAccessControl.compact +++ b/contracts/src/access/test/mocks/MockAccessControl.compact @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; diff --git a/contracts/src/access/test/mocks/MockOwnable.compact b/contracts/src/access/test/mocks/MockOwnable.compact index ebbc6110..448dfb5d 100644 --- a/contracts/src/access/test/mocks/MockOwnable.compact +++ b/contracts/src/access/test/mocks/MockOwnable.compact @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; diff --git a/contracts/src/access/test/mocks/MockZOwnablePK.compact b/contracts/src/access/test/mocks/MockZOwnablePK.compact index e0e5e18a..a834dcad 100644 --- a/contracts/src/access/test/mocks/MockZOwnablePK.compact +++ b/contracts/src/access/test/mocks/MockZOwnablePK.compact @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; import "../../ZOwnablePK" prefix ZOwnablePK_; diff --git a/contracts/src/archive/ShieldedToken.compact b/contracts/src/archive/ShieldedToken.compact index 599b0a41..79a47d79 100644 --- a/contracts/src/archive/ShieldedToken.compact +++ b/contracts/src/archive/ShieldedToken.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (archive/ShieldedToken.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module ShieldedToken (archived until further notice, DO NOT USE IN PRODUCTION) diff --git a/contracts/src/archive/test/mocks/MockShieldedToken.compact b/contracts/src/archive/test/mocks/MockShieldedToken.compact index 68c0fc35..1990d135 100644 --- a/contracts/src/archive/test/mocks/MockShieldedToken.compact +++ b/contracts/src/archive/test/mocks/MockShieldedToken.compact @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; import "../../ShieldedToken" prefix ShieldedToken_; diff --git a/contracts/src/security/Initializable.compact b/contracts/src/security/Initializable.compact index ae1b93c9..b58f7357 100644 --- a/contracts/src/security/Initializable.compact +++ b/contracts/src/security/Initializable.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (security/Initializable.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module Initializable diff --git a/contracts/src/security/Pausable.compact b/contracts/src/security/Pausable.compact index 3f118450..dc09ca09 100644 --- a/contracts/src/security/Pausable.compact +++ b/contracts/src/security/Pausable.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (security/Pausable.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module Pausable diff --git a/contracts/src/security/test/mocks/MockInitializable.compact b/contracts/src/security/test/mocks/MockInitializable.compact index ca5dd3fc..afb446fd 100644 --- a/contracts/src/security/test/mocks/MockInitializable.compact +++ b/contracts/src/security/test/mocks/MockInitializable.compact @@ -1,4 +1,4 @@ -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; import "../../Initializable" prefix Initializable_; diff --git a/contracts/src/security/test/mocks/MockPausable.compact b/contracts/src/security/test/mocks/MockPausable.compact index da9d79a9..8da52957 100644 --- a/contracts/src/security/test/mocks/MockPausable.compact +++ b/contracts/src/security/test/mocks/MockPausable.compact @@ -1,4 +1,4 @@ -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; import "../../Pausable" prefix Pausable_; diff --git a/contracts/src/token/FungibleToken.compact b/contracts/src/token/FungibleToken.compact index 8f604ef4..686693e2 100644 --- a/contracts/src/token/FungibleToken.compact +++ b/contracts/src/token/FungibleToken.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (token/FungibleToken.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module FungibleToken diff --git a/contracts/src/token/MultiToken.compact b/contracts/src/token/MultiToken.compact index 649b8076..ff4fcc94 100644 --- a/contracts/src/token/MultiToken.compact +++ b/contracts/src/token/MultiToken.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (token/MultiToken.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module MultiToken diff --git a/contracts/src/token/NonFungibleToken.compact b/contracts/src/token/NonFungibleToken.compact index 13fa4f97..3cba3eef 100644 --- a/contracts/src/token/NonFungibleToken.compact +++ b/contracts/src/token/NonFungibleToken.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (token/NonFungibleToken.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module NonFungibleToken diff --git a/contracts/src/token/test/mocks/MockFungibleToken.compact b/contracts/src/token/test/mocks/MockFungibleToken.compact index 2b86c588..82108d1a 100644 --- a/contracts/src/token/test/mocks/MockFungibleToken.compact +++ b/contracts/src/token/test/mocks/MockFungibleToken.compact @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; diff --git a/contracts/src/token/test/mocks/MockMultiToken.compact b/contracts/src/token/test/mocks/MockMultiToken.compact index 37d89fd1..cafd242d 100644 --- a/contracts/src/token/test/mocks/MockMultiToken.compact +++ b/contracts/src/token/test/mocks/MockMultiToken.compact @@ -1,4 +1,4 @@ -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; import "../../MultiToken" prefix MultiToken_; diff --git a/contracts/src/token/test/mocks/MockNonFungibleToken.compact b/contracts/src/token/test/mocks/MockNonFungibleToken.compact index a7515486..65c2112e 100644 --- a/contracts/src/token/test/mocks/MockNonFungibleToken.compact +++ b/contracts/src/token/test/mocks/MockNonFungibleToken.compact @@ -1,4 +1,4 @@ -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; diff --git a/contracts/src/utils/Utils.compact b/contracts/src/utils/Utils.compact index 8e4342e3..752a590d 100644 --- a/contracts/src/utils/Utils.compact +++ b/contracts/src/utils/Utils.compact @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT // OpenZeppelin Compact Contracts v0.0.1-alpha.1 (utils/Utils.compact) -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; /** * @module Utils. diff --git a/contracts/src/utils/test/mocks/MockUtils.compact b/contracts/src/utils/test/mocks/MockUtils.compact index 3f13ffac..cd80246c 100644 --- a/contracts/src/utils/test/mocks/MockUtils.compact +++ b/contracts/src/utils/test/mocks/MockUtils.compact @@ -1,4 +1,4 @@ -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; From 762adbc9d747949743dfa3bae7b5d9980f534b99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Fri, 13 Mar 2026 17:51:54 -0400 Subject: [PATCH 03/13] Update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 24d64d78..71d9bf5e 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ Import modules through `node_modules` rather than directly to avoid state confli ```typescript // MyContract.compact -pragma language_version >= 0.18.0; +pragma language_version >= 0.22.0; import CompactStandardLibrary; import "./compact-contracts/node_modules/@openzeppelin/compact-contracts/src/access/Ownable" From 994526dde2c31e5b59c158d20b69506b5f0adda9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 14:03:07 -0400 Subject: [PATCH 04/13] Create script to install local builds --- packages/compact/README.md | 40 ++++++++++++++++++++++++ packages/compact/install-local.sh | 51 +++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 packages/compact/install-local.sh diff --git a/packages/compact/README.md b/packages/compact/README.md index e0e85cd7..d4e75e63 100644 --- a/packages/compact/README.md +++ b/packages/compact/README.md @@ -182,6 +182,46 @@ yarn test yarn clean ``` +### Testing rc versions of the Compact compiler + +These steps assume the `compact` cli is already installed. + +Clone the Compact repo and `cd` into the new directory +```bash +git clone https://github.com/LFDT-Minokawa/compact.git +``` + +Fetch tags (if local repo hasn't been updated in awhile) +```bash +git fetch -t +``` + +Checkout tagged commit +```bash +git checkout v0.30.0-rc.1 +``` + +Follow the instructions in the README to build the compiler locally +(may take a long time when building for the first time) + +Run `install-local.sh` + +The script installs a locally built version of the Compact toolchain into a subdirectory of the Compact devtool's artifact directory + + **Usage**: ./install-local.sh [platform] + + **Steps**: + 1. Validates that the provided repo path exists and is a directory + 2. Reads the git tag at HEAD from that repo (strips the leading v) — fails if HEAD isn't tagged + 3. Detects the current platform (aarch64-darwin, x86_64-linux, etc.) from uname, or accepts one as the second argument — fails if unsupported + 4. Creates ~/.compact/versions/// and copies the built binaries from /result/bin/ into it + 5. Runs compact update to register the newly installed version with the toolchain manager + +Update `packages/compact/src/versions.ts` with the current compact and language version (eg `compact compile --language-version`) + +Rebuild compact package +`yarn build` + ## Output Example ```bash diff --git a/packages/compact/install-local.sh b/packages/compact/install-local.sh new file mode 100644 index 00000000..f5fc1299 --- /dev/null +++ b/packages/compact/install-local.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash +set -euo pipefail + +REPO_PATH="${1:?Error: path to compact repo is required as the first argument}" + +if [[ ! -d "$REPO_PATH" ]]; then + echo "Error: '$REPO_PATH' is not a directory" >&2 + exit 1 +fi + +GIT_TAG=$(git -C "$REPO_PATH" describe --tags --exact-match 2>/dev/null | sed 's/^v//') + +if [[ -z "$GIT_TAG" ]]; then + echo "Error: no git tag found at HEAD in '$REPO_PATH'" >&2 + exit 1 +fi + +detect_platform() { + local arch os + arch=$(uname -m) + os=$(uname -s) + + case "$arch" in + arm64|aarch64) arch="aarch64" ;; + x86_64) arch="x86_64" ;; + *) echo "Error: unsupported architecture: $arch" >&2; exit 1 ;; + esac + + case "$os" in + Darwin) os="darwin" ;; + Linux) os="linux" ;; + *) echo "Error: unsupported OS: $os" >&2; exit 1 ;; + esac + + echo "${arch}-${os}" +} + +PLATFORM="${2:-$(detect_platform)}" + +case "$PLATFORM" in + aarch64-linux|aarch64-darwin|x86_64-linux|x86_64-darwin) ;; + *) echo "Error: unsupported platform '$PLATFORM'. Must be one of: aarch64-linux, aarch64-darwin, x86_64-linux, x86_64-darwin" >&2; exit 1 ;; +esac + +# compact-compiler tool requires the destination path version to match the reported compact version from the binary +REPORTED_COMPACT_VERSION=$("$REPO_PATH/result/bin/compactc" --version | tail -n1) +DEST="$HOME/.compact/versions/$REPORTED_COMPACT_VERSION/$PLATFORM" +mkdir -p "$DEST" +cp -r "$REPO_PATH/result/bin/." "$DEST/" +echo "Installed $GIT_TAG ($PLATFORM) to $DEST" +compact update $REPORTED_COMPACT_VERSION \ No newline at end of file From 8fe824e8e01caf74b820bb15e4db31df720e8d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 14:03:31 -0400 Subject: [PATCH 05/13] Bump package versions --- package.json | 4 ++-- yarn.lock | 18 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 1e81c7e2..d345834e 100644 --- a/package.json +++ b/package.json @@ -22,11 +22,11 @@ "glob": "~10.5.0" }, "dependencies": { - "@midnight-ntwrk/compact-runtime": "0.15.0-rc.0" + "@midnight-ntwrk/compact-runtime": "0.15.0-rc.1" }, "devDependencies": { "@biomejs/biome": "^2.4.6", - "@midnight-ntwrk/ledger-v8": "8.0.0", + "@midnight-ntwrk/ledger-v8": "8.0.2", "@midnight-ntwrk/zswap": "^4.0.0", "@types/node": "24.10.0", "ts-node": "^10.9.2", diff --git a/yarn.lock b/yarn.lock index 9dfa1567..f9ca32bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -345,10 +345,14 @@ __metadata: languageName: node linkType: hard -"@midnight-ntwrk/ledger-v8@npm:8.0.0": - version: 8.0.0 - resolution: "@midnight-ntwrk/ledger-v8@npm:8.0.0" - checksum: 10/703f73f3653c79bccb88beaa3c960154f2c6ae3a0532328e1cf5d47bb370d2c75d6bd06d0c0b6e241a7bdaa77f0e2ec59399159df121cb15f987e95111127b7a +"@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.1": + version: 0.15.0-rc.1 + resolution: "@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.1" + dependencies: + "@midnight-ntwrk/onchain-runtime-v3": "npm:^3.0.0" + "@types/object-inspect": "npm:^1.8.1" + object-inspect: "npm:^1.12.3" + checksum: 10/9ee16def46aeb95f30a75655238fb836fc8e24f8c2d714d3eac33a53e1693c780ea41c9d7c60e6e85e1d0bbdabfc4db2e3191ecd757f53207ba2796d20bb41e5 languageName: node linkType: hard @@ -359,7 +363,7 @@ __metadata: languageName: node linkType: hard -"@midnight-ntwrk/onchain-runtime-v3@npm:^3.0.0-rc.1": +"@midnight-ntwrk/onchain-runtime-v3@npm:^3.0.0, @midnight-ntwrk/onchain-runtime-v3@npm:^3.0.0-rc.1": version: 3.0.0 resolution: "@midnight-ntwrk/onchain-runtime-v3@npm:3.0.0" checksum: 10/873aeb9e631c3678373c62b5aef847de454de94427028fb3d3f28bfdc8b2c02a3c770bd79d9bfef183eb9db6fb8c23e6826636f2e512ffd6eacbcf7cc0651c5d @@ -1536,8 +1540,8 @@ __metadata: resolution: "openzeppelin-compact@workspace:." dependencies: "@biomejs/biome": "npm:^2.4.6" - "@midnight-ntwrk/compact-runtime": "npm:0.15.0-rc.0" - "@midnight-ntwrk/ledger-v8": "npm:8.0.0" + "@midnight-ntwrk/compact-runtime": "npm:0.15.0-rc.1" + "@midnight-ntwrk/ledger-v8": "npm:8.0.2" "@midnight-ntwrk/zswap": "npm:^4.0.0" "@types/node": "npm:24.10.0" ts-node: "npm:^10.9.2" From 9a5cea90d0527a316e74bafc45fc94582125bf62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 14:03:45 -0400 Subject: [PATCH 06/13] Bump compiler tool version --- packages/compact/src/versions.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/compact/src/versions.ts b/packages/compact/src/versions.ts index 827db1bd..6d83c2aa 100644 --- a/packages/compact/src/versions.ts +++ b/packages/compact/src/versions.ts @@ -1,2 +1,2 @@ -export const COMPACT_VERSION = '0.29.0'; -export const LANGUAGE_VERSION = '0.21.0'; +export const COMPACT_VERSION = '0.30.0'; +export const LANGUAGE_VERSION = '0.22.0'; From 2439af8bdb7cfb96e437e70f5e6b61bb3893376f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 14:54:47 -0400 Subject: [PATCH 07/13] Update docs --- packages/compact/README.md | 11 ++++++++--- packages/compact/install-local.sh | 0 2 files changed, 8 insertions(+), 3 deletions(-) mode change 100644 => 100755 packages/compact/install-local.sh diff --git a/packages/compact/README.md b/packages/compact/README.md index d4e75e63..b0c3d086 100644 --- a/packages/compact/README.md +++ b/packages/compact/README.md @@ -182,7 +182,7 @@ yarn test yarn clean ``` -### Testing rc versions of the Compact compiler +### Testing unreleased versions of the Compact compiler These steps assume the `compact` cli is already installed. @@ -201,8 +201,13 @@ Checkout tagged commit git checkout v0.30.0-rc.1 ``` -Follow the instructions in the README to build the compiler locally -(may take a long time when building for the first time) +Build the compactc-binary package locally. + +> **Note:** The default `nix build` target does not output all required binary files. Use the `compactc-binary` attribute explicitly as shown below to ensure the full set of binaries is produced. + +```bash +nix build .#compactc-binary +``` Run `install-local.sh` diff --git a/packages/compact/install-local.sh b/packages/compact/install-local.sh old mode 100644 new mode 100755 From 4ee383fc109690b712c30319c9efcc65f6d04f5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 15:05:45 -0400 Subject: [PATCH 08/13] Bump simulator test file language versions, --- .../test/fixtures/sample-contracts/SampleZOwnable.compact | 2 +- .../simulator/test/fixtures/sample-contracts/Simple.compact | 2 +- .../simulator/test/fixtures/sample-contracts/Witness.compact | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/simulator/test/fixtures/sample-contracts/SampleZOwnable.compact b/packages/simulator/test/fixtures/sample-contracts/SampleZOwnable.compact index 6137167f..3a6daf55 100644 --- a/packages/simulator/test/fixtures/sample-contracts/SampleZOwnable.compact +++ b/packages/simulator/test/fixtures/sample-contracts/SampleZOwnable.compact @@ -1,7 +1,7 @@ // Sample contract for testing // DO NOT USE IN PRODUCTION!!! -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import { Either, diff --git a/packages/simulator/test/fixtures/sample-contracts/Simple.compact b/packages/simulator/test/fixtures/sample-contracts/Simple.compact index 769fc0a9..394d224b 100644 --- a/packages/simulator/test/fixtures/sample-contracts/Simple.compact +++ b/packages/simulator/test/fixtures/sample-contracts/Simple.compact @@ -1,7 +1,7 @@ // Sample contract for testing // DO NOT USE IN PRODUCTION!!! -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import { ZswapCoinPublicKey, ContractAddress, Either, Maybe } from CompactStandardLibrary; diff --git a/packages/simulator/test/fixtures/sample-contracts/Witness.compact b/packages/simulator/test/fixtures/sample-contracts/Witness.compact index fea28bab..fa0c93b0 100644 --- a/packages/simulator/test/fixtures/sample-contracts/Witness.compact +++ b/packages/simulator/test/fixtures/sample-contracts/Witness.compact @@ -1,7 +1,7 @@ // Sample contract for testing // DO NOT USE IN PRODUCTION!!! -pragma language_version >= 0.21.0; +pragma language_version >= 0.22.0; import { ZswapCoinPublicKey, ContractAddress, Either, Maybe } from CompactStandardLibrary; From d1e2155f676c9a1e3842ef81dcb7085e95e055af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 15:06:15 -0400 Subject: [PATCH 09/13] Bump compact-runtime version --- packages/simulator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/simulator/package.json b/packages/simulator/package.json index d774b2d3..92105bd5 100644 --- a/packages/simulator/package.json +++ b/packages/simulator/package.json @@ -38,6 +38,6 @@ "vitest": "^4.0.16" }, "dependencies": { - "@midnight-ntwrk/compact-runtime": "0.15.0-rc.0" + "@midnight-ntwrk/compact-runtime": "0.15.0-rc.1" } } From 4cf09f32c9d7a64d0d44fa4d26be3cdb5116bbd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 15:06:36 -0400 Subject: [PATCH 10/13] Bump ledger version --- contracts/src/archive/test/utils/address.ts | 2 +- contracts/test-utils/address.ts | 8 ++++---- packages/simulator/test/fixtures/utils/address.ts | 14 +++++++------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/contracts/src/archive/test/utils/address.ts b/contracts/src/archive/test/utils/address.ts index cbba8b7b..31ed9143 100644 --- a/contracts/src/archive/test/utils/address.ts +++ b/contracts/src/archive/test/utils/address.ts @@ -2,7 +2,7 @@ import { convertFieldToBytes, encodeCoinPublicKey, } from '@midnight-ntwrk/compact-runtime'; -import { encodeContractAddress } from '@midnight-ntwrk/ledger-v7'; +import { encodeContractAddress } from '@midnight-ntwrk/ledger-v8'; import type * as Compact from '../../../../artifacts/MockShieldedToken/contract/index.js'; const PREFIX_ADDRESS = '0200'; diff --git a/contracts/test-utils/address.ts b/contracts/test-utils/address.ts index 38dae723..3a53a4a2 100644 --- a/contracts/test-utils/address.ts +++ b/contracts/test-utils/address.ts @@ -4,7 +4,7 @@ import { encodeCoinPublicKey, isContractAddress, } from '@midnight-ntwrk/compact-runtime'; -import { encodeContractAddress } from '@midnight-ntwrk/ledger-v7'; +import { encodeContractAddress } from '@midnight-ntwrk/ledger-v8'; type ZswapCoinPublicKey = { bytes: Uint8Array }; @@ -78,9 +78,9 @@ const baseGeneratePubKeyPair = ( str: string, asEither: boolean, ): [ - string, - ZswapCoinPublicKey | Either, -] => { + string, + ZswapCoinPublicKey | Either, + ] => { const pk = toHexPadded(str); const zpk = asEither ? createEitherTestUser(str) : encodeToPK(str); return [pk, zpk]; diff --git a/packages/simulator/test/fixtures/utils/address.ts b/packages/simulator/test/fixtures/utils/address.ts index 125be771..987d64d5 100644 --- a/packages/simulator/test/fixtures/utils/address.ts +++ b/packages/simulator/test/fixtures/utils/address.ts @@ -2,7 +2,7 @@ import { convertFieldToBytes, encodeCoinPublicKey, } from '@midnight-ntwrk/compact-runtime'; -import { encodeContractAddress } from '@midnight-ntwrk/ledger-v7'; +import { encodeContractAddress } from '@midnight-ntwrk/ledger-v8'; import type * as Compact from '../artifacts/SampleZOwnable/contract/index.js'; const PREFIX_ADDRESS = '0200'; @@ -71,12 +71,12 @@ const baseGeneratePubKeyPair = ( str: string, asEither: boolean, ): [ - string, - ( - | Compact.ZswapCoinPublicKey - | Compact.Either - ), -] => { + string, + ( + | Compact.ZswapCoinPublicKey + | Compact.Either + ), + ] => { const pk = toHexPadded(str); const zpk = asEither ? createEitherTestUser(str) : encodeToPK(str); return [pk, zpk]; From c1f63456f9691d457075143650868c074c039614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 15:07:01 -0400 Subject: [PATCH 11/13] update yarn.lock --- yarn.lock | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index f9ca32bd..9c1009a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -334,17 +334,6 @@ __metadata: languageName: node linkType: hard -"@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.0": - version: 0.15.0-rc.0 - resolution: "@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.0" - dependencies: - "@midnight-ntwrk/onchain-runtime-v3": "npm:^3.0.0-rc.1" - "@types/object-inspect": "npm:^1.8.1" - object-inspect: "npm:^1.12.3" - checksum: 10/b3647509d421e7d4a0adc6202abd047d2901a1894ef83404e054d6906f93c80f5524952684d60c12ebb68e99a7c3ba26f2d1b1f606ad7c0901b94b1ec445bc23 - languageName: node - linkType: hard - "@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.1": version: 0.15.0-rc.1 resolution: "@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.1" @@ -363,7 +352,7 @@ __metadata: languageName: node linkType: hard -"@midnight-ntwrk/onchain-runtime-v3@npm:^3.0.0, @midnight-ntwrk/onchain-runtime-v3@npm:^3.0.0-rc.1": +"@midnight-ntwrk/onchain-runtime-v3@npm:^3.0.0": version: 3.0.0 resolution: "@midnight-ntwrk/onchain-runtime-v3@npm:3.0.0" checksum: 10/873aeb9e631c3678373c62b5aef847de454de94427028fb3d3f28bfdc8b2c02a3c770bd79d9bfef183eb9db6fb8c23e6826636f2e512ffd6eacbcf7cc0651c5d @@ -420,7 +409,7 @@ __metadata: version: 0.0.0-use.local resolution: "@openzeppelin-compact/contracts-simulator@workspace:packages/simulator" dependencies: - "@midnight-ntwrk/compact-runtime": "npm:0.15.0-rc.0" + "@midnight-ntwrk/compact-runtime": "npm:0.15.0-rc.1" "@midnight-ntwrk/ledger-v8": "npm:8.0.2" "@midnight-ntwrk/zswap": "npm:^4.0.0" "@tsconfig/node24": "npm:^24.0.3" From f6be0ef9a577fee37dc7260d048abc07ba9ca548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 16:24:15 -0400 Subject: [PATCH 12/13] Bump compact-runtime to latest --- package.json | 2 +- packages/simulator/package.json | 2 +- yarn.lock | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index d345834e..346a9a5c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "glob": "~10.5.0" }, "dependencies": { - "@midnight-ntwrk/compact-runtime": "0.15.0-rc.1" + "@midnight-ntwrk/compact-runtime": "0.15.0" }, "devDependencies": { "@biomejs/biome": "^2.4.6", diff --git a/packages/simulator/package.json b/packages/simulator/package.json index 92105bd5..912fb5bd 100644 --- a/packages/simulator/package.json +++ b/packages/simulator/package.json @@ -38,6 +38,6 @@ "vitest": "^4.0.16" }, "dependencies": { - "@midnight-ntwrk/compact-runtime": "0.15.0-rc.1" + "@midnight-ntwrk/compact-runtime": "0.15.0" } } diff --git a/yarn.lock b/yarn.lock index 9c1009a6..b300b972 100644 --- a/yarn.lock +++ b/yarn.lock @@ -334,14 +334,14 @@ __metadata: languageName: node linkType: hard -"@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.1": - version: 0.15.0-rc.1 - resolution: "@midnight-ntwrk/compact-runtime@npm:0.15.0-rc.1" +"@midnight-ntwrk/compact-runtime@npm:0.15.0": + version: 0.15.0 + resolution: "@midnight-ntwrk/compact-runtime@npm:0.15.0" dependencies: "@midnight-ntwrk/onchain-runtime-v3": "npm:^3.0.0" "@types/object-inspect": "npm:^1.8.1" object-inspect: "npm:^1.12.3" - checksum: 10/9ee16def46aeb95f30a75655238fb836fc8e24f8c2d714d3eac33a53e1693c780ea41c9d7c60e6e85e1d0bbdabfc4db2e3191ecd757f53207ba2796d20bb41e5 + checksum: 10/12ac86a114a404386037547a6eb021694537c0636d24d281b101c5be75e3f5703bad9e0bbcc7ea2a39a96e167d200860049a9957dbb4dbdeb585c3fba696909c languageName: node linkType: hard @@ -409,7 +409,7 @@ __metadata: version: 0.0.0-use.local resolution: "@openzeppelin-compact/contracts-simulator@workspace:packages/simulator" dependencies: - "@midnight-ntwrk/compact-runtime": "npm:0.15.0-rc.1" + "@midnight-ntwrk/compact-runtime": "npm:0.15.0" "@midnight-ntwrk/ledger-v8": "npm:8.0.2" "@midnight-ntwrk/zswap": "npm:^4.0.0" "@tsconfig/node24": "npm:^24.0.3" @@ -1529,7 +1529,7 @@ __metadata: resolution: "openzeppelin-compact@workspace:." dependencies: "@biomejs/biome": "npm:^2.4.6" - "@midnight-ntwrk/compact-runtime": "npm:0.15.0-rc.1" + "@midnight-ntwrk/compact-runtime": "npm:0.15.0" "@midnight-ntwrk/ledger-v8": "npm:8.0.2" "@midnight-ntwrk/zswap": "npm:^4.0.0" "@types/node": "npm:24.10.0" From 96248747777bcd9e13bd554e383a5e3eb0091058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9F=A3=20=E2=82=AC=E2=82=A5=E2=84=B5=E2=88=AA=E2=84=93?= =?UTF-8?q?=20=E2=9F=A2?= <34749913+emnul@users.noreply.github.com> Date: Tue, 17 Mar 2026 16:38:37 -0400 Subject: [PATCH 13/13] Bump compact version in actions/setup --- .github/actions/setup/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 705e0694..c57e9b00 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -43,4 +43,4 @@ runs: if: ${{ inputs.skip-compact != 'true' }} uses: midnightntwrk/setup-compact-action@836895c8fffbbea6bd986af2b17e8941ff29d1f8 # v1 with: - compact-version: "0.29.0" + compact-version: "0.30.0"