Contributions on Steem4Poker
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
sessionStorageflag 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.000instead ofPokTests100.000.
5. Admin: Grant PokTests
- Restored the
VIRTUALparameter 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
updatedAtlock 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 DOMremoveChilderrors. - Fix: Unified the build on
index-fp2.js(single module graph, no query strings). - Updated
index.htmlCache-Controltono-storeso 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
RUNNINGwithout 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