Skip to content

feat(contracts): storage pruning, invite-only campaigns, and scoped M-of-N multisig#713

Merged
joelpeace48-cell merged 2 commits into
FinesseStudioLab:mainfrom
Abidoyesimze:feat/issues-451-452-454-contract-pruning-invites-multisig
Jun 28, 2026
Merged

feat(contracts): storage pruning, invite-only campaigns, and scoped M-of-N multisig#713
joelpeace48-cell merged 2 commits into
FinesseStudioLab:mainfrom
Abidoyesimze:feat/issues-451-452-454-contract-pruning-invites-multisig

Conversation

@Abidoyesimze

Copy link
Copy Markdown

Summary

Test plan

  • cargo test -p trivela-campaign-contract — 10 new tests covering pruning (empty/expired/max-entries-cap), invite-only registration (missing code, invalid code, valid code + single-use, revoke), and 2-of-3 multisig (insufficient sigs, success + nonce replay rejection)
  • cargo test -p trivela-rewards-contract — 6 new tests covering nonce pruning (empty/stale/max-entries-cap) and 2-of-3 multisig (insufficient sigs, success + nonce replay rejection)
  • cargo test --workspace --no-fail-fast — only 3 pre-existing failures remain (test_admin_deregister, test_deregister_success_and_re_register, test_tiered_rewards_sorting_and_credit), verified present on main before this change and unrelated to it

Closes #451
Closes #452
Closes #454

🤖 Generated with Claude Code

…-of-N multisig

Adds prune_expired_participants/prune_used_nonces + storage_stats to both
contracts for Soroban storage hygiene (FinesseStudioLab#451); invite-only registration via
hashed single-use invite codes on the campaign contract (FinesseStudioLab#452); and co-admin
M-of-N multisig (threshold + ed25519 signature verification with nonce replay
protection) gating set_merkle_root and set_paused as critical operations
(FinesseStudioLab#454, scoped to existing operations since co-admin governance from FinesseStudioLab#281 and
propose_admin do not yet exist in this codebase).

Closes FinesseStudioLab#451
Closes FinesseStudioLab#452
Closes FinesseStudioLab#454

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 28, 2026

Copy link
Copy Markdown

@devsimze is attempting to deploy a commit to the joelpeace48-cell's projects Team on Vercel.

A member of the Team first needs to authorize it.

…ites-multisig

Resolves conflicts from 282 upstream commits, most notably the campaign
participant-storage migration to persistent storage (FinesseStudioLab#280), 2-step admin
rotation (FinesseStudioLab#281), referral tracking (FinesseStudioLab#455), activity log (FinesseStudioLab#453), and the
rewards contract's rate limiting/vesting/snapshot/redemption/SEP-41/referral
additions.

Adapts FinesseStudioLab#451's pruning to the new persistent-storage-with-real-TTL model:
prune_expired_participants now garbage-collects PARTICIPANT_REGISTRY entries
whose persistent record is already gone (deregistered or TTL-archived) using
swap-remove, instead of the superseded application-level timestamp aging.
FinesseStudioLab#452 (invite-only) and FinesseStudioLab#454 (scoped multisig) carry forward unchanged,
re-applied on top of the upstream register()/set_paused() signatures.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@drips-wave

drips-wave Bot commented Jun 28, 2026

Copy link
Copy Markdown

@Abidoyesimze Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@joelpeace48-cell joelpeace48-cell merged commit 950ab59 into FinesseStudioLab:main Jun 28, 2026
2 of 15 checks passed
joelpeace48-cell added a commit that referenced this pull request Jun 30, 2026
…tract-pruning-invites-multisig

feat(contracts): storage pruning, invite-only campaigns, and scoped M-of-N multisig
joelpeace48-cell added a commit that referenced this pull request Jun 30, 2026
…tract-pruning-invites-multisig

feat(contracts): storage pruning, invite-only campaigns, and scoped M-of-N multisig
joelpeace48-cell added a commit that referenced this pull request Jun 30, 2026
…tract-pruning-invites-multisig

feat(contracts): storage pruning, invite-only campaigns, and scoped M-of-N multisig
joelpeace48-cell added a commit that referenced this pull request Jun 30, 2026
…tract-pruning-invites-multisig

feat(contracts): storage pruning, invite-only campaigns, and scoped M-of-N multisig
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants