Skip to content

Commit 86aaefa

Browse files
mikemaccanaclaude
andcommitted
Upgrade to Arcium 0.6.3
Arcium 0.6.3 fixes the timeout bug from 0.6.2 where arcium test ignored Anchor.toml's startup_wait setting. This should allow GitHub Actions to pass with the 300 second timeout configured in Anchor.toml. Changes: - Update GitHub Actions workflow to download arcium 0.6.3 binary - Update README to reflect 0.6.3 fixes the timeout issue - Update run-tests.bash comments to reference 0.6.3 - Update helpers.ts header comment to 0.6.3 - Note: arcup should work in 0.6.3 (bootstrap bug fixed) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 6f0509b commit 86aaefa

File tree

4 files changed

+16
-14
lines changed

4 files changed

+16
-14
lines changed

.github/workflows/test.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ jobs:
2323
anchor-version: "0.32.1"
2424
node-version: "22.12.0"
2525

26-
# Override with Arcium 0.6.2 binary
26+
# Override with Arcium 0.6.3 binary
2727
# arcup 0.6.2 has bootstrap bug (panics with "index not found" at arcup/src/config.rs:29:51)
28-
# so we download the 0.6.2 binary directly instead of using arcup
29-
- name: Override with Arcium CLI 0.6.2
28+
# Arcium 0.6.3 fixes the timeout bug where it ignored Anchor.toml's startup_wait setting
29+
- name: Override with Arcium CLI 0.6.3
3030
run: |
31-
curl "https://bin.arcium.com/download/arcium_x86_64_linux_0.6.2" -o ~/.cargo/bin/arcium
31+
curl "https://bin.arcium.com/download/arcium_x86_64_linux_0.6.3" -o ~/.cargo/bin/arcium
3232
chmod +x ~/.cargo/bin/arcium
3333
arcium --version
3434

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Private Elections on Solana with Arcium
22

33
> [!NOTE]
4-
> Tests work on local machines but currently fail on GitHub Actions due to a bug in Arcium CLI 0.6.2 where it ignores Anchor.toml's `startup_wait` setting and uses a hardcoded ~60 second timeout. GitHub Actions runners are too slow for this timeout. Tests pass locally with the 300 second timeout configured in Anchor.toml.
4+
> This project uses Arcium 0.6.3 which fixes the timeout bug from 0.6.2. GitHub Actions use a 300 second startup_wait (configured in Anchor.toml) to accommodate slower CI environments. Local development typically completes in ~90 seconds.
55
66
Based on the https://github.com/arcium-hq/examples 'voting' app with a [significant number of fixes](https://github.com/quiknode-labs/arcium-election/commits/main/).
77

@@ -15,11 +15,13 @@ Prerequisites:
1515

1616
Run `npm test`. That script will:
1717

18-
- Set the correct Arcium version (0.4.0)
19-
- Set the correct Anchor version (0.32.1)
20-
- Unset RUSTUP_TOOLCHAIN to use Arcium's custom Rust version
21-
- Remove the old test-ledger, so the old compdef accounts are cleared out
22-
- Run `arcium test` to build and run the tests
18+
- Set the correct Anchor version (0.32.1) if avm is available
19+
- Unset RUSTUP_TOOLCHAIN to use Rust 1.92.0 (from rust-toolchain.toml)
20+
- Pull Arcium Docker images with correct platform for Apple Silicon
21+
- Kill any running Solana validator and remove test ledger for clean state
22+
- Remove Docker containers to clear cached MXE state
23+
- Build the program and generate Codama client
24+
- Run `arcium test` to test with Arcium 0.6.3
2325

2426
## How the Election program works, and how Arcium works
2527

run-tests.bash

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ set -euo pipefail
2020
# 'Program 11111111111111111111111111111111 invoke [3]'
2121
# 'Allocate: account Address { address: FLpEeHKkzCKwVvC7LMV3GBSLAsmhWSvEx2z4PYKWZk6U, base: None } already in use'
2222

23-
# Arcium version is set by directly installing the 0.6.2 binary (in GitHub Actions)
24-
# or by the user having arcium 0.6.2 in their PATH (local development)
23+
# Arcium version is set by directly installing the 0.6.3 binary (in GitHub Actions)
24+
# or by the user having arcium 0.6.3+ in their PATH (local development)
2525

2626
# TODO: Upgrade to Agave 3.x when resolved
2727
# Currently using Agave 2.3.11 due to Agave 3.x panic with bind-address 0.0.0.0
@@ -39,7 +39,7 @@ fi
3939
unset RUSTUP_TOOLCHAIN
4040

4141
# TODO: Remove --platform linux/amd64 workaround when Arcium publishes ARM64 Docker images
42-
# BUG: Arcium 0.6.2 Docker images (arx-node:latest, trusted-dealer:latest) only support amd64
42+
# BUG: Arcium 0.6.3 Docker images (arx-node:latest, trusted-dealer:latest) only support amd64
4343
# This causes "no matching manifest for linux/arm64/v8" errors on Apple Silicon Macs
4444
# Workaround: Pre-pull images with --platform flag to force Rosetta 2 emulation
4545
# The images need to be pulled before arcium test starts docker compose

tests/arcium-solana-kit/helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const arciumIdl = JSON.parse(await readFile(arciumIdlPath, "utf-8"));
2222
/**
2323
* All Arcium helper functions for working with Solana Kit.
2424
* Re-implementation of @arcium-hq/client without web3.js dependency.
25-
* Updated for Arcium 0.6.2
25+
* Updated for Arcium 0.6.3
2626
*/
2727

2828
const MEMPOOL_SEED = "Mempool";

0 commit comments

Comments
 (0)