Skip to content

chore: migrate to Arch 0.12.0 - #4

Merged
0xfinetuned merged 1 commit into
mainfrom
chore/arch-0.12
Oct 7, 2026
Merged

0xfinetuned merged 1 commit into
mainfrom
chore/arch-0.12

Conversation

@0xfinetuned

@0xfinetuned 0xfinetuned commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Moves arch-kit from Arch Network 0.10.0 to 0.12.0 and bumps the crate to 0.1.8. Arch 0.12 is a chain reset (upstream f2eb5017f), so arch-kit 0.1.7 and earlier work only with pre-0.12 nodes, and 0.1.8 works only with 0.12 nodes.

Changes

  • arch_sdk, apl-token, apl-associated-token-account: =0.10.0 → =0.12.0. Cargo.lock was updated only for these crates (cargo update -p …), which pulls arch_program 0.12.0 and wincode 0.6 and drops bincode.
  • rust-version 1.85 → 1.89. wincode 0.6.2, which arch_program 0.12 now requires, declares rust-version = "1.89.0".
  • Removed rollback_status handling. ProcessedTransaction.rollback_status and RollbackStatus no longer exist, and the RPC no longer returns the field. Program-account assignment (deploy) and IDL publication now fail on status != Processed. The TransactionFailed error no longer includes a rollback=… suffix.
  • Removed utxo from every AccountInfo fixture. The field no longer exists in arch_sdk::AccountInfo or in the RPC JSON. Rollback-only test cases were removed and the related tests renamed (failed_assignment_stops_deployment, rejected_resize_stops_before_uploading_an_upgrade).
  • arch-kit init template: arch-satellite-lang =0.31.5 → =0.34.0. Satellite 0.34.0 is the first release built on arch_program ^0.12.0; 0.31.5 used arch_program ^0.6.2. Between 0.31.5 and 0.34.0, the IDL instruction handlers in the Satellite codegen and arch-satellite-lang-idl are identical apart from version strings, so arch-kit's IDL publish/resize flow is unchanged.
  • arch-satellite-lang-idl stays at =0.31.5. It has no Arch crate dependencies, so it cannot conflict. arch-kit already normalizes IDL metadata.spec.
  • ARCH_KIT_VERSION in deploy-program.yml is set to 0.1.8, so the Publish Crate version check passes. deploy-program.yml, e2e.yml, and program-deployment.yml contain no other Arch version pins (the Anza v3.1.9 toolchain matches what upstream Arch 0.12 uses).
  • README: added an Arch 0.12 compatibility note, changed the reusable-workflow example to @v0.1.8, and documented the Satellite/arch_program versions that generated projects use.

The "SDK 0.10.0 skips account creation…" workaround comment in deploy.rs now refers to 0.12.0. sdk/src/helper/program_deployment.rs is the same in v0.10.0 and v0.12.0, so the workaround is still needed.

Version choice: 0.1.8 (not 0.2.0)

No CLI command, flag, or JSON output field changes. arch-kit never printed utxo or rollback_status. The only user-visible text change is the dropped rollback=… suffix in transaction-failure errors. The breaking parts are which network it can talk to (a chain reset) and the MSRV bump, both stated above and in the README.

Breaking notes for consumers

  • Arch 0.12 nodes only. The chain was reset, and RPC responses no longer include utxo or rollback_status.
  • Building arch-kit now needs Rust ≥ 1.89.
  • Projects generated by arch-kit init now depend on arch-satellite-lang =0.34.0 / arch_program 0.12.0. Existing projects keep whatever they pinned.
  • ausd-bridge pins arch-kit by commit and applies config/arch-kit.patch on top. This PR does not move that pin. ausd-bridge needs to move to a commit that includes this change, and its patch needs rework: the patch's added tests construct AccountInfo { utxo, .. } and use RollbackStatus, which no longer exist in 0.12.

Test plan

  • cargo build --all-targets
  • cargo test / cargo test --locked --all-targets: 109 unit tests passed, plus 4 in the second test binary
  • cargo clippy --all-targets -- -D warnings (also with --locked)
  • cargo fmt --check
  • cargo package --locked and cargo publish --dry-run --locked (dry run only; nothing published)
  • Smoke: cargo run -- --help; cargo run -- pubkey <tmp key> with a throwaway random 32-byte hex key; keygen into a temp dir
  • arch-kit init into a temp dir. cargo check of the generated project passes and resolves arch_program 0.12.0 / wincode 0.6.2. cargo-build-sbf (Anza 3.1.9, platform-tools v1.52 / rustc 1.89) produced hello.so.
  • arch-kit build-idl on the generated project (needs a Rust nightly toolchain, not installed locally)
  • Live RPC commands against an Arch 0.12 node (health, deploy, IDL publish/resize, token commands): the e2e / program-deployment workflows

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T21:46:10.401509Z 9b3a412 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@0xfinetuned

Copy link
Copy Markdown
Contributor Author

Related: Arch-Network/ausd-bridge#37 (bridge on Arch 0.12; pins arch-kit by commit and will move its pin after this merges) and Arch-Network/arch-cosigner#8.

@0xfinetuned

Copy link
Copy Markdown
Contributor Author

E2E Token lifecycle round trip fails on testnet independent of this PR (also on #3): testnet's genesis apl-token is a pre-reset build (stale ebpf/apl_token.so on the build server) and rejects every token instruction with 0xc. Fix: Arch-Network/arch-infrastructure#122 + testnet rebuild/reset.

@0xfinetuned

Copy link
Copy Markdown
Contributor Author

E2E re-run after the testnet reset with rebuilt genesis APL programs (Arch-Network/arch-infrastructure#122): CLI Workflows now pass, including the token lifecycle round trip.

@0xfinetuned
0xfinetuned merged commit 02377c4 into main Oct 7, 2026
2 of 3 checks passed
@jackrieck jackrieck mentioned this pull request Oct 8, 2026
2 of 3 tasks
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