fix(contracts): resolve remaining merge damage — full workspace green - #1093
Closed
joelpeace48-cell wants to merge 0 commit into
Closed
fix(contracts): resolve remaining merge damage — full workspace green#1093joelpeace48-cell wants to merge 0 commit into
joelpeace48-cell wants to merge 0 commit into
Conversation
| purged.push({ table, count: result.changes }); | ||
| log.info(`[pii-purge] Deleted ${result.changes} rows from ${table} for campaign ${campaignId}`); | ||
| log.info( | ||
| `[pii-purge] Deleted ${result.changes} rows from ${table} for campaign ${campaignId}`, |
| `--fn ${fn}`, | ||
| args, | ||
| ].filter(Boolean).join(' '); | ||
| const output = execSync(cmd, { encoding: 'utf8', timeout: 15_000 }); |
| return proverReady; | ||
| } | ||
|
|
||
| self.onmessage = async (event: MessageEvent) => { |
joelpeace48-cell
force-pushed
the
fix/contracts-full-green
branch
from
July 30, 2026 05:48
b6afdbe to
4dbae3b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to the previous contracts-merge-corruption fix. That commit
resolved the unclosed-delimiter parse failures; this one resolves
everything the fuller
cargo test --workspace/cargo clippy/ wasmbuild surfaced once the code could actually run.
campaign contract:
disease as the earlier do_register fix — a missing
}after theif !already_attributedguard let its content bleed into anunconditional second increment further down, double-counting every
referral. Closed the block, removed the duplicate, moved the
(genuinely separate) referral-lock stamp after it.
participant was still currently active, turning ordinary idempotent
re-registration calls into a hard error. Scoped the barrier to only
apply when the participant is not currently registered, which is
the scenario the barrier was actually meant to catch (re-registration
after deregistration) — verified against Contracts: Nullifier to prevent re-registration / double-claim after merkle root rotation #740's own passing test,
which only asserts on the deregistered-then-blocked case.
scrambled
test_clear_participation_allows_re_registration,test_referral_locked_allows_reregister_same_referrer, andtest_referral_locked_prevents_referrer_switch_on_reregister—each name had a different test's body. Traced every affected function
back to its origin commit (2efd49e, 15605f0, 976b2b9) and replaced
the whole corrupted block wholesale with correctly-matched
name/body pairs, fixing the argument order for the ones sourced from
the pre-invite-code signature along the way.
test_root_rotation_does_not_allow_double_registrationhad a secondtest's body pasted in front of its own content; removed the leaked
block.
&1instead of&0for thefirst post-initialize admin call).
expect
NullifierAlreadyUsed(the participation barrier, confirmedintentional and permanent) instead of the referral-loop/lock errors
they predate — those code paths are provably unreachable via this
vector now (a referral loop requires the referrer to already be
registered when the cycle-closing registration is attempted, which
requires them to have deregistered first, which the barrier now
blocks before loop-detection is ever reached).
one clippy needless_range_loop.
rewards contract:
three ways with the SEP-41 block, a simpler multisig scheme matching
campaign contract's, and each other) to 36-46/47-51 — confirmed via
docs/CONTRACTS_API.md that only the SEP-41 codes (21-29) are actually
published to clients; the colliding ranges aren't documented anywhere
and are free to move.
behind an off-by-default
poseidon-experimentalfeature — itdepends on ark_bn254 and light_poseidon, neither ever declared in
Cargo.toml, so it has never compiled since the commit that added it.
Nothing in the contract's public API calls into it.
Workflows: contracts-ci.yml already had the fix for this — Soroban
dropped support for wasm32-unknown-unknown on Rust 1.82+, and
dtolnay/rust-toolchain@stable now installs whatever the latest stable
is. Applied the same wasm32v1-none target across every other workflow
and script that still referenced the old target (ci-performance.yml,
performance-gate.yml, testnet-integration.yml, docs.yml,
release-bindings.yml, package.json's build:contracts fallback) so none
of them silently break the next time stable Rust ships.
Verified end to end:
cargo fmt --all -- --check,cargo clippy --workspace --all-targets -- -D warnings -A deprecated,cargo test --workspace(campaign 84/84, rewards 99/99, all others green), andcargo build --target wasm32v1-none --releasefor both contracts allpass clean.