Skip to content

Continuation fixes#441

Open
pileks wants to merge 21 commits intodevelopfrom
pileks/met-274-zenith-feb-2026-continuation-fixes
Open

Continuation fixes#441
pileks wants to merge 21 commits intodevelopfrom
pileks/met-274-zenith-feb-2026-continuation-fixes

Conversation

@pileks
Copy link
Contributor

@pileks pileks commented Mar 17, 2026

Futarchy

  • Re-apply DAO's current seconds_per_proposal to proposal's duration_in_seconds at launch time (ensures updated durations take effect)
  • Mark squads vault as writable signer in collect_meteora_damm_fees to match Squads SDK payer semantics
  • Use wrapping_mul instead of saturating_mul for TWAP aggregator calculations and projections
  • Remove #[event_cpi] from ExecuteSpendingLimitChange (no events emitted)
  • Remove unused associated_token_program from StakeToProposal and UnstakeFromProposal
  • Remove unnecessary mut from admin in AdminCancelProposal
  • Update TWAP comment: max observation window is ~213 days, not ~208

Performance Package V2

  • Replace ProposerType enum with direct proposer: Pubkey on ChangeRequest
  • Add created_at_timestamp to PerformancePackage state (set on init)
  • Add pp_created_at_timestamp to ChangeRequest to detect stale CRs after close/recreate
  • Add staleness checks in execute_change: reject CRs whose pp_created_at_timestamp doesn't match the current PP, and reject CRs where proposer is no longer authority or recipient
  • Add StaleChangeRequest error variant
  • Add oracle check requiring at least one update_twap after twap_start_timestamp before reading
  • Use wrapping_mul instead of saturating_mul in futarchy oracle aggregator projection
  • Remove unused associated_token_program from CompleteUnlock
  • Remove start_value from RewardFunction::CliffLinear - unnecessary due to cliff_value existing

Price-Based Performance Package

  • Remove validation requiring min_unlock_timestamp to be in the future (allow init with past timestamp)
  • Use wrapping_sub instead of saturating_sub for aggregator difference in complete_unlock
  • Remove #[event_cpi] from BurnPerformancePackage (no events emitted)

V06 Launchpad

  • Add has_one = launch constraint to funding_record in Claim and Refund
  • Prevent initialization of launch with duplicate or empty spending limit members
  • Fix time boundary: use require_gt! instead of require_gte! in Fund (strict expiry check)
  • Remove unused launch_signer account from Fund
  • Remove unnecessary mut from base_mint in Claim
  • Remove unused system_program from Claim, Refund, and ReturnFunds

V07 Launchpad

  • Add has_one = launch constraint to funding_record in Claim and Refund
  • Remove unused launch_signer account from Fund
  • Remove unnecessary mut from launch_signer in ClaimAdditionalTokenAllocation and InitializePerformancePackage
  • Remove unnecessary mut from base_mint in Claim and ClaimAdditionalTokenAllocation
  • Remove unused system_program from Claim and Refund

Bid Wall

  • Remove unused payer account from CloseBidWall
  • Remove unnecessary mut from user in SellTokens
  • Remove unused system_program from CollectFees and SellTokens

@pileks pileks self-assigned this Mar 17, 2026
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