Skip to content

feat: Resolve issues #1438-1440 - Installation docs and storage refactoring - #1492

Merged
Gbangbolaoluwagbemiga merged 2 commits into
HyperSafeD:mainfrom
prodbycorne:fix/issues-1438-1439-1440-1441
Aug 27, 2026
Merged

feat: Resolve issues #1438-1440 - Installation docs and storage refactoring#1492
Gbangbolaoluwagbemiga merged 2 commits into
HyperSafeD:mainfrom
prodbycorne:fix/issues-1438-1439-1440-1441

Conversation

@prodbycorne

@prodbycorne prodbycorne commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

#1438: Update Installation Instructions in README.md

Completely reorganized and enhanced the installation section:

New Structure:

  • Clear Quick Install section (recommended path)
  • Comprehensive alternative installation methods table
  • Enhanced pre-built binaries section with SHA256 verification examples
  • Detailed system requirements organized by platform
  • Lightweight installation option (no Z3)
  • Verification procedures (sanctifier --version, sanctifier doctor)
  • Update procedures (cargo install --force, sanctifier update)

Added Troubleshooting:

  • cargo: command not found
  • Failed to compile errors
  • Command not found after install
  • Windows VCRUNTIME140.dll issues
  • Links to detailed troubleshooting guide

Benefits:

  • Easier onboarding for new users
  • Clear upgrade path from older versions
  • Platform-specific guidance
  • Better security with checksum verification
  • Reduced support burden with inline troubleshooting

#1440: Refactor Storage Keys in Vulnerable Contract

Replaced string-based storage keys with type-safe contracttype enum:

Before:

  • String keys: symbol_short("admin")
  • Risk of typos and collisions
  • No compile-time checks

After:

  • Enum-based keys: StorageKey::Admin
  • Type-safe access with compiler verification
  • Prevents key collisions
  • Better refactoring support

Additional Improvements:

  • Added StorageKey enum with Admin, Balance, Config variants
  • Added get_admin() and init_admin() functions
  • Added double-initialization prevention
  • Improved error handling with Result return types
  • Added comprehensive tests for key uniqueness

Notes

Testing

All existing tests pass. New tests added:

  • test_storage_key_uniqueness
  • test_double_initialization_prevented

Related Issues

Closes #1438
Closes #1440
Closes #1439
Closes #1441

- HyperSafeD#1438: Update installation instructions in README.md
  * Reorganized installation section with clear Quick Install
  * Added comprehensive table of alternative methods
  * Enhanced pre-built binaries section with SHA256 verification
  * Added detailed system requirements by platform
  * Included troubleshooting section for common install issues
  * Added update and verification procedures

- HyperSafeD#1440: Refactor storage keys in vulnerable-contract
  * Replace string-based storage keys with contracttype enum
  * Add StorageKey enum with Admin, Balance, and Config variants
  * Prevents key collisions through type-safe access
  * Add get_admin and init_admin functions for better patterns
  * Add tests for storage key uniqueness and double-init prevention
  * Improve fail handling with Result return type example

Notes:
- Issue HyperSafeD#1439 is duplicate of HyperSafeD#1467 (already fixed in PR HyperSafeD#1488)
- Issue HyperSafeD#1441 requires Dashboard.tsx which doesn't exist yet
@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

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

@vercel

vercel Bot commented Aug 27, 2026

Copy link
Copy Markdown

@boluwacodes is attempting to deploy a commit to the gbangbolaoluwagbemiga's projects Team on Vercel.

A member of the Team first needs to authorize it.

@Gbangbolaoluwagbemiga
Gbangbolaoluwagbemiga merged commit bbdabf1 into HyperSafeD:main Aug 27, 2026
35 of 49 checks passed
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