Skip to content

feat: RBAC auth manager, jackpot ZK verifier, Mississippi straddle, t… - #479

Merged
Marvy247 merged 1 commit into
HitEmPoka:mainfrom
Chidubemkingsley:feat/rbac-jackpot-straddle-timebank
Aug 30, 2026
Merged

feat: RBAC auth manager, jackpot ZK verifier, Mississippi straddle, t…#479
Marvy247 merged 1 commit into
HitEmPoka:mainfrom
Chidubemkingsley:feat/rbac-jackpot-straddle-timebank

Conversation

@Chidubemkingsley

Copy link
Copy Markdown
Contributor
  • closes Add a contract-to-contract authorization framework #188

  • closes Implement a jackpot hand verification contract #187

  • closes Add configurable straddle and Mississippi straddle rules #186

  • closes Add a time-bank system for tournament play #185

  • Auth Manager (contracts/auth-manager): managed authorization layer between contracts with RBAC granular permissions (Permission bitmask + Role), direct grants, and multi-sig admin proposal flow (propose/approve/execute with timelock threshold). Adds contract-to-contract allowlist for cross-call authorization and integrates via TableState DataKey::AuthManager.

  • Jackpot Verifier (contracts/jackpot-verifier): verifies whether a completed hand qualifies for a jackpot (bad beat, royal flush, straight flush, quads, etc.) via ZK proof. Hand data submitted with proof/public_inputs binding deck_root, hand commitment, category/rank/score; qualification logic mirrors pot.rs thresholds. Supports custom jackpot types, claim anti-replay, and fundable pool. Poker-table integrates via verify_jackpot_with_proof and claim_jackpot_with_proof with cross-contract delegation.

  • Mississippi Straddle (contracts/poker-table): extend StraddlePosition with Button/Mississippi/Any/Custom and StraddleConfig with live_only, amount_cap, allow_reraise. Add Mississippi pending volunteer model (post/cancel_mississippi_straddle), capped effective_amount, ActiveStraddle state, live straddle turn-order handling in commit_deal, and re-raise rights enforcement in betting. Caps and live-only semantics enforced at posting.

  • Time Bank (contracts/poker-table): per-player reservoirs that replenish at a fixed per-hand and per-ledger rate, capped at max_seconds. Players spend extension_seconds via use_time_bank to push action_deadline (seconds->ledgers ceil/5). Enforced via contract-level timeout checks (should_enforce_timeout) and integrated with start_new_hand replenish_all and join_table init. Adds DataKey::TimeBank/TimeBankConfig and configure/get/use endpoints.

Fix legacy multi-currency/ban-list/hand-cancellation/anti-cheat compilation issues and align Cargo workspace members.

…ime bank

- Auth Manager (contracts/auth-manager): managed authorization layer between
  contracts with RBAC granular permissions (Permission bitmask + Role), direct
  grants, and multi-sig admin proposal flow (propose/approve/execute with
  timelock threshold). Adds contract-to-contract allowlist for cross-call
  authorization and integrates via TableState DataKey::AuthManager.

- Jackpot Verifier (contracts/jackpot-verifier): verifies whether a completed
  hand qualifies for a jackpot (bad beat, royal flush, straight flush, quads,
  etc.) via ZK proof. Hand data submitted with proof/public_inputs binding
  deck_root, hand commitment, category/rank/score; qualification logic mirrors
  pot.rs thresholds. Supports custom jackpot types, claim anti-replay, and
  fundable pool. Poker-table integrates via verify_jackpot_with_proof and
  claim_jackpot_with_proof with cross-contract delegation.

- Mississippi Straddle (contracts/poker-table): extend StraddlePosition with
  Button/Mississippi/Any/Custom and StraddleConfig with live_only, amount_cap,
  allow_reraise. Add Mississippi pending volunteer model
  (post/cancel_mississippi_straddle), capped effective_amount, ActiveStraddle
  state, live straddle turn-order handling in commit_deal, and re-raise rights
  enforcement in betting. Caps and live-only semantics enforced at posting.

- Time Bank (contracts/poker-table): per-player reservoirs that replenish at a
  fixed per-hand and per-ledger rate, capped at max_seconds. Players spend
  extension_seconds via use_time_bank to push action_deadline (seconds->ledgers
  ceil/5). Enforced via contract-level timeout checks (should_enforce_timeout)
  and integrated with start_new_hand replenish_all and join_table init. Adds
  DataKey::TimeBank/TimeBankConfig and configure/get/use endpoints.

Fix legacy multi-currency/ban-list/hand-cancellation/anti-cheat compilation
issues and align Cargo workspace members.
@drips-wave

drips-wave Bot commented Aug 30, 2026

Copy link
Copy Markdown

@Chidubemkingsley 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

@Marvy247
Marvy247 merged commit 8bc3b31 into HitEmPoka:main Aug 30, 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

2 participants