Skip to content

test: compact-deployer examples and integration suite#109

Draft
0xisk wants to merge 3 commits into
feat/compact-deployerfrom
feat/deployer-examples-tests
Draft

test: compact-deployer examples and integration suite#109
0xisk wants to merge 3 commits into
feat/compact-deployerfrom
feat/deployer-examples-tests

Conversation

@0xisk

@0xisk 0xisk commented Jun 8, 2026

Copy link
Copy Markdown
Member

What

Part 2 of 2 splitting the original compact-deployer PR (#86).

Stacked on #86 (the compact-deployer tool). This PR adds everything that consumes the deployer:

  • examples/fungible-token/ — a compact-deploy walkthrough. A TokenExample contract wrapping the OZ Compact FungibleToken module, with deploy scripts exercising the common constructor-arg types and the compact-deploy CLI (local / preview / preprod).
  • tests/integrations/ — end-to-end vitest suite over real deploy flows: deploy, dry-run, history isolation/rotation, proof-server auto-start, private-state, wallet lifecycle/pool, keystore passphrase, and error paths. Driven by a docker local-stack harness via the top-level Makefile.
  • Root wiring: re-adds the examples/* workspace and the test:integration / compile:fixtures / env:* make shortcuts to package.json, plus the root compact.toml for real-network deploys.

Why split

The original PR was 103 files / +16.7k. Splitting into the tool (#86) and its consumers (this PR) keeps each reviewable. This half has no value without the tool, hence the stacking.

Base

⚠️ Targets feat/compact-deployer (#86), not main. Review/merge #86 first; this PR's diff resolves to just the examples + tests once #86 lands.

Verification

yarn lint (126 files) and yarn types pass. Integration specs run via make test-integration (docker local stack + compactc), out of scope for plain CI.

Refs: #86

0xisk added 2 commits June 8, 2026 13:19
Introduce the `@openzeppelin/compact-deployer` package: a programmatic
and CLI deployer for Compact contracts. Covers config loading, artifact
and constructor-arg resolution, wallet/keystore handling, network and
proof-server providers, and deployment-record bookkeeping.

Wire the deployer into `@openzeppelin/compact-cli` via the new
`compact-deploy` command (runDeploy), with passphrase prompting and
JSON/verbose output modes.

* Add root resolutions for the midnight stack and a `coverage` turbo
  task so the new package can report coverage.

Part 1 of 2 splitting the original deployer PR. Examples and the
integration-test suite follow in a stacked PR that builds on this one.

Refs: #86
Add the fungible-token deploy walkthrough under examples/ and the
end-to-end integration suite under tests/integrations/, both built on
the compact-deployer tool.

* examples/fungible-token: a TokenExample contract wrapping the OZ
  Compact FungibleToken module, with deploy scripts exercising the
  common constructor-arg types and `compact-deploy` CLI invocations.
* tests/integrations: vitest specs covering deploy flows, dry-run,
  history isolation/rotation, proof-server auto-start, wallet
  lifecycle, keystore and error paths, plus a docker local-stack
  harness driven by the top-level Makefile.
* Re-add the `examples/*` workspace and the integration/env make
  shortcuts to the root package.json, and the root compact.toml used
  for real-network deploys.

Part 2 of 2 splitting the original deployer PR. Stacked on the
compact-deployer tool PR.

Refs: #86
@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b829e5b0-5020-406d-9503-93796d7e53b4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/deployer-examples-tests

Comment @coderabbitai help to get the list of available commands and usage tips.

* integrations/walletPool: evict a wallet build from the cache if it
  rejects, so a failed `WalletHandler.build`/`provider.start` no longer
  poisons every later `signerFor(alias)` call with the same rejection.
* integrations/local-env: pin proof-server and indexer-standalone by
  digest (resolved from `:latest`) for deterministic runs, matching the
  already-pinned node image. Both digests are multi-arch (amd64 +
  arm64) manifests and identical to the current `:latest`, so behaviour
  is unchanged.

Refs: #86
@0xisk 0xisk force-pushed the feat/compact-deployer branch from 475c4ac to 15619e6 Compare June 8, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant