Contributions on Steem4Poker

in Steem Dev22 hours ago

Steem4Poker is a poker engine acquired and operated by @xpilar. I have been assisting with the Steem blockchain integration, as well as providing ongoing support and maintenance in exchange for compensation.

After gathering valuable reviews and feedback from users like @xpilar and @steemchiller, we updated several UI references and backend objects to improve the overall platform experience.

Below is a summary of my contributions so far. To accelerate development, I leveraged AI (specifically Grok) to assist with roughly 90% of the coding and implementation process.


🛠️ Technical Contributions

1. Steem Posting-Key Login (Mobile & Desktop)

  • Added Posting Key login alongside Keychain (utilizing the same challenge → sign → verify flow).
  • The client signs with the posting WIF via dsteem; the key is never sent to the server.
  • The WIF is held only in an uncontrolled input or short-lived variable and is immediately cleared upon submit, method switch, unmount, or error.
  • This feature is fully available on both desktop and mobile (not limited to mobile-only).
  • Updated the Connect panel for wallet linking to support this dual-method approach.
  • Implemented a tab-scoped sessionStorage flag for the login method (stores the method name only, not the key).

2. Deposit UX for Posting-Key Sessions

  • If a user logs in with a posting key, the Keychain deposit button and popups are disabled.
  • Switched to memo-only instructions: users are prompted to send funds to the deposit account with a unique personal memo.
  • Confirmed that memos are unique per user (ensuring stable STEEM-MEMO deposit codes).

3. Deposit Monitor Reliability

  • Root Cause: The cursor was getting stuck on an old SDS synthetic transfer outside the 3-day chain lookback window, blocking the queue.
  • Fix: Extended the chain lookback to cover the cursor / oldest SDS row.
  • Resolution: Successfully credited stuck deposits (e.g., 50 STEEM to @mamun123456 and 10 STEEM to @xpilar).

4. Play Money → PokTests Branding

  • Renamed virtual/play currency displays to PokTests (updated amounts, formatters, and admin labels).
  • Updated Lobby mode tabs to: Real Money | Free Play (instead of using "PokTests" as the tab name).
  • Free Play stakes and buy-ins now format correctly as PokTests (live formatting rather than hardcoded STEEM strings).
  • Fixed formatting spacing: now displays as PokTests 100.000 instead of PokTests100.000.

5. Admin: Grant PokTests

  • Restored the VIRTUAL parameter on the balance adjustment API/service (the UI already had it, but the backend had dropped it).
  • Admins can now ADD or REMOVE any PokTests amount via the Balance Adjustment tool.

6. Table Edit "Modified by Another Admin" Bug

  • The optimistic updatedAt lock was triggering false positives (e.g., during pauses or style changes).
  • Softened the logic to "last-write-wins" with skew logging, ensuring that Practice (Free) tables can be edited without errors.

7. Resolved Browser Cache & React removeChild Errors

  • Issue: Dual React bundles (from index.js?v=… vs. imports without query strings) were causing DOM removeChild errors.
  • Fix: Unified the build on index-fp2.js (single module graph, no query strings).
  • Updated index.html Cache-Control to no-store so users automatically pick up the new shell without needing a manual cache clear.
  • Softened long-lived immutable JS caching and provided troubleshooting guidance for stuck users (use incognito, hard refresh, or clear site data).

8. Tournament Scheduling & Auto-Start

  • Fixed the Admin Start Time picker to use the local timezone (previously, it was incorrectly feeding UTC into datetime-local).
  • Bug Fix: Debugged an issue with 2500-chip tournaments where the Admin Start button only set the status to RUNNING without creating tables.
  • Admin Start now uses a proper flow: start → creates tables + seats players.
  • Tournament tables are now properly registered in memory after creation.
  • Implemented a Lifecycle cron (every 30s) to auto-start when the time is right and minimum players are met, and to auto-cancel underfilled past-start registrations.

9. Claim 500 PokTests (Cashier)

  • Added a Cashier Deposit feature: Claim 500 PokTests, limited to once per rolling 24 hours.
  • API: Added GET/POST /api/v1/cashier/virtual-chips/claim-status & claim.
  • UI: Filled out the Steem plugin UI and added a cooldown countdown on the claim button.

If you value proactive engineering for the STEEM ecosystem, please consider supporting my witness: blaze.apps

Vote for blaze.apps Witness